Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Cykl tworzenia oprogramowania
Bartosz Marcinkowski Michał Kuciapski
2
Prezentacja cyklu
3
Metodyka tworzenia oprogramowania
Wyróżnia się 3 rodzaje metodyk: Strukturalne Obiektowe Społeczne
4
Tworzenie oprogramowania
Tworzenie 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 oprogramowania
Zstę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 systemu
Planowanie 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 – cd
Planowanie 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 – cd
Planowanie 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 – cd
Planowanie Analiza Projektowanie Implementacja Kodowanie Testowanie na niskim poziomie (moduły)
15
Kaskadowy cykl życia systemu – cd
Planowanie Analiza Projektowanie Implementacja Testowanie integracyjne Weryfikacja Walidacja Testy akceptacyjne Cośmy tak naprawdę stworzyli? Testowanie i walidacja
16
Testowanie i walidacja
Weryfikacja 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 – cd
Planowanie Analiza Projektowanie Implementacja Testowanie i walidacja Użytkowanie i adaptacja
18
Użytkowanie i adaptacja
Przygotowanie ś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 praktyce
Strukturyzowalny (wsparcie narzędzi) Pozwala na łatwą dekompozycję pracy Brak nadmiarowości (koszty!)
20
Wady Wszystkie wymagania muszą być znane na początku
Brak 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 docelowego
Dodatkowe koszty tworzenia kolejnych prototypów Kłopoty z zarządzaniem Presja na zmniejszenie jakości
24
Podejście przyrostowe
Stopniowo 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 aplikacji
Analiza 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 obiektowego
Analiza obiektowa
29
Analiza obiektowa (OOA) - korzyści
Umoż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) – proces
Definiowanie dziedziny problemu Znajdowanie klas-i-obiektów Znajdowanie struktur Znajdowanie tematów Definiowanie atrybutów Definiowane usług
31
Analiza obiektowa (OOA) – definiowanie dziedziny problemu
Dziedzina 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 problemu
Dziedzina 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ów
Obiekt – 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ów
Klasa-i-obiekt Symbol „klasy-i-obiektu” analizy obiektowej
35
Analiza obiektowa (OOA) – znajdowanie klas-i-obiektów
Gdzie 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ów
Czego 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ów
Czego 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ów
Czego 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ów
Co 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ów
Przykłady w oparciu o metodologię: Symulacja zdawania na prawo jazdy – link Obliczanie pól i obwodów figur – link
41
Analiza obiektowa (OOA) – znajdowanie struktur
Struktura – 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 struktur
Generalizacja Specjalizacja1 Specjalizacja2 Oznaczenie dla struktury „gen-spec”
43
Analiza obiektowa (OOA) – znajdowanie struktur
Całość 1,m 1,m 1 1 Część1 Część2 Oznaczenie dla struktury „całość-część”
44
Analiza obiektowa (OOA) – znajdowanie struktur
Strategia 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 struktur
Strategia 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 struktur
Przykłady w oparciu o metodologię: Nauczyciel akademicki – link Obliczanie pól i obwodów figur – link
47
Analiza obiektowa (OOA) – znajdowanie tematów
Temat – 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ów
1 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ów
Strategia: 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ów
Przykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – link
51
Analiza obiektowa (OOA) – definiowanie atrybutów
Atrybut – 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ów
Klasa-i-obiekt Atrybut1 Atrybut2 Oznaczenia stosowane dla atrybutów
53
Analiza obiektowa (OOA) – definiowanie atrybutów
Strategia: 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ów
Strategia: 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ów
Strategia: 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ów
Przykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – link
57
Analiza obiektowa (OOA) – definiowanie usług
Usł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ług
Klasa-i-obiekt Usługa1 Usługa2 Oznaczenia stosowane dla usług
59
Analiza obiektowa (OOA) – definiowanie usług
Strategia: 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ług
Strategia: Przykład: Egzaminator -> Egzaminowany komunikat związany z WykonajPolecenie(…) Nadawca Odbiorca
61
Analiza obiektowa (OOA) – definiowanie usług
Strategia: 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ług
Warunek (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ług
Warunek 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ług
Przykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – link
65
Proces przygotowania aplikacji przy wykorzystaniu podejścia obiektowego
Analiza obiektowa
66
Projektowanie obiektowe (OOD) - cechy
Niż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ładowe
Skł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 pytania
Michał Kuciapski
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.