Faza analizy (modelowania) Faza projektowania

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

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

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

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

Podstawy programowania III WYKŁAD 4

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

Modelowanie i Programowanie Obiektowe

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

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:

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

Podstawy języka UML UML

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

UML w Visual Studio. Michał Ciećwierz

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

Świat rzeczywisty i jego model

Diagram przypadków użycia

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

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

Faza Określania Wymagań

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

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

Modelowanie obiektowe - Ćw. 3.

Projektowanie systemów informatycznych. Diagramy przypadków użycia

Feature Driven Development

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

Rysunek 1: Przykłady graficznej prezentacji klas.

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

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

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

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Podstawy Programowania Obiektowego

MODELOWANIE OBIEKTOWE

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

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

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

Język UML w modelowaniu systemów informatycznych

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Diagramy klas. WYKŁAD Piotr Ciskowski

Technologie obiektowe

INŻYNIERIA OPROGRAMOWANIA. laboratorium

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

Podstawy modelowania programów Kod przedmiotu

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

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

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

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

TECHNOLOGIE OBIEKTOWE. Wykład 3

1 Projektowanie systemu informatycznego

MiASI. Modelowanie systemów biznesowych. Piotr Fulmański. 7 stycznia Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska

Zalety projektowania obiektowego

Diagramy przypadków użycia

Inżynieria oprogramowania (Software Engineering)

Inżynieria oprogramowania II

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

- Przypadki Użycia - Diagramy Przypadków Użycia

Wykład 1 Inżynieria Oprogramowania

Modelowanie danych, projektowanie systemu informatycznego

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Programowanie zespołowe

Podstawy języka UML UML

Podstawy projektowania systemów komputerowych

Zasady organizacji projektów informatycznych

Analityk i współczesna analiza

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

MiASI. Modele, perspektywy, diagramy UML. Piotr Fulmański. 7 grudnia Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska

Język programowania. Andrzej Bobyk

Programowanie obiektowe - 1.

Projektowanie i wdrażanie systemów informatycznych (materiały do wykładu cz. II)

Michał Adamczyk. Język UML

SVN. 10 października Instalacja. Wchodzimy na stronę i pobieramy aplikację. Rysunek 1: Instalacja - krok 1

Modelowanie i analiza systemów informatycznych

Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

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

Przypadki użycia (use cases) Po co są przypadki użycia? Próby definicji Podstawowe pojęcia Notacje Relacje Dokumentacja Kroki metody Przykłady

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

Diagramy klas. dr Jarosław Skaruz

Wprowadzenie do Behaviordriven

Język UML w modelowaniu systemów informatycznych

Lista przykładowych pytań do egzaminu z przedmiotu Inżynieria Oprogramowania

Oprogramowanie o wysokiej jakości to oprogramowanie spełniające następujące kryteria:

Wykład I. Wprowadzenie do baz danych

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Podstawy inżynierii oprogramowania

Analiza i projektowanie obiektowe 2015/2016. Wykład 2: Przypadki użycia

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

Wprowadzenie do systemów informacyjnych

UML. dr inż. Marcin Pietroo

Język UML w modelowaniu systemów informatycznych

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

Projektowanie systemów informatycznych. wykład 6

Unified Modeling Language

Analiza procesów: notacja UML, modele przypadków użycia, Rich Picture

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

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

Tworzenie warstwy zasobów projektowanie metodą strukturalną

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Transkrypt:

Faza analizy (modelowania) Faza projektowania Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie: co i przy jakich ograniczeniach system ma robić? Wynikiem tej analizy jest zbiór wymagań czyli zewnętrzny opis systemu Celem fazy analizy jest udzielenie odpowiedzi na pytanie: jak system ma działać? Wynikiem jest logiczny model systemu, opisujący sposób realizacji przez system postawionych wymagań, lecz abstrahujący od szczegółów implementacyjnych Celem fazy projektowania jest udzielenie odpowiedzi na pytanie: jak system ma zostać zaimplementowany? Wynikiem jest projekt oprogramowania, czyli opis systemu implementacji

Model analityczny Z reguły wykracza poza zakres odpowiedzialności systemu ponieważ: - Ujęcie w modelu pewnych elementów nie będących częścią systemu czyni model bardziej zrozumiałym - Na etapie modelowania może nie być jasne, które elementy modelu będą realizowane przez oprogramowanie, a które w sposób sprzętowy lub ręcznie - Dostępne środki mogą nie pozwolić na realizację systemu w całości. Celem analizy może być wykrycie tych fragmentów które mogą być szczególnie ważne

Dlaczego modelujemy? Podjęcie decyzji, jakie modele tworzyć, ma wielki wpływ na to, w jaki sposób zaatakujemy problem jaki kształt przyjmie rozwiązanie Każdy model może być opracowany na różnych poziomach szczegółowości Najlepsze modele odpowiadają rzeczywistości Żaden model nie jest wystarczający. Niewielka liczba niemal niezależnych modeli to najlepsze rozwiązanie w wypadku każdego niebanalnego systemu.

Model analityczny Model oprogramowania powinien być jego uproszczonym opisem opisującym wszystkie istotne cechy oprogramowania na wysokim poziomie abstrakcji. Cechy modelu: - Uproszczony opis systemu - Hierarchiczna dekompozycja funkcji systemu - Model logiczny jest opisany za pomocą notacji zgodnej z pewną konwencją - Zbudowany przy użyciu dobrze znanych metod i narzędzi - Używany do wnioskowania o przyszłym oprogramowaniu

Model analityczny Pokazuje co system ma robić Jest zorganizowany hierarchicznie, według poziomów abstrakcji Unika terminologii implementacyjnej Pozwala na wnioskowanie od przyczyny do skutku i odwrotnie

Notacja w fazie analizy Do opisu modelu stosuje się następujące rodzaje notacji: - Język naturalny - Notacje graficzne - Specyfikacje częściowo ustrukturalizowany zapis tekstowy i numeryczny Szczególną rolę tutaj odgrywają notacje graficzne (wzorując się na innych dziedzinach techniki)

Notacja graficzna Diagramy graficzne ułatwiają szybkie przekazywanie podstawowych informacji, nie pozwala jednak na ukazanie wszystkich szczegółów. Nadmierne nagromadzenie szczegółów na diagramie graficznym może skutecznie zniweczyć jego czytelność Notacje graficzne uzupełniane są o dodatkowe informacje tzw. specyfikacje

Funkcje notacji Są one podstawowym narzędziem pracy analityka i projektanta Notacje wykorzystywane w fazie analizy są często wykorzystywane do współpracy z użytkownikiem (muszą być proste, przejrzyste, zrozumiałe) Ułatwia pracę w grupie. Służą szybkiemu i precyzyjnemu przekazywaniu idei Notacje są podstawą implementacji oprogramowania Służą do zapisu dokumentacji technicznej

Analiza strukturalna Metody strukturalne tworzenia oprogramowania, opierają się na wyróżnianiu w tworzonym oprogramowaniu dwóch rodzajów składowych: pasywnych odzwierciedlających fakt przechowywania w systemie pewnych danych oraz składowych aktywnych odzwierciedlających fakt wykonywania w systemie pewnych operacji. Metody obiektowe wyróżniają w systemie składowe, które łączą w sobie możliwość przechowywania danych oraz wykonywania operacji

Analiza strukturalna Analiza strukturalna zaczyna się od budowy dwóch różnych modeli systemu: modelu, będącego opisem pasywnej części systemu oraz modelu funkcji opisującego aktywną część systemu. Te dwa modele są następnie integrowane i wynikiem jest model przepływów danych. Zwolennicy analizy strukturalnej twierdzą, że budowa dwóch oddzielnych modeli ułatwia zrozumienie różnych aspektów systemu. Krytycy zwracają uwagę, na to że integracja tych dwóch modeli może być bardzo trudna.

Analiza obiektowa System jest analizowany w sposób obiektowy jeśli: - Jest dzielony na obiekty posiadające: - Tożsamość, Stan, Zachowanie - Obiekty są grupowane w klasy złożone z obiektów o podobnych stanach i zachowaniu Metody obiektowe są wygodnym narzędziem analizy złożonych systemów, w szczególności systemów o dużej stronie pasywności i złożonej funkcjonalności

Analiza obiektowa Analiza i programowanie obiektowe ułatwia: - Ukrywanie danych (hermetyzację) - Wykorzystywanie gotowych elementów - Ponowne wykorzystanie oprogramowania - Szybkie prototypowanie - Programowanie oparte na zdarzeniach - Programowanie przyrostowe

UML (ang. Unified Modeling Language) Graficzny język do obrazowania, specyfikowania, tworzenia i dokumentowania systemów informatycznych.

Klasy Modelowanie polega między innymi na zidentyfikowaniu bytów istotnych z pewnego szczególnego punktu widzenia. Byty te składają się na słownictwo systemu, który jest modelowany. DOM: ściany, drzwi, okna, szafki, oświetlenie Każdy byt znacząco różni się od pozostałych ma swój własny zestaw właściwości Pojedyncze ściany, drzwi i okna rzadko istnieją w oderwaniu od siebie Wszystkie takie byty identyfikowane są jako klasy. Nie jest pojedynczym obiektem lecz zbiorem wielu obiektów.

Klasy w UML Klasa to opis zbioru obiektów o tych samych atrybutach, związkach i znaczeniu. Jej symbolem graficznym jest prostokąt. Atrybut to nazwana właściwość klasy. Klasa może mieć dowolną liczbę atrybutów lub nie mieć ich wcale. Atrybut reprezentuje właściwość pewnego modelowanego bytu, która jest określona dla wszystkich jego wystąpień. Ściana Wysokość: Float Szerokość: Float Grubość: Float jestnośna: False Nazwa klasy Atrybuty klasy

Klasy w UML Operacja to implementacja pewnej usługi, której wykonania można zażądać od każdego obiektu klasy. Jest to abstrakcja, tego co można zrobić z każdym obiektem tej klasy. Odpowiedzialność klasy, czyli za jakie zadania dana klasa jest odpowiedzialna. Zburz() Pomaluj() Ściana Responsibilities - Znaj wymiary ściany

Związki Niewielka liczba klas występuje samotnie. Większość z nich współpracuje ze sobą na wiele sposobów. W modelowaniu obiektowym najważniejszymi rodzajami związków są zależność, uogólnienie i powiązanie. Zależność: zmiany dokonane w specyfikacji jednego elementu mogą mieć wpływ na inny element, który używa tego pierwszego.

Związki w UML Uogólnienie: to związek pomiędzy elementem ogólnym a pewnym specyficznym jego rodzajem (nadklasa podklasa) Potomek (podklasa) może wystąpić wszędzie tam gdzie występuje przodek. Potomek dziedziczy wszystkie właściwości, a w szczególności atrybuty i operacje. Często potomek ma także własne właściwości. Operacja potomka, która ma taką samą sygnaturę co operacja przodka jest ważniejsza polimorfizm.

Związki w UML Powiązania: związek, który wskazuje że elementy jednego elementu są połączone z obiektami innego. Okno Otwórz() Zamknij() Przesuń() Wyświetl() Obsłużzdarzenia() Zdarzenie zawiera OknoKonsoli OkienkoDialogowe Przycisk

Modelowania dziedziczenia pojedynczego Zabezpieczenie bieżącawartosc() Historia() RachunekBieżący Akcja Obligacja Akcja oprocentowanie bieżącawartość() bieżącawartość() obciążenia bieżącawartość() bieżącawartość() AkcjaZwykła AkcjaUprzywilejowana

Przypadki użycia Przypadki użycia służą do utrwalania oczekiwanego zachowania budowanego systemu bez konieczności określania sposobu implementacji tego zachowania. Umożliwiają wypracowanie porozumienia między programistami a użytkownikami i ekspertami Ułatwiają weryfikację architektury i samego systemu w miarę tworzenia go. Przypadek użycia określa zbiór ciągów akcji, z których każdy reprezentuje interkację elementów z otoczenia systemu z samym systemem. Te działania są w istocie funkcjami systemowymi. Przypadki użycia są podstawą do opracowywania testów

Przypadki użycia w UML W UML diagramy przypadków użycia służą do obrazowania zachowania systemu, podsystemu klub klasy w taki sposób, by użytkownicy mogli zrozumieć jak z tego bytu skorzystać, a programiści mogli go zaimplementować Diagramy użycia można stosować do dwóch celów: - Modelowania otoczenia systemu (wyznaczenie granicy wokół całego systemu i na wskazaniu leżących poza nią aktorów, którzy wchodzą w interakcję z systemem) - Modelowania wymagań stawianych systemowi (określenie, co system powinien robić, niezależnie od tego jak ma to robić.

Diagramy przypadków użycia Modelując otoczenie systemu postępuj zgodnie z podanymi wytycznymi: - zidentyfikuj aktorów działających wokół systemu. Rozważ, które grupy są niezbędne do realizacji funkcji systemu, są w interakcji z urządzeniami zewnętrznymi lub innymi systemami informatycznymi, wypełniają drugorzędne funkcje - Uporządkuj podobnych aktorów za pomocą uogólnień - Zaludnij tymi aktorami diagram przypadków użycia i zdefiniuj ścieżki komunikacyjne od każdego aktora do przypadków użycia systemu

Diagramu przypadków użycia Aktor: Klient Klient indywidualny Przypadek użycia Złóż zamówienie Rozszerzenia Określ priorytet <<extend>> (określ priorytet) <<inlcude>> Weryfikuj użytkownika Sprawdź hasło Śledź realizację zamówienia <<inlcude>> Weryfikuj użytkownika Porównaj siatkówkę

Budowa statycznego modelu klas Podejście klasyczne: opiera się na obserwacji, że w wielu systemach pojawiają się podobne klasy i obiekty. Na tej podstawie można poszukiwać podobnych klas w systemie. Typowe klasy to: Przedmioty namacalne (samochód, czujnik) Role pełnione przez osoby (pracownik, wykładowca) Zdarzenia, o których system przechowuje informacje (zamówienie, dostawa) Interakcje pomiędzy osobami/systemami (pożyczka, spotkanie) Lokalizacje miejsca Grupy przedmiotów namacalnych Organizacje (Firma, wydział) Koncepcje (miara jakości, zadanie) Dokumenty

Analiza funkcji (przypadków użycia) Metoda ta opiera się od wyboru pewnej funkcji systemu (niekoniecznie elementarnej). W języku naturalnym opisuje się sposób w jaki system wykonuje tę funkcję. Na tej podstawie tworzy się scenariusz funkcji przypadek użycia wprowadzając niezbędne klasy i metody

Weryfikacja klas i obiektów Stosowanie tych metod może prowadzić do wykrycia znacznej liczby potencjalnych klas, które nie znajdą się w ostatecznym modelu. Należy wziąć pod uwagę następujące czynniki: - nieobecność atrybutów i operacji - nieliczne atrybuty i operacje - tylko jeden obiekt w klasie - brak związków z innymi klasami