in»ynieria oprogramowania oprogramowania ... - .historia uml in»ynieria oprogramowania...

Download IN»YNIERIA OPROGRAMOWANIA OPROGRAMOWANIA ... - .Historia UML IN»YNIERIA OPROGRAMOWANIA J™zyk UML

Post on 09-Feb-2019

213 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

INYNIERIA OPROGRAMOWANIAINYNIERIA OPROGRAMOWANIA INYNIERIAOPROGRAMOWANIA

Jzyk UML. Budowa modelu obiektowego i behawioralnego

Wykorzystane materiay: prezentacje Bartosza Waltera (UW)

UML Tutorial (part 1) by Robert C. Martin

Historia projektowania obiektowegoHistoria projektowania obiektowego INYNIERIAOPROGRAMOWANIA

Pocztki projektowania obiektowego: lata 70-te XX wieku

Najwaniejsze metodologie obiektowe:

OOADA (Object-Oriented Analysis and Design with Applications)

Grady Booch nacisk na projektowanie

OOSE (Object Oriented Software Engineering) Ivar Jacobson nacisk na inynieri wymaga

OMT (Object Modeling Technique) James Rumbaugh nacisk na analiz

Historia UMLHistoria UML INYNIERIAOPROGRAMOWANIA

Jzyk UML (Unified Modeling Langauge ujednolicony jzyk modelowania) unifikacja metod Boocha, Jacobsona i Rumbaugh

(1994 r.), z poszczeglnych notacji przejto najlepsze rozwizania

Pocztkowo wspierany przez firm Rational Software (program Rational

Rose)

Najbardziej rozpowszechnione wersje UML: 1.1 (1997) oraz 1.4 (2002 r.),

jednak s powoli wypierane przez nowsze, bardziej spjne i dopracowane

wersje (2.x)

2005 r. wersja 1.4.2 oficjalnym, midzynarodowym standardem

projektowania aplikacji (Information technology: ISO/IEC 19501:2005)

07/2005 r. wersja: 2.0 (duy krok naprzd)

08/2011 r. wersja: 2.4.1 (http://www.omg.org/spec/UML/2.4.1/)

uznana standardem w kwietniu 2012 r. (ISO/IEC 19505-1, 19505-2)

Obecnie jzyk UML nie posiada praktycznie konkurencji w dziedzinie

obiektowego projektowania aplikacji

OMG OMG ObjectObject ManagementManagement GroupGroup INYNIERIAOPROGRAMOWANIA

Niekomercyjna organizacja powstaa w 1989 r.

Jej celem jest promowanie teorii oraz praktyki technologii

obiektowych

Zaoycielami OMG byo 13 liczcych si przedsibiorstw z brany

software'owej

Obecnie do organizacji naley 321 firm producenci

oprogramowania oraz sprztu komputerowego (stan na dzie 11/04/2013)

Organizacja zajmuje si opracowywaniem standardw pomagajcych w tworzeniu aplikacji obiektowych

W 1997 r. OMG wczya si do prac nad UML

2005 r. OMG doprowadzia do uznania UML 1.4 jako oficjalnego

standardu

Czym jest UML?Czym jest UML? INYNIERIAOPROGRAMOWANIA

Jest jzykiem do specyfikacji, wizualizacji, konstrukcji,

dokumentowania projektw zwizanych z systemami

informacyjnymi intensywnie wykorzystujcymi

oprogramowanie, a take do modelowania biznesowego

wszelkich innych systemw

Oferuje standaryzowany sposb zapisu projektu,

obejmujcego zarwno jego konceptualne aspekty, takie

jak procesy biznesowe czy funkcje systemu, jak te i

elementy fizyczne (np. schematy bazy danych, warstw

sprztow systemu)

Standaryzuje notacj graficzn okrela sposb zapisu

modeli

Czym nie jest UML?Czym nie jest UML? INYNIERIAOPROGRAMOWANIA

UML nie jest metodyk

UML nie okrela metody modelowania, zaleca jedynie

stosowanie podejcia przyrostowego

UML nie jest narzdziem

UML to specyfikacja dla narzdzi

UML nie jest jzykiem programowania

generowanie kodu z modelu stosowane jest obecnie na

niewielk, cho stale zwikszajc si skal (przyczyna:

dopiero teraz powstaj narzdzia CASE lepiej

wspomagajce ten proces)

Perspektywy UMLPerspektywy UML INYNIERIAOPROGRAMOWANIA

Perspektywa przypadkw uycia opisuje funkcjonalno, jak

powinien dostarcza system, widzian przez jego uytkownikw.

Perspektywa logiczna zawiera sposb realizacji funkcjonalnoci, struktur systemu widziana przez projektanta.

Perspektywa implementacyjna opisuje poszczeglne moduy i ich interfejsy wraz z zalenociami; perspektywa ta jest przeznaczona

dla programisty.

Perspektywa procesowa zawiera podzia systemu na procesy

(czynnoci) i procesory (jednostki wykonawcze); opisuje waciwoci niefunkcjonalne systemu i suy zarwno

programistom jak i integratorom.

Perspektywa wdroenia definiuje fizyczny podzia elementw systemu i ich rozmieszczenie w infrastrukturze; perspektywa taka

suy integratorom i instalatorom systemu.

Diagramy UML 2.xDiagramy UML 2.x INYNIERIAOPROGRAMOWANIA

diagram klas (class)

diagram obiektw (object)

diagram struktur zoonych (composite structure)

diagram pakietw (package)

diagram komponentw (component)

diagram wdroenia (deployment)

diagram przypadkw uycia (use cases)

diagram maszyny stanowej (state machine)

diagram czynnoci (activity)

diagram sekwencji (sequence)

diagram komunikacji (communication)

diagram przegldu interakcji (interaction overview)

diagram uwarunkowa czasowych (timing)

diagramy strukturalne

diagramy zachowania(behawioralne)

diagramy interakcji

Projektowanie i programowanie obiektoweProjektowanie i programowanie obiektowe INYNIERIAOPROGRAMOWANIA

Projektowanie obiektowe to strategia, w ramach ktrej projektanci systemu myl w kategoriach bytw, a nie operacji albo funkcji.

Dziaajcy system skada si z oddziaujcych na siebie obiektw, ktre

przechowuj swj lokalny stan i oferuj operacje testujce lub zmieniajce

ten stan.

Obiekty ukrywaj informacj o reprezentacji stanu i w ten sposb

ograniczaj do niego dostp.

Proces projektowania obiektowego obejmuje zaprojektowanie klas

obiektw i zwizkw (relacji) midzy tymi klasami.

W dziaajcym programie, potrzebne obiekty s tworzone na podstawie

definicji klas.

Programowanie obiektowe polega na realizacji projektu oprogramowania za pomoc obiektowego jzyka programowania. Jzyki obiektowe

umoliwiaj bezporedni implementacj obiektw i dostarczaj

udogodnienia do definiowania klas obiektw.

Definicje Definicje obiekt, klasa, atrybuty, operacjeobiekt, klasa, atrybuty, operacje INYNIERIAOPROGRAMOWANIA

Obiekt (ang. object) jest bytem, ktry posiada swj stan i zbir zdefiniowanych operacji dziaajcych na tym stanie.

Stan jest reprezentowany jako zbir atrybutw (ang. attributes) obiektu.

Operacje (ang. operations) skojarzone z obiektem su do oferowania usug innym obiektom (klientom), ktre mog da tych usug, gdy potrzebuj wynikw ich dziaania. W obiektowych jzykach programowania operacje nazywa si metodami.

Grupa obiektw moe mie wspln definicj danych lub usug wykorzystywanych do definicji interfejsu, stanowic wcielenie (instancje) wsplnej definicji zwanej klas obiektw. Pojcie klasy umoliwia wic wyrnienie podobnej grupy obiektw wedug pewnego kryterium (pewnych cech, ktrymi s atrybuty i operacje).

Jeeli mamy zdefiniowan klas, to mwimy, e obiekt nalecy do niej jest instancj tej klasy (ang. instance).

Obiekty s tworzone zgodnie z definicja klasy obiektw. Definicja klasy obiektw suy jako szablon do tworzenia obiektw. Zawiera deklaracje wszystkich atrybutw i operacji, ktre naley skojarzy z obiektem tej klasy.

Reprezentacja graficzna klasy w UMLReprezentacja graficzna klasy w UML INYNIERIAOPROGRAMOWANIA

Nazwa klasy

(- + #) nazwa atrybutu : typ danych = warto domylna(...)

(- + #) nazwa operacji (lista argumentw) : typ wynikw(...)

Widoczno atrybutu / operacji:-: prywatny(ang. private)+: publiczny(ang. public)#: chroniony(ang. protected)podkrelenie: statyczny(ang. static)

Nazwa klasy pisana kursyw klasa abstrakcyjna(ang. abstract class)

Przykad Przykad klasa Pracownikklasa Pracownik INYNIERIAOPROGRAMOWANIA

tatus: {current, left, retired}taxCode: integer. . .

join ()leave ()retire ()changeDetails (

Pracownik + nazwisko : string+ adres : string+ dataUrodzenia : Date+ licznikPracownikw : integer+ PESEL : string+ dzia : Dzia+ przeoony : Pracownik+ wynagrodzenie : integer = 0+ stan : {zatrudniony, zwolniony, emerytowany}+ NIP : integer- numerPracownika : integer+ zatrudnij()+ zwolnij()+ przejdNaEmerytur()+ dajPodwyzke(kwota)# sprawdzPoprawnoscNumeruPESEL()

Jan Kowalski : Pracownik

Pracownik

Symbol obiektu (instancji) klasy

Pracownik:

Klasa Pracownik w mniejszym stopniu uszczegowienia:

Przykad Przykad klasa klasa CircleCircle i jej reprezentacja w C++i jej reprezentacja w C++ INYNIERIAOPROGRAMOWANIA

class Circle{public:void SetCenter(const Point&);void SetRadius(double);double Area() const;double Circumference() const;

private:double itsRadius;Point itsCenter;

};

Komunikacja pomidzy obiektamiKomunikacja pomidzy obiektami INYNIERIAOPROGRAMOWANIA

Obiekty porozumiewaj si przez dania usug od innych obiektw

(wywoania operacji), i jeli trzeba, wymian informacji niezbdnych do

realizacji usugi.

Kopie informacji potrzebnych do wykonania usugi i wyniki jej

wykonania s przekazywane jako parametry.

Obiekt odbiorca analizuje skadniowo komunikat, rozpoznaje usug i

przekazane dane a nastpnie realizuje dan usug.

Typowe przykady komunikacji w obiektowych jzykach programowania:

// Wywoaj operacj dla obiektu buforCykliczny, ktra pobiera kolejn

// warto z bufora i zapisuje j do zmiennej.

w = buforCykliczny.pobierz();

// Wywoaj metod termostatu, ustawiajc temperatur

termostat.ustawTemperatur(20);

stan o5stan o6stan o2

stan o4stan o3stan o1

Zwizki midzy obiektamiZwizki midzy obiektami INYNIERIAOPROGRAMOWANIA

W modelu zwykle istniej rne zalenoci (W modelu zwykle istniej rne zalenoci (wizaniawizania,

View more >