io wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/myweb/praca/io/io161002alx.pdf · wady i...

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

Upload: others

Post on 08-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Inżynieria oprogramowania część I

Politechnika Poznańska, Instytut Informatyki, Studia niestacjonarne

Semestr zimowy 2016/2017

dr inż. Bartłomiej Prędki

[email protected]

Pok. 124 CW, tel. 61665 2932

http://zajecia.predki.com

Page 2: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Rynek oprogramowania

Page 6: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Rynek oprogramowania

Page 7: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Rynek oprogramowania

Page 8: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Najwięksi gracze

❖ IBM

❖ Microsoft

❖ Oracle

❖ SAP

Page 9: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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

Czas

Efekty

Rzeczywiste osiągnięcia

Oczekiwania

Page 13: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Początek inżynierii oprogramowania

1968

NATO Conference on Software Engineering

Page 16: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Podejście amatorskie a inżynierskie

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

Page 17: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Definicje inżynierii oprogramowania

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

❖ Wielowersyjność oprogramowania

Page 18: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych
Page 21: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Zakres inżynierii oprogramowania

❖ Wytwarzanie oprogramowania i innych

produktów (np. dokumentacji)

❖ Zarządzanie wytwarzaniem

oprogramowania

Page 22: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Zaliczenie

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

Page 24: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Modele cyklu życia oprogramowania

❖ Uporządkowanie prac.

❖ Ustalenie kolejności prac.

❖ Planowanie i monitorowanie realizacji.

Page 25: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Model kaskadowy

Określenie wymagań

Projektowanie

Implementacja

Testowanie

Konserwacja

Page 27: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Dodatkowe fazy w modelu kaskadowym

Page 28: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Ścisłe i elastyczne rozumienie modelu kaskadowego

Określenie wymagań

Projektowanie

Implementacja

Testowanie

Konserwacja

Page 29: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Przykład elastycznego podejścia do modelu kaskadowego

Page 30: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych
Page 39: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Dziedzina problemu

Wp

SystemDziedzina problemu

Wp

Model

Page 43: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Korzystanie z funkcji (ang. actor flow)

Page 46: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Związki zawierania (include) i rozszerzania (extend)

Page 47: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Przykład i związek generalizacji (generalization)

Page 48: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Diagramy klas

❖ Model statyczny

Page 49: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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

Samochody

Page 51: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Związek generalizacji-specjalizacji

Wp

Samochód osobowy

Samochód ciężarowy

SamochódPojazd

Page 52: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Wiele generalizacji

Page 53: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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

Page 54: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Przykłady

Page 56: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Opisy związków

Rola Nazwa

Page 57: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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

Page 58: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Związek pomiędzy obiektami tej samej klasy

Page 59: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Ograniczenia dotyczące związków

Page 60: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Związek kompozycji

Page 61: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Przykład - giełda usług przewozowych

Page 62: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Przykład – grafika wektorowa

Page 63: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Przykład – czasopismo naukowe

Page 64: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Stany początkowy i końcowy

Początkowy

Końcowy

Page 69: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Akcja

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

Page 71: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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

=

Page 73: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Stan złożony

Page 74: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Przykład – stany artykułu

Page 75: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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

Page 76: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Diagramy sekwencji

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

Page 77: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Komunikaty

AsynchronicznySynchroniczny

Page 79: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Przykład – korzystanie z bankomatu

Page 80: IO wykład 1 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

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 - fcds.cs.put.poznan.plfcds.cs.put.poznan.pl/MyWeb/Praca/IO/IO161002alx.pdf · Wady i zalety realizacji przyrostowej +Możliwość wcześniejszego korzystania z pewnych

Do zobaczenia 6 listopada