Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:



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

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

Faza analizy (modelowania) Faza projektowania

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

Modelowanie i Programowanie Obiektowe

Wprowadzenie do systemów informacyjnych

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

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

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

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

Paweł Kurzawa, Delfina Kongo

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

Podstawy Programowania Obiektowego

Programowanie obiektowe - 1.

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

UML w Visual Studio. Michał Ciećwierz

MODELOWANIE SYSTEMU INFORMATYCZNEGO WSPOMAGAJĄCEGO DZIAŁALNOŚĆ USŁUGOWĄ W ŚRODOWISKU OBIEKTOWO ZORIENTOWANYM.

Modelowanie danych, projektowanie systemu informatycznego

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

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

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

Świat rzeczywisty i jego model

Faza Określania Wymagań

Podstawy programowania III WYKŁAD 4

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Język programowania. Andrzej Bobyk

Zasady organizacji projektów informatycznych

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

1 Projektowanie systemu informatycznego

Pojęcie bazy danych. Funkcje i możliwości.

Modelowanie i analiza systemów informatycznych

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

Podstawy modelowania programów Kod przedmiotu

Podstawy inżynierii oprogramowania

Analiza i projektowanie aplikacji Java

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

Podstawy programowania. Wprowadzenie

Rysunek 1: Przykłady graficznej prezentacji klas.

Wykład I. Wprowadzenie do baz danych

Diagramy klas. WYKŁAD Piotr Ciskowski

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

Projektowanie logiki aplikacji

Wykład 1 Inżynieria Oprogramowania

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

Projektowanie systemów informatycznych. wykład 6

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

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

Metody Programowania

Diagramy klas. dr Jarosław Skaruz

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

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

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

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Egzamin / zaliczenie na ocenę*

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

MODELOWANIE OBIEKTOWE

PRZEWODNIK PO PRZEDMIOCIE

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Modelowanie i analiza systemów informatycznych

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Programowanie obiektowe

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

TECHNOLOGIE OBIEKTOWE. Wykład 3

PRZEWODNIK PO PRZEDMIOCIE

UML. zastosowanie i projektowanie w języku UML

Historia modeli programowania

Wprowadzenie do UML, przykład użycia kolizja

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

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

Charakterystyka oprogramowania obiektowego

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Zaawansowane programowanie obiektowe - wykład 5

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Technologie obiektowe. Plan. Ewolucja technik wytwarzania oprogramowania

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

Technologie obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe

Język UML w modelowaniu systemów informatycznych

PROGRAMOWALNE STEROWNIKI LOGICZNE

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

Wprowadzenie do programowania aplikacji mobilnych

Zalety projektowania obiektowego

Projektowanie baz danych za pomocą narzędzi CASE

Projektowanie oprogramowania

Michał Adamczyk. Język UML

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

Projekt przejściowy 2015/2016 BARTOSZ JABŁOŃSKI, TOMASZ JANICZEK

Diagramy UML, przykład problemu kolizji

PRZEWODNIK PO PRZEDMIOCIE

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza

Wzorce projektowe. dr inż. Marcin Pietroo

Projekt przejściowy 2016/2017 BARTOSZ JABŁOŃSKI

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

Transkrypt:

Fazy analizy (modelowania) oraz projektowania Analiza bez brania pod uwagę szczegółów implementacyjnych Projektowanie ze szczegółami implementacyjnymi. FAZA ANALIZY: Celem fazy analizy jest ustalenie wszystkich tych czynników, które mogą wpłynąć na przebieg procesu projektowego i implementacyjnego Wynikiem jest logiczny model systemu, opisujący sposób realizacji przez system postawionych wymagań, lecz abstrahujących od szczegółów implementacyjnych Model oprogramowania powinien być jego uproszonym opisem, opisującym wszystkie istotne cechy oprogramowania na wysokim poziomie abstrakcji.:! jest zorganizowany hierarchicznie, wg poziomów abstrakcji! unika terminologii implementacyjnej! pozwala na wnioskowanie o związkach przyczynowo-skutkowych Dobrej jakości model powinien być:! kompletny wyrażone są w nim wszystkie cechy opisywanego zagadnienia! prawidłowy wszystkie występujące pojęcia zostały właściwie użyte,! minimalny, jeżeli każdy z aspektów wymagań występuje na schemacie tylko jeden raz,! wyrazisty jeżeli wymagania analizowanego obszaru są reprezentowane na schemacie w naturalny sposób, nie wymagają dodatkowych wyjaśnień,! czytelny jeżeli graficzna reprezentacja zawiera minimum punktów percepcji (przecięć, załamań linii, itp.).,! podatny na modyfikacje. Rodzaje notacji dla potrzeb modelowania:! język naturalny,! zapis ustrukturalizowany tekstowo-numeryczny,! notacje graficzne. 1

Szczególne znaczenie maja notacje graficzne. Ich zalety potwierdzają badania psychologiczne. Na przykład diagram przebiegu sterowania: Takie opisy i schematy modelują część programową, czyli sterowanie programu. Można je stosować z różnymi poziomami szczegółowości. STRATEGIE BUDOWY MODELU Strategia top-down Od ogółu do szczegółu - najpierw definiuje się ogólne pojęcia, a następnie rozwija się je poprzez dodawanie szczegółów stosując elementy podstawowe (prymitywy). Strategia bottom-up Od szczegółu do ogółu - najpierw definiuje się pojęcia elementarne, a następnie buduje się z nich struktury w celu stworzenia pojęć ogólnych. Strategia inside-out Rozprzestrzenianie - najpierw definiuje się pojęcia, które wydają się być najważniejsze, a następnie rozwija się je poprzez dobudowywanie kolejnych pojęć, które stanowią ich uzupełnienie. W praktyce strategie analizy (i projektowania) są zwykle oparte na rozprzestrzenianiu, z zastosowaniem podejścia top-down lub bottomup w ramach tworzonych fragmentów systemu. 2

UML (Unified Modeling Language) jest metodyką projektowania, tzn. zestawem pojęć, oznaczeń, diagramów oraz zaleceń praktycznych. Notacja UML, która opiera się o podstawowe pojęcia obiektowości może być wykorzystana w dowolnej metodyce. Diagramy definiowane w UML:! Diagramy przypadków użycia! Diagramy klas, w tym diagramy pakietów! Diagramy zachowania się: o Diagramy stanów o Diagramy aktywności o Diagramy sekwencji o Diagramy współpracy! Diagramy implementacyjne: o Diagramy komponentów o Diagramy wdrożeniowe Diagramy te zapewniają uzyskanie wielu perspektyw projektowanego systemu w trakcie jego budowy, celem jej ułatwienia. Przykładowy diagram klas Osoba poprzedza zapisany_na 1..* * Kurs * zawiera następuje_po Student Pracownik Profesor prowadzi jest_składową 1..* 1..* prowadzony_dla Wykład * prowadzony_przez UML cieszy się aktualnie dużą popularnością. Prawdopodobnie przez wiele najbliższych lat będzie dominował w obszarze analizy i projektowania. 3

FAZA PROJEKTOWANIA Projektowanie proces transformacji wymagań na postać wykonywalną. Celem fazy projektowania jest udzielenie odpowiedzi na pytanie: Jak system ma być zaimplementowany? Wynikiem jest opis sposobu implementacji. Uwzględniane szczegóły implementacyjne:! hardware,! system operacyjny,! język programowania,! biblioteki,! narzędzia programistyczne. Rezultaty fazy projektowania! Poprawiony model! Uszczegółowiona specyfikacja projektu zawarta w słowniku danych! Dokument opisujący stworzony projekt składający się z (dla projektowania obiektowego): o diagramu klas o diagramy sekwencji komunikatów (dla wybranych sytuacji) o diagramów stanów o zestawień zawierających: " definicje klas " definicje atrybutów " definicje metod! Zasoby interfejsu użytkownika, np. menu, dialogi! Projekt bazy danych! Projekt fizycznej struktury systemu! Harmonogram fazy implementacji 4

Rozwój technologii tworzenia oprogramowania: programowanie sekwencyjne (sekwencje + instrukcja skoku) programowanie strukturalne (strukturalne instrukcje: grupujące, pętle,... ) programowanie proceduralne (podprogramy, procedury, funkcje) programowanie modułowe (biblioteki, moduły) programowanie obiektowe (klasy, dziedziczenie, polimorfizm) programowanie........... METODY STRUKTURALNE Wykorzystują:! Schematy Danych! Diagramy Przepływu Danych! Słownik Danych! Tablice Decyzyjne! Drzewa Decyzyjne Reguły podejścia opartego na tworzeniu funkcji:! Funkcje muszą mieć pojedyncze, zdefiniowane cele.! Interfejsy do funkcji (wejście i wyjście) powinny jak najprostsze.! Przy dekompozycji funkcji należy wykorzystywać zasadę nie więcej niż 7 funkcji podrzędnych.! Nazwy funkcji powinny odzwierciedlać ich cel i mówić co ma być zrobione, a nie jak ma być zrobione. 5

METODY OBIEKTOWE Obiektowość jest nową ideologią która stara się o uzyskanie jak najmniejszej luki pomiędzy myśleniem o rzeczywistości (dziedzinie problemowej) a myśleniem o danych i procesach, które zachodzą na danych. Postrzeganie świata rzeczywistego Model pojęciowy Schematy struktury danych Obiekt składa się z danych oraz z metod działających na tych danych. (obiekt bez danych jest zbiorem funkcji, obiekt bez metod to jest zwykła struktura). Proces tworzenia modelu obiektowego:! Identyfikacja klas i obiektów! Identyfikacja związków pomiędzy klasami! Identyfikacja i definiowanie pól (atrybutów)! Identyfikacja i definiowanie metod i komunikatów Podstawowe zasady obiektowości! obiekt - struktura danych, występująca łącznie z operacjami dozwolonymi do wykonywania na niej, odpowiadająca bytowi wyróżnialnemu w analizowanej rzeczywistości! tożsamość obiektu - wewnętrzny identyfikator (wskaźnik), który pozwala na odróżnienie go od innych obiektów.! hermetyzacja - rozróżnienie pomiędzy interfejsem do obiektu opisującym co obiekt robi, a implementacją definiującą, jak jest zbudowany i jak robi, to co ma zrobić! klasa - zgrupowanie obiektów o tych samych charakterystykach! dziedziczenie - wielokrotne użycie tego, co wcześniej zostało zrobione: definiowanie klas, które mają wszystkie cechy zdefiniowane wcześniej (z nadklasy) plus cechy nowe! polimorfizm - wybór nazwy dla operacji jest określony wyłącznie semantyką operacji. Decyzja o tym, która metoda implementująca daną operację, zależy od przynależności obiektu do odpowiedniej klasy 6

Kolejne kroki analizy obiektowej! Zidentyfikuj klasy i ich atrybuty! Usuń niepotrzebne klasy i dodaj dziedziczenie! Wyszukaj ewentualne relacje zawierania się: agregacje, kompozycje.! Dodaj operacje (metody) do klas poprzez zbudowanie modelu dynamicznego. Identyfikacja klas - typowe klasy:! odrębne przedmioty materialne (np. samochód),! zbiory przedmiotów materialnych (np. marka samochodu),! zdarzenia istotne dla systemu (np. przegląd gwarancyjny, dostawa),! role społeczne osób (np. pracownik, wykładowca),! organizacje (np. serwis samochodowy, firma),! interakcje między osobami lub systemami (np. pożyczka, spotkanie),! miejsca przebywania osób lub przedmiotów (np. adres, magazyn), dokumenty (np. faktura, prawo jazdy) Obiektem jest byt (rzecz lub pojęcie) obserwowalny w świecie rzeczywistym, którego dotyczy rozwiązywany problem. Obiektem może być także pewien zamknięty fragment oprogramowania (dana, procedura, moduł, dokument, okienko dialogu,...), którym można operować jako zwartą bryłą (wyszukiwać, wiązać, kopiować, blokować, usuwać, indeksować,...). Obiekt może być złożony, tj. może składać się z mniejszych obiektów. Klasa może mieć wiele podklas. Obiekt może być powiązany z innymi obiektami związkami skojarzeniowymi. Występują różne rodzaje związków między klasami np: dziedziczenie, związki logiczne. Przykład dziedziczenia: obiekt obiekt ruchomy pojazd pojazd mechaniczny auto 7

Inne związki między klasami: pracownik naukowy (pracuje_w) instytut (stanowi_część) wydział (stanowi_część) uczelnia (znajduje_się_w) miasto... Przykład obiektu podatnik (wypełnia) PIT adres (stanowi_część) danych podatnika dane:! Numer konta: 123-4321; Stan konta: 34567 PLN; Dane właściciela: Jan Kowalski; Upoważniony:...; Podpis: operacje:! Załóż konto (inicjalizuj dane)! Sprawdź (porównaj) podpis! Sprawdź stan konta! Wpłać! Wypłać! Nalicz procent! Upoważnij! Podaj osoby upoważnione! Zlikwiduj konto Podsumowanie obiektowości:! Modelowanie świata rzeczywistego jest ułatwione dzięki zastosowaniu podejścia obiektowego. Klasy, grupujące obiekty świata rzeczywistego, są najbardziej stabilnym elementem dziedziny problemu.! Hermetyzacja wspomaga redukcję złożoności poprzez zachęcanie użytkowników, by opierali się raczej na interfejsie do obiektu niż jego wewnętrznej organizacji. Abstrahowanie od szczegółów implementacyjnych znacząco ułatwia proces rozumienia. 8

DODATKOWE SKŁADOWE OPROGRAMOWANIA Projekt skonstruowany przez uszczegółowienie modelu opisuje składowe programu odpowiedzialne za realizację podstawowych zadań systemu. Gotowe oprogramowanie musi się jednak składać z dodatkowych składowych:! składowej interfejsu użytkownika! składowej zarządzania danymi (przechowywanie trwałych danych)! składowej zarządzania pamięcią operacyjną! składowej zarządzania zadaniami (podział czasu procesora) Do niedawna interfejs użytkownika pochłaniał do 90% kosztów. Rozwiązaniem jest zastosowanie technik RAD (Rapid Application Development) szybkiego rozwijania aplikacji. Terminem tym określa się narzędzia i techniki programowania umożliwiające szybką budowę prototypów lub gotowych aplikacji, z reguły oparte o programowanie wizualne. W ostatnich latach nastąpił gwałtowny rozwój narzędzi graficznych służących do tego celu: MS Windows, Object Windows, Microsoft Foundation Class, Visual Component Library,... INTERFEJS UŻYTKOWNIKA Organizacja interakcji z użytkownikiem:! Za pomocą linii komend dla niewielkich systemów, dla prototypów, dla zaawansowanych użytkowników. Zazwyczaj jest szybszy od interfejsu pełnoekranowego.! W pełnoekranowym środowisku okienkowym tworzenie takiego interfejsu ma sens dla dużych systemów. Jest wygodny dla początkujących i średnio zaawansowanych użytkowników Uwaga na ograniczenia możliwości psychofizycznych użytkownika: Człowiek może się jednocześnie skupić na 5-9 elementach 9

Różne sposoby wydawania przez użytkownika poleceń systemowi! Wpisywanie poleceń za pomocą linii komend.! Wybór opcji z menu.! Wciśnięcie odpowiedniej kombinacji klawiszy (skrótu).! Korzystanie z ikon w paskach narzędziowych.! Wybór przycisku w dialogu.! Korzystanie z nawigacji kursorem myszy i przycisków myszy Zasady projektowania interfejsu użytkownika! Spójność. Wygląd oraz obsługa interfejsu powinna być podobna w momencie korzystania z różnych funkcji. Poszczególne programy tworzące system powinny mieć zbliżony interfejs. Taka sama kolorystyka. Umieszczanie pól i przycisków w tych samych miejscach! Skróty dla doświadczonych użytkowników! Potwierdzenia przyjęcia zlecenia użytkownika (dla niebezpiecznych, dla długotrwałych, dla nietypowych operacji)! Prosta obsługa błędów czytelne wskazanie przyczyny błędów, możliwość poprawnego wprowadzenia bez potrzeby ponownego wprowadzania innych pól które były poprawne! Możliwość odwoływania-cofnięcia ostatniej (lub kilku ostatnich) akcji.! Wrażenie kontroli nad systemem. Użytkownicy nie lubią, kiedy system sam robi coś, czego użytkownik nie zainicjował, lub kiedy akcja systemu nie daje się przerwać Określenie fizycznej struktury systemu:! Określenie struktury kodu źródłowego, tj. wyróżnienie plików źródłowych, zależności pomiędzy nimi oraz rozmieszczenie składowych projektu w plikach źródłowych! Podział systemu na poszczególne aplikacje! Fizyczne rozmieszczenie danych i aplikacji na stacjach roboczych i serwerach. Struktura systemu implementowanego w języku C++. 10