1. Jaką grupę wymagań modeluje się za pomocą przypadków użycia?
Wymagania użytkownika , wymagania funkcjonalne (jak jedno to nie wiem które)
2. Kim jest aktor? Podaj symbol.
Aktor: abstrakcyjny użytkownik systemu, reprezentujący grupę użytkowników używających podobnych funkcji systemu i sposobu z nim komunikacji. Symbol to ludzik ,jak wygląda każdy wie.
3. Co to jest przypadek użycia. Podaj klasyfikacje aktorów ze względu na używaną przez nich funkcję systemu.
Przypadek użycia: ciąg interakcji pomiędzy aktorem a systemem, dostarczający aktorowi pożądanych wyników.
Klasyfikacja aktorów:
- aktor główny: używa podstawowych funkcji systemu
- aktor drugorzędny: używa funkcji administracyjnych i pielęgnacyjnych
- aktor aktywny: inicjuje przypadek użycia
- aktor pasywny: uczestniczy w przypadku użycia, ale go nie inicjuje
4. Co oznacza relacja "używa"("uses")? Podaj symbol. Jak nazywa się ta relacja w najnowszej wersji języka UML? Relacja „extends”.
• Relacja „używa” („uses”)
- wskazuje na wspólny fragment wielu przypadków użycia, wykorzystanie wspólnego zachowania
• Relacja „rozszerza” („extends”)
- rozszerzenie przypadku użycia o sytuację wyjątkową
Relacja „uses” w najnowszej wersji jezyka UML nazywana jest „include” a jej symbol to <<include>>
5. Czy możliwa jest komunikacja pomiędzy aktorami na diagramie przypadków użycia? Odpowiedź uzasadnij i skomentuj w kontekście zadań modelu przypadku użycia.
Nie wiem dokladnie o co chodzi (bo to takie kurwa wszystko niejasne w tym przedmiocie). Ale jeśli chodzi im o komunikacje bezposrednią (strzalka od razu od jednego aktora do drugiego) to nie jest możliwa taka opcja , jedynie poprzez przypadek uzycia czyli tak jak na tym przykładzie obok albo wymeldowanie z hotelu albo zameldowanie. Glownie w diagramach przypadkow uzycia chodzi o zauważenie interakcji użytkownika z systemem a nie użytkowników miedzy soba, także związku użytkownika z konkretnym przypadkiem uzycia i wynikiem jaki otrzymuje.
6. Opisz ogólny schemat przejścia między stanami.
7. W jaki sposób na diagramie sekwencji oznacza się pewne własności interakcji, np. interakcje wywoływane w pętli?
Często zachodzi konieczność wskazania specjalnej własności pewnej części interakcji, np. pętli. Na diagramach sekwencji taką grupę operacji obejmuje się prostokątem, w którego lewym górnym narożniku, w pięciokącie umieszcza się słowo kluczowe lub opis określający znaczenie danego bloku (tzw. operator interakcji), np.:
• alt (od alternative) – określający warunek wykonania bloku operacji, odpowiadający instrukcji if-else; warunek umieszcza się wówczas wewnątrz bloku w nawiasach kwadratowych
• opt (od optional) – reprezentujący instrukcję if (bez else)
• par (od parallel) – nakazujący wykonać operacje równolegle
• critical – oznaczający obszar krytyczny
• loop – definiujący pętlę typu for (o określonej z góry liczbie iteracji) lub while (wykonywanej dopóki pewien warunek jest prawdziwy)8. Co to jest wywoływanie asynchroniczne operacji? Jak się je oznacza?
Oznacza powrót z wywołania procedury; może być pomijany.
9.symbole początku życia obiektu i końca życia - siakoś tak
koło – początek życia
koło z obręczą wokół niego cienką również okrągłą – koniec życia.
W Umbrello wszystko to było koloru czerwonego .
10. Największa różnica między diagramem maszyny stanowej a czynności
• W odróżnieniu od diagramu maszyny stanowej, diagram czynności może obejmować wiele obiektów na raz, zwykle umieszczanych w odpowiednich torach.
11. Coś w tym stylu - dlaczego diagram sekwencji jest doskonały do pokazania programowania obiektowego
• Prezentuje kolejność wywołań operacji, przepływ sterowania pomiędzy obiektami oraz szablon realizowanego algorytmu.
12. W jaki sposób można oceniać produktywność programisty
Produktywność:
-> W procesie tworzenia oprogramowania menedżerowie muszą oceniać produktywność inżynierów. Takie oszacowania mogą być niezbędne przy szacowaniu kosztów przedsięwzięcia i przy ustalaniu, czy ulepszenia procesowe i technologiczne były skuteczne.
-> Problemy z określeniem produktywności:
- W wypadku budowy oprogramowania istnieje wiele różnych rozwiązań o różnych atrybutach.
- Gdy pojawiają się dwa rozwiązania o różnych atrybutach, porównywanie szybkości ich tworzenia nic tak naprawdę nie daje. Jedno rozwiązanie może działać bardziej efektywnie, podczas gdy inne jest bardziej czytelne i łatwiejsze do pielęgnacji.
Rodzaje miar:
• Miary wielkościowe. Są związane z wielkością pewnego wyniku czynności. Najczęściej stosowaną wielkościową miarą produktywności jest liczba wierszy dostarczonego kodu źródłowego.
• Miary funkcyjne. Są związane z ogólną funkcjonalnością dostarczonego oprogramowania. Produktywność wyraża się w kategoriach ilości użytecznej funkcjonalności dostarczonej w pewnym czasie.
Szacowanie kosztu pracy programisty za pomocą liczby wierszy kodu:
• Liczba wierszy kodu na miesiąc pracy programisty to szeroko stosowana miara produktywności.
• Wyznacza się ją przez obliczenie całkowitej liczby dostarczonego kodu źródłowego. Tę liczbę dzieli się następnie przez miesiące pracy programisty, konieczne do ukończenia przedsięwzięcia.
• Ten czas obejmuje zatem czas potrzebny na analizę, projektowanie, kodowanie i dokumentowanie.
Szacowanie kosztu pracy programisty za pomocą punktów funkcyjnych
Inną stosowaną miarą jest liczba punktów funkcyjnych.
Całkowitą liczbę punktów funkcyjnych wyznacza się przez zmierzenie lub oszacowanie następujących elementów programu:
- zewnętrzne dane wejściowe i wyjściowe,
- interakcje z użytkownikiem,
- interfejsy zewnętrzne,
- pliki używane przez system.
Wagi: od 3 (proste dane wejściowe) do 15 (złożone pliki)
UFC = ∑ liczba_elementów_danego_typu x waga
Punkty funkcyjne są niezależnie od języka, można więc za ich pomocą porównywać produktywność w różnych językach programowania. Produktywność wyraża się jako liczby punktów funkcyjnych utworzonych w czasie miesiąca.
Szacowanie kosztu pracy programisty za pomocą punktów obiektowych:
W przypadku stosowania narzędzi obiektowych, stosujemy miarę w postaci liczby punktów obiektowych - miarę ważoną następujących składników:
- liczba różnych wyświetlanych ekranów (prosty ekran to 1 punkt obiektowy, bardzo złożony ekran - 3)
- liczba tworzonych raportów (prosty raport to 2 punkty obiektowe, bardzo złożony - 8 punktów)
- liczba modułów napisanych w językach proceduralnych, które należy opracować w celu uzupełnienia kodu (każdy moduł liczy się jako 10 punktów obiektowych.
13. Wymień cechy i omów:
Architektury wieloprocesorowe
• Najprostszym modelem systemu rozproszonego jest system wieloprocesorowy, składający się z kilku różnych procesów, które mogą (ale nie muszą) działać na oddzielnych procesorach.
• Z logicznego punktu widzenia procesory zajmujące się zbieraniem informacji, podejmowaniem decyzji i sterowaniem efektorami mogłyby działać na jednym procesorze sterowanym przez moduł szeregujący. Użycie wielu procesorów poprawia jednak efektywność i odporność systemu.
• Przydział procesów procesorów może być zadany z góry (tak zwykle jest w systemach krytycznych) albo sterowany przez dyspozytora, który decyduje o przyznaniu procesora procesowi.
Architektury klient-serwer
• Architektoniczny model klient-serwer jest modelem rozproszonego systemu, w którym dane i przetwarzanie są rozdzielone między zbiór procesorów.
• Największa zaleta modelu klient-serwer polega na tym, że jest to architektura rozproszona. Umożliwia to efektowne użycie systemów sieciowych z dużą liczba rozproszonych procesorów. Łatwo jest dostać nowy serwer i zintegrować go z resztą systemu albo przezroczyście aktualizować serwery bez wpływania na inne części systemu.
• Do odniesienia pełnych korzyści z integracji nowego serwera może być jednak konieczne wprowadzenie pewnych zmian w istniejących klientach i serwerach. Nie ma dzielonego modelu danych i podsystemy porządkują zwykle swoje dane na różne sposoby. Oznacza to potrzebę określenia specyficznego modelu danych dla każdego serwera, który umożliwi zoptymalizowanie jego efektywności.
Architektury obiektów rozproszonych
• Architektury obiektów rozproszonych
– W tym podejściu nie istnieje rozróżnienie między klientami i serwerami. System jest postrzegany jako zbiór komunikujących się obiektów, których położenie jest nieistotne. Nie ma różnicy między dostawcą i użytkownikiem usług.
14. Narysuj przykładowy diagram obiektów. W jakich przypadkach może się on okazać użyteczny?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15. Co to jest obiekt? Podaj definicję i symbol graficzny. Obiekt jest bytem, który posiada swój stan i zbiór zdefiniowanych operacji działających na tym stanie.
- stan jest reprezentowany jako zbiór atrybutów (ang. attributes) obiektu.
Symbol obiektu=reprezentacja graficzna klasy(patrz nizej)
16. Czym są atrybuty? Czy związek między klasami może posiadać atrybuty? jeżeli tak, to podaj przykład i symbol.
Atrybuty określają stan obiektu. Tak związki miedzy klasami mogą posiadać atrybuty między innymi:
Tak, zwiazem miedzy klasami może mieć atrybut. Taki związek z atrybutem nazywamy związkiem kwalifikowanym.
18. Omów związki między klasami i podaj ich symbole
Czyli symbol chyba kreska?
Uogólnienie-
• Klasy obiektów można ułożyć w hierarchię uogólnienia, w której widać związek między ogólnymi i bardziej szczegółowymi klasami obiektów.
• Szczegółowa klasa obiektów jest w pełni zgodna z ogólną klasą obiektów, ale zawiera więcej informacji.
• W UML uogólnienie obrazuje się za pomocą obrazów strzałki wskazującej klasę macierzystą.
• W obiektowych językach programowania uogólnienie zwykle implementuje się za pomocą mechanizmu dziedziczenia. Klasa potomna dziedziczy atrybuty i operacje po klasie macierzystej.
Symbol-nie wypełniona strzałka
Agregacja-(ang. aggregation): tworzenie nowej klasy, przy użyciu klas już istniejących. Nowa klasa może być zbudowana z dowolnej liczby obiektów (obiekty te mogą być dowolnych typów) i w dowolnej kombinacji, by uzyskać żądany efekt. Jest to relacja typu "zawiera" np: "samochód zawiera koła i silnik" - gdzie „samochód”, „koło” i „silnik” są klasami. Symbol – linia zakończona rombem.
Symbol-pusty romb
Kompozycja- (ang. composition): składanie się obiektu z obiektów składowych, które nie mogą istnieć bez obiektu głównego. Kompozycja jest relacją typu "posiada". Dana część może należeć tylko do jednej całości. Część nie może istnieć bez całości, a usunięcie całości powoduje automatyczne usunięcie wszystkich części związanych z nią związkiem kompozycji. Symbol – linia zakończona zaczernionym rombem.
Symbol-wypełniony romb
Zależność (ang. dependency) - między klasami zachodzi, jeżeli zmiany dokonane w stanie jednego z obiektów danej klasy mogą mieć wpływ na obiekt należący do innej klasy.
Symbol – strzałka z przerywana linią
Związek, tak jak i obiekt, też może posiadać atrybuty
(tzw. związek kwalifikowany).
19. Fazy procesu produkcji
• idea
• specyfikacja
• projektowanie
• implementacja
• integracja
• testowanie
• wdrożenie
• ewolucja
20. Modelowanie procesu tworzenia oprogramowania
• Modele ogólne (paradygmaty) tworzenia oprogramowania (z natury uproszczone)
– model kaskadowy
– model spiralny
– model przyrostowy i tworzenie ewolucyjne
– model prototypowy
– składanie systemu z komponentów ponownego użycia
• Modele szczegółowe
– model przepływu prac
– model przepływu danych (lub model czynności)
21. Podział wymagań stawianych oprogramowaniu
• I Wymagania funkcjonalne
– Stwierdzają, jakie usługi ma oferować system, jak ma reagować na określone dane wejściowe oraz jak ma się zachowywać w określonych sytuacjach. W niektórych wypadkach wymagania funkcjonalne określają, czego system nie powinien robić.
• II Wymagania niefunkcjonalne (pozafunkcjonalne)
– Określają ograniczenia usług i funkcji systemu. Obejmują ograniczenia czasowe, ograniczenia dotyczące procesu tworzenia, standardy itd.
• III Wymagania dziedzinowe
– Pochodzą z dziedziny zastosowania systemu odzwierciedlają jej charakterystykę. Mogą być zarówno funkcjonalne jak i niefunkcjonalne.
AD I:Wymagania funkcjonalne
• Odpowiadają na pytanie: jakie funkcje system ma udostępniać użytkownikom?
...
inf4