Tytuł Modelowanie systemów informatycznych w języku UML 2.1 Autorzy Andrzej Stasiak, Włodzimierz Dąbrowski, Michał Wolski Język polski Wydawnictwo Wydawnictwo Naukowe PWN ISBN 978-83-01-21108-0 linia W praktyce Rok wydania 2009 Warszawa Wydanie 1 liczba stron 308 Format epub, mobi Spis treści
1. Wprowadzenie 13
2. Modelowanie – cele i metody 15 2.1. Przegląd rozdziału 15 2.1.1. Czego dotyczy ten rozdział? 15 2.1.2. Co powinieneś wiedzieć, żeby zrozumieć? 15 2.1.3. Jakie najważniejsze problemy rozwiążemy w tym rozdziale? 15 2.1.4. Czego dowiesz się po jego przeczytaniu? 15 2.1.5. Dlaczego warto przeczytać ten rozdział? 16 2.2. Czym jest, a czym nie jest model systemu? 16 2.2.1. Czym jest model systemu? 20 2.3. Po co produkować modele? 20 2.4. Rodzaje modeli 21 2.5. Odbiorcy i użytkownicy modeli 24 2.6. Język opisu modeli 25 2.6.1. Właściwości dobrego modelu 25 2.6.2. Jak popsuć model? atrybuty złego modelu 26 2.7. Podsumowanie 27 2.8. Czego dotyczył rozdział? 28 2.8.1. Czego nauczyłeś się w tym rozdziale? 28 2.8.2. Jakich błędów warto unikać? 28 2.9. Ćwiczenia sprawdzające 28 2.9.1. Pytania testowe 28 2.9.2. Pytania otwarte 28 2.10. Słowniczek pojęć wprowadzonych w rozdziale 29 2.11. Przegląd literatury 29
3. Modelowanie biznesowe 31 3.1. Przegląd rozdziału 31 3.1.1. Czego dotyczy ten rozdział? 31 3.1.2. Co powinieneś wiedzieć, by zrozumieć? 31 3.1.3. Jakie najważniejsze problemy rozwiążemy w tym rozdziale? 31 3.1.4. Czego dowiesz się po jego przeczytaniu? 31 3.2. Czym jest modelowanie
biznesowe 31 3.3. Notacja i semantyka modeli biznesowych wyrażonych w języku UML 33 3.4. Model biznesowy firmy zarządzającej nieruchomościami 34 3.4.1. Wstęp do zarządzania nieruchomościami – opis werbalny modelu biznesowego 34 3.4.1.1. Regulacje
prawne 34 3.4.1.2. Podstawowe pojęcia 35 3.4.1.3. Mapowanie procesów biznesowych na elementy modelu biznesowego 37 3.4.1.4. Model analityczny 39 3.4.1.5. Realizacja biznesowego przypadku użycia Odbierz media i usługę 40 3.4.1.6. Realizacja biznesowego przypadku wykorzystania Prowadź nadzór techniczny nad nieruchomością 42 3.4.1.7. Realizacja biznesowego przypadku wykorzystania Rozlicz finanse nieruchomości 45 3.4.1.8. Realizacja Wykonaj bieżące naprawy i remonty 48 3.4.1.9. Realizacja Wykonaj uchwałę właścicieli 49 3.5. Patrząc w przyszłość: Jak z modelu biznesowego zrobić model przypadków zastosowania 51 3.6. Czego dotyczył rozdział? 52 3.6.1. Czego nauczyłeś się w tym rozdziale? 52 3.6.2. Jakich błędów warto unikać? 52 3.7. Ćwiczenia sprawdzające 53 3.7.1. Pytania testowe 53 3.7.2. Pytania otwarte 53 3.8. Słowniczek pojęć wprowadzonych w rozdziale 53 3.9. Przegląd literatury 54
4. Modelowanie wymagań 55 4.1. Przegląd rozdziału 55 4.1.1. Czego dotyczy ten rozdział? 55 4.1.2. Co powinieneś wiedzieć, aby zrozumieć? 55 4.1.3. Jakie najważniejsze problemy rozwiążemy w tym rozdziale? 55 4.1.4. Czego dowiesz się po jego przeczytaniu? 55 4.1.5. Dlaczego warto przeczytać ten rozdział? 56 4.2. Czym są wymogi dla systemu informatycznego? 56 4.3. Typy wymagań 57 4.3.1. Wymagania użyteczne 57 4.3.1.1. Język naturalny 58 4.3.1.2. Język naturalny strukturalny 58 4.3.1.3. Tablice i formularze 58 4.3.1.4. Diagramy blokowe 59 4.3.1.5. Diagramy kontekstowe 59 4.3.1.6. Diagramy przypadków użycia 59 4.3.1.7. Formalizm matematyczny 59 4.3.1.8. Formularz wymagań praktycznych 59 4.3.2. Wymagania niefunkcjonalne 60 4.3.2.1. Kryteria dotyczące towaru 60 4.3.2.2. Oczekiwania dotyczące cyklu 60 4.3.2.3. Wymogi zewnętrzne 60 4.3.2.4. Weryfikowanie wymagań niefunkcjonalnych 60 4.4. Metody pozyskiwania i dokumentowania wymagań 61 4.4.1. Wywiady i przeglądy 61 4.4.2. Studia nad istniejącym oprogramowaniem 62 4.4.3. Studia wymagań systemowych 62 4.4.4. Studia osiągalności 62 4.4.5. Prototypowanie 62 4.4.5.1. Jakość dokumentu wymagań 63 4.4.5.2. Opis wymagań z użyciem przypadków wykorzystania 64 4.4.6. Konwencje typograficzne i opis szablonu 66 4.5. Dokument Specyfikacji Wymagań 67 4.5.1. Struktura Dokumentu Specyfikacji Wymagań 68 4.5.2. Wzorzec szablonu specyfikacji wymagań ergonomicznych 70 4.6. Najczęstsze błędy popełniane przy modelowaniu wymagań 72 4.7. Ćwiczenia sprawdzające 72 4.7.1. Pytania testowe 72 4.7.2. Pytania otwarte 73 4.8. Słowniczek pojęć wprowadzonych w rozdziale 73 4.9. Przegląd literatury 73
5. Modelowanie systemów czasu rzeczywistego w języku UML 75 5.1. Wprowadzenie 75 5.1.1. Czego dotyczy ten rozdział? 75 5.1.2. Co powinieneś wiedzieć, żeby zrozumieć? 76 5.1.3. Jakie najważniejsze problemy rozwiążemy w tym rozdziale? 76 5.1.4. Czego dowiesz się po jego przeczytaniu? 76 5.1.5. Dlaczego warto przeczytać ten rozdział? 76 5.2. UML w modelowaniu systemów czasu rzeczywistego 77 5.2.1. Mechanizmy rozszerzeń języka UML 79 5.2.1.1. Stereotypy 80 5.2.1.2. Metki 81 5.2.1.3. Ograniczenia 81 5.2.2. Analiza rozszerzeń języka UML dla SCR 82 5.3. Modelowanie statyki SCR 82 5.3.1. Klasy czy kapsuły? 83 5.3.2. Porty 84 5.3.3. Łączniki 87 5.4. Modelowanie dynamiki systemów uwarunkowanych czasowo 87 5.4.1. Protokoły 87 5.4.2. Maszyny stanowe 89 5.5. Warsztat projektanta systemów czasu rzeczywistego 90 5.6. Właściwości dobrego modelu SCR 94 5.6.1. Pokładowy system sterowania podwieszeniami 94 5.6.1.1. Wymagania wobec pokładowego systemu sterowania podwieszeniami 95 5.6.1.2. Modelowanie struktury PSSP 97 5.6.1.3. Modelowanie dynamiki PSSP 100 5.6.2. Projekt systemu sterowania automatem do serwowania gorących napojów 101 5.6.2.1. Oczekiwania wobec SSA 102 5.6.2.2. Struktura SSA 104 5.6.2.3. Model dynamiki SSA 107 5.7. Sięgając poza UML dla SCR 109 5.7.1. Dlaczego warto sterować rozwojem systemów poprzez modele? 110 5.7.2. MDA 111 5.7.3. MDA a MDSD 113 5.7.4. Co dalej z językiem UML 114 5.8. Ćwiczenia sprawdzające 115 5.8.1. Pytania testowe 115 5.8.2. Pytania otwarte 116 5.9. Słownik pojęć wprowadzonych w rozdziale 116 5.10. Przegląd literatury 117
6. Modelowanie baz danych 119 6.1. UML w modelowaniu baz informacji 119 6.2. Modelowanie danych 119 119 6.2.0.1. Przypadki wykorzystania 119 6.2.0.2. Diagram klas 120 6.2.0.3. Użycie podejścia tabelarycznego do tworzenia architektury aplikacji 121 6.2.1. Struktura DataSet 121 6.2.2. Podejście tablicaryczne 122 6.2.3. Domenowy model organizacji aplikacji 123 6.2.3.1. Sposób działania 123 6.2.3.2. Kiedy stosować model obiektowy? 125 6.2.4. Architektura aplikacji wykorzystująca typu DataSet 126 6.2.4.1. Architektura aplikacji 127 6.2.4.2. Implementacja 128 6.2.4.3. Struktura 132 6.2.4.4. Przykład z użyciem CodeSmith 144 6.3. Podsumowanie 147 6.4. Ćwiczenia sprawdzające 148 6.4.1. Pytania testowe 148 6.4.2. Pytania otwarte 148 6.5. Słowniczek pojęć wprowadzonych w rozdziale 148 6.6. Przegląd literatury 149
7. Wspomaganie modelowania poprzez narzędzia CASE 151 7.1. Czym są komplety CASE? 151 7.2. Przegląd przystępnych narzędzi CASE 151 7.2.1. Case/4/0 152 7.2.2. Oracle Designer 152 7.2.3. IBM Rational Suite Enterprise 153 7.2.4. IBM Rational Software Architect 153 7.2.5. Enterprise Architect 154 7.2.6. StarUML 154 7.3. Narzędzia CASE w praktyce 155 7.3.1. „Hurtownia" – narzędzia CASE w projektowaniu systemów biznesowych 155 7.3.1.1. Model przypadków użycia 155 7.3.1.2. Model analityczny 162 7.3.1.3. Model projektu 166 7.3.2. System „Bankomat" – narzędzia CASE w systemach zaimplementowanych 169 7.3.2.1. Perspektywa przypadków zastosowania 169 7.3.2.2. Perspektywa projektowa 172 7.3.2.3. Perspektywa składników 178 7.3.2.4. Perspektywa wdrożenia 179 7.4. Kierunki rozwoju narzędzi CASE 179
8. Przegląd diagramów języka UML 183 8.1. Diagram przypadków wykorzystania 183 8.1.1. Diagram przypadków użycia – definicja i wykorzystanie 183 8.1.2. Diagram przypadków użycia – notacja i semantyka 183 8.1.2.1. Przypadek wykorzystania 184 8.1.2.2. Aktor 186 8.1.2.3. Strukturalne związki zawierania i rozszerzenia 188 8.1.2.4. Generalizacja 189 8.1.3. Diagram przypadków zastosowania – przykładowe użycie 190 8.1.4. Od wymagań werbalnych po wymagania wizualne 191 8.1.5. Pięć typowo popełnianych błędów 196 8.1.6. Oczekiwania funkcjonalne to nie wszystko 200 8.1.7. Patrząc w przyszłość 201 8.2. Diagram kompletów 202 8.2.1. Diagram kompletów – definicja i zastosowanie 202 8.2.2. Diagram kompletów – notacja i semantyka 203 8.2.2.1. Zestaw 203 8.2.2.2. Zagnieżdżenie 204 8.2.2.3. Generalizacja 204 8.2.2.4. Zależność 205 8.2.2.5. Zależność ze stereotypem Import 206 8.2.3. Diagram zestawów – przykładowe wykorzystanie 206 8.2.4. Patrząc w przyszłość 207 8.3. Diagram klas 207 8.3.1. Diagram klas – definicja i zastosowanie 207 8.3.2. Diagram klas – notacja i semantyka 208 8.3.2.1. Klasa 208 8.3.2.2. Interfejs 209 8.3.2.3. Związek asocjacji (powiązania) 210 8.3.2.4. Związek agregacji 210 8.3.2.5. Silna agregacja (kompozycja) 211 8.3.2.6. Związek zależności 212 8.3.2.7. Związek generalizacji 213 8.3.2.8. Liczebność 213 8.3.3. Diagram klas – przykładowe wykorzystanie 214 8.3.4. Patrząc w przyszłość 215 8.4. Diagram obiektów 215 8.4.1. Diagram obiektów – definicja i wykorzystanie 215 8.4.2. Diagram obiektów – notacja i semantyka 216 8.4.2.1. Obiekt 216 8.4.2.2. Związek asocjacji (powiązania) 219 8.4.2.3. Związek agregacji 220 8.4.3. Diagram obiektów – przykładowe zastosowanie 220 8.4.4. Patrząc w przyszłość 220 8.5. Diagram czynności 222 8.5.1. Diagram czynności – definicja i zastosowanie 222 8.5.2. Diagram czynności – notacja i semantyka 222 8.5.2.1. Aktywność 222 8.5.2.2. Czynność 223 8.5.2.3. Przepływ sterujący 223 8.5.2.4. Przepływ obiektu 223 8.5.2.6. Warunek wstępny i warunek końcowy 223 8.5.2.7. Obiekt 224 8.5.2.8. Magazyn informacji 225 8.5.2.9. Węzeł końcowy 225 8.5.2.10. Węzeł początkowy 225 8.5.2.11. Zakończenie przepływu 226 8.5.2.12. Węzeł decyzyjny 226 8.5.2.13. Węzeł połączenia 228 8.5.2.14. Węzeł rozwidlenia 228 8.5.2.15. Węzeł scalenia 229 8.5.2.16. Partycja aktywności 230 8.5.3. Diagram czynności – przykładowe wykorzystanie 230 8.5.4. Patrząc w przyszłość 231 8.6. Diagram maszyny stanowej 232 8.6.1. Diagram maszyny stanowej – definicja i zastosowanie 232 8.6.2. Diagram maszyny stanowej – notacja i semantyka 232 8.6.2.1. Stan 232 8.6.2.2. Przejście 232 8.6.2.3. Stan początkowy 233 8.6.2.4. Stan końcowy 234 8.6.2.5. Maszyna stanowa 234 8.6.2.6. Punkt wejścia 235 8.6.2.7. Punkt wyjścia 235 8.6.2.8. Stan wznowienia 235 8.6.2.9. Węzeł wyboru 236 8.6.2.10. Węzeł rozwidlenia 237 8.6.3. Diagram maszyny stanowej – przykładowe zastosowanie 237 8.6.4. Patrząc w przyszłość 238 8.7. Diagramy sekwencji 239 8.7.1. Diagram sekwencji – definicja i zastosowanie 239 8.7.2. Diagram sekwencji – notacja i semantyka 239 8.7.2.1. Linia życia 240 8.7.2.2. Komunikat 240 8.7.2.3. Fragment 242 8.7.2.4. Wystąpienie interakcji 244 8.7.2.5. Punkt końcowy i startowy 245 8.7.2.6. Brama 247 8.7.3. Diagram sekwencji – przykładowe zastosowanie 247 8.7.4. Najczęściej popełniane błędy 249 8.7.5. Scenariusze na zróżnicowanym poziomie abstrakcji 255 8.7.6. Patrząc w przyszłość 256 8.8. Diagramy komunikacji 256 8.8.1. Diagram komunikacji – definicja i użycie 256 8.8.2. Diagram komunikacji – notacja i semantyka 257 8.8.2.1. Obiekt 257 8.8.2.2. Komunikat 257 8.8.3. Diagram komunikacji – przykładowe wykorzystanie 258 8.8.4. Patrząc w przyszłość 258 8.9. Diagramy przebiegów czasowych 259 8.9.1. Diagramy przebiegów czasowych – definicja i wykorzystanie 259 8.9.2. Diagramy przebiegów czasowych – notacja i semantyka 259 8.9.2.1. Linia stanów 259 8.9.2.2. Linia wartości 260 8.9.2.3. Etykieta wiadomości 261 8.9.2.4. Wiadomość końcowa 261 8.9.2.5. Brama diagramu 262 8.9.2.6. Wiadomość 262 8.9.3. Diagram przebiegów czasowych – przykładowe wykorzystanie 263 8.9.4. Patrząc w przyszłość 264 8.10. Diagramy widoku interakcji 264 8.10.1. Diagram widoku interakcji – definicja i zastosowanie 264 8.10.2. Diagram widoku interakcji – notacja i semantyka 265 8.10.2.1. Interakcja 265 8.10.2.2. Egzemplarz interakcji 265 8.10.2.3. Węzeł końcowy 266 8.10.2.4. Węzeł początkowy 266 8.10.2.5. Zakończenie przepływu 266 8.10.2.6. Węzeł decyzyjny 266 8.10.2.7. Węzeł połączenia 268 8.10.2.8. Węzeł rozwidlenia 268 8.10.2.9. Węzeł scalenia 269 8.10.2.10. Przepływ sterujący 270 8.10.3. Diagram widoku interakcji – przykładowe użycie 271 8.10.4. Patrząc w przyszłość 272 8.11. Diagram elementów 272 8.11.1. Diagram elementów – definicja i wykorzystanie 272 8.11.2. Diagram części – notacja i semantyka 273 8.11.2.1. Element 273 8.11.2.2. Interfejs 273 8.11.2.3. Połączenie zespolone 274 8.11.2.4. Port 275 8.11.2.5. Artefakt 275 8.11.3. Diagram części – przykładowe zastosowanie 276 8.11.4. Patrząc w przyszłość 277 8.12. Diagram struktury 277 8.12.1. Diagram struktury – definicja i użycie 277 8.12.2. Diagram struktury – notacja i semantyka 278 8.12.2.1. Część 278 8.12.2.2. Port 279 8.12.2.3. Komponent współpracy 279 8.12.2.4. Użycie elementu współpracy 279 8.12.2.5. Połączenie 280 8.12.2.6. Zależność reprezentacji 280 8.12.2.7. Zależność wystąpienia 280 8.12.2.8. Związek roli 281 8.12.3. Diagram struktury – przykładowe zastosowanie 281 8.12.4. Patrząc w przyszłość 284 8.13. Diagram wdrożenia 283 8.13.1. Diagram wdrożenia – definicja i zastosowanie 283 8.13.2. Diagram wdrożenia – notacja i semantyka 284 8.13.2.1. Węzeł 284 8.13.2.2. Element 284 8.13.2.3. Artefakt 285 8.13.2.4. Specyfikacja wdrożenia 285 8.13.2.5. Środowisko wykonania 286 8.13.2.6. Urządzenie 286 8.13.2.7. Asocjacja (powiązanie) 287 8.13.2.8. Manifest 287 8.13.2.9. Zależność 287 8.13.3. Diagram wdrożenia – przykładowe wykorzystanie 287 8.14. Przegląd literatury 288
Wykaz tabel 291
Wykaz rysunków 293
Skorowidz 303