Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski



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

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

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

Podstawy programowania III WYKŁAD 4

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

Projektowanie Modeli Usług dla rozwiązań typu SOA

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

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

Wykład 1 Inżynieria Oprogramowania

RUP. Rational Unified Process

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

UML w Visual Studio. Michał Ciećwierz

Modelowanie i analiza systemów informatycznych

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 5 Definicja systemu

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Analityk i współczesna analiza

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

UPEDU: Analiza i projektowanie (ang. analysis and design discipline)

Wykład 3 Wymagania. MIS n Inżynieria oprogramowania Październik Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

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

Narzędzia CASE dla.net. Łukasz Popiel

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

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

Opis metodyki i procesu produkcji oprogramowania

Michał Adamczyk. Język UML

Rozpoczęcie, inicjacja (ang. inception

Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

PRZEWODNIK PO PRZEDMIOCIE

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

TECHNOLOGIE OBIEKTOWE. Wykład 3

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

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

Modelowanie i Programowanie Obiektowe

Specyfikowanie wymagań przypadki użycia

Analiza i projektowanie aplikacji Java

Dr Katarzyna Grzesiak-Koped

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

Podstawy inżynierii oprogramowania

Programowanie obiektowe

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

<Nazwa firmy> <Nazwa projektu> Specyfikacja wymagań projektu. Wersja <1.0>

Etapy życia oprogramowania

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

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

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Konfiguracja modelowania w procesie wytwarzania oprogramowania

Inżynieria oprogramowania

Egzamin / zaliczenie na ocenę*

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

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Architektura oprogramowania w praktyce. Wydanie II.

Wytwarzanie oprogramowania

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

OSGi Agata Hejmej

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Diagramy przypadków użycia

Dokument Detaliczny Projektu

SOA Web Services in Java

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Inżynieria oprogramowania. Część 5: UML Diagramy klas

Projektowanie systemów informatycznych. wykład 6

Podstawy modelowania programów Kod przedmiotu

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Analiza i projektowanie obiektowe w UML Kod przedmiotu

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

WPROWADZENIE DO UML-a

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Modelowanie systemów w architekturze J2EE z wykorzystaniem notacji UML

Model przestrzenny Diagramu Obiegu Dokumentów. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

IBM Rational Software Architect uproszczona instrukcja użytkowania

PRZEWODNIK PO PRZEDMIOCIE

Jak opisać wymagania zamawiającego wybrane elementy

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

Programowanie obiektowe

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

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

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

KARTA PRZEDMIOTU. 1) Nazwa przedmiotu: INŻYNIERIA SYSTEMÓW I ANALIZA SYSTEMOWA. 2) Kod przedmiotu: ROZ-L3-20

Historia modeli programowania

Projektowanie logiki aplikacji

PRZEWODNIK PO PRZEDMIOCIE

Modelowanie i analiza systemów informatycznych

Wdrożenie technologii procesowej IBM BPM w EFL

Projektowanie oprogramowania

Dokument Detaliczny Projektu

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Inżynieria oprogramowania

Transkrypt:

INŻYNIERIA OPROGRAMOWANIA wykład 6A: ANALIZA i PROJEKTOWANIE wg RUP dr inż. Leszek Grocholski ( na podstawie książek o RUP ) Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

OBIEKTOWE wg RUP PLAN PREZENTACJI 3. Analiza versus projektowanie wg RUP 4. Jak szczegółowy powinien być projekt? 5. Pracownicy i artefakty 6. Model projektowy 7. Model analityczny 8. Rola interfejsów 9. Artefakty systemów czasu rzeczywistego 10. Projektowanie oparte na komponentach 11. Przepływ pracy ( workflow) 12. Narzędzia wspomagające 13. Podsumowanie Leszek Grocholski II Uni. Wroc. 2

CELEM PRZEPŁYWU PRACY ANALIZA i PROJEKTOWANE wg RUP jest przetłumaczenie wymagań na dokumentacje, która opisuje jak zaimplementować system. Ażeby dokonać tego tłumaczenia, trzeba zrozumieć wymagania i przetransformować je do postaci projektu systemu. Co więcej, należy przy tej okazji zaproponować najlepszą strategię implementacji systemu. Wcześniej w przedsięwzięciu należy podjąć decyzje co do zdrowych podstaw systemu w postaci jego architektury. Leszek Grocholski II Uni. Wroc. 3

ANALIZA i PROJEKTOWANIE podstawy Korzystając z architektury można zaprojektować system, który jest łatwy do zrozumienia, zbudowania i ewoluowania. Potem trzeba tak dopasować projekt, aby pasował on do środowiska implementacyjnego. Następnie należy zaprojektować środowisko implementacyjne zapewniające: efektywne przetwarzanie, stabilność, skalowalność, testowalność i spełnienie innych wymagań jakościowych. Leszek Grocholski II Uni. Wroc. 4

Analiza versus projektowanie ( Analysis versus Design ) Celem analizy jest przetransformowanie wymagań na system do formy, która dobrze pasuje do przestrzeni pojęć projektanta oprogramowania tzn. zbioru klas i podsystemów. Transformacja ta jest sterowana przypadkami użycia i dodatkowo niefunkcjonalnymi wymaganiami na system. Analiza skupia się na zapewnieniu tego, że system spełniał wymagania funkcjonalne. W uproszczeniu analiza ignoruje większość wymagań niefunkcjonalnych na system i również ograniczenia narzucane przez środowisko implementacyjne. W wyniku tych założeń analiza określa bliski ideałowi obraz systemu. Leszek Grocholski II Uni. Wroc. 5

Analiza versus projektowanie ( Analysis versus Design ) cd. Celem projektowania jest, z drugiej strony zaadoptowanie wyników analizy do ograniczeń narzuconych przez wymagania niefunkcjonalne, środowisko implementacyjne, wymagania wydajnościowych itd. Projektowanie przefiltrowywuje rezultaty analizy. Skupia się na optymalizowaniu projektu systemu przy zapewnieniu spełnienia przez niego wymagań. Leszek Grocholski II Uni. Wroc. 6

Jak daleko musi pójść projektowanie? ( How Far Must Design Go?) Projektowanie musi zdefiniować system na takim poziomie, aby możliwa była jego jednoznaczna implementacja. To oczywiste sformułowanie ma różne znaczenie, w zależności od przedsięwzięcia i organizacji. W niektórych przypadkach, projekt musi być dopracowany do poziomu na którym możliwa jest systematyczna transformacja od projektu do kodu. Leszek Grocholski II Uni. Wroc. 7

Pracownicy i Artefakty (Workers and Artifacts ) RUP wyraża analizę i projekt w terminologii pracowników, artefaktów i przepływu pracy. Pokazuje, jakie artefakty produkowane są przez których pracowników oraz zakresy odpowiedzialności pracowników. Architekt prowadzi i koordynuje techniczne czynności i artefakty w przedsięwzięciu. Ustanawia ogólną strukturę i wygląd dla każdej perspektywy architektonicznej: dekompozycji widoków, grupowania elementów i interfejsów między głównymi grupami. W kontraście ze spojrzeniami innych pracowników, spojrzenie jest raczej jednym płytkim oddechem a nie głębokim łyknięciem powietrza. Leszek Grocholski II Uni. Wroc. 8

Leszek Grocholski II Uni. Wroc. 9

PRACOWNICY cd.. Projektant Projektant definiuje: odpowiedzialności, operacje, atrybuty powiązania jednej lub wielu klas i determinuje jak one powinny zostać dostosowane do środowiska implementacyjnego. W dodatku projektant może być odpowiedzialny za jeden lub więcej pakietów projektowych i projektowych podsystemów, włączając w to klasy wchodzące w skład pakietów czy podsystemów. Inni Leszek Grocholski II Uni. Wroc. 10

PRACOWNICY cd.. Projektant bazy danych jest potrzebny kiedy projektowany system zawiera bazę danych. Projektant Kapsuł ( Capsule Designer ) dla systemów czasu rzeczywistego Odmiana projektanta, który koncentruje się na zapewnieniu, że system jest zdolny odpowiadać na zdarzenia zgodnie z wymaganiami czasowymi, poprzez odpowiednie użycie bieżących technik projektowych. Kontroler Architektury i Projektu ( Architecture Reviewer i Design Reviewer ) przegląda architekturę i projekt. Leszek Grocholski II Uni. Wroc. 11

KLUCZOWE DLA ANALIZY I PROJEKTOWANIA ARTEFAKTY: Model Projektowy ( Design Model ), który jest najważniejszym dokumentem dla wytwarzanego systemu. Dokument Architektury Systemu ( Software Architecture Dokument SAD), którego zadaniem jest uchwycenie wielu spojrzeń architektonicznych na system. Leszek Grocholski II Uni. Wroc. 12

MODEL PROJEKTOWY (THE DESIGN MODEL ) Składa się on ze zbioru elementów diagramów współpracy ( collaboration diagrams ) oddających sposób zachowania systemu. Zachowania z kolei są pochodną informacji uzyskanych z modelu PU i wymagań niefunkcjonalnych. Model projektowy składa się diagramów współpracy klas, które mogą być agregowane w pakiety i podsystemy w celu pomocy w zorganizowaniu modelu i dostarczenia modułów składowych bloków modelu. Leszek Grocholski II Uni. Wroc. 13

MODEL ANALIZY ( ANALITYCZNY ) ( THE ANALYSIS MODEL) W niektórych firmach w tych gdzie systemy żyją wiele dekad lub gdzie istnieje wiele wariantów systemu osobny model analityczny jest uważany za użyteczny. Taki model analityczny jest abstrakcją czy generalizacją projektowego. Model taki nie zawiera większości szczegółów opisujących sposób działania systemu a dostarcza jedynie przeglądu funkcjonalności systemu. Dodatkowa praca potrzebna do zachowania jednoznaczności modeli analitycznego i projektowego musi być równoważona korzyściami z posiadania widoku systemu reprezentującego jedynie najbardziej ważne szczegóły sposoby działania systemu. Leszek Grocholski II Uni. Wroc. 14

ROLE INTEREJSÓW ( THE ROLE OF INTERFACES ) Interfejsy są używane systemów celu wyspecyfikowania zachowań oferowanych przez klasy, podsystemy systemów komponenty, w niezależny od implementacji tych zachowań. Specyfikują one za zbiór operacji wykonywanych przez elementy modelu system. Obejmują również ilość rodzaj parametrów zwracanych przez podsystemy. Każde 2 elementy systemu posiadające te same interfejsy są zamienialne. Interfejsy poprawiają elastyczność projektu dzięki ograniczenia zależności pomiędzy częściami systemu. Czynią go łatwiejszym do wprowadzania zmian. Leszek Grocholski II Uni. Wroc. 15

ARTEFAKTY SYSTEMÓW CZASU RZECZYWISTEGO ( ARTEFACTS FOR REAL TIME SYSTEMS ) Systemy czasu rzeczywistego to systemy, które charakteryzują się szczególnymi wymaganiami czasowymi: krytycznymi czasami reakcji, często z dużymi wymaganiami dot. rozmiarów przetwarzanych danych. Wiele z tych ograniczeń jest krytyczne. Leszek Grocholski II Uni. Wroc. 16

RUP opisuje następujące krytyczne artefakty: Kapsuła : specjalny wzorzec projektowy, reprezentujący wykapsułkowany wzorzec sterowania w systemie. Kapsuły maja porty, przez które komunikują się z innymi kapsułami. Protokół: specyfikuje sposób w jaki zbiór portów się komunikuje wymianę komunikatów i ich uporządkowanie w czasie i przestrzeni. Zdarzenie: jest specyfikacją wystąpienia czegoś w czasie i przestrzeni lub mniej formalnie wystąpienie czegoś na coś system musi zareagować. Sygnał: jest asynchronicznym zdarzeniem które może spowodować przejście pomiędzy stanami maszyny stanowej pewnego obiektu. Leszek Grocholski II Uni. Wroc. 17

PROJEKTOWANIE BAZUJĄCE NA KOMPONENTACH ( COMPONENT BASED DESIGN) Komponenty są elementami modelu implementacyjnego i są używane do podkreślenia tego, że system jest implementowany z małych kawałków. Komponent oferuje jeden lub więcej interfejsów zależy jedynie od interfejsów z innymi komponentami. Używanie komponentów pozwala na projektowanie, implementacje, dostawę i zamianę wielu części systemu niezależnie od jego reszty. Elementy modelu projektowego korespondują do komponentów podsystemów, które to są niezależnymi częściami systemu, mogącymi być projektowane i implementowane niezależne. Podsystemy oferują interfejsy i zależą od interfejsów innych elementów modelu. Leszek Grocholski II Uni. Wroc. 18

PRZEPŁYW PRACY ( WORKFLOW ) Następny slajd ilustruje w formie diagramu czynności UML, iteracje w przepływie pracy analiza i projektowanie. Każdy stan czynności reprezentuje szczegółowy przepływ pracy np.: Definiowanie kandydującej architektury. Każdy szczegółowy przepływ pracy składa się ze swoich czynności. Niektóre szczegółowe przepływy pracy są zależne od fazy : w iteracjach dot. fazy opracowania definiowana a następnie doskonalona jest architektura, podobnie jest z najważniejszymi obszarami i ryzykami aplikacji są tematem analizy i projektowania. W następującej po niej iteracji fazy budowy, kładziony jest nacisk na dodanie aplikacji większej funkcjonalności w oparciu o coraz bardziej stabilną platformę architektoniczną. Leszek Grocholski II Uni. Wroc. 19

wg RUP Leszek Grocholski II Uni. Wroc. 20

Definiowanie kandydującej architektury ( Define Candidate Architecture ) * Utworzenie początkowego szkicu architektury systemu. Aktywność definiuje: początkowy zbiór znaczących dla architektury projektowanych elementów ( podstawa analizy ), początkowy zbiór algorytmów analitycznych, początkowe uwarstwienie i organizacja systemu oraz realizacje PU przewidziane do wykonania w danej iteracji. * Zidentyfikowanie klas analitycznych na podstawie znaczących dla architektury przypadków użycia. * Uaktualnianie realizacji PU poprzez analizę współdziałania klas analitycznych. Leszek Grocholski II Uni. Wroc. 21

DOSKONALENIE ARCHITEKTURY ( REFINE the ARCHITECTURE ) Ten szczegółowy przepływ pracy składa się z czynności: identyfikowanie zadań i celów projektowych, identyfikowanie elementów, scalanie istniejących elementów projektu, opis architektury czasu rzeczywistego ( opis dystrybucji informacji ), opis wszystkich artefaktów wykonywanych przez architekta, doskonalenie w/w, przegląd architektury wykonywany przez kontrolera projektu. Leszek Grocholski II Uni. Wroc. 22

ANALIZA ZACHOWAŃ (ANALYZE BEHAVIOR ) Na ten szczegółowy przepływ pracy składają się następujące czynności: analiza PU przeprowadzona przez projektanta, identyfikacja elementów projektu wykonywana przez architekta systemu i przegląd projektu wykonywany przez kontrolera projektu. Celem tego szczegółowego przepływu pracy jest transformacja opisu zachowań dostarczonego przez PU w zbiór komponentów, które stanowić będą podstawę projektu. Należy zauważyć, że analiza zachowań koncentruje się mniej na niefunkcjonalnych wymaganiach systemu a bardziej na tym bardziej na tym jak zapewnić dostarczenie przez system wymaganych funkcjonalności. Leszek Grocholski II Uni. Wroc. 23

Projektowanie Komponentów ( Design Components ) Na ten szczegółowy przepływ pracy składają się czynności: projektowanie PU, projektowanie klas i projektowanie podsystemu, wykonywane przez projektanta komponentów i przegląd projektu wykonywany przez kontrolera projektu. Projektowanie komponentów czasu rzeczywistego ( Design Real Time Components ) Dotyczy projektów które, będą używać jako artefaktów kapsuły pierwszej rangi elementy projektowe w kontekście systemów czasu rzeczywistego. Leszek Grocholski II Uni. Wroc. 24

PROJEKTOWANIE BAZY DANYCH ( DESIGN THE DATABASE) Jest to opcjonalny szczegółowy przepływu pracy wymagany, kiedy system korzysta w dużego rozmiaru bazy danych składowanych w bazie danych. Projektowanie bazy danych składa się z następujących działań: projektowanie bazy ( wykonywanej przez projektanta bazy danych), projektowania klas (wykonywanego przez projektanta ), przegląd projektu ( przeprowadzany przez kontrolera projektu ). Leszek Grocholski II Uni. Wroc. 25

WSPOMAGANIE NARZĘDZIOWE Modele wykonywane są w UML u. narzędziem tworzenia, zarządzania i prezentacji modeli jest IBM Rational Architect. Architect umożliwia wykonywanie inżynierii wstecz ( round trip engineering ) w paru wybranych językach programowania, zapewnienie perfekcyjnej synchronizacji modeli, kodu różnych wersji systemu od projektowania do kodowania czy na odwrót. IBM Rational Architect dostarcza narzędzi mentorskich w postaci wskazówek do tworzenia modeli w UML i korzystania z systemu. Pakiet Reel Time umożliwia natychmiastowe wykonywanie modeli. Pakiet Soda pozwala na automatyczne generowanie dokumentów czy raportów, ekstrakcje i formatowanie informacji z wielu innych źródeł, takich jak Architect czy Requiste Pro. Leszek Grocholski II Uni. Wroc. 26

PODSUMOWANIE Analiza i projektowanie stanowią pomost między wymaganiami a implementacją. Ten przepływ pracy wykorzystują przypadki użycia do identyfikowania zbioru obiektów, który jest sekwencyjnie przekształcany do coraz doskonalszych klas, podsystemów i pakietów. Odpowiedzialności w analizie projektowania są podzielone pomiędzy architekta ( tworzy wielkie obrazy ), projektanta ( szczegóły) projektanta bazy danych ( szczegóły), które wymagają szczegółowej wiedzy o wymaganiach i stanie przedsięwzięcia ( ponowne użycie!). Leszek Grocholski II Uni. Wroc. 27

PODSUMOWANIE cd Wynikiem analizy i projektowania jest model projektowy, który może być wyabstrahowany używając 3 perspektywy architektoniczne. Perspektywa logiczna reprezentuje dekompozycje systemu na zbiór logicznych elementów ( klas, podsystemów, pakietów, ich wzajemnych oddziaływań). Perspektywa procesowa ( dynamiczna ) odwzorowywuje te elementy na procesy ( diagram czynności i komunikacji ) oraz wątki w systemie. Perspektywa wdrożeniowe przyporządkowuje realizacje procesy do komponentów oraz do węzłów, w których one działają czy są instalowane. W niektórych przypadkach oddzielny model analityczny może być użyteczny w celu dokonania przeglądu jego funkcji czy zbudowania abstrakcyjnego modelu systemu. Leszek Grocholski II Uni. Wroc. 28

INŻYNIERIA OPROGRAMOWANIA Dziękuję za uwagę Leszek Grocholski II Uni. Wroc. 29