Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Podobne dokumenty
Ewa Stemposz Andrzej Jodłowski Alina Stasiecka. Zarys metodyki wspierającej naukę projektowania systemów informacyjnych

Modelowanie i implementacja systemów informatycznych

Notka biograficzna Streszczenie

Krzysztof Dobosz. Handel elektroniczny

Modelowanie Systemów informacyjnych (MSI)

Wojciech Kamiński Romuald Kotowski Piotr Tronczyk Użytkowanie komputerów

Ewa Krassowska-Mackiewicz Język japoński. dla początkujących Wydanie drugie zmienione i rozszerzone

PRZEWODNIK PO PRZEDMIOCIE

Modelowanie i Analiza Systemów informacyjnych (MAS)

Krzysztof Dobosz. Przeszukiwanie. zasobów Internetu

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

PRZEWODNIK PO PRZEDMIOCIE

Podstawy modelowania programów Kod przedmiotu

MSI dr. Inż. Mariusz Trzaska. obiektowych językach programowania

Wykład 1 Inżynieria Oprogramowania

Modelowanie i analiza systemów informatycznych

INŻYNIERIA OPROGRAMOWANIA

Modelowanie danych, projektowanie systemu informatycznego

Modelowanie obiektowe

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

MAS dr. Inż. Mariusz Trzaska

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

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

MAS dr. Inż. Mariusz Trzaska. Realizacja różnych modeli dziedziczenia w obiektowych językach programowania

Paweł Lenkiewicz. Budowa nowoczesnej platformy e-learningowej

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

Programowanie obiektowe

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

Podstawy programowania III WYKŁAD 4

Diagramy klas. dr Jarosław Skaruz

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

MAS dr. Inż. Mariusz Trzaska

Grupa treści kształcenia, w ramach której przedmiot jest realizowany Przedmiot kierunkowy

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Diagramy klas. WYKŁAD Piotr Ciskowski

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

Techniki modelowania programów Kod przedmiotu

Modelowanie i Programowanie Obiektowe

Rysunek 1: Przykłady graficznej prezentacji klas.

PRZEWODNIK PO PRZEDMIOCIE

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

Egzamin / zaliczenie na ocenę*

Programowanie obiektowe Object-Oriented Programming. Automatyka i Robotyka II stopień ogólnoakademicki

Programowanie obiektowe

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

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

PRZEWODNIK PO PRZEDMIOCIE

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

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

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

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT

INFORMATYKA Pytania ogólne na egzamin dyplomowy

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

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Michał Adamczyk. Język UML

tel. (+48 81) /22 fax (+48 81) Wykład Ćwiczenia Laboratorium Projekt

Projekt systemu informatycznego

KARTA MODUŁU KSZTAŁCENIA

Programowanie obiektowe

Zagadnienia egzaminacyjne AUTOMATYKA I ROBOTYKA. Stacjonarne I-go stopnia TYP STUDIÓW STOPIEŃ STUDIÓW SPECJALNOŚĆ

UML w Visual Studio. Michał Ciećwierz

Programowanie obiektowe

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

Inżynieria oprogramowania - opis przedmiotu

Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Inzynieria Oprogramowania 2... nazwa przedmiotu SYLABUS A. Informacje ogólne. Wydział Ekonomiczno-Informatyczny w Wilnie

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

Podstawy projektowania systemów komputerowych

1. Mapowanie diagramu klas na model relacyjny.

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

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

poziom: Core wersja: 2.6 moduł: B : Wytwarzanie SYLLABUS

Języki Programowania Obiektowego

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

Historia modeli programowania

Specjalnościowy Obowiązkowy Polski Semestr 5

WPROWADZENIE DO UML-a

PRZEWODNIK PO PRZEDMIOCIE

Rok akademicki: 2012/2013 Kod: EAR s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Analiza i projektowanie aplikacji Java

Zasady organizacji projektów informatycznych

Piotr Kopalko Warszawa System obsługi teatru

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

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

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

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

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

Inżynieria Oprogramowania. UML Schematy klas

MAS dr. Inż. Mariusz Trzaska. Realizacja asocjacji w obiektowych językach

E-ID1S-08-s5. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/17

Załącznik Nr 1. Istotne warunki zamówienia do przetargu nieograniczonego na wykonanie pakietu usług programistycznych

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

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

Temat : SBQL 1 obiektowy język zapytań.

PRZEWODNIK PO PRZEDMIOCIE

E-1IZ3-06-s6. Inżynieria Programowania. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Podrozdziały te powinny zawierać informacje istotne z punktu widzenia przyjętego celu pracy

Transkrypt:

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Notka biograficzna Dr inż. Mariusz Trzaska jest adiunktem w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zajmuje się działalnościa dydaktyczną oraz naukową. Oprócz tego bierze udział w różnych projektach naukowych oraz komercyjnych. Prowadzi także szkolenia oraz warsztaty. Jego zainteresowania obejmuja inżynierię oprogramowania, bazy danych, graficzne interfejsy użytkownika, systemy rozproszone oraz technologie internetowe. Wyniki badań z wyżej wymienionych dziedzin publikuje w kraju i zagranicą. Streszczenie Książka poświęcona jest problematyce wytwarzania oprogramowania z wykorzystaniem podejścia obiektowego i notacji UML. Szczególny nacisk położono na przełożenie teoretycznych pojęć obiektowości na praktyczne odpowiedniki implementacyjne. Na konkretnym, biznesowym przykładzie (wypożyczalnia wideo) opisano poszczególne fazy wytwarzania oprogramowania: analiza, projekt, implementacja, testowanie ze szczególnym uwzględnieniem tych dwóch środkowych. Opis poparto implementacją biblioteki (dla języka Java) ułatwiającej stosowanie niektórych pojęć obiektowości (ekstensja, asocjacje, ograniczenia, dziedziczenie) oraz prototypem częściowo realizującym funkcjonalność wspomnianej wypożyczalni wideo (również dla języka Java). Przy pisaniu książki wykorzystano doświadczenia autora płynące z pracy w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych oraz uczestnictwa w różnych projektach komercyjnych oraz naukowo-badawczych. Odbiorcami publikacji mogą być wszyscy zainteresowani współczesnymi obiektowymi językami programowania takimi jak Java, C# czy C++. Książka szczególnie polecana jest dla studentów nauk informatycznych chcących pogłębić swoją wiedzę dotyczącą analizy, modelowania oraz implementacji nowoczesnych systemów komputerowych.

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Seria: Podręczniki akademickie Edytor serii: Leonard Bolc Tom serii: 32

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

c Copyright by Wydawnictwo PJWSTK Warszawa 2008 Wszystkie nazwy produktów są zastrzeżonymi nazwami handlowymi lub znakami towarowymi odpowiednich firm. Książki w całości lub w części nie wolno powielać ani przekazywać w żaden sposób, nawet za pomocą nośników mechanicznych i elektronicznych (np. zapis magnetyczny) bez uzyskania pisemnej zgody Wydawnictwa. Edytor prof. zw. dr hab. Leonard Bolc Redaktor techniczny Ada Jedlińska Komputerowy skład tekstu Mariusz Trzaska Projekt okładki Rafał Masłyk Wydawnictwo Polsko-Japońskiej Wyższej Szkoły Technik Komputerowych ul. Koszykowa 86, 02 008 Warszawa tel. 22 58 44 526, fax 22 58 44 503 e-mail: oficyna@pjwstk.edu.pl oprawa miękka: ISBN 83-89244-71-3 wersja elektroniczna: ISBN 978-83-63103-21-7

Dla mojej Rodziny

I Spis rozdziałów 1 Wprowadzenie... 7 2 Analiza... 9 2.1 Wymagania klienta... 10 2.2 Wymagania dla Wypożyczalni wideo... 11 2.3 Przypadki użycia... 13 2.4 Diagram klas... 22 2.5 Diagram aktywności... 81 2.6 Diagram stanów... 83 3 Projektowanie... 85 3.1 Klasy... 86 3.2 Asocjacje... 116 3.3 Dziedziczenie... 155 3.4 Ograniczenia i inne konstrukcje... 183 3.5 Model relacyjny... 193 3.6 Użyteczność graficznych interfejsów użytkownika... 222 3.7 Projekt dla Wypożyczalni wideo... 231 4 Implementacja i testowanie... 249 4.1 Wprowadzenie... 249 4.2 Zarządzanie danymi... 255 4.3 Logika biznesowa... 260 4.4 Implementacja Graficznego Interfejsu Użytkownika... 263 4.5 Testowanie... 266

II 5 Uwagi końcowe... 269 Bibliografia... 271 Ważniejsze informacje związane z Wypożyczalnią wideo... 273 Indeks... 275 Spis ilustracji... 277 Spis listingów... 283

III Spis treści 1 Wprowadzenie... 7 2 Analiza... 9 2.1 Wymagania klienta... 10 2.2 Wymagania dla Wypożyczalni wideo... 11 2.3 Przypadki użycia... 13 2.3.1 Ogólny diagram przypadków użycia dla Wypożyczalni wideo... 15 2.3.2 Szczegółowy diagram przypadków użycia... 19 2.4 Diagram klas... 22 2.4.1 Obiekt... 23 2.4.2 Klasa... 24 2.4.2.1 Atrybuty... 25 2.4.2.2 Metody... 30 2.4.3 Asocjacje... 31 2.4.3.1 Asocjacja binarna... 34 2.4.3.2 Asocjacja n-arna... 35 2.4.3.3 Asocjacja kwalifikowana... 36 2.4.3.4 Asocjacja rekurencyjna (zwrotna)... 37 2.4.3.5 Klasa asocjacji... 38 2.4.3.6 Agregacja i kompozycja... 40 2.4.4 Dziedziczenie... 42 2.4.4.1 Dziedziczenie pojedyncze... 42 2.4.4.2 Klasa abstrakcyjna i polimorfizm metod... 43 2.4.4.3 Dziedziczenie wielokrotne... 47 2.4.4.4 Dziedziczenie typu overlapping... 48 2.4.4.5 Dziedziczenie wieloaspektowe... 49 2.4.4.6 Dziedziczenie dynamiczne... 50 2.4.5 Ograniczenia... 51 2.4.5.1 Ograniczenie {subset}... 51 2.4.5.2 Ograniczenie {ordered}... 52 2.4.5.3 Ograniczenie {bag} oraz {history}... 52 2.4.5.4 Ograniczenie {xor}... 53 2.4.6 Diagram klas dla Wypożyczalni Wideo... 53 2.5 Diagram aktywności... 81 2.6 Diagram stanów... 83

IV 3 Projektowanie... 85 3.1 Klasy... 86 3.1.1 Obiekt... 86 3.1.2 Klasa... 87 3.1.3 Ekstensja klasy... 88 3.1.3.1 Implementacja ekstensji klasy w ramach tej samej klasy... 89 3.1.3.2 Implementacja ekstensji klasy przy użyciu klasy dodatkowej... 91 3.1.4 Atrybuty... 92 3.1.4.1 Atrybuty proste... 92 3.1.4.2 Atrybuty złożone... 93 3.1.4.3 Atrybuty wymagane oraz opcjonalne... 93 3.1.4.4 Atrybuty pojedyncze... 94 3.1.4.5 Atrybuty powtarzalne... 94 3.1.4.6 Atrybuty obiektu... 94 3.1.4.7 Atrybuty klasowe... 94 3.1.4.8 Atrybuty wyliczalne... 95 3.1.5 Metody... 96 3.1.5.1 Metoda obiektu... 96 3.1.5.2 Metoda klasowa... 96 3.1.5.3 Przeciążenie metody... 97 3.1.5.4 Przesłonięcie metody... 97 3.1.6 Trwałość ekstensji... 97 3.1.6.1 Ręczna implementacja trwałości danych... 98 3.1.6.2 Implementacja trwałości danych w oparciu o serializację... 104 3.1.6.3 Inne sposoby uzyskiwania trwałości danych... 108 3.1.7 Klasa ObjectPlus... 110 3.2 Asocjacje... 116 3.2.1 Implementacja asocjacji za pomocą identyfikatorów... 116 3.2.2 Implementacja asocjacji za pomocą natywnych referencji... 122 3.2.3 Implementacja różnych rodzajów asocjacji... 128 3.2.3.1 Asocjacja skierowana... 128 3.2.3.2 Asocjacja rekurencyjna... 128 3.2.3.3 Asocjacja z atrybutem... 130 3.2.3.4 Asocjacja kwalifikowana... 131 3.2.3.5 Asocjacja n-arna... 134 3.2.3.6 Implementacja agregacji... 135 3.2.3.7 Implementacja kompozycji... 135 3.2.4 Klasa ObjectPlusPlus... 142 3.3 Dziedziczenie... 155 3.3.1 Dziedziczenie rozłączne... 155 3.3.2 Polimorficzne wołanie metod... 156 3.3.3 Dziedziczenie typu overlapping... 160 3.3.3.1 Obejście dziedziczenia overlapping za pomocą grupowania... 160

V 3.3.3.2 Obejście dziedziczenia overlapping za pomocą agregacji lub kompozycji... 162 3.3.3.3 Polimorfizm w dziedziczeniu overlapping... 166 3.3.4 Dziedziczenie kompletne oraz niekompletne... 167 3.3.5 Dziedziczenie wielokrotne (wielodziedziczenie)... 168 3.3.6 Dziedziczenie wieloaspektowe... 173 3.3.7 Dziedziczenie dynamiczne... 176 3.3.8 Dziedziczenie, a ekstensja klasy... 180 3.3.9 Podsumowanie... 182 3.4 Ograniczenia i inne konstrukcje... 183 3.4.1 Implementacja ograniczeń dotyczących atrybutów... 183 3.4.2 Implementacja ograniczenia {subset}... 185 3.4.3 Implementacja ograniczenia {ordered}... 189 3.4.4 Implementacja ograniczenia {bag} oraz {history}... 189 3.4.5 Implementacja ograniczenia {XOR}... 190 3.4.6 Implementacja innych ograniczeń... 192 3.5 Model relacyjny... 193 3.5.1 Mapowanie klas... 194 3.5.2 Mapowanie asocjacji... 197 3.5.2.1 Asocjacje binarne... 197 3.5.2.2 Asocjacje z atrybutem... 199 3.5.2.3 Asocjacje kwalifikowane... 200 3.5.2.4 Asocjacje n-arne... 201 3.5.2.5 Agregacja i kompozycja... 203 3.5.3 Mapowanie dziedziczenia... 204 3.5.4 Relacyjne bazy danych w obiektowych językach programowania... 206 3.5.4.1 Wykorzystanie JDBC... 207 3.5.4.2 Wykorzystanie gotowej biblioteki do pracy z danymi (Hibernate)... 209 3.6 Użyteczność graficznych interfejsów użytkownika... 222 3.6.1 Co to jest użyteczność?... 222 3.6.2 Kształtowanie użyteczności... 223 3.6.3 Testowanie użyteczności... 223 3.6.4 Użyteczność niestety kosztuje... 225 3.6.5 Zalecenia dotyczące Graficznego Interfejsu Użytkownika... 226 3.6.5.1 Wymagania dotyczące funkcjonalności... 226 3.6.5.2 Wymagania związane z wykorzystywaną platformą... 227 3.6.5.3 Wymagania dotyczące okien... 227 3.6.5.4 Wymagania dotyczące zarządzania oknami dialogowymi... 228 3.6.5.5 Wymagania dotyczące kontrolek... 228 3.6.5.6 Wymagania dotyczące menu... 229 3.6.5.7 Wymagania dotyczące podpisów... 230 3.6.5.8 Wymagania dotyczące pracy z klawiaturą... 230 3.6.6 Jakość interfejsu graficznego... 230

VI 3.7 Projekt dla Wypożyczalni wideo... 231 3.7.1 Diagram klas dla wypożyczalni wideo... 231 3.7.2 Projekt działania systemu... 242 3.7.3 Projekt interfejsu użytkownika... 245 4 Implementacja i testowanie... 249 4.1 Wprowadzenie... 249 4.1.1 Nazewnictwo i formatowanie kodu źródłowego... 249 4.1.2 Zintegrowane środowisko programistyczne (IDE)... 252 4.1.3 Wykorzystanie narzędzi CASE... 253 4.1.4 Użyteczne biblioteki pomocnicze... 254 4.2 Zarządzanie danymi... 255 4.3 Logika biznesowa... 260 4.4 Implementacja Graficznego Interfejsu Użytkownika... 263 4.5 Testowanie... 266 5 Uwagi końcowe... 269 Bibliografia... 271 Ważniejsze informacje związane z Wypożyczalnią wideo... 273 Indeks... 275 Spis ilustracji... 277 Spis listingów... 283