pytania na egz Inż opr1, inżynieria oprogramowania


  1. 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 niego specyfikacją

  1. 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ę. 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: 1) Proces nie jest widoczny; 2) System ma złą strukturę; 3) Konieczne mogą być specjalne narzędzia i techniki.

Stosowanie: 1) 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. 2) W wypadku dużych systemów o długim czasie życia wady tworzenia ewolucyjnego ujawniają się jednak z całą ostrością.

  1. 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.

Zalety: 1) możliwość demonstracji pracującej wersji systemu

2) możliwość szkoleń zanim zbudowany zostanie pełny system

3) niepełna realizacja: objęcie tylko części funkcji

4) języki wysokiego poziomu: Smalltalk, Lisp, Prolog, 4GL, ...

5) wykorzystanie gotowych komponentów

6) generatory interfejsu użytkownika: wykonywany jest wyłącznie interfejs, wnętrze systemu jest „podróbką”

7) 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

  1. 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

1) 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:

1) optymistycznego czasu zakończenia zadania

2) najbardziej prawdopodobnego czasu zakończenia zadania

3) 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ń.

  1. Podaj główne zasady stosowane w operacji układania harmonogramu, potrzebnego w prawidłowym zarządzaniu projektem informatycznym.

    1. 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

    2. Podzielić projekt na zadania, oszacować czas i zasoby potrzebne do wykonania każdego z tych zadań

    3. 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

    4. 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

    5. Ułożenie dobrego harmonogramu w projekcie zależy w znacznym stopniu od intuicji i doświadczenia menadżerów

    6. Problemy:

      1. 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

      2. Menedżer musi wiedzieć, że produktywność w projekcie nie jest wprost proporcjonalna do liczby pracujących w nim programistów

      3. 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)

      4. Nieprzewidziane rzeczy zawsze się zdążają. Dlatego dobry menadżer założy pewien margines na nie w harmonogramie

  1. Na czym polega identyfikacja ryzyka w tzw. procesie zarządzania ryzykiem w projekcie informatycznym?

  1. 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

  2. Identyfikacja zagrożeń (ryzyka)

  1. Zagrożenia związane z technologią

  2. Zagrożenia związane z ludźmi

  3. Ryzyka typu organizacyjnego

  4. Ryzyka związane z wymaganiami (specyfikacjami)

  5. Ryzyka popełnienia dużych błędów estymacyjnych

  1. Analiza ryzyka

  1. Określ prawdopodobieństwo wystąpienia danego zagrożenia (ryzyka) i jego wagę (znaczenie na przebieg projektu)

  2. Powyższe prawdopodobieństwo można określić opisowo np. tak: bardzo małe, małe, średnie, wysokie, bardzo wysokie

  3. 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

  1. 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)

  1. 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

  1. 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)

  1. Podaj cechy charakterystyczne architektury oprogramowania zwanej modelem klient-serwer.

Charakterystyka architektury oprogramowania klient-serwer

  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.

  1. Czym różnią się od siebie tzw. generyczne i dedykowane produkty software'owe?

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.

  1. Na czym polega tzw. naturalny model „buduj i poprawiaj” cyklu życia oprogramowania, i kiedy go stosujemy?

0x01 graphic

- kiedy rozwiązywany problem jest niewielki

- kiedy nie wiemy jak się za niego zabrać

  1. 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ć.

  1. 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.)

  1. 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

  1. 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. 

  1. 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.

  1. Na czym polega model architektury oprogramowania wykorzystujący obiektowy broker żądań?

Broker obiektów: dostarcza zlecenia do obiektów, przekazuje odpowiedzi do klienta, zapewnia komunikację między klientem i serwerem, ukrywa przed klientem lokalizację, implementację i stan obiektu oraz mechanizm komunikacji(np. TCP), zapewnia ujednolicony: dostęp do usług (np. RPC), sposób wyszukiwania zasobów - nazewnictwo, sposób obsługi błędów, politykę bezpieczeństwa, sposób integracji aplikacji

  1. 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 programowania, 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ść

  1. Na czym polega model cyklu życia oprogramowania, bazujący na formalnych transformacjach?

Proces ten polega na przyrostowej realizacji oprogramowania, każdy stopień realizuje się i pokazuje jego poprawność za pomocą podejścia formalnego. Nie ma w tym procesie testowania ukierunkowanego na wykrywanie defektów, a testowanie systemu ukierunkowane jest na wyznaczenie parametrów niezawodnościowych systemu. Inna znana metoda to metoda B polegająca na zapisie wymagań w notacji matematycznej i automatycznych transformacjach do wykonywalnego kodu. Efektywność kodu w ten sposób uzyskanego jest jednak niska. Niezawodność systemów uzyskanych metodą formalnych transformacji jest bardzo wysoka, gdyż brak jest błędów przy transformacjach. Stosuje sieją do produkcji systemów wymagających dużej niezawodności, bezpieczeństwa. Nie jest to metoda powszechnie stosowana. Formalne specyfikacje wymagają dużych umiejętności zespołu. Nie wszystkie wymagania można formalnie wyspecyfikować np. nie można formalnie wyspecyfikować interfejsu użytkownika.

  1. 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.

  1. Na czym polegają tzw. schematy słupkowe (kolumnowe) stosowane w zarządzaniu projektami informatycznymi ?

Schematy słupkowe (kolumnowe) pokazują harmonogram projektu z „perspektywy kalendarza”.

  1. 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);

  1. Formułowanie specyfikacji: jaka jest różnica pomiędzy wymaganiami funkcjonalnymi i niefunkcjonalnymi?

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.

  1. 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.

  1. 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. Schemat alokacji zasobów ludzkich opisuje w sposób graficzny ilość wymaganych osób do realizacji projektu oraz zadania jakie będą realizować i okres na jaki będą zaangażowane w poszczególnych zadaniach.

  1. 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.

  1. 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.

  1. 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.

  1. Na czym polega sposób programowania zwany programowaniem ekstremalnym (ang. extreme programming) ?

Programowanie ekstremalne (ang. eXtreme Programming, XP) - to paradygmat i metodyka programowania mające na celu wydajne tworzenie małych i średnich "projektów wysokiego ryzyka", czyli takich, w których nie wiadomo do końca, co się tak naprawdę robi i jak to prawidłowo zrobić. Przyświeca temu koncepcja prowadzenia projektu informatycznego, wywodząca się z obserwacji innych projektów, które odniosły sukces.

Podstawą ekstremalnego programowania jest synergia wynikająca ze stosowania rozmaitych praktyk, które same w sobie mają wiele zalet, lecz mogą być trudne w zastosowaniu. Łączne użycie tych praktyk ma zapewniać wyeliminowanie niedogodności każdej z nich.

  1. 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 software w języku angielskim.

Używa się też takiego pojęcia: produkty software'owe.

  1. 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.

  1. 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

0x01 graphic

Zalety modelu RAD:

-szybkość

Wady:

- musi być skalowalny

- duże zasoby pracownicze

- intensywne zaangażowanie pracowników

- nie dla wszystkich rodzajów aplikacji

  1. 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. 

  1. 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ę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).

  1. 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.

  1. Na czym polega tzw. trój-szeregowa architektura oprogramowania ?

  1. 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. 

  1. Na czym polega tzw. architektura oprogramowania peer-to-peer 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. 

  1. 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.

  1. Na czym polega pisanie specyfikacji oprogramowania według tzw. wzorca opisowego ?

  1. 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:

  1. 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

  1. 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.

  1. 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.

  1. Wymień cztery cechy dobrze napisanego oprogramowania.

Zdolne do zmiany i aktualizacji - tak napisane, aby mogło ewoluować wraz ze zmieniającymi się potrzebami klientów

Niezawodne i bezpieczne - jego działanie nie powinno prowadzić do zniszczeń fizycznych lub kłopotów ekonomicznych, gdy występują w nim błędy

Wydajne - nie powinno "szastać" takimi zasobami jak pamięć i moc obliczeniowa

Użyteczne - posiada właściwy interfejs użytkownika, być dla użytkowników zrozumiałe i zaopatrzone we właściwą dokumentację użytkową, kompatybilne z innymi programami etc.

  1. 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.

  1. 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



Wyszukiwarka

Podobne podstrony:
pytania na egz Inż opr, inżynieria oprogramowania
pytania na egz Inż opr, IIS PWSZ, inżynieria oprogramowania, io
Pytania na egz z inżynierii materiałów
pytania na egz z inzynieriiiiii, MATERIAŁY NA STUDIA, INŻYNIERIA PROCESOWA, INZYNIERIA PROCESOWA (wy
Opracowane pytania technika strzelnicza egz inz, egzamin inzynierski gig
,pytania na obronę inż,Zasada projektowania cyklonów
,pytania na obronę inż,Cele i sposoby unieszkodliwiania osadów ściekowych
,pytania na obronę inż,przekladnie mechaniczne
,układy elektroniczne, pytania na egz
Budownictwo opracowane pytania na egz z wykładów (2012)
opracowane pytania na egz ustny IWE
pytania na egz.z anatomii, Pielęgniarstwo licencjat cm umk, I rok, Anatomia giełdy egzamin cm umk
Pytania na egz z Ekonomiki, OPRACOWANIE PYTAŃ NA EGZAMIN
biochemia pytania na egz
,pytania na obronę inż,ciśnienie hydrostatyczne i parcie hydrostatyczne
,pytania na obronę inż,elementy składowe kanalizacji miejskiej
Pytania na egz
,pytania na obronę inż,Rodzaje wentylacji i ich zastosowanie

więcej podobnych podstron