Projektowanie Systemów Informatycznych Wstęp do Metod Obiektowych podejście procesowe dr inż. Janusz Jabłoński e-mail j.jablonski@wmie.uz.zgora.pl
Narzędzia implementacji a metodyki projektowania SI Koncepcja (model) każdego systemu powstaje w umyśle człowieka Języki proceduralne Języki obiektowe (programista - projektantem) (programista projektantem?) metodyki strukturalne metodyki obiektowe Systemy predykatywne ekspertowe Oparte na takich koncepcjach jak: abstrakcja (klasyfikacja), enkapsulacja (modularność) polimorfizm (wielopostaciowość), dziedziczenie (hierarchia), czas Projektowanie Systemów Informatycznych 1
Zamierzenia i cele Model przedsiębiorstwa metodyki strukturalne realizowane przez Funkcje (procedury) Zdarzenia Zdarzenia przetwarzanie Informacje (Dane) postęp mierzalny przez Projektowanie Systemów Informatycznych
Abstrakcja > Koncepcje > urzeczywistnienie > obiekty Naturalne postrzeganie Świata, jako OBIEKTY i powiązania pomiędzy nimi Koncepcja 1 Koncepcja 2 Koncepcja 3 Elementy w świecie rzeczywistym Koncepcje to pojęcia abstrakcyjne będące intuicją na podstawie których staramy się sklasyfikować postrzegane otoczenie (zjawiska), dotyczą zjawisk istniejących lub nie mogą mieć róŝne reprezentacje lub jeszcze nie natomiast urzeczywistnienia koncepcji to jej reprezentacje, które nazywane są obiektami. Projektowanie Systemów Informatycznych 2
Koncepcje, obiekty Zależności dźwięk samolotu szum drzew zapach kwiatów Naturalne powiązania (zależności) pomiędzy obiektami Koncepcja Obiekt Koncepcja samolot Obiekt Boeing 747 Mig-29 Mi- 19 Odrzutowiec Urządzenie latające Produkt Amerykański F-116 Curtiss P-40 Tomahawk Ford Mustang Wehikuł czasu XYZ-Transport Nie może istnieć obiekt (XYZ_Transport) nie mający powiązania z żadną koncepcją Każdy postrzegany obiekt, którego istnienia jesteśmy świadomi musi być kwalifikowany (np. jako element nie znanego przeznaczenia), czyli musi być powiązany z jakąś koncepcją Projektowanie Systemów Informatycznych 3
Funkcjonalność - Zaprogramowane działanie - Metody Pilot Odbiornik Ŝądania Pozycjoner obiekty Ekran Napęd Regulator metody Komunikacja użytkownika z obiektem odbywa się poprzez wysyłanie żądania śądania włącz odbiornik ustaw czas zmień kanał argumenty : 18 30 : TVP1 Do danych nie można dostać się bezpośrednio, (nagrywanie, odtwarzanie lub wyjęcie kasety z magnetowidu) w tym celu należy wywołać odpowiednią metodę (wybrać odpowiednią funkcję) Obiekt chroni dane oraz mechanizmy na nich operujące przed niepowołanym dostępem analogia z Obudową urządzenia Projektowanie Systemów Informatycznych 4
Rozbudowa dziedziczenie cech Chcąc zmienić funkcjonalność obiektu nie muszę rozpoczynać projektu od podstaw A1 A2 An M1 M2 Mn Strojenie (automatyczne) Pola odziedziczone wraz z metodami (cechami) A1 A2 An As M1 M2 Mn DM wspomaganie (kierownicy) Strojenie (ręczne) Wykorzystując dziedziczenie moŝna nadawać nowe cechy obiektom lub zmieniać cechy juŝ istniejące Projektowanie Systemów Informatycznych 5
dziedziczenie generalizacja, specjalizacja Hierarchia klas przedstawia proces, etapy tworzenia, lub przechodzenie od klas prostych do złożonych albo wyspecjalizowanych produkt generalizacja Produkt Urządzenie do latania Rejestrator dźwięku Rejestrator obrazu specjalizacja Odrzutowiec Magnetofon podtypy Magnetowid Aparat Fotograficzny Wykorzystując dziedziczenie moŝna nadawać nowe cechy obiektom lub zmieniać cechy juŝ istniejące Projektowanie Systemów Informatycznych 6
Polimorfizm - wielopostaciowość Odtwarzacz doprzodu Magnetowid doprzodu doprzodu Polimorfizm - wielopostaciowość która w informatyce umożliwia wirtualizację operacji; dynamiczne (późne) wiązanie nazwy operacji z wieloma metodami w różnych klasach pozostających w relacji dziedziczenia. Klasa, zbiór obiektów, które mają wspólne atrybuty i metody class Bazowa { public void msg(){ Metoda System.out.println( Metoda klasy bazowej"); (doprzodu) } } class Wywiedziona extends Bazowa { public void msg(){ System.out.println( Metoda klasy wywiedzionej"); Metoda } (doprzodu) } Tak więc definicja metody o danej sygnaturze w superklasie może być przesłonięta przez definicję metody o tej samej sygnaturze w podklasie. Możliwe jest również przeciążanie operatorów Polimorfizm ad hoc (polimorfizm ad hoc) przeciążenie koercja Polimorfiym uniwersalny polimorf. parametryczny polimorf. inkluzyjny Projektowanie Systemów Informatycznych 7
Kapsułkowanie Hermetyzacja (ang. encapsulation) Zamknięcie bytu programistycznego (obiektu, modułu, typu danych) w "kapsule" o dobrze zdefiniowanych granicach. Obiekt komunikat f(1) f(2) f(i) dane metody Skorupka reprezentuje sygnaturę publicznie widzianych operacji. Interfejs skorupki ukrywa implementację funkcji i struktur danych Właściwości obiektów: Atrybuty parametry, dane Metody - procedury, funkcje lub usługi Zasady widoczności - określają zasięg, w którym obiekt jest widzialny: public, private, protect (publiczne, prywatne, chronione) Problem powielania w przypadku gdy funkcje wielu obiektów korzystają z tych samych danych Hermetyzacja pozwala ukryć szczegóły, które nie posiadają zasadniczego znaczenia. Na zewnątrz udostępniane są tylko niezbędne metody działania na obiekcie. Projektowanie Systemów Informatycznych 8
Podejście procesowe Obraz zewnętrzny traktuje przedsiębiorstwo jak czarną skrzynkę, o zdefiniowanej roli i miejscu w otaczającym nas świecie Wypełnienie Celu i misji organizacji związane są z jakością i budową zachodzących w niej procesów (organizacją, zarządzaniem) Struktura wewnętrzna budowa organizacji pozwalająca na pełnienie określonej roli w środowisku Proces zbiór działań (czynności) zmierzających do osiągnięcia konkretnego efektu 1. Procesy, dostarczające określonej wartości klientom spoza firmy zewnętrzne procesy biznesowe) 2. Procesy, o zasięgu wewnętrznym i służące przede wszystkim jako wspomagane dla tych pierwszych Proces biznesowy zbiór działań wewnątrz firmy, których celem jest dostarczenie klientowi konkretnej usługi lub produktu Projektowanie Systemów Informatycznych 9
Podejście procesowe Nazwa przedsiębiorstwa Restauracja Sklep Procesy w nim zachodzące 1. Sprzedaż Serwowanie dostarczenie posiłków klientowi dostarczenie klientowi produktu, produktu którym którym jest jest zamówiony zamówiony posiłek towar 2. Zakup produktów dostarczenie klientowi dostarczenie (dostawcy) klientowi (dostawca) wartości pieniężnej wartości za pieniężnej zakupione (produkt) przez za sklep zakupione towary przez restauracje towary 3. Naprawa Organizowanie dostarczenie przyjęćklientowi okolicznościowych usługi, którą dostarczenie jest naprawa klientowi uszkodzonego grupowemu sprzętu produktu którym jest organizacja przyjęcia Proces biznesowy specyficzne zbiór działańuporządkowanie wewnątrz firmy, działań wykonywanych w czasie i w przestrzeni, celu z dostarczenia dobrze określonymi klientowi danymi konkretnej i wynikami usługi lub oraz produktu jasno zdefiniowanymi wejściem i wyjściem Hammer, Champy92 Dawenport93 Projektowanie Systemów Informatycznych 10
Podejście procesowe Nazwa przedsiębiorstwa Restauracja Sklep komputerowy Procesy w nim zachodzące 1. Serwowanie Sprzedaż urządzeń posiłków wejście: wejście: klient gość zgłasza zgłasza potrzebę spożycia zakupu komputera; posiłku; wyjście: dostarczenie zamówionego komputera (zestawu) posiłku 2. Zakup podzespołów produktów wejście: zamówienie na na produkty podzespoły; żywnościowe; wyjście: przyjęcie wyjście: przyjęcie zakupionych dostarczonych elementów towarów do magazynu 3. Naprawa Organizowanie urządzeń przyjęć wejście:żądanie okolicznościowych naprawy przez wejście: klienta; zamówienie wyjście: naprawienie przyjęcia przez sprzętu klienta; wyjście: realizacja organizacji imprezy Proces biznesowy przebieg ma charakter dynamiczny, jego realizacja jest rozciągnięta w czasie, angażując różnorodne zasoby dostępne w przedsiębiorstwie: ludzi, materiały, kapitał, itp.. Projektowanie Systemów Informatycznych 11
Podejście procesowe zadania działów Nazwa Dział Procesu przedsięb. Sprzedaż Zakup urządzeń podzesp. Naprawa urządzeń Sprzedaż Sprzedaż Sprzedaż Księgowość Księgowość Montownia Serwis Magazyn Magazyn Zadania działu służące wykonaniu Procesu pozyskanie klienta, przyjęcie zamówienia, złożenie zamówienia montowni, sporządzenie dokumentów Zgłoszenie sprzedaży zapotrzebowania na podzespoły Przyjęcie urządzeń do naprawy, Zbadanie wydanie naprawionego zdolności kredytowej sprzętu klienta klientowi Zapłacenie za części Złożenie zamówionych zestawów Wykonanie naprawy Przyjęcie podzespołów do magazynu Dostarczenie elementów do montażu zestawów Słabe strony struktury funkcjonalnej podejmowanie rozbieżnych decyzji przez kierownictwo działów niekontrolowane opóźnienia (dokumenty, towary) pomiędzy działami brak odpowiedzialności za jakość obsługi klientów Projektowanie Systemów Informatycznych 12
Podejście procesowe analiza i projektowanie obiektowe Firma (dyrektor) Dział marketingu Dział sprzedaży Księgowość Serwis Produkcja Dział reklamy Dział promocji Procesy biznesowe Produkt A Produkt B Dział A Dział B Dział C Procesy biznesowe teoretycznie są niewidoczne i najczęściej obejmują kilka działów firmy, a wykonanie ich angażuje pracowników z wielu działów Wzmocnienie niekorzystnych cech struktur funkcjonalnych: duŝe organizacje (kilka, kilkanaście) poziomów zarządzania obecnie klient posiada indywidualne cechy Projektowanie Systemów Informatycznych 13
Podejście procesowe Firma (dyrektor) zakup podzespołów sprzedaż zestawów Serwis Montownia Magazyn Księgowość Sprzedaż Właściciele procesów biznesowych naprawa zestawów Wyodrębnienie procesów biznesowych oraz ich właścicieli, odpowiedzialnych za koordynację i prawidłowe wykonanie czynności składających się na proces, staje się nową formą organizacji przedsiębiorstw Charakterystyczne cechy podejścia procesowego: jedna osoba podejmuje decyzje płynność czynności ukierunkowana na realizacja zadań określona odpowiedzialność za przebieg procesów Projektowanie Systemów Informatycznych 14
Modelowanie procesów biznesowych Metoda Jacobsona nowa struktura i filozofia funkcjonowania organizacji w ramach procesu reorganizacji (ang. Business Process Reeinginering) poprawa funkcjonowania firmy bez wprowadzania radykalnych zmian (ang. Buisness Process Improvement) Dążenie do stworzenia systemu informatycznego, który będzie wspierał zachodzące w przedsiębiorstwie zmiany extends Magazynier Podzespół Aktor (nazwa przypadku użycia) uses Dostawca Zaopatrzeniowiec Dokument dostawy Zamówienie podzespołów Do opisu przedsięwzięcia biznesowego, w metodzie Jacobsona, przygotowywane są dwa modele: diagram przypadków użycia 1 oraz diagram obiektów 2 1. Opis procesów (wewnątrz organizacji) z perspektywy zaspakajania potrzeb klienta 2. Opis wewnętrznej struktury PB, pokazuje miejsce i sposób ich wykonania Projektowanie Systemów Informatycznych 15
Model obiektów Sklep komputerowy Zamówienie zestawu Dokument sprzedaży Dziedziczy z Rachunek Sprzedawca Zaopatrzeniowiec Wystaw.[1..m] Gwarancja Dot.[1..m] Dostawca towaru Składa się [1..m] Potw. Dostawę [1..m] Serwisant Zestaw Podzespół Dokument dostawy opisuje uszkodzenie Dot.[1..m] Monter Magazynier Formularz naprawy Zamówienie podzespołów Projektowanie Systemów Informatycznych 16
Przegląd Metod Metody obiektowe (od lat 80 - tych) W przeciwieństwie do metodyk strukturalnych dane i procesy są modelowane łącznie Całość dostosowana jest do obiektowego złożonego modelu danych 1985 Booch G. 1991 Martin J., Odell J. (event driven) 1991 Coad P., Yourdon E. 1991 Shlaer S., Mellor S.J 1991 Rumbaugh J. (Object Modeling Technique) 1992 Jacobson J. (scenario driven: use case) 1994 Booch G synteza rozwiązań (oparta na OMT) Projektowanie Systemów Informatycznych 17
Przegląd Metodyk 1995 propozycja standaryzacji 1997 UML został uznany przez OMG (Object Managment Group) za standard notacji dla obiektowej metodyki projektowania. Język UML (ang. Unified Modeling Language), Ujednolicony Język Modelowania - stworzony w Rational Corporation jest notacją modelowania systemów biznesowych i komputerowych. UML pozwala na opisywanie, projektowanie i tworzenie złożonych systemów informatycznych. Za jego pomocą można koncentrować się na detalach, nie tracąc przy tym obrazu całości. Projektowanie Systemów Informatycznych 18
Różne perspektywy projektowanego systemu Słownictwo funkcjonalność Usługi, Perspektywa projektowa modelowanie Scalanie systemu Zarządzanie konfiguracją pliki, komponenty Perspektywa implementacyjna Zachowanie Perspektywa Przypadków użycia Struktura Efektywność Skalowalność Przepustowość Aktywność Procesy, Wątki Perspektywa procesowa logiczne fizyczne Perspektywa wdrożeniowa Opracowanie układu Rozmieszczenie Dostarczenie Instalacja Sprzęt Projektowanie Systemów Informatycznych 19
Podstawowe diagramy UML DiagramOpisuStruktury DiagramStruktury DiagramSkładowych DiagramWdrożenia DiagramKlas DiagramObiektów DiagramPakietów DiagramKomponentów DiagramOpisuDynamiki DiagramPrzypadkówUżycia DiagramInterakcji DiagramCzynności DiagramMaszynyStanów DiagramSekwencji DiagramKomunikacji DiagramOpisuInterakcji DiagramNastępstwa Projektowanie Systemów Informatycznych 20
diagramy struktury w UML DiagramOpisuStruktury DiagramStruktury DiagramSkładowych DiagramWdrożenia «instnce» Diagram Składowych «instnce» k:koła{4} S:Silnik Samochód p:podwozie Diagram Wdrożenia DiagramKlas DiagramObiektów DiagramPakietów DiagramKomponentów «instnce» «instnce» «instnce» «instnce» Diagram klas klasa Diagram Obiektów :Obiekt Diagram Pakietów Pojazd Diagram Komponentów Kom klasa związek związek związek klasa :Obiekt :Obiekt :Obiekt Osoby Rej ICzyt ICzyt Ob IPisz Kom Projektowanie Systemów Informatycznych 21
Diagramy w UML Statyczne aspekty (elementy struktury) systemu obrazują: diagram klas, znajdują się na nim klasy, interfejsy, kooperacje i związki między nimi diagram obiektów, przedstawia zrzut pewnych egzemplarzy elementów występujących na diagramie klas diagram komponentów, obrazuje zbiór komponentów i związki między nimi diagram wdrożenia obrazuje zbiór węzłów i związki między nimi Projektowanie Systemów Informatycznych 22
Diagramy w UML Dynamiczne części systemu (zachowanie) obrazuje: diagramów przypadków użycia umożliwia uporządkowanie zachowania systemu diagramów przebiegu kładzie nacisk na kolejność wysyłania komunikatów w czasie diagramów kooperacji kładzie nacisk na strukturalną organizację obiektów, które wysyłają i odbierają komunikaty diagramów stanów kładzie nacisk na zmiany stanów spowodowane zdarzeniami diagramów czynności kładzie nacisk na przepływ sterowania od czynności do czynności Projektowanie Systemów Informatycznych 23
Diagram przypadków użycia (use case) Weryfikacja kart kredytowych R1 Realizacja transakcji kartą R2 Rozliczenie transakcji klienta R3 Komunikacja aktora z przypadkami użycia System weryfikacji kart kredytowych Uzgodnienie transakcji R4 Zrealizuj transakcję kartą Prowadzenie rachunku klienta Klient Rozlicz transakcję Jednostka handlu detalicznego uogólnienia Uzgodnij transakcję Prowadź rachunek klienta Klient indywidualny Klient instytucjonalny Sponsorująca organizacja finansowa Projektowanie Systemów Informatycznych 24
Diagram klas pracownik Dział Nazwa: naz {podzbiór} 1..* 1 Osoba Przedsiębiorstwo 1..* 1..* siedziba ograniczenia kierownik agregacja Dział adres: string telefon: numer Centrala Modelowanie (estetyczne przedstawienie): słownictwa systemu (ściany,podłogi) prostych kooperacji schematu logicznego bazy danych uogólnienie Pracownik Imię Nazwisko Płaca M1 PRACOWNIK A1 An operacje nazwisko: Nazwa stanowisko: string IDzatrud: Integer OdczytDanych() OdczytAdresy() OdtwórzMowe() zależność AdresyKontaktowe adres: string Dział NIP Wynagrodzenie Ustal Płacę Zwolnij Przyjmij interfejs IPoufneInformacje Projektowanie Systemów Informatycznych 205
Diagram Interakcji Modelowanie dynamicznych aspektów systemu Diagram przebiegu Diagram kooperacji K : Klient <<create>> {transient} obiekt : Transakcja K : Klient : PełnomocnikODBC UstalAkcje(a, d, o) Zatwierdzono <<destroy>> NadajWartość(d wiązanie 3:4) 1: <<create>> 2: UstalAkcje(a, d, o) 3: <<destroy>> NadajWartość(a, CO ) komunikat egzemplrz <<global>> : Transakcja : PełnomocnikODBC linia życia {transient} 2.1 : NadajWartość(d 3:4) 2.2 : NadajWartość(a, CO ) Uwypuklają różne aspekty systemu kolejność komunikatów struktura w czasie obiektów wymieniających komunikaty Równoważne lecz każdy z nich może przedstawiać byty, których nie ma na drugim diagramie Projektowanie Systemów Informatycznych 26
Diagram czynności Stan początkowy Wybierz działkę Wynajmij architekta Opracuj plan Stany akcji Zaproponuj cenę robót Rozwidlenie spółbieżne Wykonaj roboty budowlane Wykonaj roboty wykończeniowe Zakończ budowę ProtokółodbioruKońcowego [podpisany] Projektowanie Systemów Informatycznych 27
Diagramy realizacji Program do harmonogramów Program do planowania Interfejs graficzny Diagram komponentów odnosi się do statycznych aspektów perspektywy wdrożeniowej Pokazują zależności pomiędzy komponentami oprogramowania, włączając komponenty kodu źródłowego, kodu binarnego oraz kodu wykonywalnego Poszczególne komp. mogą istnieć w różnym czasie: kompilacji, konsolidacji, wykonania Projektowanie Systemów Informatycznych 28
Diagramy realizacji - diagram wdrożenia System rozproszony : konsola : konsola : konsola : Internet : serwer regionalny Serwery krajowe są połączone ze sobą przez prywatną sieć przedsiębiorstwa : serwer regionalny : serwer regionalny : serwer krajowy : serwer dziennika Projektowanie Systemów Informatycznych 11
Cele i zakres UML Modelowanie systemów z użyciem pojęć obiektowych Ustanowienie bezpośredniego połączenia zarówno do wytworów pojęciowych jak i wykonywalnych programów Objęcie zagadnień związanych ze skalą problemu Utworzenie języka do modelowania zarówno dla ludzi jak i dla maszyn Specyfikacja, konstrukcja, wizualizacja i dokumentacja systemów intensywnie wykorzystujących oprogramowanie Wysiłek autorów skoncentrowany jest na stworzenie wspólnego metamodelu (unifikacji semantyki) i wspólnej notacji (odbioru semantyki wśród ludzi) Promowany jest proces, który jest napędzany przez przypadki użycia, skoncentrowany na architekturze, iteracyjny i przyrostowy Projektowanie Systemów Informatycznych 29
Podsumowanie UML nie jest metodyką projektowania Jest notacją, która może być użyta w dowolnej metodyce Notacja opierającą się o podstawowe pojęcia obiektowości UML jest standardem, który wprowadza wiele (być może za wiele) modeli i oznaczeń, które w założeniu mają przykryć wszystkie istotne aspekty modelowanych systemów Projektowanie Systemów Informatycznych 30
Projektowanie Systemów Informatycznych KONIEC