Podstawy inżynierii oprogramowania Flashcards
Podstawy inżynierii oprogramowania
Wymień i krótko scharakteryzuj fazy cyklu tworzenia oprogramowania w modelu kaskadowym. Skąd taka nazwa (kaskadowy)?
Model kaskadowy, znany również jako model wodospadowy, dzieli proces tworzenia oprogramowania na sekwencyjne fazy, gdzie każda faza musi być zakończona, zanim rozpocznie się następna. Stąd nazwa “kaskadowy” - proces przypomina kaskadę wodną przepływającą z jednego poziomu na drugi.
Fazy modelu kaskadowego obejmują:
1. Analiza wymagań: Zrozumienie i dokumentowanie tego, czego klient potrzebuje od oprogramowania.
2. Projektowanie systemu i oprogramowania: Tworzenie architektury systemu i szczegółowe projektowanie komponentów.
3. Implementacja: Faktyczne pisanie kodu źródłowego według wcześniej zaprojektowanych specyfikacji.
4. Testowanie: Sprawdzanie kodu pod kątem błędów i weryfikacja, czy spełnia on wymagania.
5. Wdrożenie: Umieszczanie oprogramowania w środowisku, gdzie będzie używane.
6. Utrzymanie: Naprawianie błędów, aktualizowanie systemu i dostosowywanie go do zmieniających się potrzeb.
Podstawy inżynierii oprogramowania
Na czym polega identyfikacja, analiza i specyfikacja wymagań w inżynierii oprogramowania. Scharakteryzuj metodę przypadków użycia.
W inżynierii oprogramowania fazy identyfikacji, analizy i specyfikacji wymagań są kluczowymi etapami w procesie projektowania systemu informatycznego. Polegają na zrozumieniu potrzeb klienta i użytkowników końcowych oraz przekształceniu ich w jasno zdefiniowane cele, które można zrealizować w oprogramowaniu.
Metoda przypadków użycia (Use Case) jest techniką opisaną w ramach UML, służącą do identyfikowania funkcji systemu oraz interakcji między użytkownikami a systemem.
Przypadki użycia skupiają się na sposobie używania systemu, a nie na jego wewnętrznej strukturze. Każdy przypadek użycia opisuje scenariusz, w którym system reaguje na żądanie z zewnątrz.
Podstawy inżynierii oprogramowania
Wymień trzy znane Ci diagramy języka UML służące do prezentacji dynamiki (działania) projektowanego oprogramowania. Pokrótce scharakteryzuj.
Diagramy UML prezentujące dynamikę działania oprogramowania to:
* Diagram przypadków użycia (Use Case Diagram): Pokazuje funkcje systemu i interakcje między systemem a użytkownikami.
* Diagram sekwencji (Sequence Diagram): Przedstawia interakcje między obiektami w kolejności ich występowania w czasie dla określonego przypadku użycia.
* Diagram aktywności (Activity Diagram): Podobny do diagramu przepływu danych, przedstawia przepływ sterowania od jednej aktywności do innej, włączając w to decyzje i równoległość.
Podstawy inżynierii oprogramowania
Opisz, zdefiniowany w UML, związek powiązania między klasami (podaj 2 przykłady). Wymień 3 parametry powiązania, które uważasz za najważniejsze.
W UML związek powiązania oznacza relację między dwiema klasami, gdzie instancje jednej klasy są logicznie powiązane z instancjami innej klasy.
Przykłady:
* Asocjacja: Klasa Samochód może być powiązana z klasą Koło, gdzie każdy ‘Samochód’ używa czterech instancji ‘Koło’.
* Agregacja: Klasa Koszyk może zawierać obiekty klasy Produkt, ale ‘Produkt’ może istnieć niezależnie od ‘Koszyka’.
Najważniejsze parametry powiązania to:
* Krotność (multiplicity): Określa ile instancji jednej klasy może być powiązanych z instancją klasy drugiej.
* Nawigowalność: Wskazuje kierunek asocjacji i możliwość śledzenia relacji.
* Rola: Opisuje funkcję, jaką pełnią obiekty w ramach powiązania.
Podstawy inżynierii oprogramowania
Wymień trzy, Twoim zdaniem najistotniejsze diagramy UML opisujące projektowane oprogramowanie. Pokrótce je scharakteryzuj.
Diagram klas (Class Diagram): Jest najbardziej znanym diagramem strukturalnym UML, który przedstawia strukturę systemu przez wyróżnienie jego klas, ich atrybutów, metod oraz relacji między obiektami, takich jak dziedziczenie, asocjacje, agregacje i kompozycje. Jest kluczowym narzędziem w projektowaniu obiektowym, które pomaga w organizacji i planowaniu struktury oprogramowania.
Diagram przypadków użycia (Use Case Diagram): Ilustruje funkcje systemu z perspektywy użytkownika, ukazując kluczowe przypadki użycia lub scenariusze, w jakich system będzie wykorzystywany. Diagram ten ułatwia zrozumienie funkcjonalnych wymagań systemu i jest często używany do komunikacji z interesariuszami i klientami, aby zapewnić, że wszystkie ich potrzeby są rozumiane i uwzględnione w zakresie projektu.
Diagram sekwencji (Sequence Diagram): Prezentuje interakcje między obiektami w kontekście czasu. Na diagramie tym można obserwować, jak obiekty wymieniają między sobą komunikaty i w jakiej kolejności. Jest szczególnie przydatny do modelowania konkretnych logicznych ścieżek w oprogramowaniu, analizowania scenariuszy złożonej logiki biznesowej i zaprojektowania przepływów procesów.