1. Podaj definicję inżynierii oprogramowania. 2. Co to są narzędzia

Transkrypt

1. Podaj definicję inżynierii oprogramowania. 2. Co to są narzędzia
1. Podaj definicję inżynierii oprogramowania.
Inżynieria oprogramowania to wiedza techniczna, dotycząca wszystkich faz cyklu życia
oprogramowania, której celem jest uzyskanie wysokiej jakości produktu – oprogramowania.
Oprogramowanie o wysokiej jakości to oprogramowanie spełniające następujące kryteria:
•
•
•
•
•
zgodne z wymaganiami użytkownika,
niezawodne,
efektywne,
łatwe w konserwacji,
ergonomiczne
Główne zadania inżynierii oprogramowania:
•
•
•
•
•
•
•
•
•
określenie cech dobrego programu
poprawa produktywności
dostarczenie narzędzi tworzenia dobrych programów
prawidłowa organizacja pracy projektantów
wypracowanie standardów
dostarczenie formalnych i półformalnych metod specyfikacji projektu
umożliwienie modyfikowania oprogramowania – istniejącego (reverse engineering) i nowego
ułatwienie pracy zespołowej (groupware)
zapewnienie wysokiej jakości oprogramowania
2. Co to są narzędzia CASE?
CASE (Computer Aided Software Engineering, Computer Aided System Engineering),
Charakterystyka narzędzi CASE:
•
•
•
•
•
•
•
•
•
•
•
•
wspomaganie tworzenia oprogramowania w kilku fazach
wizualizacja informacji (widoki, diagramy)
reprezentowanie znaczenia rozmaitych obiektów w formie symboli i połączeń na diagramach
wspomaganie rozmaitych metodyk analizy (modelowanie konceptualne i logiczne)
strukturalizacja informacji (danych i procesów)
badanie poprawności i spójności informacji wyrażonej na diagramach
utrzymywanie bazy danych o tworzonym projekcie (słownik danych, repozytorium,
encyklopedia)
stosowanie konstrukcji programowania strukturalnego i obiektowego na poziomie
diagramów
automatyczna generacja znacznej części procedur aplikacji
współdzielenie informacji o tworzonym projekcie między autorami systemu;
półautomatyczne dokumentowanie
eliminowanie powielania danych i procesów
możliwość wyboru systemu realizacyjnego oraz konwersji formatów danych
Trzy grupy narzędzi CASE:
•
•
•
upper (planowanie, analiza)
middle (analiza, projektowanie)
lower ( projektowanie, budowa)
Tylko zintegrowane narzędzia CASE wspomagają wszystkie fazy programowania.
3. Z jakich etapów składa się kaskadowy
kaskadowy model życia oprogramowania?
4. Podaj cel fazy analizy w modelu kaskadowym.
Celem fazy analizy jest udzielenie odpowiedzi na pytanie: jak system ma działać? Wynikiem
W
jest
logiczny model systemu, opisujący sposób realizacji przez system
sys
postawionych
h wymagań, lecz
abstrahujący od szczegółów implementacyjnych.
implementacyjnych
5. Podaj cel fazy projektowania.
Celem fazy projektowania jest udzielenie odpowiedzi na pytanie: jak system ma zostać
zaimplementowany?
•
•
wynikiem jest projekt oprogramowania, czyli opis sposobu implementacji
sam projekt staje się później dokumentacją techniczną produktu
6. Bloki konstrukcyjne UML:
Elementy strukturalne - statyczne części
częś modelu
klasa
opis zbioru obiektów, które mają takie same atrybuty, operacje, związki i
znaczenie
interfejs
zestaw operacji, które wyznaczają usługi oferowane przez klasę lub komponent
kooperacja
interakcja, zestaw ról i bytów, współdziałających w celu wywołania pewnego
zespołowego zachowania niemożliwego do osiągnięcia w pojedynkę
przypadek użycia
opis zbioru ciągów akcji wykonywanych przez system w celu dostarczenia
danemu aktorowi wyniku
klasa aktywna
zawiera obiekty, w skład których wchodzi co najmniej jeden proces lub wątek
komponent
fizycznie wymienna część systemu, która wykorzystuje
wykorzystuje i realizuje pewien zbiór
interfejsów
węzeł
fizyczny składnik działającego systemu, reprezentujący zasoby obliczeniowe
•
Elementy czynnościowe
ściowe - dynamiczne części modelu
interakcja
maszyna stanowa
wymiana komunikatów między obiektami w pewnym otoczeniu w pewnym
celu
ciąg stanów, jakie obiekt lub interakcja przyjmuje w odpowiedzi na zdarzenia
zachodzące w czasie ich życia, określa ponadto ich odpowiedzi na te
zdarzenia
•
Elementy grupujące - elementy organizacyjne modelu
pakiet
•
Elementy komentujące - elementy objaśniające modelu
notatka
symbol graficzny umożliwiający skojarzenie dodatkowych ograniczeń i objaśnień z
pojedynczym bytem lub grupą bytów, nie ma wpływu na znaczenie modelu
•
Związki
zależność
powiązanie
związek znaczeniowy między dwoma elementami, zmiany dokonywane w
definicji jednego mogą mieć wpływ na znaczenie drugiego
związek strukturalny, który określa zbiór powiązań między obiektami,
uogólnienie
związek między dwoma bytami: ogólnym (przodek) i szczegółowym
(potomek)
realizacja
związek znaczeniowy między klasyfikatorami, z których jeden określa
kontrakt, a drugi zapewnia wywiązanie się z niego,
dodatki
role, np. pracownik - pracodawca
liczebność: 1 jeden, 0..1 zero lub jeden, 0..* dowolnie wiele, 1..*co
1..
najmniej jeden, może być też ustalona liczba
agregacja - związek całość - część
agregacja całkowita - relacja całkowita
Diagramy - graf, którego wierzchołkami są elementy, a krawędziami związki;
wyróŜniamy nastepujące diagramy (następne pytanie).
7. Wymień diagramy występujące w UML’u.
(kursywą dopisałem diagramy które nie znalazły się w powyższym źródle, a istnieją)
Diagramy struktur:
•
•
•
•
•
•
•
-diagram klas
-diagram obiektów
-diagram komponentów
-diagram wdrożenia
-diagram struktur połączonych
-diagram pakietów
-diagram profili (UML 2.2)
Diagramy zachowań
•
•
•
•
•
•
•
•
-diagram czynności
-diagram przypadków użycia
-diagram maszyny stanowej
-diagram interakcji
-diagram sekwencji
-diagram komunikacji
-diagram harmonogramowania
-diagram sterowania interakcją
8. Do czego służy diagram klas (przykład)?
Diagramy klas pozwalają na sformalizowanie specyfikacji danych i metod. Mogą także pełnić rolę
graficznego środka pokazującego szczegóły implementacji klas. Mają także na celu
przedstawienie struktury systemu bądź jego fragmentu, oraz przedstawienie zależności między
elementami tej struktury (między klasami).
Rys.(i+1) . Mały szybki diagram klas
9. Co to jest klasa? Podaj jej symbol w UML’u (wraz z opisem).
Klasa jest uogólnieniem zbioru obiektów, które mają takie same atrybuty, operacje, związki i
znaczenie. Każda klasa zawiera więc zestaw informacji istotnych z punktu widzenia kontekstu
systemu. Zestaw atrybutów, operacji i związków z innymi klasami może być szerszy lub węższy w
zależności od wymagań dotyczących przyszłego systemu.
Klasę standardowo przedstawia się jako prostokąt złożony z trzech sekcji:
•
•
-nazwa klasy
-zestaw atrybutów (Atrybuty niosą informacje o własnościach klasy, jej istotnych
cechach)
•
-zestaw operacji (Operację moŜna określić jako proces, którego sposób wykonania jest
znany klasie)
Dla każdego atrybutu lub operacji dodatkowo określa się jego widoczność, poprzez umieszczenie
przed jego nazwą :
+
publiczne
-
prywatne
#
chronione
10. Wymień typy powiązań występujące na diagramie klas.
związki
zależność
powiązanie
uogólnienie
realizacja
związek znaczeniowy między dwoma elementami, zmiany dokonywane w
definicji jednego mogą mieć wpływ na znaczenie drugiego
związek strukturalny, który określa zbiór powiązań między obiektami,
związek między dwoma bytami: ogólnym (przodek) i szczegółowym
(potomek)
związek znaczeniowy między klasyfikatorami, z których jeden określa
kontrakt, a drugi zapewnia wywiązanie się z niego,
(związek między interfejsem a klasą – interfejs zapewnia realizacje usług
klasy)
Dla powiązania rozróżnia się dalej:
Z innego źródła:
11. Co to jest interfejs?
Interfejs to zestaw operacji, wyznaczony przez usługi oferowane przez klasę lub komponent
-umożliwia korzystanie z usług poszczególnych komponentów
-pośredniczy pomiędzy komponentami
Wg. Wiki: Interfejs jest abstrakcyjną reprezentacją klasy pozwalającą na korzystanie z niej niezależnie
od faktycznej implementacji.
12. Co to jest przypadek użycia?
Przypadek użycia–opis zbioru ciągów akcji wykonywanych które system może wykonać przez
interakcje z aktorami systemu.
13. Co przedstawia diagram przypadków użycia?
Graficzne przedstawia aktorów oraz związków między nimi, występujących w danej dziedzinie
przedmiotowej. Służy do modelowania funkcjonalności systemu. Przedstawia usługi, które system
świadczy aktorom, lecz bez wskazywania konkretnych rozwiązań technicznych.
Składa się z:
•
Aktorów – nie jest częścią systemu. Wykonuje PU. Dzieli się na:
o Człowiek/zespół(rysunek zwykłego ludzika)
o System zewnętrzny(ludzik z kwadratową główką)
o Urządzenie(ludzik z zębatą główką)
o Czas(ludzik z zegarkiem w głowie)
Relacje między aktorami to relacje uogólnienia, a między aktorami a PU relacje
powiązania.
•
•
Przypadków użycia
Związków
Zawiera: //to chyba nie o to chodzi
•
•
•
ciągi zdarzeń
o główny
o alternatywny(nadzwyczajny)
scenariusze – określony ciąg akcji dokumentujący zachowanie
o niesformalizowany tekst
o formalny tekst strukturalny
o tabela
o pseudokod
kooperacje
14. Wymień typy relacji występujące w diagramie przypadków użycia oraz
podaj między, którymi elementami diagramu zachodzą te relacje.
-asocjacje – związek pomiędzy dwoma lub więcej klasyfikatorami, opisującym powiązanie pomiędzy
ich instancjami. Między aktorem a przypadkiem użycia.
=uogólnienie – dziedziczenie cech elementu ogólnego. Między dwoma przypadkami użycia.
-zawieranie - Związku zawierania używa się wówczas, gdy z kilku innych przypadków użycia można
wydzielić pewną część wspólną. Stereotyp <<include>>
-rozszerzenie - Związek ten pozwala na wydzielenie przypadku użycia, który w pewnych sytuacjach
może zostać wzbogacony o dodatkowe opcje. Stereotyp <<extend>>
15. Narysuj przykładowy diagram przypadków użycia.
16. Co to jest interakcja?
Interakcja - zachowanie polegające na wymianie komunikatów w grupie obiektóww pewnym celu.
17. Wymień diagramy interakcji. Jaka jest pomiędzy nimi różnica?
Rodzaje diagramów interakcji:
-
Diagram sekwencji: Jest rodzajem diagramu interakcji, opisującym interakcje pomiędzy
instancjami klasyfikatorów systemu w postaci sekwencji komunikatów wymienianych między
nimi. Składa się z elementów takich jak klasyfikator, komunikat, linia życia, ośrodek
sterowania. Możemy wyróżnić rodzaje:
o konceptualny: podstawowe kategorie pojęciowe i graficzne. Ogólny zakres i łatwe do
-
-
-
zidentyfikowania interacje
o implementacyjny: podstawa opracowania specyfikacji programistycznej. Wszystkie
kategorie pojęciowe.
o wystąpieniowy: wystąpienie diagramu sekwencji w odniesieniu do ustalonego
scenariusza. Jednemu implementacyjnemu diagramowi sekwencji może odpowiadać
kilka wystąpieniowych.
Diagram komunikacji: Jest rodzajem diagramu interkacji, specyfikującym strukturalne związki
pomiędzy instancjami oraz wymianę komunikatów pomiędzy tymi instancjami. Składa się z
elementów takich jak klasyfikator, komunikat, asocjacja.
Diagram harmonogramowania: Jest rodzajem diagramu interakcji, reprezentującym na osi
czasu zmiany dopuszczalnych stanów, jakie może przyjmować instancja klasyfikatora
uczestnicząca w interakcji.
Diagram sterowania interakcją: Jest rodzajem diagramu interakcji, dokumentującym
przepływ sterowania pomiędzy logicznie powiązanymi diagramami i fragmentami interakcji z
wykorzystaniem kategorii modelowania diagramów czynności.
18.Do czego służy diagram czynności?
diagram czynności – przedstawia przepływ sterowania od czynności do czynności. Opisuje, jak są
uszeregowane działania, dając możliwość opisu czynności warunkowych lub współbieżnych.
19. Co to jest czynność, a co to jest akcja w diagramie czynności? Podaj ich
symbole graficzne w UML’u.
· czynność – podzielna, ogólna, dozwolona dekompozycja, znaczący czas realizacji
· akcja – niepodzielna, szczegółowy przypadek, niedozwolona dekompozycja, nieznaczący czas
realizacji
akcja/czynność:
Mimo że akcja i czynność są czym innym, symbol mają podobny (czasami akcja jest w mniejszym
prostokącie)
20. Co to są tory?
tory - służą do podzielenia stanów czynności na grupy, z których każda reprezentuje jednostkę
przedsiębiorstwa odpowiedzialna za przydzielone czynności.
21. Co przedstawia diagram stanów?
Diagram stanów pokazuje przede wszystkim możliwe stany obiektu oraz przejścia, które powodują
zmianę tego stanu. Tym samym tworzony jest cykl życia obiektu, który może być tym istotniejszy w
procesie wytwarzania oprogramowania, im więcej jest możliwych stanów obiektu.
Źródło: wikipedia
Diagram stanów
Diagram stanów w swojej idei nawiązuje do automatu skończonego. Opisuje on stany pewnego
procesu, które są istotne z punktu widzenia modelu pojęciowego tego procesu, oraz przejścia
pomiędzy stanami. W swojej pierwotnej idei diagram stanów miał odwzorowywać stany obiektów
pewnej klasy podczas ich cyklu życiowego oraz przejścia (transitions) pomiędzy tymi stanami
powodowane przez zdarzenia lub komunikaty. Jak się wydaje (sądząc z przykładu zamieszczonego w
dokumentacji UML) ta pierwotna idea uległa jednak na tyle silnej modyfikacji, że w istocie diagramy
stanów nie są tymi diagramami stanów, o których jest mowa w teorii automatów. Są to dość
klasycznie diagramy przepływu sterowania (flowcharts), z szeregiem drugorzędnych opcji
syntaktycznych i semantycznych.
Na Rys.13 przedstawiony został przykładowy diagram stanów (z oczywistych względów
uproszczony). Stany, w istocie reprezentujące stany sterowania procesu, zostały przedstawione w
postaci prostokątów z zaokrąglonymi rogami. Przejścia pomiędzy stanami zostały zaznaczone w
postaci strzałek. Tego rodzaju diagramy mogą być zagnieżdżane, tj. dowolny „stan” reprezentowany
na diagramie może być uszczegółowiony w postaci odrębnego diagramu.
22. Wymień typy zdarzeń, które mogą występować na diagramie stanów.
-asynchroniczne: sygnał, upływ czasu, zmiana stanu
-synchroniczne: wywołanie operacji
lub
-zdarzenia zewnętrzne
-zdarzenia wewnętrzne
Sygnał reprezentuje nazwany obiekt, który jest asynchronicznie wysyłany przez jeden obiekt, a
odbierany przez inny. Sygnał może być wysłany:
1. Kw wyniku przejścia w maszynie stanowej
2. Kprzesłania komunikatu w interakcji (wywołania)
3. wykonania operacji
Upływ czasu reprezentowane przez zdarzenie czasowe.
Wywołanie jest zdarzeniem synchronicznym, tzn. gdy obiekt wywołuje
operację innego, sterowanie jest przekazywane od nadawcy do
odbiorcy, a po wykonaniu tej operacji sterowanie wraca do nadawcy
źródło: wykład4 strona 14
23. Co to jest maszyna stanowa?
Maszyna stanowa opisuje ciąg stanów przyjmowanych przez obiekt w
odpowiedzi na zdarzenia zachodzące w czasie jego życia a także
reakcje obiektu na te zdarzenia
KKsłuży do modelowania zachowania jednego obiektu
KKużycie maszyny stanowej to najlepszy sposób opisu zachowania
obiektów, które muszą reagować na bodźce asynchroniczne i upływ
czasu
źródło: wykład 4 slajd 28 strona 14
24. Co przedstawia diagram komponentów?
(źródło: Z tej samej strony co druga część odpowiedzi zadania 21)
Diagramy komponentów pokazują zależności pomiędzy komponentami oprogramowania,
włączając komponenty kodu źródłowego, kodu binarnego oraz kodu wykonywalnego.
Poszczególne komponenty mogą istnieć w różnym czasie: niektóre z nich w czasie kompilacji,
niektóre w czasie konsolidacji (linking) zaś niektóre w czasie wykonania. Diagram komponentów
jest przedstawiany jako graf, gdzie węzłami są komponenty, zaś strzałki (z przerywaną linią)
prowadzą do klienta pewnej informacji do jej dostawcy. Rodzaj zależności jest zależny od typu
języka programowania. Diagram może także pokazywać interfejsy poszczególnych komponentów.
Strzałki oznaczające zależności mogą prowadzić od komponentu do interfejsu, Rys.15.
Z wykładu 5 strona 9:
Diagram komponentów – obrazuje uporządkowanie komponentów i
związki miedzy nimi.
-awiera:
-komponenty
-interfejsy
- uogólnienia, powiązania i realizacje
oraz notatki, ograniczenia, pakiety i podsystemy
25. Do czego służy diagram wdrożeń i z jakich składa się elementów?
Diagram wdrożeniowe pokazują konfigurację elementów czasu wykonania: komponentów
sprzętowych, komponentów oprogramowania, procesów oraz związanych z nimi obiektów.
Komponenty, które nie istnieją w trakcie czasu wykonania nie pojawiają się na tych diagramach;
powinny one być pokazane na diagramach komponentów.
Diagram wdrożeniowe jest grafem, gdzie węzłami są elementy czasu wykonania połączone
przez linie odwzorowujące ich połączenia komunikacyjne. UML określa pewną standardowa
postać tego rodzaju diagramów, ale poprzez odpowiednie stereotypy (oznaczenia graficzne) można
uczynić tego rodzaju diagram bardziej czytelnym. W szczególności, całkowicie legalna jest postać
przedstawiona na Rys.16.
Z wykładu 5 strona 13:
Diagram wdrożeń – obrazuje konfigurację węzłów działających w
czasie wykonania i zainstalowanie na nich komponentów
Kawiera(elementy wymienione poniżej znajdują się w wykładzie 5 strona11 i 12, nie opisuję ich bo
pytanie brzmi z czego się składa):
-węzły
-zależności i powiązania
-Ścieżki komunikowania
-osadzone komponenty i artefakty
-manifestowanie
-specyfikację rozlokowania
oraz notatki, ograniczenia, pakiety lub podsystemy
26. Jakie diagramy występują w UML 2.0? 27. Wymienić diagramy jakie są w
UML'u.
//to chyba może być razem
klas, obiektów, przypadków użycia, pakietów, sekwencji, komunikacji, maszyny stanowej, czynności,
komponentów, wdrożenia, struktur połączonych, przebiegów czasowych, przeglądu interakcji
28. Co to jest stan?
Sytuacja, w jakiej znajduje się obiekt, przez skończony okres swojego życia, kiedy spełnia jakiś
warunek, wykonuje jakąś czynność lub czeka na jakieś zdarzenie.
29. Rodzaje interfejsów.
- importowany: interfejs, z którego klasa lub komponent korzysta
- eksportowany: realizowany przez klasę lub komponent (klasa lub komponent udostępnia
usługi innym obiektom przez taki interfejs)
30. Wymagania funkcjonalne i niefunkcjonalne.
- funkcjonalne: opisują funkcje (czynności, operacje) wykonywane przez system
- niefunkcjonalne: opisują ograniczenia przy zachowaniu których system powinien realizować
swoje funkcje
31. Co to jest diagram kooperacji?
diagram komunikacji (kooperacji w UML 1.x) - opisuje organizację strukturalną obiektów,
wymieniających komunikaty. Przedstawia sposób wymiany informacji pomiędzy obiektami (aktorami,
klasami), które wchodzą ze sobą w interakcję. Określa związki strukturalne pomiędzy obiektami
biorącymi udział w interakcji zgodnie ze scenariuszem przypadków użycia.
Elementy:
•
•
•
obiekty - aktorzy, moduły, klasy biorące udział w interakcji
asocjacje - określają strukturę organizacji obiektów, reprezentowane przez linie
łączące obiekty
komunikaty - realizacja interakcji, opisywane etykietowanymi strzałkami
32. Co to jest port?
Port to wyróżnialny punkt związany z interfejsami, przez które komponent komunikuje się z
otoczeniem.
33. Co to jest partycja?
Partycja to mechanizm grupowania elementów diagramu czynność powiązanych przepływami
sterowania i przepływami danych, pełniących określoną, wspólną rolę.

Podobne dokumenty