101
Inżynieria oprogramowania część I Politechnika Poznańska, Instytut Informatyki, Studia niestacjonarne Semestr zimowy 2015/2016 dr inż. Bartłomiej Prędki [email protected] Pok. 124 CW, tel. 61665 2932 http://zajecia.predki.com

IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Inżynieria oprogramowania część I

Politechnika Poznańska, Instytut Informatyki, Studia niestacjonarne

Semestr zimowy 2015/2016

dr inż. Bartłomiej Prędki

[email protected]

Pok. 124 CW, tel. 61665 2932

http://zajecia.predki.com

Page 2: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Literatura❖ A. Jaszkiewicz, Inżynieria oprogramowania, Helion, Gliwice, 1997.

❖ B. Begier, Inżynieria oprogramowania – problemy jakości, Wydawnictwo Politechniki Poznańskiej, Poznań, 1999.

❖ Janusz Górski (red.). Inżynieria oprogramowania w projekcie informatycznym. Mikom, Warszawa, 2000, wyd. II.

❖ G. Booch, J. Rambaugh, I. Jacobson, UML przewodnik użytkownika, WNT, Warszawa, 2000.

❖ C. Larman, UML i wzorce projektowe., Helion 2011

❖ D. Hamlet, J. Maybee, Podstawy techniczne inżynierii oprogramowania, WNT 2003

Page 3: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Literatura❖ S. Maguire, Niezawodność oprogramowania, Helion,

Gliwice, 2002

❖ E. Freeman, B. Bates, K. Sierra, Wzorce projektowe. Rusz głową!, Helion, 2010

❖ Z. Szyjewski, Zarządzanie projektami informatycznymi, Placet 2001

❖ K. Beck, M. Fowler, W. Opdyke, D. Roberts, Refaktoryzacja. Ulepszanie struktury istniejącego kodu, WNT 2006

❖ E. Gamma, R. Helm, R. Johnson, J. Vlissides, Wzorce projektowe, WNT 2008

Page 4: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Rynek oprogramowania 2011

❖ Świat 292.9 miliardów dolarów (42.6% Ameryka)

❖ Bez oprogramowania wytwarzanego na własne potrzeby

❖ Wzrost 6.6% rocznie

❖ + 125 miliardów euro dodatkowych usług

❖ W UE 60-70% oprogramowania jest wytwarzane w firmach, dla których nie jest to główną działalnością

❖ W 2016 ponad 396 mld dolarów

Page 5: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Rynek oprogramowania

Page 6: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Rynek oprogramowania

Page 7: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Rynek oprogramowania

Page 8: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Najwięksi gracze

❖ IBM

❖ Microsoft

❖ Oracle

❖ SAP

Page 9: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Trochę historii

❖ Lata 50-te

❖ Sprzęt o bardzo ograniczonych możliwościach

❖ Ograniczone zastosowania

❖ Małe programy

❖ Programy pisane często dla własnych potrzeb lub potrzeb dobrze znanych osób

❖ Dobrze wyspecyfikowane zadania

Page 10: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Rozwój technik wytwarzania oprogramowania

❖ Lata 60-te

❖ Profesjonalni programiści

❖ Nowe języki programowania – COBOL, Fortran, Algol

❖ Sprzęt o dużo większych możliwościach, np. pamięć wirtualna

❖ Nowe zastosowania – np. w biznesie

❖ Próba realizacji wielu dużych przedsięwzięć programistycznych

Page 11: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Kryzys oprogramowania

❖ Rozwój technik wytwarzania oprogramowania nie nadąża za rozwojem sprzętu komputerowego

❖ Czy kryzys oprogramowania trwa do dzisiaj?

❖ Nadal większość przedsięwzięć przekracza czas i/lub budżet

❖ Około 25% przedsięwzięć programistycznych nie jest kończona

❖ 90% firm przyznaje, że dość często zdarzają im się opóźnienia przedsięwzięć

❖ Powszechna akceptacja kiepskiej jakości oprogramowania (w pewnych obszarach)

Page 12: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Zależność osiągnięcia-oczekiwania w wytwarzaniu oprogramowania

Czas

Efekty

Rzeczywiste osiągnięcia

Oczekiwania

Page 13: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przyczyny kryzysu oprogramowania❖ Duża złożoność systemów informatycznych

❖ Złożoność, zmienność, nieadekwatność wymagań❖ Niepowtarzalność poszczególnych przedsięwzięć❖ Nieprzejrzystość procesu budowy oprogramowania

❖ Pozorna łatwość wytwarzania i modyfikowania oprogramowania

❖ Potrzeba kreatywności

❖ Czynnik ludzki

❖ Mało wymagający rynek

❖ Niedoskonałość narzędzi

Page 14: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład - system dla PKW❖ błędy po stronie klienta

❖ zbyt krótki czas na zrealizowanie prac

❖ brak oceny złożoności problemu i wymagań❖ brak samokrytycyzmu

❖ błędy po stronie kontrahenta

❖ brak doświadczenia

❖ zbyt „swobodne” podejście

Page 15: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Początek inżynierii oprogramowania

1968

NATO Conference on Software Engineering

Page 16: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Podejście amatorskie a inżynierskie

Co by tu wymyślić!? Do pracy.

Page 17: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Definicje inżynierii oprogramowania

❖ Duże systemy wymagające pracy wielu osób – praca grupowa

❖ Wielowersyjność oprogramowania

Page 18: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Definicja inżynierii oprogramowania

Wiedza techniczna, dotycząca wszystkich faz cyklu życia oprogramowania, której

celem jest uzyskanie wysokiej jakości produktu - oprogramowania.

Page 19: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Jakość oprogramowania

❖ Użyteczność (usefulness) ❖ Niezawodność (reliability) ❖ Ergonomia (usability) ❖ Efektywność (efficiency) ❖ Łatwość konserwacji (maintability) ❖ Bezpieczeństwo użytkownika (user safety) ❖ Koszt?

Page 20: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość
Page 21: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Zakres inżynierii oprogramowania

❖ Wytwarzanie oprogramowania i innych

produktów (np. dokumentacji)

❖ Zarządzanie wytwarzaniem

oprogramowania

Page 22: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Plan wykładów I semestr

❖ Wprowadzenie i podstawowe modele cyklu życia oprogramowania

❖ Analiza/modelowanie systemów z wykorzystaniem języka UML, w tym elementy analizy wymagań

❖ UML jako narzędzie projektowania i dokumentowania oprogramowania

❖ Projektowanie oprogramowania

❖ Niezawodność oprogramowania

❖ Dokumentacja techniczna i użytkowa

❖ Narzędzia inżynierii oprogramowania

Page 23: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Zaliczenie

Wykład jest zaliczany w trakcie testuna ostatnim wykładzie,czyli 16 stycznia 2016 r.

Page 24: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Modele cyklu życia oprogramowania

❖ Uporządkowanie prac.

❖ Ustalenie kolejności prac.

❖ Planowanie i monitorowanie realizacji.

Page 25: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Programowanie odkrywcze

Ogólne określenie wymagań

Ogólny projekt

Budowa systemu

Ocena systemu

System poprawnyWdrożenie

Tak Nie

Page 26: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Model kaskadowy

Określenie wymagań

Projektowanie

Implementacja

Testowanie

Konserwacja

Page 27: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Dodatkowe fazy w modelu kaskadowym

Page 28: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Ścisłe i elastyczne rozumienie modelu kaskadowego

Określenie wymagań

Projektowanie

Implementacja

Testowanie

Konserwacja

Page 29: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład elastycznego podejścia do modelu kaskadowego

Page 30: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Wady i zalety modelu kaskadowego (rozumianego ściśle)

+Łatwość zarządzania – planowanie i monitorowanie

-Wysoki koszt błędów popełnionych we wstępnych fazach

❖ Koszt błędu w wymaganiach 100-1000 razy większy od kosztu błędu programistycznego!

-Długa przerwa w kontaktach z klientem

-Nie lubiany przez wykonawców

Page 31: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Prototypowanie❖ Cel – lepsze określenie wymagań

❖ Fazy:

❖ Ogólne określenie wymagań.

❖ Budowa prototypu.

❖ Weryfikacja prototypu przez klienta.

❖ Pełne określenie wymagań.

❖ Realizacja pełnego systemu zgodnie z modelem kaskadowym.

Page 32: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Sposoby budowy prototypu

❖ Prototyp musi być zbudowany szybko i niskim kosztem. ❖ Niepełna realizacja. ❖ Języki wysokiego poziomu . ❖ Wykorzystanie gotowych komponentów. ❖ Generatory interfejsu użytkownika. ❖ Szybkie programowanie (quick-and-dirty programming). ❖ Papier. ❖ Programowanie odkrywcze.

Page 33: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Wady i zalety prototypowania

+Mniejsze ryzyko popełnienia kosztownych błędów we wczesnych fazach.

+Możliwość szybkiej demonstracji prototypu i szkolenia użytkowników.

-Koszt budowy prototypu, który może się nie zwrócić.

-Możliwość nieporozumień z klientem.

Page 34: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Realizacja przyrostowaOkreślenie wymagań i wstępny

projekt

Wybór przyrostu - podzbioru

funkcji

Realizacja przyrostu

Wdrożenie przyrostu

Proces realizowany iteracyjnie

Page 35: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Wady i zalety realizacji przyrostowej

+Możliwość wcześniejszego korzystania z pewnych funkcji systemu.

+ Skrócenie przerw w kontaktach z klientem.

+Możliwość elastycznego reagowania na opóźnienia.

-Kłopoty z integracją oddzielnie realizowanych modułów.

Page 36: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Realizacja przyrostowa

❖ Zalecana w większości lekkich (żwawych) metodyk – np. w programowaniu ekstremalnym – często małe przyrosty (kilka tygodni)

❖ Dobrze opisuje realizację wielu (zwłaszcza udanych) projektów wolnego oprogramowania (free/open source)

Page 37: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Wybór modelu do konkretnego przedsięwzięcia

❖ Duże przedsięwzięcia, np. > 6 miesiecy – realizacja przyrostowa, mniejsze m. kaskadowy

❖ W lekkich metodykach także dla mniejszych przedsięwzięć

❖ Trudności w określeniu wymagań:

❖ nowatorski system z punktu widzenia klienta

❖ mała znajomość dziedziny problemu przez wykonawcę:

Jeżeli tak, to prototypowanie

Page 38: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość
Page 39: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Unified Modeling Language - UML

❖ Obiektowa notacja graficzna służąca do modelowania, projektowania i specyfikacji oprogramowania

❖ Następca licznych notacji obiektowych z lat 80-tych i 90-tych

❖ Powstał na bazie metod Boocha, Rumbaugh (OMT) i Jacobsona – stworzony przez tych właśnie autorów

Page 40: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Unified Modeling Language - UML

❖ Standard Object Management Group (OMG)

❖ Wspierany przez firmę Rational

❖ De facto standard przemysłowy

❖ Pierwsza wersja w 1997

❖ Notacja, a nie metodyka

Page 41: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Analiza/modelowanie

❖ Opracowanie logicznego modelu dziedziny problemu

❖ Cele:

❖ Lepsze zrozumienie dziedziny problemu i lepsze określenie wymagań

❖ Podstawa przyszłego projektu

Page 42: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Dziedzina problemu

Wp

System

Dziedzina problemu

Wp

Model

Page 43: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Dlaczego notacje graficzne w modelowaniu

❖ Ogromny wzrost precyzji

❖ Ogromna poprawa efektywności

❖ Zapis modelu

❖ Analiza modelu

❖ Wprowadzanie zmian

❖ Łatwe przejście do projektowania

Page 44: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Diagramy przypadków użycia – use case diagrams – modelowanie wymagań

❖ Użytkownik, klasa użytkowników, system zewnętrzny (ang. actor)❖ Grupa użytkowników wykorzystujących system w podobny sposób

❖ Przypadek użycia, wymaganie funkcjonalne, funkcja (ang. use case)

Page 45: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Korzystanie z funkcji (ang. actor flow)

Page 46: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Związki używania (use) i rozszerzania (extend)

Page 47: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład i związek generalizacji (generalization)

Page 48: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Diagramy klas

❖ Model statyczny

Page 49: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Obiekt

❖ Składowa dziedziny problemu posiadająca:❖ tożsamość❖ dane ją opisujące❖ zachowanie

❖ Obiekty wewnętrzne systemu, dane❖ np. wektor, plik, raport, drzewo binarne, okno, dokument elektroniczny

❖ Obiekty zewnętrzne, metadane❖ osoba, samochód, dokument papierowy, projekt

Page 50: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

KlasaWzorzec, uogólnienie grupy obiektów opisywanych za pomocą podobnych danych i mających podobne zachowanie

Samochody

Page 51: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Związek generalizacji-specjalizacji

Wp

Samochód osobowy

Samochód ciężarowy

SamochódPojazd

Page 52: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Wiele generalizacji

Page 53: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Związek klas❖ Uogólnienie możliwych powiązań obiektów

Page 54: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Krotności związków

❖ 0..1 – zero lub jeden, opcjonalny

❖ 1 – dokładnie jeden, wymagany

❖ * - dowolna liczba

❖ 1..* - jeden lub więcej

❖ N..M – od N do M

❖ N – dokładnie N

Page 55: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykłady

Page 56: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Opisy związków

Rola Nazwa

Page 57: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Różne związki pomiędzy tymi samymi klasami

Page 58: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Związek pomiędzy obiektami tej samej klasy

Page 59: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Ograniczenia dotyczące związków

Page 60: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Związek kompozycji

Page 61: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład - giełda usług przewozowych

Page 62: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład – grafika wektorowa

Page 63: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład – czasopismo naukowe

Page 64: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Diagramy stanów

❖ Model dynamiczny

❖ Zastosowania:

❖ Modelowanie zmian stanów (grup) obiektów

❖ Modelowanie reakcja na zdarzenia

❖ Modelowanie algorytmów

Page 65: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Zdarzenie

❖ Zjawisko, które zachodzi w pewnym punkcie czasu, np.:

❖ odjazd pociągu do Gdańska,

❖ wprowadzenie danych,

❖ wybranie polecenia z menu,

❖ przekroczenie temperatury 50°C.

Page 66: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Zdarzenia

❖ Zdarzenie zewnętrzne – zachodzi poza systemem, np.:

❖ wprowadzenie danych,

❖ wybranie polecenia z menu,

❖ przerwanie przez użytkownika wykonywania operacji.

❖ Zdarzenie wewnętrzne – zachodzi w ramach systemu, np.:

❖ zakończenie wykonywania metody,

❖ błąd arytmetyczny,

❖ przekroczenie czasu.

Page 67: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Stan

❖ Okres czasu ograniczony przez dwa zdarzenia

❖ System (fragment systemu) znajdując się w różnych stanach reaguje w sposób jakościowo różny na zachodzące zdarzenia.

(Stan artykułu w czasopiśmie naukowym)

Page 68: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Stany początkowy i końcowy

Początkowy

Końcowy

Page 69: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przejście

❖ Zmiana stanu w wyniku zdarzenia

❖ Może być obwarowane warunkami

❖ Zachodzi natychmiastowo (w przybliżeniu)

Zdarzenia Warunek

Page 70: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Akcja

❖ Czynność wykonywana (w przybliżeniu) natychmiastowo w momencie zajścia zdarzenia

Page 71: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Czynność

❖ Działanie wykonywane w czasie kiedy system jest w pewnym stanie

❖ Może zostać przerwana w momencie zajścia zdarzenia, które powoduje wyjście ze stanu

❖ Jeżeli kończy się samoczynnie, to generuje zdarzenie, które powoduje przejście do innego stanu.

Page 72: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Akcje wejściowe, wyjściowe i wewnętrzne

=

Page 73: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Stan złożony

Page 74: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład – stany artykułu

Page 75: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład – zaznaczanie i przesuwanie obiektów w programie graficznym

Page 76: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Diagramy sekwencji

Przepływ komunikatów pomiędzy elementami dziedziny problemu

Page 77: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Obiekt

Nazwa obiektu:Nazwa klasy : Osoba - nieokreślony obiekt

klasy Osoba, Jan Nowak : Osoba - obiekt Jan Nowak

klasy Osoba, Jan Nowak : - obiekt Jan Nowak

nieokreślonej klasy.

Lina życia

Czas

Page 78: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Komunikaty

AsynchronicznySynchroniczny

Page 79: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład – korzystanie z bankomatu

Page 80: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Specyfikacja modelu

❖ UML jest językiem graficznym

❖ Na diagramach można umieszczać szereg dodatkowych informacji – ograniczenia, stereotypy, komentarze

❖ W praktyce diagramy często wspiera się dodatkową specyfikacją – wspiera to szereg narzędzi CASE

Page 81: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Specyfikacja klas

❖ Opis❖ Lista pól❖ Lista metod❖ Ograniczenia

❖ Np. Wzrost > 0❖ Płaca minimalna < Płaca maksymalna

❖ Szacowana lub dokładna liczba obiektów tej klasy❖ Trwałość

Page 82: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Specyfikacja metod❖ opis – specyfikacja deklaratywna

❖ dane wejściowe

❖ dane wyjściowe

❖ algorytm

❖ warunki wstępne

❖ warunki końcowe

❖ wyjątki

❖ złożoność czasowa

❖ złożoność pamięciowa

Page 83: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Specyfikacja pól i parametrów

❖ typ przechowywanych wartości

❖ jednostka miary

❖ zakres dopuszczalnych wartości

❖ lista możliwych wartości

❖ wymagana precyzja

❖ wartość domyślna

❖ czy pole może być puste

❖ ograniczenia

❖ metody, które mogą czytać, ustawiać i modyfikować wartości tego pola.

Page 84: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Specyfikacja algorytmów❖ Algorytm klasyfikacji na podstawie reguł decyzyjnych❖ Dane wejściowe

❖ Uporządkowana (wg. ważności) lista reguł decyzyjnych w postaci:

❖ Jeżeli (A1 = ...) i ... i (An ...) to Decyzja = ...

❖ Reguła domyślna z pustą częścią warunkową❖ Obiekt do zaklasyfikowania opisany atrybutami A1

do An

Page 85: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Algorytm klasyfikacji na podstawie reguł decyzyjnych

powtarzaj od reguły najważniejszej do najmniej ważnej

jeżeli obiekt spełnia warunki reguły, to

podejmowana jest decyzja wskazywana przez regułę

dopóki nie podjęto decyzji lub nie sprawdzono wszystkich regułjeżeli nie podjęto decyzji, to

podejmij decyzję wskazywaną przez regułę domyślną

Page 86: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Budowa statycznego modelu klas

❖ Identyfikacja klas

❖ Identyfikacja związków klas

❖ Identyfikacja pól

❖ Identyfikacja metod

Page 87: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Identyfikacja klas

❖ Typowe klasy:

❖ przedmioty namacalne (np. samochód, czujnik),

❖ role pełnione przez osoby (np. pracownik, wykładowca, polityk),

❖ zdarzenia, o których system przechowuje informacje (np. lądowanie samolotu, zamówienie, dostawa),

❖ interakcje pomiędzy osobami i/lub systemami, o których system przechowuje informacje (np. pożyczka, spotkanie, konferencja),

❖ lokalizacje, tj. miejsca przeznaczone dla ludzi lub przedmiotów,

Page 88: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Identyfikacja klas❖ Typowe klasy

❖ grupy przedmiotów namacalnych (samochody, czujniki),

❖ organizacje (np. firma, wydział, związek),

❖ koncepcje (np. miara jakości, zadanie),

❖ dokumenty (np. prawo jazdy, faktura),

❖ klasy będące interfejsami dla systemów zewnętrznych,

❖ klasy będące interfejsami dla urządzeń sprzętowych.

Page 89: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Identyfikacja klas

❖ Analiza dziedziny problemu (problem domain analysis) – wykorzystanie wiedzy dziedzinowej

❖ literatura

❖ seminaria

❖ prezentacje

❖ rysunki

❖ inne modele – np. modele procesów biznesowych

Page 90: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Analiza opisu w języku naturalnym

❖ Rzeczowniki - potencjalne klasy, obiekty lub pola

❖ Czasowniki - potencjalne operacje lub związki klas

❖ „Ma”, „posiada”, „obejmuje”, „składa się”, „jest częścią”,… - związki kompozycji

❖ Rzeczowniki odczasownikowe – związki klas

❖ Rzeczowniki mogą oznaczać role pełnione w związkach

Page 91: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład

Każdy projekt jest realizowany przez konsorcjum złożone z co najmniej trzech organizacji. Organizacja może być firmą komercyjną, jednostką badawczą lub organizacją publiczną. Organizacja może realizować wiele projektów badawczych. Każdy projekt ma jednego koordynatora.

Page 92: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Przykład

Page 93: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Identyfikacja klas

❖ Wykorzystanie związków klas i obiektów

❖ Czy klasa ma potencjalne specjalizacje i/lub generalizacje?

❖ Czy klasa ma części składowe i/lub jest częścią większej całości?

❖ Czy klasa pozostaje w związkach z innymi klasami?

Page 94: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Identyfikacja klas

❖ Analiza funkcji

❖ Jakie obiekty, jakich klas będą niezbędne do realizacji poszczególnych funkcji

Page 95: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Weryfikacja klas

❖ Nieobecność pól i operacji

❖ Nieliczne (pojedyncze) pola i operacje

❖ Brak związków z innymi klasami

❖ Tylko jeden obiekt w klasie

❖ Dobrą klasą jest klasa Samochód, złymi Samochód Kowalskiego i Samochód Nowaka.

Page 96: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Identyfikacja krotności związków

Analiza przykładowych (rzeczywistych lub wymyślonych) powiązań obiektów

Page 97: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Weryfikacja związków obligatoryjnych np. 1 lub 1..*

Czy instytut musi mieć pracowników?

Page 98: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Identyfikacja związków kompozycji

❖ Zwroty pojawiające się w słownym opisie systemu jak:

zawiera, składa się, obejmuje

❖ Klasy posiadające części składowe

❖ Klasy będące zbiorami pewnych elementów

Page 99: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Części składowe

Page 100: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Zbiory

Page 101: IO wykład 1 - Poznań University of Technologyfcds.cs.put.poznan.pl › MyWeb › Praca › IO › IO151122zyr.pdf · Wady i zalety modelu kaskadowego (rozumianego ściśle) +Łatwość

Do zobaczenia 29 listopada