Zalety projektowania obiektowego

Podobne dokumenty
Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

UML w Visual Studio. Michał Ciećwierz

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Inżynieria oprogramowania II

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Inżynieria oprogramowania

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Świat rzeczywisty i jego model

Diagramy klas. dr Jarosław Skaruz

Wymiar poziomy: oś na której umieszczono instancje klasyfikatorów biorące udział w interakcji.

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Podstawy programowania III WYKŁAD 4

Podstawy Programowania Obiektowego

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Charakterystyka oprogramowania obiektowego

Projektowanie logiki aplikacji

Język UML w modelowaniu systemów informatycznych

NIFIED M L ODELLING ANGUAGE. Diagramy czynności

KatMPBSoft - 1 -

Wykład 1 Inżynieria Oprogramowania

UML cz. III. UML cz. III 1/36

Modelowanie i Programowanie Obiektowe

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Faza analizy (modelowania) Faza projektowania

Podstawy inżynierii oprogramowania

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Programowanie obiektowe - 1.

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Paweł Kurzawa, Delfina Kongo

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Diagramy klas. WYKŁAD Piotr Ciskowski

Zaawansowane programowanie obiektowe - wykład 5

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Diagramy czynności Na podstawie UML 2.0 Tutorial

Programowanie obiektowe

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Wymagania klienta mogą być opisane na różnych poziomach abstrakcji: Podział wymagań: Wymagania funkcjonalne Wymagania niefunkcjonalne

Diagramy przypadków użycia

Michał Adamczyk. Język UML

Język UML w modelowaniu systemów informatycznych

Źródło: S. Wrycza, B. Marcinkowski, K. Wyrzykowski Język UML 2.0 w modelowaniu systemów informatycznych Helion DIAGRAMY INTERAKCJI

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Modelowanie danych, projektowanie systemu informatycznego

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Diagramy sekwencji. wymienianych między nimi

System Kontroli Bazy Danych Topograficznych (SKBDT) zawód kartografa?

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

UML cz. II. UML cz. II 1/38

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Spis treúci. 1. Wprowadzenie... 13

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

Technologie obiektowe

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

Rysunek 1: Przykłady graficznej prezentacji klas.

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Modelowanie obiektowe

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Tom 6 Opis oprogramowania

Inżynieria oprogramowania. Wykład 7 Inżynieria wymagań: punkty widzenia, scenariusze, przypadki użycia

Bazy danych 2. Wykład 1

Programowanie obiektowe

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Modelowanie obiektowe - Ćw. 3.

Układy VLSI Bramki 1.0

Ćwiczenie 1. Modelowanie prostego procesu

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla nauczyciela

Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

TECHNOLOGIE OBIEKTOWE. Wykład 3

Podstawy programowania

PODSYSTEM RADIODOSTĘPU MOBILNEGO ZINTEGROWANEGO WĘZŁA ŁĄCZNOŚCI TURKUS

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Metodyki i techniki programowania

LEKCJA TEMAT: Zasada działania komputera.

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Procesowa specyfikacja systemów IT

Język programowania. Andrzej Bobyk

Industrial Ethernet Dokumentacja techniczna połączenia Sterowniki S7-400(300) firmy Siemens - System PRO-2000 firmy MikroB

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Język UML w modelowaniu systemów informatycznych

Diagram Przepływu Danych - podstawowe bloki składowe i reguły konstrukcji

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Specyfikacja implementacyjna aplikacji serwerowej

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Transkrypt:

Zalety projektowania obiektowego Łatwe zarządzanie Możliwość powtórnego użycia klas obiektów projektowanie/programowanie komponentowe W wielu przypadkach występuje stosunkowo proste mapowanie pomiędzy elementami rzeczywistego środowiska systemu a obiektami Wsparcie ze strony narzędzi programistycznych oraz istnienie standardu notacji obiektowej (UML)

Obiekty - komunikacja Koncepcyjnie obiekty komunikują się poprzez przesyłanie wiadomości/komunikatów gdzie nazwa wiadomości określa usługę do wykonania. Wiadomość zawiera również informacje niezbędne do wykonania operacji oraz posiada możliwość zwracania wartości będących wynikiem wykonania operacji W praktyce przekazywanie wiadomości realizowne jest jako wywołanie metod zdefiniowanych w klasie obiektu: Nazwa metody == nazwa wiadomości Informacja == wartości paremetrów metody Wynik operacji == wartość zwracana przez metodę

Proces tworzenia modelu obiektowego Identyfikacja kontekstu (środowiska) pracy systemu Określenie przypadków (modeli) wykorzystania systemu Budowa obiektowego modelu architektury systemu: Identyfikacja klas i obiektów Identyfikacja związków klas i obiektów Identyfikacja atrybutów klas Identyfikacja i definiowanie metod i komunikatów interfejsy obiektów

Przykład - system gromadzenia informacji pogodowych - opis System gormadzenia informacji pogodowych (weather forecast system) służy do automatycznej generacji map pogodowych na podstawie danych gromadzonych przez zdalne stacje pogodowe (weather station) i inne źródła informacji pogodowych takie jak satelity i balony obserwcyjne. Każda stacja pogodowa przesyła zgromadzone dane do centralnego komputera w odpowiedzi na jego zapytanie. Komputer centralny weryfikuje otrzymane dane oraz integruje wszystkie dane przesłane z różnych źródeł. Zgromadzone w ten sposób dane przechowywane są w archiwum danych. Na podstwie zapisanych informacji i bazy map system generuje lokalne mapy pogodowe dla różnych obszarów. Stworzone mapy mogą być drukowane na ploterze lub wyświetlane w różnych formatach.

Opis stacji pogodowej (weather station) Stacja pogodowa (weather station) jest zbiorem przyrządów pomiarowych kontrolowanych za pomocą specjalizowanego oprogramowania. Przyrządy pomiarowe gromadzą dane pogodowe (np. temperaturę powietrza, wilgotność itp.), które następnie zostają poddane wstępnej analizie i w odpowiedzi na żądanie zostają przesłane do centralnego komputera. W skład przyrządów pomiarowych wchodzą termometry mierzące temperaturę powietrza i ziemi, prędkość wiatru, ciśnienie oraz ilość opadów. Dane z poszczególnych przyrządów odczytywane są w pięciominutowych odstępach. W momencie gdy zostanie odebrane żądanie przesyłu danych, oprogramowanie stacji pogodowej przetwarza zgromadzone dane i przesyła wyniki przetwarzania do komputera centralnego.

Identyfikacja kontekstu pracy systemu Kontekst pracy systemu określa poszczególne elementy wchodzące w skład systemu lub stanowiące jego otoczenie, z którym system wchodzi w interakcję

Określenie przypadków wykorzystania systemu przykład stacji pogodowej Dynamiczny model określający sposób interakcji systemu z poszczególnymi elementami otaczającego środowiska

Opis przypadku użycia (ang. use-case) System: stacja pogodowa (weather station) Use-case: send report Aktorzy: podsystem data collection Przetwarzanie: Zdarzenie: Odpowiedź: Komentarz: w odpowiedzi na żądanie stacja pogodowa przesyła dane zgromadzone przez poszczególne przyrządy pomiarowe w ostatnim okresie gromadzenia danych. Przesyłane dane dotyczą minimalnej, maksymalnej i średniej temperatury powietrza i ziemi, minimalnego, maksymalnego i średniego ciśnienia powietrza, minimalnej, maksymalnej i średniej prędkości wiatru, całkowitej ilości opadów podsystem data collection zestawia modemowe połączenie do stacji pogodowej i przesyła żądanie transmisji zgromadzonych danych zgromadzone w ostatnim okresie dane zostają przesłane do podsystemu data collection podystem data collection wysyła żądania przesłania raportów do stacji pogodowych w odstępach nie krótszych niż 10 minut

Budowa obiektowego modelu architektury systemu Identyfikacja klas i obiektów Identyfikacja związków klas i obiektów Identyfikacja metod i komunikatów Identyfikacja i definiowanie atrybutów

Logiczny model architektury systemu dla stacji pogodowej

Identyfikacja klas i obiektów metoda klasyczna (1/2) Poszukiwanie klas obiektów polegające na obserwacji, klas i obiektów w innych systemach. Na podstawie analizy listy typowych klas określa się klasy obiektów w analizowanym systemie. Do typowych klas można zaliczyć: przedmiot namacalne (np.: samochód, czujnik) role pełnione przez osoby (np.: pracownik, student, wykładowca) zdarzenia, o których system przechowuje informacje (np.: zamówienie, dostawa) interakcje pomiędzy osobami, systemami, o których system przechowuje informacje (np.: spotkanie, konferencja)

Identyfikacja klas i obiektów metoda klasyczna (2/2) lokalizacje miejsca przeznaczone dla ludzi lub przedmiotów (np.: magazyn, mieszkanie) grupy przedmiotów namacalnych (np.: czujniki, studenci) organizacje (np.: firma, wydział, uczelnia) koncepcje (np.: miara jakości) dokumenty (np.: faktura, prawo jazdy) interfejsy dla sytemów zewnętrznych lub urządzeń Należy zwrócić uwagę, że pewne elementy mogą posiadać dwojakie znaczenie w zależności od interpretacji np.: pracownik może oznaczać klasę opisującą jeden z elementów systemu (np.: w systemie finansowo-księgowym) jak również system zewnętrzny użytkownika systemu

Identyfikacja klas i obiektów metoda analizy opisu w języku naturalnym Na podstawie sporządzonego w fazie analizy wymagań opisu systemu określa się klasy obiektów oraz związane z nimi operacje. W opisie wyróżnia się rzeczowniki (wraz z opisującymi je przymiotnikami) oraz czasowniki. Rzeczowniki traktuje sie jako potencjalne klasy, obiekty lub atrybuty. Czasowniki to potencjalne metody lub związki pomiędzy klasami. Ze względu na niejednoznaczność i wieloznaczność języka naturalnego może powstać wiele czasami niepotrzebnych klas obiektów lub łączących je releacji.

Identyfikacja klas i obiektów metoda analizy funkcji (przypadków użycia) Analizie poddawane są kolejne use-case y stworzone w fazie analizy wymagań. Na podstawie opisu skojarzonego z każdym usecase m tworzony jest scenariusz interakcji obiektów jednocześnie wprowadzając niezbędne klasy i metody.

Weryfikacja klas i obiektów (1/2) Weryfikując konieczność wprowadzenia danej klasy należy wziąć pod uwagę następujące czynniki: Brak atrybutów i metod z reguły oznacza to, że klasa znajduje się poza zakresem odpowiedzialności systemu Nieliczne pojedyńcze atrybuty i metody istnieje możliwość, że pola i metody mogą zostać umieszczone w innej klasie

Weryfikacja klas i obiektów (1/2) Tylko jeden obiekt danej klasy w pewnych przypadkach może to oznaczać zbyt rozbudowaną hierachię dziedziczenia. Przykładowo dobrą klasą jest samochód ze specjalizacją np.: samochód ciężarowy natomiast błędną specjalizacją jest np.: samochód studenta X Brak związków z innymi klasami z reguły oznacza to, że klasa znajduje się poza zakresem odpowiedzialności systemu

Identyfikacja atrybutów klas (1/3) Identyfikując pola klas należy spróbować odpowiedzieć na następujące pytania: Jakie informacje potrzebne są do opisu klasy w ramach dziedziny problemu (np. klasa student wymaga atrybutów określających imię, nazwisko, nr albumu itp.) Jakie dane będą potrzebne obiektom danej klasy do realizacji zadań (np.: klasa określająca grupę studentów musi posiadać kolekcję przechowującą np.: identyfikatory studentów należących do danej grupy)

Identyfikacja atrybutów klas (2/3) Jakie pola należy wprowadzić, aby opisać stany w jakich mogą znajdować się obiekty danej klasy (np.: klasa opisująca wiadomości email może posiadać atrybut określający stan jako wysłany, odebrany, zwrócony) Na podstawie opisu w języku naturalnym można poprzez analizę występowania rzeczowników określić podstawowe atrybuty klas Interfejs GUI zaakceptowany przez użytkownika może dostarczyć bardziej szczegółowych informacji na temat wprowadzanych, edytowanych i prezentowanych danych, które powinny być przechowywane jako atrybuty odpowiednich klas

Identyfikacja atrybutów klas (3/3) przykład błędów w umieszczaniu atrybutów w hierachii klas Atrybut umieszczony zbyt wysoko w hierachii gdyż nie każdy student pracuje Atrybuty umieszczony zbyt nisko w hierachii przez co niepotrzebnie powtarzają się w definicji klas pochodnych pomimo tego, że określają tę samą właściwość

Identyfikacja metod i komunikatów klas Metody klas możemy zgrubnie podzielić na dwie kategorie: Algorytmicznie proste Algorytmicznie złożone

Identyfikacja metod i komunikatów klas Metody algorytmicznie proste: Konstruktory/destruktory oraz metody inicjalizujące stan obiektów klasy Metody służące do pobierania wartości publicznych atrybutów klasy Metody służące do ustawiania wartości atrybutów klas Metody służące do implementacji związków pomiędzy klasami (np.: agregacji)

Identyfikacja metod i komunikatów klas Metody algorytmicznie złożone: Metody służące do realizacji obliczeń Metody służące do monitorowania pracy systemów i urządzeń zewnętrznych... (wszystkie inne nie będące metodami prostymi)

Identyfikacja metod i komunikatów klas analiza przypadków użycia (1/3) Definiowanie metod klas poprzez analizę sposobu realizacji funkcji systemu wynikających z analizy poszczególnych use-case ów Scenariusz przepływu komunikatów (wywołań metod) między obiektami systemu tworzony jest według następującego schematu: Wybranie jednego z komunikatów otrzymywanych przez system (zwykle jeden z use-caseów)

Identyfikacja metod i komunikatów klas analiza przypadków użycia (2/3) Określenie klasy, która otrzyma komunikat (jeżeli klasa jeszcze nie istnieje należy ją stworzyć) Wybranie metody, która będzie obsługiwała komunikat lub stworzenie nowej Określenie czy do realizacji funkcji wystarczy jedna metoda. Jeżeli metoda nie jest elementarna należy określić jakie obiekty i odpowiednie ich metody będą brały udział w jej realizacji (krok ten może zostać wykonany w kolejnej iteracji)

Identyfikacja metod i komunikatów klas analiza przypadków użycia (3/3)

Diagramy interakcji (ang. interaction diagrams) Diagramy interakcji: Sequence diagram Collaboration diagram Diagramy interakcji należą do grupy pięciu diagramów wykorzytywanych w UML do modelowania dynamicznych aspektów systemów Każdy diagram interakcji prezentuje dynamiczne zależności pomiędzy obiektami wchodzącymi w skład systemu, które wzjemnie wymieniając komunikaty (ang. message) współdziałają w realizacji określonej funkcjonalności systemu.

Diagramy interakcji - komunikaty Komunikat stanowi jedyną metodę wymiany informacji pomiędzy obiektami Komunikat wysłany do obiektu pewnej klasy oznacza żądanie wykonania jednej z metod tej klasy Komunikat może być wysłany przez system zewnętrzny lub przez obiekt jednej z klas systemu Wysłanie komunikatu może wiązać się z przekazaniem pewnych danych wejściowych do wywoływanej metody oraz z pobraniem danych wyjściowych zwracanych przez metodę Nazwa komunikatu jest nazwą wywoływanej metody

Diagramy typu sequence (1/5) Diagramy typu sequence prezentują przepływ komunikatów pomiędzy wspołdziałającymi obiektami zwracając uwagę na kolejność komunikatów w czasie Zazwyczaj stosowane są do opisywania szczegółów zachowania obiektów systemu i systemów zewnętrznych w ramach pojedyńczych use case ów Diagramy sequence zawierają następujące elementy: Obiekty Komunikaty

Diagramy typu sequence (2/5) Nazwa obiektu (instancji klasy) Linia życia obiektu Nazwa klasy obiektu

Diagramy typu sequence (3/5) Obiekty Komunikat tworzący nową instancję klasy Czas Przesłanie komunikatu - synchroniczne wywołanie metody Powrót z wykonania metody

Diagramy typu sequence (4/5) Rodzaje komuniaktów: Synchroniczne Asynchroniczne Tworzące nowe instancje klas Usuwające istniejące instancje klas Powroty z wywołania metod

Diagramy typu sequence (5/5) Komunikat asynchroniczny Usunięcie instancji

Diagram sequence opisany skryptem Użytkownik żąda wyświetlenia diagramu Wyświetlane są wszystkie figury, z których składa się diagram Użytkownik może wydać kolejne polecenie po zakończeniu realizacji wyświetlania diagramu Skrypt

Podstawowe błędy popełniane w diagramach typu sequence Symbol komunikatu błędnie użyty do zobrazowania przepływu danych

Podstawowe błędy popełniane w diagramach typu sequence Symbol komunikatu błędnie użyty do zobrazowania zdarzenia