Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Cykl tworzenia oprogramowania Bartosz Marcinkowski Michał Kuciapski

Podobne prezentacje


Prezentacja na temat: "Cykl tworzenia oprogramowania Bartosz Marcinkowski Michał Kuciapski"— Zapis prezentacji:

1 Cykl tworzenia oprogramowania Bartosz Marcinkowski Michał Kuciapski

2 Prezentacja cyklu

3 3 z 70 Metodyka tworzenia oprogramowania Wyróżnia się 3 rodzaje metodyk: Strukturalne Obiektowe Społeczne

4 4 z 70 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 5 z 70 Metodyki tworzenia oprogramowania Zstępujące (ang. Top-down) Wstępujące (ang. Bottom-up)

6 6 z 70 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 7 z 70 Elementy faz cyklu W każdej fazie określa się: Cele Działania Kolejność realizowanych działań Punkty przeglądu Produkty i dokumentacje

8 8 z 70 Kaskadowy cykl życia systemu Identyfikacja problemu Wizja rozwiązania problemu Ocena możliwych rozwiązań Decyzja na temat podjęcia projektu Czy mamy cokolwiek robić? Planowanie

9 9 z 70 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 10 z 70 Planowanie – cd Zakres KosztZasoby Jakość

11 11 z 70 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 12 z 70 Kaskadowy cykl życia systemu – cd 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ć? Planowanie Analiza

13 13 z 70 Kaskadowy cykl życia systemu – cd Stworzenie kompletnej dokumentacji systemu Weryfikacja stworzonego modelu pod kątem zgodności z wymaganiami i dziedziną przedmiotową Jak dokładnie ma to działać? Planowanie Analiza Projektowanie

14 14 z 70 Kaskadowy cykl życia systemu – cd Kodowanie Testowanie na niskim poziomie (moduły) Planowanie Analiza Projektowanie Implementacja

15 15 z 70 Kaskadowy cykl życia systemu – cd Planowanie Analiza Projektowanie Implementacja Testowanie i walidacja Testowanie integracyjne Weryfikacja Walidacja Testy akceptacyjne Cośmy tak naprawdę stworzyli?

16 16 z 70 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 17 z 70 Kaskadowy cykl życia systemu – cd Planowanie Analiza Projektowanie Implementacja Testowanie i walidacja Użytkowanie i adaptacja

18 18 z 70 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 19 z 70 Zalety Kompletny Sprawdzony w praktyce Strukturyzowalny (wsparcie narzędzi) Pozwala na łatwą dekompozycję pracy Brak nadmiarowości (koszty!)

20 20 z 70 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 21 z 70 Spiralny cykl życia systemu

22 22 z 70 Zalety Bardzo elastyczny (zmiany otoczenia, alokacja zasobów, niestabilność wymagań) Nieustanna walidacja Niskie ryzyko niepowodzenia (zakres, jakość)

23 23 z 70 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 24 z 70 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 25 z 70 Podejście przyrostowe – cd

26 Proces przygotowania aplikacji przy wykorzystaniu podejścia obiektowego

27 27 z 70 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 29 z 70 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 30 z 70 Analiza obiektowa (OOA) – proces Definiowanie dziedziny problemu Znajdowanie klas-i-obiektów Znajdowanie struktur Znajdowanie tematów Definiowanie atrybutów Definiowane usług

31 31 z 70 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 32 z 70 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 - linklink

33 33 z 70 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 34 z 70 Analiza obiektowa (OOA) – znajdowanie klas-i-obiektów Klasa-i-obiekt Symbol „klasy-i-obiektu” analizy obiektowej

35 35 z 70 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 36 z 70 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 37 z 70 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 38 z 70 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 39 z 70 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 40 z 70 Analiza obiektowa (OOA) – znajdowanie klas-i-obiektów Przykłady w oparciu o metodologię: Symulacja zdawania na prawo jazdy – linklink Obliczanie pól i obwodów figur – linklink

41 41 z 70 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 42 z 70 Analiza obiektowa (OOA) – znajdowanie struktur Generalizacja Oznaczenie dla struktury „gen-spec” Specjalizacja1Specjalizacja2

43 43 z 70 Analiza obiektowa (OOA) – znajdowanie struktur Całość Oznaczenie dla struktury „całość-część” Część1Część2 1,m 1 1

44 44 z 70 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 45 z 70 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 46 z 70 Analiza obiektowa (OOA) – znajdowanie struktur Przykłady w oparciu o metodologię: Nauczyciel akademicki – linklink Obliczanie pól i obwodów figur – linklink

47 47 z 70 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 48 z 70 Analiza obiektowa (OOA) – znajdowanie tematów 1. Temat1 2. Temat2 1. Temat1 Klasa-i-obiekt1 Klasa-i-obiekt2 2. Temat2 Klasa-i-obiekt1 Klasa-i-obiekt2 1 2 Tematy zwinięte Tematy częściowo zwinięte Tematy rozwinięte

49 49 z 70 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 50 z 70 Analiza obiektowa (OOA) – znajdowanie tematów Przykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – linklink

51 51 z 70 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 52 z 70 Analiza obiektowa (OOA) – definiowanie atrybutów Klasa-i-obiekt Oznaczenia stosowane dla atrybutów Atrybut1 Atrybut2

53 53 z 70 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 54 z 70 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. 0,m 1 SamolotPlanLotu

55 55 z 70 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 56 z 70 Analiza obiektowa (OOA) – definiowanie atrybutów Przykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – linklink

57 57 z 70 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 58 z 70 Analiza obiektowa (OOA) – definiowanie usług Klasa-i-obiekt Oznaczenia stosowane dla usług Usługa1 Usługa2

59 59 z 70 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 60 z 70 Analiza obiektowa (OOA) – definiowanie usług Strategia: Przykład: Egzaminator -> Egzaminowany komunikat związany z WykonajPolecenie(…) NadawcaOdbiorca

61 61 z 70 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 62 z 70 Analiza obiektowa (OOA) – definiowanie usług Notacja dla schematu usługi Pętla (dopóki; wykonuj; powtarzaj; rozpocznij/zakończ) Blok tekstowy Warunek (jeśli; war. wstępny; war. rozpoczęcia, zakończenia) Łącznik (dowiązany do górnej części następnego symbolu)

63 63 z 70 Analiza obiektowa (OOA) – definiowanie usług TwórzObiekt typu trójkąt Warunek wstępny: Podstawa = „Trójkąt” Ustaw długości krawędzi Tak Nie Warunek wstępny: Podstawa = „…”

64 64 z 70 Analiza obiektowa (OOA) – definiowanie usług Przykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – linklink

65 Proces przygotowania aplikacji przy wykorzystaniu podejścia obiektowego Analiza obiektowa

66 66 z 70 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 67 z 70 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 68 z 70 Projektowanie obiektowe (OOD) Przykłady w oparciu o metodologię: Obliczanie pól i obwodów figur – linklink

69 69 z 70 OOA oraz OOD Pełna Dokumentacja: Obliczanie pól i obwodów figur – linklink

70 70 z 70 Implementacja Na podstawie przygotowanej dokumentacji podczas OOA i OOD napisanie aplikacji Proces: ProgramowanieTestowanie ProjektowanieAnaliza

71 Proszę o ewentualne pytania Michał Kuciapski


Pobierz ppt "Cykl tworzenia oprogramowania Bartosz Marcinkowski Michał Kuciapski"

Podobne prezentacje


Reklamy Google