1 Cykl tworzenia oprogramowaniaBartosz Marcinkowski Michał Kuciapski
2 Prezentacja cyklu
3 Metodyka tworzenia oprogramowaniaWyróżnia się 3 rodzaje metodyk: Strukturalne Obiektowe Społeczne
4 Tworzenie oprogramowaniaTworzenie oprogramowania jest procesem. Jest to skończony ciąg kroków (czynności) powiązanych ze sobą relacjami, które mają doprowadzić do osiągnięcia zamierzonego celu w postaci oprogramowania (systemu) spełniającego przyjęte wymagania. W procesie tworzenia oprogramowania możliwe są pętle.
5 Metodyki tworzenia oprogramowaniaZstępujące (ang. Top-down) Wstępujące (ang. Bottom-up)
6 Cykl życia oprogramowania (systemu)Cykl życia oprogramowania jest analogiczny do cyklu tworzenia systemów. Reprezentuje powtarzającą się w czasie całość działań prowadzonych od ujawnienia potrzeby budowy systemu aż po zakończenie jego użytkowania W cyklu życia obrazowane są kolejne etapy rozwoju i eksploatacji systemu, wraz z ich kontekstem, produktami, wzajemnymi relacjami i zależnościami w czasie Do najbardziej znanych cykli życia systemu należą: Cykl kaskadowy (liniowy, klasyczny) Cykl spiralny Cykl przyrostowy (i podejścia pochodne)
7 Elementy faz cyklu W każdej fazie określa się: Cele Działania Kolejność realizowanych działań Punkty przeglądu Produkty i dokumentacje
8 Kaskadowy cykl życia systemuPlanowanie Identyfikacja problemu Wizja rozwiązania problemu Ocena możliwych rozwiązań Decyzja na temat podjęcia projektu Czy mamy cokolwiek robić?
9 Planowanie Należy odpowiedzieć sobie na pytania:W jaki sposób system przyczyni się do rozwiązania problemu? Jakie konkretne efekty biznesowe osiągną udziałowcy systemu po zrealizowaniu celu? Czy cel jest uzasadniony ekonomicznie? Czy cel jest osiągalny w kontekście istniejących ograniczeń (budżet, zasoby, technologia, uwarunkowania o charakterze organizacyjnym na etapie użytkowania, prawo) Jaki konkretnie miałby być zakres systemu? Jakie jest ryzyko podjęcia się tego projektu?
10 Planowanie – cd Zakres Jakość Koszt Zasoby
11 Planowanie – cd Informatyzacja hotelu: przykład Cele:Poprawa obsługi gości Obniżenie kosztów własnych hotelu Efekty biznesowe: Przechwycenie klientów od konkurencji Mniejsze koszty własne Przyjęte kryteria: Zwiększenie liczby gości o 10% w pierwszym roku użytkowania systemu Wskaźnik (kosztyWłasne / gość) w pierwszym roku powinien spaść o 20% ceteris paribus (z pominięciem takich czynników jak spadek zatrudnienia czy fluktuacje płac)
12 Kaskadowy cykl życia systemu – cdPlanowanie Analiza Szczegółowe badanie dziedziny przedmiotowej Wyszukanie potencjalnych usprawnień Identyfikacja podstawowych problemów na styku przyszły system – organizacja Identyfikacja i dokładna specyfikacja wymagań Co my tak naprawdę mamy zrobić?
13 Kaskadowy cykl życia systemu – cdPlanowanie Analiza Projektowanie Stworzenie kompletnej dokumentacji systemu Weryfikacja stworzonego modelu pod kątem zgodności z wymaganiami i dziedziną przedmiotową Jak dokładnie ma to działać?
14 Kaskadowy cykl życia systemu – cdPlanowanie Analiza Projektowanie Implementacja Kodowanie Testowanie na niskim poziomie (moduły)
15 Kaskadowy cykl życia systemu – cdPlanowanie Analiza Projektowanie Implementacja Testowanie integracyjne Weryfikacja Walidacja Testy akceptacyjne Cośmy tak naprawdę stworzyli? Testowanie i walidacja
16 Testowanie i walidacjaWeryfikacja Czy rezultat danego etapu jest zgodny z tym, co stworzyliśmy wcześniej? Czy jesteśmy konsekwentni? Walidacja Czy to, co robimy, jest tym, o co nam chodziło? Czy idziemy we właściwym kierunku?
17 Kaskadowy cykl życia systemu – cdPlanowanie Analiza Projektowanie Implementacja Testowanie i walidacja Użytkowanie i adaptacja
18 Użytkowanie i adaptacjaPrzygotowanie środowiska Instalacja systemu Przeniesienie danych Szkolenia Udostępnienie manuali Audyt Konserwacja (diagnostyka, drobne błędy) Adaptacja (np. prawo) Ulepszanie (nowe wymagania, lifting)
19 Zalety Kompletny Sprawdzony w praktyceStrukturyzowalny (wsparcie narzędzi) Pozwala na łatwą dekompozycję pracy Brak nadmiarowości (koszty!)
20 Wady Wszystkie wymagania muszą być znane na początkuBrak sprzężenia zwrotnego wymagania – efekty (bardzo późna walidacja) Duża bezwładność (technologia) Olbrzymie koszty usuwania błędów popełnionych na wczesnych etapach oraz korekty wymagań Problemy z alokacją zasobów i znużeniem zespołu
21 Spiralny cykl życia systemu
22 Zalety Bardzo elastyczny (zmiany otoczenia, alokacja zasobów, niestabilność wymagań) Nieustanna walidacja Niskie ryzyko niepowodzenia (zakres, jakość)
23 Wady Długotrwałe dochodzenie do rozwiązania docelowegoDodatkowe koszty tworzenia kolejnych prototypów Kłopoty z zarządzaniem Presja na zmniejszenie jakości
24 Podejście przyrostoweStopniowo realizowane w całości kolejne usługi systemu Funkcje te są na bieżąco walidowane przez użytkowników Po każdym przyroście można zakończyć budowę systemu (ucierpi zakres, nie jakość) Wymagania mogą być tylko częściowo zidentyfikowane Klient szybko otrzymuje jakiś rezultat Niestety czasochłonny Kłopoty z dekompozycją usług
25 Podejście przyrostowe – cd
26 Proces przygotowania aplikacji przy wykorzystaniu podejścia obiektowego
27 Proces przygotowania aplikacjiAnaliza obiektowa – analiza opierająca się na obiektach, ich atrybutach, oferowanych usługach oraz wzajemnych powiązaniach. Projektowanie obiektowe – rozszerzanie modelu analizy o warstwy: dialogu, zarządzania danymi, zarządzania zadaniami oraz elementy specyficzne dla implementacji. Implementacja – stworzenie na podstawie dokumentacji przygotowanej podczas analizy i projektowania aplikacji.
28 Proces przygotowania aplikacji przy wykorzystaniu podejścia obiektowegoAnaliza obiektowa
29 Analiza obiektowa (OOA) - korzyściUmożliwia precyzyjne określenie i zamodelowanie wymagań w stosunku do aplikacji (systemu) ze strony klienta i użytkowników. Zwiększa wewnętrzną spójność wyników analizy. Umożliwia budowanie specyfikacji poddających się zmianom. Przyśpiesza i zwiększa szanse przygotowania aplikacji zgodnie wymaganymi funkcjonalnościami.
30 Analiza obiektowa (OOA) – procesDefiniowanie dziedziny problemu Znajdowanie klas-i-obiektów Znajdowanie struktur Znajdowanie tematów Definiowanie atrybutów Definiowane usług
31 Analiza obiektowa (OOA) – definiowanie dziedziny problemuDziedzina problemu – rozważane pole działania. Zakres obowiązków systemu – powiązany w całość zbiór rzeczy, za które odpowiada system. Przykład: Dziedzina problemu: księgowania procesów. finansowych firmy. Zakres obowiązków systemu: księgowania odnośnie zakupu/sprzedaży/likwidacji środków trwałych.
32 Analiza obiektowa (OOA) – definiowanie dziedziny problemuDziedzina problemu: obliczanie parametrów figur płaskich i brył. Zakres obowiązków systemu: obliczanie pól i obwodów dla określonych figur płaskich i brył. opis dziedziny problemu z uwzględnieniem zakresu obowiązków systemu - link
33 Analiza obiektowa (OOA) – znajdowanie klas-i-obiektówObiekt – abstrakcja czegoś w dziedzinie problemu, odzwierciedlająca zdolności systemu do przechowywania informacji o tym, interakcji z tym czymś, lub obie te rzeczy. Klasa – opis obiektu lub obiektów z jednolitym zbiorem atrybutów i usług, zawierający opis tworzenia nowych obiektów w klasie. Klasa-i-obiekt – termin oznaczający „klasę i obiekty w tej klasie”.
34 Analiza obiektowa (OOA) – znajdowanie klas-i-obiektówKlasa-i-obiekt Symbol „klasy-i-obiektu” analizy obiektowej
35 Analiza obiektowa (OOA) – znajdowanie klas-i-obiektówGdzie szukać: Samodzielna obserwacja Aktywnie słuchaj ekspertów Zapoznaj się z dotychczasowymi rezultatami Zapoznaj się z innymi systemami Dokument formułujący potrzeby
36 Analiza obiektowa (OOA) – znajdowanie klas-i-obiektówCzego szukać: Struktury – już istniejące relacje, np.: osoba: student, wykładowca, pracownik administracyjny. Inne systemy – systemy, z którymi współpracuje, np.: monitoring, system dystrybucyjny. Urządzenia – z jakimi zewnętrznymi urządzeniami będzie współpracować, np.: czujnik, radar, układ sterowania.
37 Analiza obiektowa (OOA) – znajdowanie klas-i-obiektówCzego szukać: Zapamiętywana rzecz lub zdarzenie – zdarzenia historyczne przechowywane w systemie, np.: data zdawania egzaminu, zapis położenia statku. Odgrywana rola – rola ludzi w systemie: użytkownik systemu, przechowywane są informacje o nich np.: egzaminator, kierownik magazynu. Procedury operacyjne – jakie procedury operacyjne, służące interakcji z człowiekiem, powinien pokazywać system, np.: polecenie egzaminacyjne.
38 Analiza obiektowa (OOA) – znajdowanie klas-i-obiektówCzego szukać: Miejsca – punkt w przestrzeni, miejscu, np.: las - las tropikalny, las barbarzyńców, głusza. Jednostki organizacyjne – do jakich jednostek organizacyjnych należą ludzie, np.: powiat, gmina.
39 Analiza obiektowa (OOA) – znajdowanie klas-i-obiektówCo kwestionować: Co system ma pamiętać o obiekcie Wymagane zachowanie Zazwyczaj wiele atrybutów Zazwyczaj więcej niż jeden obiekt w klasie Atrybuty stosowane zawsze Usługi stosowane zawsze Wymagania wynikające z dziedziny problemu Wyniki dające się wywnioskować
40 Analiza obiektowa (OOA) – znajdowanie klas-i-obiektówPrzykłady w oparciu o metodologię: Symulacja zdawania na prawo jazdy – link Obliczanie pól i obwodów figur – link
41 Analiza obiektowa (OOA) – znajdowanie strukturStruktura – jest wyrazem złożoności dziedziny problemu, właściwej dla zakresów obowiązku systemu. Typy struktur: Generalizacja-specjalizacja (gen-spec) – odnosi się do klas, wyrażana słowami „jest” lub „jest rodzajem”, np.: „Informatyka stosowana jest kierunkiem studiów”. Całość-część - odnosi się do obiektów, wyrażana słowem „posiada”, np.: „Prowadzący zajęcia posiada protokoły ocen”.
42 Analiza obiektowa (OOA) – znajdowanie strukturGeneralizacja Specjalizacja1 Specjalizacja2 Oznaczenie dla struktury „gen-spec”
43 Analiza obiektowa (OOA) – znajdowanie strukturCałość 1,m 1,m 1 1 Część1 Część2 Oznaczenie dla struktury „całość-część”
44 Analiza obiektowa (OOA) – znajdowanie strukturStrategia tworzenia struktur gen-spec: Traktowanie każdej klasy jako generalizacji i zapytanie w stosunku do potencjalnych specjalizacji: Czy jest w dziedzinie problemu? Czy mieści się w zakresie obowiązków systemu? Czy będzie miało miejsce dziedziczenie? Czy spełnione są kryteria „na co zwracać uwagę i co kwestionować” Analogiczne pytania w stosunku do specjalizacji w poszukiwaniu potencjalnych generalizacji
45 Analiza obiektowa (OOA) – znajdowanie strukturStrategia tworzenia struktur całość-część: Zestawienie-części – np.: komputer- podzespoły Pojemnik-zawartość - np.: samochód-pasażerowie Kolekcja-elementy – np.: uczelnia-studenci
46 Analiza obiektowa (OOA) – znajdowanie strukturPrzykłady w oparciu o metodologię: Nauczyciel akademicki – link Obliczanie pól i obwodów figur – link
47 Analiza obiektowa (OOA) – znajdowanie tematówTemat – jest mechanizmem prowadzącym czytelnika (analityka, eksperta, menedżera, klienta) przez duży złożony model. Tematy umożliwiają ogólniejsze spojrzenie na złożoność dziedziny problemowej. 2 podejścia: Znajdowanie tematów na początku analizy – duże systemy. Znajdowanie tematów po ustalenie struktur – pozostałe.
48 Analiza obiektowa (OOA) – znajdowanie tematów1 1 2 2 1. Temat1 2. Temat2 Tematy zwinięte 1. Temat1 Klasa-i-obiekt1 Klasa-i-obiekt2 Tematy rozwinięte 2. Temat2 Klasa-i-obiekt1 Klasa-i-obiekt2 Tematy częściowo zwinięte
49 Analiza obiektowa (OOA) – znajdowanie tematówStrategia: Najwyższą klasę każdej struktury awansowuje się na tematy Poddziedziny problemu Minimalizacja zależności pomiędzy strukturami i połączeniami obiektów Zasada odnośnie ilości elementów
50 Analiza obiektowa (OOA) – znajdowanie tematówPrzykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – link
51 Analiza obiektowa (OOA) – definiowanie atrybutówAtrybut – jest pewną daną (stanem systemu), dla których każdy obiekt danej klasy ma swoją własną wartość. Atrybuty uszczegóławiają analizę. Hermetyzacja – polega na ukrywania dostępu do atrybutów, dostęp wyłącznie za pośrednictwem usług.
52 Analiza obiektowa (OOA) – definiowanie atrybutówKlasa-i-obiekt Atrybut1 Atrybut2 Oznaczenia stosowane dla atrybutów
53 Analiza obiektowa (OOA) – definiowanie atrybutówStrategia: Identyfikujemy atrybuty – jaką wiedzę powinien posiadać obiekt: Jak zazwyczaj jestem opisany Co muszę wiedzieć W jakim mogę być stanie Czy należę do dziedziny problemu i obowiązków systemu Do czasu projektowania odroczone: normalizacja, mechanizmy identyfikacji, atrybuty obliczalne
54 Analiza obiektowa (OOA) – definiowanie atrybutówStrategia: Umieszczamy atrybuty – sprawdzamy strukturę. Identyfikujemy powiązania obiektów – określenie skojarzenia pomiędzy obiektami konieczne do wykonania obowiązków. Samolot PlanLotu 0,m 1
55 Analiza obiektowa (OOA) – definiowanie atrybutówStrategia: Sprawdzamy specjalne przypadki: Wartość nie dotyczy Klasy tylko z jednym atrybutem Powtarzające się wartości Powiązania wiele-do-wielu Wielokrotne powiązania Specyfikujemy atrybuty: jednostka miary, zakres, ograniczenie, wykaz, precyzja, domyślna wartość, wymagany, warunki tworzenia i dostępu, wartości narzucone przez inne atrybuty, kody stanów.
56 Analiza obiektowa (OOA) – definiowanie atrybutówPrzykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – link
57 Analiza obiektowa (OOA) – definiowanie usługUsługa – jest to określone zachowanie obiektu, które jest on zobowiązany przejawić. Usługi uszczegóławiają analizę Ustalają komunikację pomiędzy obiektami Operują na atrybutach
58 Analiza obiektowa (OOA) – definiowanie usługKlasa-i-obiekt Usługa1 Usługa2 Oznaczenia stosowane dla usług
59 Analiza obiektowa (OOA) – definiowanie usługStrategia: Identyfikacja stanów obiektu – zmiana zachowania obiektu, np.: ZmieńStatusWindy Identyfikacja wymaganych usług: Algorytmicznie proste: Utwórz, Powiąż, PobierzUstaw, Zwolnij Algorytmicznie złożone: Oblicz, monitoruj Identyfikacja powiązań odpowiadających komunikatom – relacja pomiędzy obiektami typu nadawca komunikatu/odbiorca komunikatu
60 Analiza obiektowa (OOA) – definiowanie usługStrategia: Przykład: Egzaminator -> Egzaminowany komunikat związany z WykonajPolecenie(…) Nadawca Odbiorca
61 Analiza obiektowa (OOA) – definiowanie usługStrategia: Odpowiedź na pytania: Usługi jakich innych obiektów są mu potrzebne Jakie inne obiekty potrzebują jego usług Specyfikacja usług – diagram przepływu sterowania
62 Analiza obiektowa (OOA) – definiowanie usługWarunek (jeśli; war. wstępny; war. rozpoczęcia, zakończenia) Blok tekstowy Pętla (dopóki; wykonuj; powtarzaj; rozpocznij/zakończ) Łącznik (dowiązany do górnej części następnego symbolu) Notacja dla schematu usługi
63 Analiza obiektowa (OOA) – definiowanie usługWarunek wstępny: Podstawa = „Trójkąt” Tak TwórzObiekt typu trójkąt Ustaw długości krawędzi Warunek wstępny: Podstawa = „…”
64 Analiza obiektowa (OOA) – definiowanie usługPrzykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – link
65 Proces przygotowania aplikacji przy wykorzystaniu podejścia obiektowegoAnaliza obiektowa
66 Projektowanie obiektowe (OOD) - cechyNiższy poziom abstrakcji niż w przypadku analizy obiektowej Modelowanie szczególnej implementacji W przeciwieństwie do analizy możliwa zależność od języków programowania Dodanie i modyfikacja możliwa w stosunku do wszystkich warstw
67 Projektowanie obiektowe (OOD) - składoweSkładowa kontaktu z człowiekiem – WE/WY, np.: Okno, PrezentacjaWyniku Składowa problemu – modyfikacja OOA Składowa zarządzania zadaniami – zadanie wykonywane w czasie rzeczywistym, komunikację i koordynację, np.: MenadżerZadań, Zadanie Składowa zarządzania danymi – dostęp i zarządzanie danymi: pliki, bazy danych
68 Projektowanie obiektowe (OOD)Przykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – link
69 OOA oraz OOD Pełna Dokumentacja: Obliczanie pól i obwodów figur – link
70 Implementacja Na podstawie przygotowanej dokumentacji podczas OOA i OOD napisanie aplikacji Proces: Programowanie Testowanie Projektowanie Analiza
71 Proszę o ewentualne pytaniaMichał Kuciapski