Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

Podobne dokumenty
Zalety projektowania obiektowego

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

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

UML w Visual Studio. Michał Ciećwierz

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

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

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

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

Podstawy programowania III WYKŁAD 4

Projektowanie logiki aplikacji

Podstawy Programowania Obiektowego

Diagramy klas. dr Jarosław Skaruz

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

Paweł Kurzawa, Delfina Kongo

Świat rzeczywisty i jego model

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

Inżynieria oprogramowania

Inżynieria oprogramowania II

Programowanie obiektowe - 1.

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

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

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

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

Technologie i usługi internetowe cz. 2

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

Zaawansowane programowanie obiektowe - wykład 5

Wykład 1 Inżynieria Oprogramowania

Programowanie obiektowe

NIFIED M L ODELLING ANGUAGE. Diagramy czynności

Diagramy klas. WYKŁAD Piotr Ciskowski

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

KatMPBSoft - 1 -

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

Język UML w modelowaniu systemów informatycznych

Michał Adamczyk. Język UML

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

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

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Modelowanie danych, projektowanie systemu informatycznego

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

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

Język UML w modelowaniu systemów informatycznych

Faza analizy (modelowania) Faza projektowania

Modelowanie i Programowanie Obiektowe

Technologie obiektowe

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

Język UML w modelowaniu systemów informatycznych

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

Podstawy projektowania systemów komputerowych

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Wprowadzenie do systemów informacyjnych

Diagramy czynności Na podstawie UML 2.0 Tutorial

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

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

Podstawy inżynierii oprogramowania

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

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

Programowanie obiektowe

Charakterystyka oprogramowania obiektowego

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

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

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

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

Unified Modeling Language

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

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

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

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

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

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

Modelowanie obiektowe

Diagramy sekwencji. wymienianych między nimi

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

Bazy danych 2. Wykład 1

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

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

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

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

TECHNOLOGIE OBIEKTOWE. Wykład 3

LEKCJA TEMAT: Zasada działania komputera.

Proces informacyjny. Janusz Górczyński

problem w określonym kontekście siły istotę jego rozwiązania

Diagramy przypadków użycia

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

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

MODELOWANIE OBIEKTOWE

Programowanie obiektowe

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

1 Projektowanie systemu informatycznego

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

Rysunek 1: Przykłady graficznej prezentacji klas.

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Metodyki i techniki programowania

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Język UML w modelowaniu systemów informatycznych

Transkrypt:

Zagadnienia Wprowadzenie pojęcia obiektu i klasy obiektu Reprezentacja systemu jako zbioru wzajemnie oddziaływujących obiektów Poszczególne etapy procesu tworzenia obiektowego projektu systemu

Charakterystyka projektowania obiektowego (Object Oriented Design) (1/2) Obiekty stanowią pewną abstrakcję rzeczywistości Obiekty same zarządzają własnym stanem Obiekty są niezależne, enkapsulują swój stan i dane które reprezentują Funkcjonalność systemu zbudowanego w oparciu o obiekty wyrażona jest jako zbiór realizowanych przez nie usług

Charakterystyka projektowania obiektowego (2/2) Zastosowanie obiektowego modelu eliminuje występowanie w systemie współdzielonych danych Obiekty komunikują się z wykorzystaniem mechanizmów przekazywania wiadomości Usługi oferowane przez obiekty mogą być wykonywane sekwencyjnie lub równolegle

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 i klasy obiektów Obiekty (ang. object) stanowią w oprogramowaniu reprezentację elementów (rzeczy, przedmiotów, zjawisk itp.) pochodzących z rzeczywistego środowiska pracy oprogramowania Klasy obiektów (ang. object class) są wzorcami na podstawie, których tworzone są obiekty (instancje klas) Klasy obiektów mogą dziedziczyć właściwości (atrybuty, operacje) z innych klas Klasy obiektów mogą pozostawać w różnych związkach (relacjach np. agregacji) z innymi klasami obiektów

Obiekty Obiekt jest elementem, który posiada stan i zdefiniowany zestaw operacji, które mogą na nim operować i prowadzić do zmiany jego stanu. Stan obiektu reprezentowany jest jako zbiór wartości jego atrybutów. Zestaw opercji obiektu udostępnia usługi jakie mogą zostać wykonane przez obiekt na rzecz innych obiektów Obiekty tworzone są z wykorzystaniem definicji obiektów zapisanej w postaci klasy obiektów. Klasa obiektu zawiera deklarację wszystkich atrybutów i operacji jakie powinny być związane z każdym obiektem (instancją) tej klasy

Klasa obiektu w notacji UML Nazwa klasy Atrybuty Metody Format zapisu atrybutów: widoczność nazwa-atrybutu: typ = wartość domyślna Fomat zapisu metod: widoczność nazwa-metody(lista parametrów): typ zwracanej wartości

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: Nieobecność 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 użytkownika 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 casó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