Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1. WPROWADZENIE dr inż. Sławomir Nowak PROJEKTOWANIE W SYSTEMACH UML.

Podobne prezentacje


Prezentacja na temat: "1. WPROWADZENIE dr inż. Sławomir Nowak PROJEKTOWANIE W SYSTEMACH UML."— Zapis prezentacji:

1 1. WPROWADZENIE dr inż. Sławomir Nowak PROJEKTOWANIE W SYSTEMACH UML

2 W PROWADZENIE Wymagana wiedza Student…...zna terminologię architektury komputerów i inżynierii programowania …zna i posługuje się obiektowym językiem programowania (C++. C#, Java) Prowadzący Sławomir Nowak Program wykładów Program przedmiotu obejmuje zagadnienia związane z teorią i zastosowaniem języka UML, w zakresie projektowania systemów, ze szczególnym uwzględnieniem projektowania i dokumentacji kodu źródłowego. Materiały do wykładu Literatura 1.UML 2.0 Wprowadzenie, Miles R., Hamilton K., Helion (OReilly), UML 2.0, Almanach, Pilone D., Pitman N., Helion (OReilly), UML 2.1 ćwiczenia, Wyrczy S., Helion Egzamin Pisemny, obowiązkowy.

3 W PROWADZENIE Literatura: UML 2.0. Wprowadzenie Russ Miles, Kim Hamilton ISBN: Linki:

4 W PROWADZENIE Literatura: Linki:

5 W PROWADZENIE Założenia przedmiotu: Przy omawianiu formatu języka ograniczamy stosujemy się do wersji 2.0/2.1 Wykorzystywane narzędzia projektowe są to narzędzia dostępne OpenSource. Zagadnienia dotyczą w większym stopniu zastosowania UML przy dokumentacji projektów programistycznych i kodu źródłowego.

6 W PROWADZENIE Założenia przedmiotu: Założeniem jest, że znane są podstawowe pojęcia z zakresu inżynierii programowania i programowania obiektowego jak klasa i klasa abstrakcyjna, obiekt, interfejs, dziedziczenie, implementowanie…

7 WPROWADZENIE UML Źródło grafiki: Wikipedia

8 W PROWADZENIE Otwarty format UML (ang. Unified Modeling Language, czyli Ujednolicony Język Modelowania), to język formalny służący do opisu świata obiektów w analizie obiektowej oraz programowaniu obiektowym (Wikipedia) Model to układ (...) możliwie mało skomplikowany, działający analogicznie do oryginału (Słownik Języka Polskiego, PWN 1998) Historia UML

9 W PROWADZENIE Modelowanie obiektowe System informatyczny powinien być jak najwierniejszym modelem otaczającego świata. W jaki więc sposób skonstruować model, aby spełniał to wymaganie? Klienci mają pewne wymagania w stosunku do systemu. Zamawiający znają problem i potrafią o niej opowiadać za pomocą specjalistycznego słownictwa. Nie potrafią jednak tworzyć technicznych opisów systemu. Programiści wiedzą, jak konstruować systemy. Programiści tworzą system korzystając z języka programowania. Są oni zorientowani w szczegółach platformy programowej. Nie są natomiast ekspertami w dziedzinie, dla której tworzą system.

10 W PROWADZENIE Modelowanie obiektowe Obiekty na danym poziomie abstrakcji ukrywają informacje nieistotne dla czytelnika modelu. Obiekty są zatem pewnego rodzaju czarnymi skrzynkami. Dopiero po otwarciu odkrywamy dalsze szczegóły. Obiekty z jednej strony obiekty odpowiadają pojęciom z modelowanej dziedziny problemu. Z drugiej strony są podstawą implementacji realizowanego systemu.

11 W PROWADZENIE Modelowanie obiektowe Elementem, który pozwala pogodzić język użytkownika z językiem programisty jest obiekt. Obiekty z jednej strony obiekty odpowiadają pojęciom z modelowanej dziedziny problemu. Z drugiej strony są podstawą implementacji realizowanego systemu. Korzystając z pojęcia obiektów tworzy się modele obiektowe (odwzorowanie rzeczywistych systemów). Modelowanie obiektowe polega więc na: wyodrębnianiu obiektów  opisywaniu struktury i dynamiki działania obiektów oraz klasyfikacji obiektów  opisywaniu struktury powiązań klas obiektów opisywaniu dynamiki współpracy obiektów

12 W PROWADZENIE Modelowanie obiektowe Modelowanie obiektowe polega na sporządzeniu opisu, odwzorowującego strukturę i dynamikę składających się na niego obiektów. Opis taki może być wykonany na różne sposoby, np: -Opis słowny -Opis w postaci rysunków i diagramów Modele obiektowe będziemy warto tworzyć za pomocą jednolitej notacji, wspólnej dla wszystkich. Dzięki temu mamy pewność, że model zostanie zrozumiany. Przykładem takiej notacji jest graficzny język UML.

13 W PROWADZENIE Historia UML W latach 70/80 wiele obiektowych języków programowania, wiele metod obiektowych, wiele metod obiektowego modelowania. Modelowanie obiektowe ma związek z podejściem obiektowym -> lata 80 Smalltalk, C++, projektowanie graficzne Wielu specjalistów – podobne podejście, drobne, ale upierdliwe różnice Czym różni się metodolog od terrorysty? – z terrorystą możesz negocjować… W połowie lat 90 opracowana została dokumentacja United Method i utworzono konsorcjum UML (m.in. HP, IBM, Oracle, Microsoft). Wynikiem prac konsorcjum był UML w wersji 1.0. Od 1997 roku rozwojem UML zajmuje się OMG (Object Management Group). Najnowsza wersja UML 2.3 pojawiła się w 2010 roku. Źródło: Wikipedia

14 W PROWADZENIE Wprowadzenie do UML UML (ang. Unified Modeling Language, czyli Zunifikowany Język Modelowania) – uniwersalny język formalny wykorzystywany do modelowania systemów (różnego rodzaju). Służy do modelowania dziedziny problemu (opisywania fragmentu rzeczywistości). UML jest głównie używany wraz z jego reprezentacją graficzną – elementom przypisane są symbole, które wiązane są ze sobą na diagramach. UML był zaprojektowany, by definiować, wizualizować, konstruować i dokumentować systemy kładące nacisk na oprogramowanie, ale nie jest on ograniczony do modelowania oprogramowania. Jest używany także do modelowania procesów biznesowych, inżynierii systemów i reprezentowania struktur organizacyjnych. Źródło: Wikipedia Pytania 1.Scharakteryzuj ogólnie język UML.

15 W PROWADZENIE Charakterystyka UML – metodyka obiektowa. I tylko obiektowa. Zunifikowany – powstał z wielu Modelowania – służy do tworzenia modeli Język – bo służy do komunikowania się Obejmuje: Zbiór symboli graficznych gramatykę: sposób poprawnego łączenia i zestawiania ze sobą tych symboli. …co ciekawe – istnieje także metamodel tego języka, który opisuje specyfikację języka w języku…UML

16 W PROWADZENIE Diagramy W wersji 2.2 wyróżnia się 14 diagramów głównych oraz 3 abstrakcyjne. Diagramy UML podzielone są na dwie klasy: strukturalne (opisują strukturę) i behawioralne (zachowanie). Źródło: Wikipedia

17 W PROWADZENIE Diagramy W praktyce rzadko kiedy trzeba opracowywać wszystkie diagramy i w większości przypadków korzysta się z mniej niż połowy wyżej wymienionych. Nie powinno modelować się tylko dla samego modelowania, dlatego nie zawsze wszystkie rodzaje są potrzebne. Projektując system informatyczny, rozpoczyna się przeważnie od tworzenia diagramów w następującej kolejności: Przypadków użycia Sekwencji Klas Aktywności Są to najczęściej wykorzystywane diagramy. Pozostałe bywają pomijane, zwłaszcza przy budowaniu niedużych systemów informatycznych. Źródło: Wikipedia Pytania 1.Jakie diagramy stosowane są najczęściej w modelowaniu systemów informatycznych?

18 W PROWADZENIE Narzędzia Narzędzie UML można podzielić na dwie podstawowe grupy: -Narzędzia wolne (darmowe) -Narzędzie komercyjne Wszystkie komercyjne (i wybrane darmowe) programy oferują możliwość generowania kodu programu na podstawie diagramów UML, a także generowanie diagramów na podstawie kodu (Reverse Engineering – inżynieria zwrotna). Szeroki przegląd narzędzi prezentowany jest m.in. na stronach Wikipedii: Stosowane w ramach zajęć: StarUML (popularny, lecz nierozwijany) -> ArgoUML(alternatywa, ciągle rozwijana) -> Visual Paradigm for UML ->

19 W PROWADZENIE Zastosowanie UML Zakres stosowania UML 1.Szkice projektowe mało formalne selektywne dyskusja o koncepcji rysujemy na tablicy, a nawet na serwetce szkicowanie dla lepszego zrozumienia podczas nauki lub analizy istniejącego systemu, kodu itp 2.Zastosowanie projektowe pełna specyfikacja a potem implementacja systemu z podziałem prac (projektanci – wykonawcy) całość lub fragment przedsięwzięcia można tworzyć projekt od nowa lub dokumentować istniejące projekty używa się specjalizowanych narzędzi 3.Programowanie 1.programowanie w UML -> wykonywalne programy (MDA – model driven architecture) 2.PIM – platform independent model -> PSM – platform specified model 3.Sprawdza się raczej tylko w teorii 4.Executable UML

20 W PROWADZENIE Zastosowanie UML Dlaczego warto stosować UML: 1.Oprogramowanie jest profesjonalnie zaprojektowane i udokumentowane, przed rozpoczęciem etapu kodowania. Dokładnie wiadomo co system będzie robił 2.Większa efektywność i niższy koszt implementacji; 3.Błędy logiczne projektu wychwycone na etapie modelu; 4.Projekt systemu narzuca implementację, a nie odwrotnie (co się często zdarza); 5.Zmiany w istniejącym systemie wprowadzane są łatwiej, gdy istnieje odpowiednia dokumentacja UML; 6.Zarządzanie implementacją (zmiana organizacji wśród programistów) jest łatwiejsze, gdy istnieje dokumentacja UML; 7.Dokumentacja UML ułatwia komunikację, zarówno na poziomie wykonawca-klient, jak i w ramach struktury wykonawcy. Źródło: Wikipedia

21 W PROWADZENIE Inżynieria programowania Proces wytwarzania oprogramowanie – kontekst dla UML Ciąg uporządkowanych (zaplanowanych) czynności, wytwórczy. Analiza Projektowanie Implementacja Testy Wdrażanie Metody (metodologie, modele) procesów wytwórczych oprogramowania: Kaskadowy Iteracyjny Zwinny (lekki) Źródło: Wikipedia

22 W PROWADZENIE Inżynieria programowania Kaskadowy – projekt podzielony na kolejne czynności Zalety: Uporządkowane działanie Brak niespodzianek (według planu) Określony harmonogram Wady: Mała elastyczność Ograniczony kontakt z klientem (wymagania zostały określone na samym początku) Dawniej etapy te następowały ściśle po kolei (waterfall method). Współczesne podejście do inżynierii programowania zakłada interakcję pomiędzy etapami, powracając na etapie kodowania ponownie do działań związanych z projektowanie. Źródło: Wikipedia

23 W PROWADZENIE Inżynieria programowania Proces iteracyjny (przyrostowy, spiralny, ewolucyjny) – podobne czynności jak w kaskadowym, ale w pierwszej kolejności otrzymujemy ograniczoną funkcjonalność, którą następnie rozwijamy. Zalety częste kontakty z klientem (skrócenie przerw w porównaniu z modelem kaskadowym) Wady Duże zaangażowanie klienta (jest to też zaleta) Potrzeba częsty zmian, także w istniejącym kodzie Źródło: Wikipedia

24 W PROWADZENIE Inżynieria programowania Proces zwinny (lekki) Najważniejsze są ludzie i ich kompetencje. Mniej ważne są narzędzia i metody. Krótkie iteracje. UML szkicowy. Extreem programing Scrum Feature Driven Development Dynamic System Development Method Manifest Zwinnego Tworzenia Oprogramowania (->http://agilemanifesto.org/iso/pl/) Wytwarzając oprogramowanie i pomagając innym w tym zakresie, odkrywamy lepsze sposoby wykonywania tej pracy. W wyniku tych doświadczeń przedkładamy: Ludzi i interakcje ponad procesy i narzędzia. Działające oprogramowanie ponad obszerną dokumentację. Współpracę z klientem ponad formalne ustalenia. Reagowanie na zmiany ponad podążanie za planem. Doceniamy to, co wymieniono po prawej stronie, jednak bardziej cenimy to, co po lewej. Źródło: Wikipedia

25 W PROWADZENIE Inżynieria programowania Źródło: Wikipedia RUP – rational unified proces Szkielet procesu, szwedzki stół Przypadki – zbiór ogólnych przypadków, do których można się dostosować OpenUP – otwarty proces podobny do RUP

26 W PROWADZENIE Inżynieria programowania Źródło: Wikipedia Miejsce UML: UML dostarcza narzędzi do czynności związanych z procesem tworzenia oprogramowania, niezależnie od metodologii, np.: Analiza wymagań: diagram przypadków użycia na etapie analizy wymagań, diagramów czynności rozwijające przypadków użycia (co się dzieje). Diagram stanów. Dokumentowanie, np. dla projektowania zwinnego dokumentacja może być tworzona po fakcie Reverse engeeniering – tworzenie diagramów na podstawie kodu.

27 W PROWADZENIE Podstawy notacji Źródło: Wikipedia Notatka

28 W PROWADZENIE Podstawy notacji Źródło: Wikipedia Stereotyp - mechanizm rozszerzeń, który może być stosowany do dowolnego elementu UML. Przedstawianie stereotypu > Czasami do stereotypów stosuje się ikony:

29 P ODSUMOWANIE Podsumowanie

30 W PROWADZENIE Z dyskusji na forum UML – przykładowe wypowiedzi… Czy diagramy UML (ogólniej - dokumentacja) muszą być zrozumiałe ? Jeśli tak - czym jest owa "zrozumiałość" i jak ją mierzyć ? Czy istnieją "współczynniki zrozumiałości" na podstawie których można stwierdzić, że dany zestaw diagramów jest "zrozumiały" ? Jeśli diagram zarówno dla autora tego diagramu, jak i odbiorcy / adresata (czytającego ten diagram) oznaczają to samo, to można chyba powiedzieć, że jest on dla tych dwóch osób zrozumiały :-) Matematyk pisze furę wzorów w dwóch celach: - aby przekazać innemu matematykowi swój pomysł - aby móc z duża pewnością powiedzieć laikowi, że prawdę jest ostateczny wniosek, który wyciągnął w pierwszym przypadku obaj musza się z równą biegłością posługiwać językiem matematyki, w drugim nie koniecznie. Jeżeli UML będzie językiem komunikacji pomiędzy projektantem a wykonawcą to obaj muszą go znać równie dobrze. W analizie systemowej pośrednim etapem są modele służące do testowania wariantów i hipotez a końcowym produktem analizy: rekomendacje (nawet proza z zaleceniami). Adresat musi zrozumieć rekomendacje, modeli - tu już nie musi... Tak wiec UML jest dla adresata zrozumiały bardzo dobrze albo nie jest mu potrzebny. Nie wyobrażam sobie sytuacji w której ktoś tylko "częściowo" zrozumiał np. projekt... a jak sobie wyobrażę to ciarki przechodzą :) Ważne rozróżnienie: - rozumienie języka jakim jest UML - rozumienie projektu osobiście przychylam się tezy, że programista nie musi rozumieć istoty projektu ale musi rozumieć treść "zamówienia". Musi rozumieć UML żeby implementować jakaś hierarchę klas ale faktycznie już nie musi rozumieć dlaczego ktoś zaprojektował właśnie taką. Jednak chyba gdzieś prawda leży po środku: murarz nie musi rozumieć tego dlaczego ja chcę mieć piec na środku kuchni ale musi zrozumieć projekt, rysunki, tej kuchni żeby to wykonać. Źródło:

31 W PROWADZENIE Z dyskusji na forum UML – przykładowe wypowiedzi… Wartościowe cytaty z forum: To że UML dopuszcza pewne konstrukcje nie znaczy ze wnoszą one coś do projektu i należy je stosować. Źródło:

32 P RZYKŁADY Z FORUM Przykłady, problemy Dziedziną problemu jest internetowa aplikacja do tworzenia galerii zdjęć. Aplikacja ta przeznaczona jest dla szerokiego grona odbiorców, którzy chcę publikować swoje cyfrowe fotografie w Internecie. Aplikacja ma umożliwiać jej użytkownikom rejestrację i logowanie aby można było w pełni korzystać z jej funkcjonalności. Z aplikacji będą korzystać trzy grupy użytkowników. Będą to użytkownicy nie zarejestrowani, zarejestrowani i administratorzy aplikacji. Do przeglądania zawartości galerii zdjęć będą mogli mieć dostęp użytkownicy nie zarejestrowani (…). Uwagi ekspertów: Przypadek użycia to czasownik (wyrażenie odczasownikowe) mówiący o celu czynności (kontaktu z systemem). Jak rozumieć to, że Autor jest komponentem Administratora? Źródło:


Pobierz ppt "1. WPROWADZENIE dr inż. Sławomir Nowak PROJEKTOWANIE W SYSTEMACH UML."

Podobne prezentacje


Reklamy Google