28.03.2011
Inżynieria oprogramowania - przykładowe pytania egzaminacyjne
Jak nazywają się dwa podstawowe rodzaje produktów software'owych ? Objaśnić podane nazwy.
Generyczne - wytworzone w celu sprzedaży na bardzo szerokim rynku, jak np. pakiet programów MS Office, system operacyjny Windows XP, itp.
Dedykowane - wytworzone dla pojedynczego użytkownika, zgodnie z dostarczoną przez
Na czym polega zasada ewolucyjnego modelu cyklu życia oprogramowania?
Model cyklu życia oprogramowania jest to uproszczona reprezentacja „przebiegu życia” oprogramowania - pokazana z jakiejś pespektywy. To co nazywamy modelem procesu wytwarzania oprogramowania jest również nazywane modelem cyklu życia oprogramowania
Tworzenie ewolucyjne - W tym procesie czynności specyfikowania, projektowania i zatwierdzania przeplatają się.
Tworzenie ewolucyjne polega na opracowaniu wstępnej implementacji, pokazaniu jej użytkownikowi z prośbą o komentarze i udoskonalaniu jej w wielu wersjach aż do powstania odpowiedniego systemu.
Typy tworzenia ewolucyjnego:
Tworzenie badawcze - Celem procesu jest praca z klientem, polegająca na badaniu wymagań i dostarczeniu ostatecznego systemu. Tworzenie rozpoczyna się od tych części systemu, które są dobrze rozpoznane. System ewoluuje przez dodawanie nowych cech, które proponuje klient.
Prototypowanie z porzuceniem - Celem procesu tworzenia ewolucyjnego jest zrozumienie wymagań klienta i wypracowanie lepszej definicji wymagań stawianych systemowi. Budowanie prototypu ma głównie na celu eksperymentowanie z tymi wymaganiami użytkownika, które są niejasne.
Problemy:
Proces nie jest widoczny
System ma złą strukturę
Konieczne mogą być specjalne narzędzia i techniki
Stosowanie:
W wypadku systemów małych (mniej niż 100 000 wierszy kodu) lub średnich (do 500 000 wierszy kodu) z krótkim czasem życia podejście ewolucyjne jest najlepsze.
W wypadku dużych systemów o długim czasie życia wady tworzenia ewolucyjnego ujawniają się jednak z całą ostrością.
Co to są za narzędzia programistyczne o nazwie CASE?
Narzędzia CASE (czyli Computer Aided Software Engineering lub Computer Aided System Engineering) to systemy komputerowe, przeznaczone do wspomagania rutynowych czynności procesu tworzenia oprogramowania. Dzięki nim projekty tworzy się dokładniej, a praca nad diagramami, sprawdzanie ich poprawności oraz śledzenie wykonanych testów jest prostsze i szybsze.
Systemy CASE można podzielić według faz cyklu życia systemu na: Upper-CASE i Lower-CASE, a także według zakresu zastosowań na pakiety narzędziowe oraz pakiety zintegrowane.
Na czym polega tworzenie oprogramowania z wykorzystaniem tzw. prototypowania ?
Prototypowanie - Sposób na uniknięcie zbyt wysokich kosztów błędów popełnionych w fazie określania wymagań. Zalecany w przypadku, gdy określenie początkowych wymagań jest stosunkowo łatwe.
Fazy:
ogólne określenie wymagań
budowa prototypu
weryfikacja prototypu przez klienta
pełne określenie wymagań
realizacja pełnego systemu zgodnie z modelem kaskadowym
wykrycie nieporozumień pomiędzy klientem a twórcami systemu
wykrycie brakujących funkcji
wykrycie trudnych usług
wykrycie trudnych usług
wykrycie braków w specyfikacji wymagań
Zalety:
możliwość demonstracji pracującej wersji systemu
możliwość szkoleń zanim zbudowany zostanie pełny system
niepełna realizacja: objęcie tylko części funkcji
języki wysokiego poziomu: Smalltalk, Lisp, Prolog, 4GL, ...
wykorzystanie gotowych komponentów
generatory interfejsu użytkownika: wykonywany jest wyłącznie interfejs, wnętrze systemu jest „podróbką”
szybkie programowanie (quik-and-dirty): normalne programowanie, ale bez zwracania uwagi na niektóre jego elementy, np. zaniechanie testowania.
Często ewolucyjnie przechodzi się od prototypu do końcowego systemu
Na czym polega schemat zwany siecią aktywności, stosowany w zarządzaniu projektami informatycznymi ?
Schematy aktywności - pokazują zależności (wzajemnie uwarunkowania) występujące pomiędzy zadaniami. Widoczna jest w nich także ścieżka najbardziej krytyczna
W metodzie PERT projekt jest przedstawiany w postaci diagramu sieciowego, czyli grafu skierowanego, którego wierzchołki stanowią zadania składające się na projekt, natomiast łuki reprezentują ukierunkowane powiązania pomiędzy zadaniami i są do nich przypisane czasy trwania poszczególnych czynności wymaganych do przejścia do następnego zadania. Istotą metody PERT jest analiza ścieżki krytycznej. W metodzie PERT czas trwania zadania traktujemy jako zmienną losową, nie natomiast jako zmienną zdeterminowaną.
Takie ujęcie czasu trwania zadań składających się na projekt pozwala zastosować metody statystyczne do oceny czasowego ryzyka ukończenia zadań, grup zadań i całości projektu oraz określania prawdopodobieństwa ich ukończenia w z góry zadanym terminie.
Parametry rozkładu prawdopodobieństwa czasu zakończenia zadania szacuje się na podstawie trzech zmiennych:
optymistycznego czasu zakończenia zadania
najbardziej prawdopodobnego czasu zakończenia zadania
pesymistycznego czasu zakończenia zadania
Do najważniejszych zalet metody PERT należą:
możliwość zarządzania dużymi i złożonymi projektami
nieskomplikowane obliczenia
graficzna prezentacja
możliwość oceny ryzyka czasowego ukończenia zadań i projektu
możliwość szacowania prawdopodobieństwa ukończenia zadań jak i całego projektu w zadanym terminie
Wady metody PERT to przede wszystkim:
mała elastyczność metody w trakcie realizacji projektu ze względu na deterministyczny charakter sieci
duża subiektywność przy ocenie czasów realizacji zadań.
Podaj główne zasady stosowane w operacji układania harmonogramu, potrzebnego w prawidłowym zarządzaniu projektem informatycznym.
Ułożenie harmonogramu polega na przygotowaniu różnego rodzaju pomocy graficznych pokazujących w różnych perspektywach aktywności, powiązania (pomiędzy nimi) i ich umiejscowienie w czasie
Podzielić projekt na zadania, oszacować czas i zasoby potrzebne do wykonania każdego z tych zadań
Ustalać zadania tak, aby (a miarę możliwości) były one zadaniami współbieżnymi. W ten sposób możliwe będzie optymalne wykorzystanie zasobów ludzkich
Minimalizacja zależności między zadaniami. W ten sposób unikniemy opóźnień (w realizacji projektu), które byłyby spowodowane czekaniem w jednym zadaniu na pojawienie się wyników z realizacji innego zadania
Ułożenie dobrego harmonogramu w projekcie zależy w znacznym stopniu od intuicji i doświadczenia menadżerów
Problemy:
Oszacowanie, jak trudny jest dany problem, a zatem jak duży będzie koszt jego rozwiązania, jest często bardzo trudnym zadaniem dla menedżera
Menedżer musi wiedzieć, że produktywność w projekcie nie jest wprost proporcjonalna do liczby pracujących w nim programistów
Zatrudnienie dodatkowych ludzi w opóźnionym już projekcie powoduje, że jego wykonanie opóźnia się jeszcze bardziej (bo muszą oni „nauczyć się” projektu, mają trudności komunikacyjne (w sprawach projektu) z pozostałymi członkami zespołu)
Nieprzewidziane rzeczy zawsze się zdążają. Dlatego dobry menadżer założy pewien margines na nie w harmonogramie
Na czym polega identyfikacja ryzyka w tzw. procesie zarządzania ryzykiem w projekcie informatycznym ?
Zarządzanie zagrożeniami (ryzykiem) polega na identyfikacji tych zagrożeń i ułożeniu planów awaryjnych na wypadek ich wystąpienia - oraz ich ciągłym monitorowaniu
Identyfikacja zagrożeń (ryzyka)
Zagrożenia związane z technologią
Zagrożenia związane z ludźmi
Ryzyka typu organizacyjnego
Ryzyka związane z wymaganiami (specyfikacjami)
Ryzyka popełnienia dużych błędów estymacyjnych
Analiza ryzyka
Określ prawdopodobieństwo wystąpienia danego zagrożenia (ryzyka) i jego wagę (znaczenie na przebieg projektu)
Powyższe prawdopodobieństwo można określić opisowo np. tak: bardzo małe, małe, średnie, wysokie, bardzo wysokie
Skutki związane z wystąpieniem jakiegoś ryzyka można opisać tak: mogą być katastroficzne, poważne, dające się tolerować lub nie mające znaczenia
Co to jest tzw. automat (maszyna) o skończonej liczbie stanów i jakie jest jego wykorzystanie w inżynierii oprogramowania ?
Służy on do modelowania zachowania się systemu w odpowiedzi na wystąpienie wewnętrznych i zewnętrznych zdarzeń
Często jest wykorzystywany do opisu systemów pracujących w czasie rzeczywistym (ang. Real-time systems)
Maszyna o skończonej liczbie stanów często jest przedstawiana za pomocą grafu, w którym węzły reprezentują jej stany, a krawędzie zdarzenia (które, jeżeli wystąpią, powodują przejścia z jednego stanu do drugiego tj. z jednego węzła grafu do drugiego)
Czym charakteryzuje się tzw. kaskadowy model cyklu życia oprogramowania ?
Kolejne aktywności występujące w procesie wytwarzania oprogramowania są „ułożone” w formie kaskady
Zalety: ułatwia organizację (planowanie, harmonogramy, monitorowanie etc.); zmusza do zdyscyplinowanego podejścia, wymusza kończenie dokumentacji po każdej fazie
Wady: narzuca ścisłą kolejność wykonywania prac, wysokie koszty błędów popełnionych we wcześniejszych fazach, brak weryfikacji i elastyczności, niedopasowanie - aktywności w przedsięwzięciu są rzadko ułożone sekwencyjnie, realizatorzy kolejnych faz muszą czekać na zakończenie wcześniejszych
Zalecenie: stosować w projektach o dobrze zdefiniowanych wymaganiach dla dobrze rozumianych zastosowań; rzadko stosuje się go w czystej postaci; stanowi on bazę dla doskonalszych modeli pochodnych
Czym różni się inżynieria systemów od inżynierii oprogramowania ?
Informatyka (w ogólnym znaczeniu; w języku angielskim nazywana komputer science) jest nauką zajmująca się podstawami i teorią informatyki (nazywana jest też informatyką teoretyczną). W przeciwieństwie do tego inżynieria oprogramowania (nazywana także informatyką stosowaną) zajmuje się problemami praktycznymi wytwarzania i instalacji użytecznego oprogramowania
Teorie powstałe na gruncie informatyki teoretycznej wykazują braki, które nie pozwalają im być zadowalającą bazą teoretyczną dla inżynierii oprogramowania (w takim sensie jak np. fizyka stanowi teoretyczną bazę dla inżynierii elektrycznej)
Podaj cechy charakterystyczne architektury oprogramowania zwanej modelem klient-serwer.
Charakterystyka architektury oprogramowania klient-serwer
w tym przypadku mamy do czynienia ze zbiorem usług dostarczonych przez serwery oraz zbiorem klientów korzystających z powyższych usług
klienci muszą posiadać informację o serwerach (ich adresach itp.), natomiast serwery nie potrzebują analogicznej informacji o klientach;
klientów i serwery można traktować jako procesy;
tutaj odwzorowanie: liczba procesorów do liczby procesów niekoniecznie musi mieć postać jak 1:1.
Jak byś krótko zdefiniował przedmiot nazywany inżynierią oprogramowania ?
Inżynieria oprogramowania - przedmiot, który zajmuje się zagadnieniami związanymi z procesami wytwarzania oprogramowania, inżynierii wymagań oraz zarządzania przedsięwzięciem programistycznym.
Czym różnią się od siebie tzw. generyczne i dedykowane produkty software'owe ? (do poprawy)
Określenie procedury, funkcji, klasy lub techniki programowania, która może być użyta w szerokim obszarze zastosowań, akceptuje różne typy argumentów, rodzaj przetwarzanych danych, kontekst aplikacyjny, itd. Np. generycznych procedur wymaga interfejs umożliwiający przeglądanie dowolnej relacyjnej bazy danych, generyczną jest funkcja zwracająca rozmiar zbioru elementów dowolnego typu, generyczny jest analizator leksykalny, który można zastosować do wielu języków, generyczny jest program, który jest w stanie wykonać dowolne zapytanie w SQL wczytane z klawiatury, itd.
Na czym polega tzw. naturalny model „buduj i poprawiaj” cyklu życia oprogramowania, i kiedy go stosujemy ?
- kiedy rozwiązywany problem jest niewielki
- kiedy nie wiemy jak się za niego zabrać
W jakim celu stosuje się iteracje w zmodyfikowanym modelu kaskadowym (z iteracjami)?
Kolejne aktywności występujące w procesie wytwarzania oprogramowania są ułożone w formie kaskady. Iteracje stosuje się po to aby ponownie analizować rzeczy wypracowane we wcześniejszych krokach i ewentualnie je zmodyfikować.
Wymień podstawowe aktywności menedżerskie w zarządzaniu projektami informatycznymi.
- przygotowanie propozycji rozwiązań
- przygotowanie planów harmonogramów potrzebnych w projekcie
- zarządzanie finansami w projekcie
- monitoring w projekcie dokonywanie przeglądów wykonanych zadań
- dobór ludzi(programistów) do projektu i kierowanie nimi
- pisanie raportów i prezentacji (np. dla klienta, kadry kierowniczej wyższego szczebla itp.)
Co musi być zawarte w planie projektu informatycznego ?
Ogólnie:
- zasoby, które są przyznane do realizacji projektu
- zagadnienia i zadania na które można projekt rozbić
- harmonogram pracy
Szczegółowo:
- wprowadzenie
- organizacja projektu
- analiza zagrożeń (ryzyka)
- wymagania na zasoby hardware'owe i software/owe niezbędne w realizacji projektu
- rozbicie projektu na zadania
- harmonogram pracy
Na czym polega tzw. schemat czasowy używany w zarządzaniu projektami informatycznymi ?
W schemacie czasowym wyróżnione są poszczególne moduły podzielone na czas ich trwania. Służy to późniejszemu podziałowi czasu wykonania danego modułu pomiędzy informatyków którzy mają to wykonać. Schemat czasowy jest zazwyczaj używany jako pomoc graficzna w pokazywaniu danych w harmonogramie projektu.
Na czym polega monitorowanie ryzyka w tzw. procesie zarządzania ryzykiem ?
- sprawdzaj regularnie każde zidentyfikowane zagrożenie i oceniaj czy jest ono teraz mniej czy bardziej prawdopodobne
- sprawdzaj także, czy zmieniły się czy nie skutki wystąpienia poszczególnych zagrożeń
- każde kluczowe zagrożenie powinno być omawiane na posiedzeniach menedżerów oceniających postępy w projekcie.
Na czym polega model architektury oprogramowania wykorzystujący tzw. obiektowy broker żądań ?
Jakie są cechy charakterystyczne systemów zwanych systemami rozproszonymi ?
Niemal wszystkie współczesne systemy komputerowe są systemami rozproszonymi.
W systemie rozproszonym przetwarzanie informacji jest wykonywane na kilku komputerach, a nie przydzielone do jednej maszyny.
Inżynieria systemów rozproszonych ma wiele wspólnego z inżynierią każdego innego rodzaju oprogramowania, istnieją jednak specyficzne zagadnienia, które należy wziąć pod uwagę, projektując takie systemy.
Cechy systemu rozproszonego
Współdzielenie zasobów
Otwartość
Współbieżność
Skalowalność
Odporność na awarie
Przezroczystość
Na czym polega model cyklu życia oprogramowania, bazujący na formalnych transformacjach ?
Jaka jest podstawowa różnica pomiędzy testowaniem, a walidacją oprogramowania ?
Walidacja jest sprawdzaniem czy oprogramowanie spełnia oczekiwanie klienta.
testowanie polega na sprawdzeniu poprawności działania programu w opracowanych wcześniej przez programistów scenariuszach tekstowych.
Na czym polegają tzw. schematy słupkowe (kolumnowe) stosowane w zarządzaniu projektami informatycznymi ?
Schematy słupkowe (kolumnowe) pokazują harmonogram projektu z „perspektywy kalendarza”.
Podaj główne składowe procesu zarządzania ryzykiem w projekcie informatycznym.
Zagrożenie (ryzyko) to prawdopodobieństwo że jakaś „zła Dla przebiegu projektu sytuacja” wystąpi .
Ryzyka (zagrożenia) wpływają na:
*zagrożenie projektowe wpływa na harmonogram i zasoby;
*zagrożenie produktowe (produktu)wpływają na jakość lub wydajność tworzonego oprogramowania;
*zagrożenia biznesowe wpływają na sprawy organizacyjne zysku firm.
1_Identyfikacja zagrożeń (A także odpowiedzi na co wpływają np. projekt ,produkt czy biznes i jak);
2_Analiza ryzyka(Oszacowanie prawdopodobieństwa dla poszczególnych zagrożeń i określenie konsekwencji w przypadku ich wystąpienia);
3_Monitorowanie zagrożeń (Zagrożenia trzeba monitorować w cały czas w trakcie trwania projektu);
Formułowanie specyfikacji: jaka jest różnica pomiędzy wymaganiami funkcjonalnymi i nie-funkcjonalnymi ?
Wymaganie funkcjonalne to takie wymaganie, które wynika bezpośrednia z zgłoszonej potrzeby użytkownika. Wymaganie funkcjonalne może zostać zrealizowane bezpośrednio w wykonywanym produkcie lub może wymagać realizacji jednego lub więcej wymagań niefunkcjonalnych, które wynikają z konieczności realizacji pośrednich działań pozwalających na realizację wymagania funkcjonalnego.
Zebrane wymagania funkcjonalne po potwierdzeniu z użytkownikiem tworzą specyfikację wymagań.
Wymaganie niefunkcjonalne to takie wymaganie, które wynika pośrednio ze zgłoszonej potrzeby użytkownika lub bezpośrednio z wymagania funkcjonalnego. Realizacja wymagania niefunkcjonalnego może wymagać realizacji jednego lub więcej zależnego wymagania niefunkcjonalnego, które dostarcza funkcjonalności niezbędną do zrealizowania tego wymagania niefunkcjonalnego.
Wymagania niefunkcjonalne powstają w wyniku zaprojektowania i uzgodnienia przez architektów produktu specyficznej realizacji wymagań funkcjonalnych, która wynika z potrzeby zbudowania bazowej architektury produktu niezbędnej dla realizacji wymagań funkcjonalnych.
Wymień podstawowe cechy tzw. spiralnego modelu cyklu życia oprogramowania.
Proces tworzenia oprogramowania jest tutaj przedstawiony za pomocą spirali (nie jako sekwencja aktywności z możliwościami powrotów).
Każdy obieg (pętla) w spirali reprezentuje fazę w procesie tworzenia oprogramowania.
W spirali nie występują takie pętle jak np. specyfikacyjna, projektowa itp. Proces specyfikacji, projektowania są "rozproszone", ich części występują w wielu pętlach spirali.
Zagrożenia są określane w sposób bezpośredni a negatywne efekty związanych z nimi zjawisk (jeżeli wystąpią) są usuwane w momencie ich wystąpienia.
Na czym polega tzw. schemat alokacji zasobów ludzkich, stosowany w zarządzaniu projektami informatycznymi ?
Schematy aktywności pokazują zależności (wzajemne uwarunkowania) występujące pomiędzy zadaniami. Widoczna jest w nich także ścieżka najbardziej krytyczna.
Wyjaśnij, co to jest oprogramowanie zwane middleware, i w jakiej architekturze oprogramowania ma zastosowanie ?
Oprogramowanie pośredniczące (ang. middleware) jest to rodzaj oprogramowania umożliwiający komunikację pomiędzy różnymi aplikacjami/usługami lub systemami. Architektura oprogramowania pośredniczącego jest wykorzystywana głównie w systemach rozproszonych przy łączeniu ze sobą różnych komponentów oprogramowania (często znajdujących się na różnych platformach) lub komunikacji z kanałami dostępu do nich.
Wyjaśnij pojęcie oprogramowania (dla użytkownika) zwanego potocznie „cienkim klientem” (ang. thin client).
Cienki klient (ang. thin client) - komputer bądź specjalizowane urządzenie wraz z odpowiednim oprogramowaniem typu klient, umożliwiające obsługę aplikacji stworzonej w architekturze klient-serwer. Cechą szczególną cienkiego klienta jest niezależność od obsługiwanej aplikacji serwerowej (jej zmiana nie pociąga za sobą konieczności wymiany oprogramowania klienta). Dodatkowym atutem jest niewielkie zapotrzebowanie na moc przetwarzania.
Przykładem cienkiego klienta może być korzystanie z witryny WWW z serwisem transakcyjnym banku internetowego. Użytkownik za pomocą przeglądarki internetowej może sprawdzać stan rachunku i wydawać dyspozycje, lecz weryfikacja danych (np. kontrola salda) jest przeprowadzana po stronie serwera.
Jak w podanym przykładzie, cienki klient aplikacji webowej charakteryzuje się bardziej ograniczonym interfejsem użytkownika niż samodzielne programy korzystające ze standardowych elementów środowiska pracy (jak okna, ikony, skróty klawiszowe).
Cienkim klientem może być także mechanizm obsługi aplikacji przez telefon komórkowy lub serwis głosowy.
Cienkim klientem określa się także platformę sprzętową - okrojony komputer bez twardego dysku, małą pamięcią RAM. Parametry sprzętowe pozwalają na uruchamianie aplikacji w trybie terminalowym, na cienkim kliencie uruchamiane są nieliczne aplikacje - niewymagające mocnych zasobów platformy sprzętowej.
Wyjaśnij pojęcie oprogramowania (dla użytkownika) zwanego potocznie „tłustym klientem” (ang. fat client).
Gruby klient (ang. fat client) termin informatyczny funkcjonujący w sieciach o architekturze klient-serwer. Odnosi się do stacji roboczej użytkownika, która jest wyposażona w komplet urządzeń peryferyjnych, z zainstalowanym systemem operacyjnym i zestawem aplikacji. Programy użytkowe wykonywane są bezpośrednio i autonomicznie na stacji, dokonującej przetwarzania danych oraz wymiany danych z użytkownikiem i innymi komputerami w sieci. Dane są przechowywane po stronie serwera.
Na czym polega sposób programowania zwany programowaniem ekstremalnym (ang. extreme programming) ?
Opiera się ono na tworzeniu i dostarczaniu bardzo małych przyrostów funkcjonalności.
Ustawiczne poprawianie kodu i programowanie pozbawione indywidualizmu.
Jak rozumiemy słowo software w znaczeniu węższym, a jak w znaczeniu szerszym ?
To oprogramowanie dla komputerów (programy komputerowe) i związana z nimi dokumentacja jak: wymagania (specyfikacje, użyte modele etc.), dokumentacja systemowa (jak zainstalować, jak skonfigurować etc.), dokumentacja użytkowa (jak korzystać z programu), a ponadto strony internetowe (na których zamieszczone są uaktualnienia, tzw. "łaty" - ang. service packs itp. )
Uwaga: pojęcie oprogramowanie w języku polskim nie jest tak pojemne jak pojęcie w software w języku angielskim.
Używa się też takiego pojęcia: produkty softwareowe.
Określ w jednym lub dwóch zdaniach, co to jest tzw. model cyklu życia oprogramowania.
Cykl życia oprogramowania (ang. software lifecycle) — ciąg działań projektowo-programowych, obejmujący zakres od powstania zapotrzebowania na oprogramowanie aż do jego wycofania z eksploatacji. Obejmuje wiele etapów składających się na projektowanie, programowanie (kodowanie), testowanie i wdrażanie oprogramowania oraz czas jego użytkowania. Nowa wersja oprogramowania na ogół wymaga zmiany lub rozszerzenia wyposażenia sprzętowego.
Na czym polega tzw. model RAD cyklu życia oprogramowania ?
Model RAD (ang. Rapid Application Development)
Szczególna implementacja modelu kaskadowego, można ją zastosować, gdy:
- system jest skalowalny - składa się z kilku słabo ze sobą powiązanych lub niepowiązanych głównych funkcji; każdą funkcję można przydzielić do realizacji innemu zespołowi produkcyjnemu; zespoły pracują niezależnie od siebie, a na końcu integrowane są efekty ich prac,
- zakłada się stosowanie gotowych komponentów wielokrotnego wykorzystania oraz stosowanie technik i języków 4-tej generacji
Zalety modelu RAD:
-szybkość
Wady:
- musi być skalowalny
- duże zasoby pracownicze
- intensywne zaangażowanie pracowników
- nie dla wszystkich rodzajów aplikacji
Na czym polega analiza ryzyka - w procesie zarządzania ryzykiem w projekcie informatycznym ?
Analiza ryzyka polega na oszacowaniu prawdopodobieństwa dla poszczególnych przypadków zagrożeń i określenie konsekwencji w przypadku ich wystąpienia.
Co to są: zdarzenia, stany i przejścia w modelu systemu, który daje się opisać za pomocą automatu (maszyny) o skończonej liczbie stanów ? Czy można je opisać za pomocą grafu, jak ?
Stan jest etapem cyklu życia obiektu.
Przejście powoduje zmianę stanu i wykonanie pewnych akcji.
Zdarzenia wyzwalają przejścia pomiędzy stanami.
Maszyna o skończonej liczbie stanów częasto jest przedstawiana za pomocą grafu , w którym węzły reprezentują jej stany, a krawędzie zdarzenia (które, jeżeli wystąpią, powodują przejścia z jednego stanu do drugiego tj. z jednego węzła grafu do drugiego).
Podaj podstawowe zasady pisania oprogramowania dla tzw. critical systems, tj. systemów, które muszą pracować w sposób bardzo niezawodny.
Unikanie zagrożeń.System jest zaprojektowany tak, aby uniknąć zagrożeń.
System tnący, którego zadziałanie wymaga od operatora naciśnięcia dwóch przycisków w tej samej chwili, wystrzega się na przykład ryzyka umieszczenia rąk operatora w zasięgu noża.
Wykrywanie i eliminowanie zagrożeń. System jest zaprojektowany tak, aby wykrywać i eliminować zagrożenia, zanim doprowadzą do wypadku.
System reaktora chemicznego może na przykład wykrywać nadmierne ciśnienie i otwierać zawór bezpieczeństwa w celu zmniejszenia ciśnienia, zanim dojdzie do eksplozji.
Ograniczanie szkód. System może obejmować udogodnienia zabezpieczające, które ograniczają szkody będące konsekwencją wypadku.
Silnik lotniczy zawiera na przykład automatyczne gaśnice. Gdy pojawi się ogień, zwykle można go ugasić, zanim stanie się zagrożeniem dla pasażerów i załogi.
Na czym polega tzw. trój-szeregowa architektura oprogramowania ?
Co to jest standard CORBA ? W jakiej architekturze oprogramowania ma on zastosowanie ?
Standard CORBA to technologia zapewniająca komunikację pomiędzy obiektami pracującymi w heterogenicznych (różnorodnych) systemach komputerowych. Obiekty pełniące dowolne funkcje mogą być zaimplementowane w różnych językach programowania, na dowolnej platformie sprzętowej, pod kontrolą różnych systemów operacyjnych. Stosowany jest w technologiach obiektów rozproszonych.
Na czym polega tzw. architektura oprogramowania peer-to-peer (p2p) i gdzie znajduje zastosowanie ?
Architektura peer-to-peer jest modelem komunikacji w sieciach komputerowych, który gwarantuje obydwu stronom równorzędne prawa. W tych sieciach każdy komputer może jednocześnie pełnić zarówno funkcję klienta, jak i serwera. Znajduje zastosowanie w czasie wymiany plików miedzy komputerami z tym samym oprogramowaniem typu peer-to-peer.
Jakimi dwiema cechami powinny charakteryzować się specyfikacje (zgodnie z którymi należy napisać dane oprogramowanie) ? Wyjaśnić krótko dlaczego.
Wymagania użytkownika- wyrażane zwykłym językiem. Dołączamy diagramy (schematy) usług, których system (oprogramowany) ma dostarczać oraz ograniczenia operacyjne. Należy napisać to tak, jak to ma wyglądać z punktu widzenia użytkowników.
Wymagania systemowe- to jest dokument o określonej strukturze, w którym są opisane funkcje systemu, dostarczane przez niego usługi i ograniczenia operacyjne. Podaje się w nim to, co ma być przedmiotem implementacji, zatem ten dokument powinien ( może) być częścią kontraktu na napisane oprogramowania.
Lub
Powinny cechować się przede wszystkim ścisłością i kompletnością, jednak warto do tego dodać jeszcze spójność. Taka specyfikacja będzie uwzględniać wszystkie wymagania, nie mieć miedzy nimi żadnych sieczności, a także będzie pisana przez programistę tak, aby była prosta do zinterpretowania.
Na czym polega pisanie specyfikacji oprogramowania według tzw. wzorca opisowego ?
Na czym polega pisanie specyfikacji oprogramowania z wykorzystaniem modeli graficznych ?
Modele (schematy) graficzne są bardzo użyteczne, gdy chcemy pokazać jak zmienia się jakiś stan lub gdy chcemy zilustrować jakąś sekwencję wykonywanych zadań (akcji)
Przykład: diagramy sekwencyjne
pokazują one sekwencję zdarzeń, które występują w czasie korzystania przez użytkownika z danego systemu.
czyta się je od góry do dołu, idąc w tym kierunku napotyka się na kolejne akcje, które mają miejsce - w czasie korzystania użytkownika z systemu
przykład diagramu: pobieranie gotówki w automacie bankowym - podstawowe czynności tutaj to:
sprawdzenie karty bankowej
obsługa żądania klienta
wykonanie transakcji
Na czym polega model kontekstowy systemu ?
Modele kontekstowe pokazują operacyjny konktekst systemu (czyli to, co jest poza jego granicami, ale ma wpływ na sposób pracy danego systemu).
Czynniki socjalne i organizacyjne mogą wpływać na decyzje, gdzie postawić granice danego systemu
Na czym polega model behawioralny systemu ?
Modele behawioralne służą do opisu zachowania się systemu.
Mamy dwa modele behawioralne:
- opisujący przetwarzanie danych w systemie i ich przepływ
- oparty o tzw. automat (maszynę) o skończonej liczbie stanów. Opisuje on jak system odpowiada na zdarzenia.
Na czym polega diagram przepływu danych (ang. data flow diagram) i w jakim modelu systemu jest on wykorzystywany ?
Diagramy przepływu danych są użyteczne w modelowaniu procesu przetwarzania danych, odbywającego się w systemie.
Pokazują one poszczególne etapy przetwarzania jako przepływy danych w systemie.
Diagramy przepływu danych występują w wielu metodach analizy.
Wykorzystują prostą i intuicyjną terminologię, łatwą do zrozumienia przez klientów.
Pokazują proces przetwarzania danych od jednego końca do drugiego.
Wymień cztery cechy dobrze napisanego oprogramowania.
podatne na zmiany i aktualizacje - to znaczy być tak napisane, aby mogło ewoluować wraz ze zmieniającymi się potrzebami klientów
niezawodne i bezpieczne - to znaczu jego działanie nie powinno proawdzić do zniszcze fizycznych lub kłopotów ekonomicznych, gdy występują w nim błędy
wydajne - to znaczynie powinno "szastać" takimi zasobami jak poamięc i moc obliczeniowa
użyteczne - to znaczu posiadać właściwy interfejs użytkownika być dla użytkowników zrozumiałe i zaopatrzone we właściwą dokumentację użytkową, kompatibilne z innymi programami etc.
Wymień parę typów planów, które powinien przygotować sobie kierownik projektu informatycznego.
Plan jakościowy - są w nim opisane procedury, dzięki którym można osiągnąć określony poziom jakości wytwarzanego oprogramowania oraz standardy, które będą wykorzystywane w projekcie.
Plan walidacji - są w nim opisane sposoby przeprowadzenie procesu walidacji, zasoby do użycia w tym procesie i jego harmonogram.
Konfiguracja dla planu zarządzania - Jest w niej przedstawione ogólne konfiguracja i struktura całego planu zarządzania projektem.
Plan "utrzymaniowy" - opisane są w nim wymagania odnośnie tzw. supportowania oprogramowania (tj. utrzymania go "przy życiu") jego koszty i zakres jego działania.
Plan szkolenia dla programistów - opisane są w nim umiejętności programistów, które muszą być przez nich zdobyte w trakcie tworzenia projektu i w jaki sposób się to odbędzie np. przez szkolenie.
Wymień trzy podstawowe rodzaje ryzyka, które występują w projekcie informatycznym.
- Zagrożenia związane z technologią
- Zagrożenie związane z ludźmi
- Ryzyka typu organizacyjnego
- Ryzyka związane z wymaganiami (specyfikacjami)
- Ryzyka popełnienia dużych błędów estymacyjnych
1
Wersja
początkowa
Ogólny opis
Specyfikacja
Tworzenie
Zatwierdzenie
Wersje pośrednie
Wersja końcowa