Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych



Podobne dokumenty
Analiza systemowa. Andrzej Łachwa Bazy danych 12+/15

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Projektowanie systemów informacyjnych: język UML

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

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

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

O autorze... 9 Wprowadzenie... 11

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

Stacjonarne Wszystkie Katedra Informatyki Stosowanej dr inż. Krzysztof Strzałkowski. Kierunkowy Nieobowiązkowy Polski Semestr piaty

Stacjonarne Wszystkie Katedra Inżynierii Produkcji dr Sławomir Luściński. Kierunkowy Nieobowiązkowy Polski Semestr trzeci. Semestr zimowy Brak Tak

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2013/2014

Strukturalne metodyki projektowania systemûw informatycznych

Spis treści. Wprowadzenie 15

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

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

JĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO

Uniwersytet Rzeszowski

Studia podyplomowe. : prof. dr hab. inż. Włodzimierz Bielecki wbielecki@wi.zut.edu.pl

Rok akademicki: 2012/2013 Kod: IET SW-s Punkty ECTS: 3. Kierunek: Elektronika i Telekomunikacja Specjalność: Systemy wbudowane

Wykład 2. Budowa komputera. W teorii i w praktyce

Zaawansowane programowanie w C++ (PCP)

OGŁOSZENIE O ZAMÓWIENIU - usługi

Rozdział 3. Słownik danych (Data Dictionary)...n..61 Formalizm notacji słownika danych...u Rozdział 4. Specyfikacja procesów...n...

INFORMATYKA dla gimnazjum Opis założonych osiągnięć ucznia klasy trzeciej

Narzędzia CASE dla.net. Łukasz Popiel

Wartości domyślne, szablony funkcji i klas

STEROWNIKI NANO-PLC NA PRZYKŁADZIE STEROWNIKA LOGO!

Informatyka, I stopień. Programowanie (PRO300.1)

Spis tre±ci. 1 Wst p Zawarto± rozdziaªów Projekt LoXiM... 2

Programowanie MorphX Ax

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

PowerShell. Sławomir Wawrzyniak

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

Elastyczne systemy wytwarzania

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Zagadnienia programowania obiektowego

Podstawy programowania. Wprowadzenie

Inżynieria Programowania - Projektowanie architektoniczne. Plan wykładu. Motto. Wstęp. Notatki. Notatki. Notatki. Notatki.

Rok akademicki: 2014/2015 Kod: IEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

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

Część I Programowanie niskiego poziomu w języku C 19

Wykład 1 Inżynieria Oprogramowania

Podstawy programowania

Wzorce projektowe. dr inż. Marcin Pietroo

I.1.1. Technik spedytor 342[02]

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

Modelowanie i analiza w inżynierii wymagań

Podstawy programowania III WYKŁAD 4

I. Zarządzanie ryzykiem wewnętrznym w jednostkach sektora finansów publicznych

Wykwalifikowani LOGISTYCY. podejmą zatrudnienie

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

Testowanie i wdrażanie oprogramowania Emulator systemu bankowego

Wydział Informtyki i Nauki o Materiałach Kierunek Informatyka. kod kierunku (dodaj kod przedmiotu)

Programowanie obiektowe

Tworzenie modelu obiektowego

ClearQuest. produkt. Functional TesterPlus. Functional Manual Tester, Tester Robot

DTR.ZL APLISENS PRODUKCJA PRZETWORNIKÓW CIŚNIENIA I APARATURY POMIAROWEJ INSTRUKCJA OBSŁUGI (DOKUMENTACJA TECHNICZNO-RUCHOWA)

UML w Visual Studio. Michał Ciećwierz

PL/SQL. Zaawansowane tematy PL/SQL

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?

C++. Æwiczenia zaawansowane

PRZEWODNIK PO PRZEDMIOCIE

Tytuł pracy. Praca dyplomowa inżynierska. Filip Piechocki. Tytuł Imię i Nazwisko

PRAKTYKA ZAWODOWA. TECHNIK INFORMATYK 312 [01]/T, SP/MENiS/ Stara podstawa programowa. TRWANIA PRAKTYKI 4 TYGODNIE x 5 dni = 20 dni

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

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

Spis treści. WD_New_000_TYT.indd :06:07

Analiza i projektowanie obiektowe w UML Kod przedmiotu

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

Wykład 0 Informacje Podstawowe

KARTA PRZEDMIOTU. Forma prowadzenia zajęć

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2012/2013

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

Dokumentacja motoryzacyjnego sklepu internetowego

Metoda wykrywania konfliktów zasobowych w aplikacjach wielowątkowych

Systemy wbudowane Mikrokontrolery

PROGRAM NAUCZANIA INFORMATYKA

Wewnątrzszkolny system kształcenia PLAN WYNIKOWY

Programowanie Komputerów 3FZ

SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Niestacjonarne Kod kierunku: 11.

Programowanie Zespołowe

Wzorce projektowe kreacyjne

Modelowanie i analiza systemów informatycznych

KARTA PRZEDMIOTU. w języku polskim Statystyka opisowa Nazwa przedmiotu USYTUOWANIE PRZEDMIOTU W SYSTEMIE STUDIÓW. dr Agnieszka Krzętowska

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

Wykład 8: klasy cz. 4

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Filozoa Clojure. Mateusz Dereniowski. 15 lipca Instytut Informatyki Uniwersytetu Wrocªawskiego

Zarządzanie kosztami w dziale utrzymania ruchu

Opteamum korzyści. Aktualnie poszukujemy kandydatów na stanowisko: Programista ASP.NET MVC / WCF Nr ref. PROGRAMISTA ASP.NET/DRP/2014.

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

WSTĘP DO PROGRAMOWANIA

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Podstawy Programowania

Transkrypt:

Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1. Rozwój technik programowania... 12 1.3.2. Cechy obiektowego podejścia do programowania... 13 1.3.3. Języki realizujące wsparcie dla programowania obiektowego... 14 2. Projektowanie systemów informatycznych... 15 2.1. Architektura oparta na modelu (MDA)... 15 2.1.1. Struktura MDA... 16 2.1.2. Typowy przebieg procesu... 17 2.2. Ogólna charakterystyka języka UML... 18 2.3. Diagramy struktury... 19 2.3.1. Diagramy klas... 19 2.3.1.1. Klasy... 19 2.3.1.2. Interfejsy... 20 2.3.1.3. Zależności... 21 2.3.1.4. Powiązania... 21 2.3.1.5. Klasy powiązania... 23 2.3.1.6. Uogólnienia... 24 2.3.1.7. Klasy zagnieżdżone... 24 2.4. Diagramy dynamiki... 25 2.4.1. Diagramy przypadków użycia... 25 2.4.2. Diagramy sekwencji... 27 2.4.2.1. Jawne tworzenie i usuwanie obiektów... 30 2.4.2.2. Specyfikowanie parametrów czasowych komunikatów... 30 2.4.2.3. Fragmenty wyodrębnione... 31 2.4.2.4. Rozgałęzienia... 32 2.4.2.5. Iteracje... 33 2.4.2.6. Zagnieżdżanie diagramów sekwencji... 34 3

2.4.3. Diagram stanów... 34 2.4.3.1. Stany... 35 2.4.3.2. Przejścia... 36 2.4.3.3. Zdarzenia... 36 2.4.3.4. Stany złożone... 37 2.4.3.5. Punkty wejścia i wyjścia... 38 2.4.3.6. Punkty węzłowe i obszary współbieżne... 39 2.4.3.7. Historia... 40 2.4.4. Diagram czynności... 41 2.4.4.1. Partycje... 41 2.5. Metodyki projektowe... 43 2.5.1. Projekty o małej skali... 43 2.5.2. Modele liniowe... 44 2.5.3. Modele iteracyjne... 45 2.5.3.1. Programowanie ekstremalne... 46 2.5.3.2. Metodyka Scrum... 47 2.5.3.3. Model spiralny... 48 2.5.3.4. Rational Unified Process... 50 3. Implementacja w językach C i C++... 54 3.1. Struktura programu w języku C... 54 3.1.1. Identyfikatory... 56 3.1.2. Słowa kluczowe... 56 3.1.3. Zmienne... 56 3.1.4. Typy danych... 57 3.1.4.1. Typy proste... 57 3.1.4.2. Typy pochodne... 58 3.1.5. Funkcje... 70 3.1.5.1. Wskaźniki do funkcji... 72 3.1.6. Instrukcje... 73 3.1.6.1. Instrukcje wyrażeniowe... 73 3.1.6.2. Instrukcja warunkowa... 74 3.1.6.3. Instrukcja wyboru... 76 3.1.6.4. Instrukcja złożona (blokowa)... 76 3.1.6.5. Instrukcje pętli programowych... 77 3.1.7. Wyrażenia... 80 3.1.7.1. Operatory arytmetyczne... 80 3.1.7.2. Operacje przypisania... 80 3.1.7.3. Operacje porównania... 80 3.1.7.4. Operacje logiczne... 81 3.1.7.5. Operacje bitowe... 81 3.1.7.6. Operacja warunkowa... 81 3.1.8. Operacje wejścia-wyjścia... 82 3.1.8.1. Funkcje wejścia-wyjścia języka C... 82 4

3.2. Obiektowe programowanie w języku C++... 92 3.2.1. Typ obiektowy (klasa)... 92 3.2.1.1. Składnia deklaracji klasy... 92 3.2.1.2. Reprezentacja obiektów w pamięci... 93 3.2.1.3. Słowo kluczowe this... 93 3.2.1.4. Typy referencyjne... 94 3.2.1.5. Funkcje przeciążone... 94 3.2.1.6. Konstruktor i destruktor... 95 3.2.1.7. Przykład deklaracji klasy... 96 3.2.1.8. Prosty przykład programu obiektowego... 97 3.2.2. Argumenty domniemane funkcji... 98 3.2.3. Funkcje operatorowe... 99 3.2.3.1. Strumieniowe operatory << i >>... 100 3.2.3.2. Statyczne składniki klasy... 101 3.2.4. Zaprzyjaźnienia... 102 3.2.5. Klasy zagnieżdżone... 104 3.2.6. Szablony... 106 3.2.6.1. Przykład szablonu funkcyjnego... 106 3.2.6.2. Przykład szablonu klasy... 107 3.2.6.3. Implementacja wektora o zmiennej liczbie elementów... 108 3.2.7. Relacja całość-część... 110 3.2.8. Dziedziczenie... 112 3.2.8.1. Deklarowanie klas pochodnych... 113 3.2.8.2. Klasy abstrakcyjne... 116 3.2.9. Reakcja programu na sytuacje wyjątkowe... 117 3.2.9.1. Obsługa wyjątków systemowych... 118 3.2.9.2. Obsługa wyjątków programowych... 119 3.2.9.3. Specyfikowanie wyjątków dla funkcji... 120 3.2.9.4. Unifikacja obsługi wyjątków systemowych i programowych... 121 3.2.9.5. Standardowe klasy wyjątków... 122 3.2.10. Dynamiczne struktury danych... 123 3.2.10.1. Stos (stack) k... 123 3.2.10.2. Kolejka (queue)... 124 3.2.10.3. Lista dwukierunkowa... 125 3.2.10.4. Drzewa... 126 3.2.11. Biblioteka Standardowa C++... 127 3.2.11.1. Biblioteka strumieni wejścia-wyjścia... 127 3.2.11.2. Zastosowanie STL do dynamicznych struktur danych... 131 4. Implementacja w języku Java... 136 4.1. Środowisko wykonania programów... 136 4.2. Składnia... 137 4.2.1. Pierwszy program... 137 4.2.2. Klasa... 138 5

4.2.2.1. Konstruktor... 139 4.2.2.2. Inicjator klasy i obiektu... 140 4.2.2.3. Destruktor... 141 4.2.2.4. Słowo kluczowe this... 141 4.2.3. Dziedziczenie... 141 4.2.4. Klasy abstrakcyjne... 143 4.2.5. Tworzenie i używanie obiektów... 143 4.2.6. Kopiowanie obiektów... 144 4.2.7. Tablice... 145 4.2.8. Klasy wewnętrzne i lokalne... 146 4.2.9. Interfejsy... 148 4.2.10. Aplety... 150 4.3. Obsługa zdarzeń... 152 4.3.1. Rodzaje zdarzeń... 154 4.4. Obsługa sytuacji wyjątkowych... 155 4.4.1. Klasy obsługi wyjątków... 156 4.4.2. Własne typy wyjątków... 156 4.4.3. Generowanie wyjątków... 157 4.5. Instrukcje wejścia-wyjścia... 158 4.5.1. Bajtowo zorientowane wejście... 158 4.5.2. Bajtowo zorientowane wyjście... 159 4.5.3. Operacje dla danych typów wbudowanych... 159 4.5.4. Wejście-wyjście dla obiektów... 163 4.6. Programowanie wielowątkowe... 166 4.6.1. Tworzenie wątków... 166 4.6.2. Stany wątków... 169 4.6.3. Priorytety wątków... 169 4.6.4. Synchronizacja wątków... 173 5. Obiektowe wzorce projektowe... 174 5.1. Wzorce Singleton i Multipleton... 174 5.1.1. Schemat wzorców Singleton i Multipleton... 175 5.1.2. Implementacja wzorca Singleton i Multipleton... 175 5.2. Wzorzec Iterator r... 177 5.2.1. Składniki wzorca Iterator r... 177 5.2.2. Konsekwencje zastosowania wzorca Iterator r... 177 5.2.3. Schemat wzorca Iterator r... 177 5.2.4. Implementacja wzorca Iterator r... 177 5.2.4.1. Implementacja klas abstrakcyjnych... 177 5.2.4.2. Implementacja klasy kolekcji elementów... 179 5.2.4.3. Porównanie implementacji konkretnych iteratorów... 179 5.2.5. Przykładowy kod napisany z użyciem klas wzorca Iterator r... 180 5.3. Wzorzec Obserwator r ( Observer)... 181 6

5.3.1. Składniki wzorca Obserwator r... 181 5.3.2. Schemat wzorca Obserwator r... 181 5.3.3. Implementacja wzorca Obserwator r... 182 5.3.3.1. Implementacja klas abstrakcyjnych... 182 5.3.3.2. Implementacja klas konkretnych... 183 5.3.4. Przykładowy kod napisany z użyciem klas wzorca Obserwator r... 184 5.4. Wzorzec Stan (State)... 184 5.4.1. Zastosowania wzorca Stan... 184 5.4.2. Schemat wzorca Stan... 185 5.4.3. Składniki wzorca Stan... 185 5.4.4. Konsekwencje zastosowania wzorca Stan... 185 5.4.5. Implementacja wzorca Stan... 186 5.4.6. Przykładowy kod napisany z użyciem klas wzorca Stan... 188 5.5. Wzorzec Metoda Wytwórcza (Factory Method )... 188 5.5.1. Zastosowania wzorca Metoda Wytwórcza... 189 5.5.2. Składniki wzorca Metoda Wytwórcza... 189 5.5.3. Schemat wzorca Metoda Wytwórcza... 189 5.5.4. Konsekwencje zastosowania wzorca Metoda Wytwórcza... 189 5.5.5. Implementacja wzorca Metoda Wytwórcza... 190 5.5.6. Przykładowy kod napisany z użyciem klas wzorca Metoda Wytwórcza... 192 5.6. Wzorzec Abstrakcyjna Fabryka (Abstract Factory)... 192 5.6.1. Zastosowania wzorca Abstrakcyjna Fabryka... 192 5.6.2. Schemat wzorca Abstrakcyjna Fabryka... 193 5.6.3. Składniki wzorca Abstrakcyjna Fabryka... 193 5.6.4. Konsekwencje zastosowania wzorca Abstrakcyjna Fabryka... 194 5.6.5. Implementacja wzorca Abstrakcyjna Fabryka... 194 5.6.6. Przykładowy kod napisany z użyciem klas wzorca Abstrakcyjna Fabryka... 196 5.7. Wzorzec Kompozyt ( Composite)... 197 5.7.1. Zastosowania wzorca Kompozyt... 197 5.7.2. Składniki wzorca Kompozyt... 197 5.7.3. Schemat wzorca Kompozyt... 198 5.7.4. Konsekwencje zastosowania wzorca Kompozyt... 198 5.7.5. Implementacja wzorca Kompozyt... 199 5.7.6. Przykładowy kod napisany z użyciem klas wzorca Kompozyt... 201 6. Weryfikacja i walidacja... 203 6.1. Testowanie oprogramowania... 203 6.1.1. Definicje... 204 6.1.2. Metody testowania... 205 6.1.2.1. Metody funkcjonalne... 206 6.1.2.2. Metody strukturalne... 206 6.1.3. Zakres testowania... 206 6.1.3.1. Testy jednostek... 206 7

6.1.3.2. Testy scalenia... 207 6.1.3.3. Testy systemów użytkowych... 208 6.1.4. Uruchamianie... 208 6.1.4.1. Logowanie danych... 208 6.1.4.2. Asercje... 208 6.1.4.3. Interaktywne narzędzia uruchomieniowe... 209 6.1.5. Profilowanie (profiling)... 209 7. Przegląd narzędzi... 211 7.1. Narzędzia do modelowania graficznego... 212 7.1.1. Rhapsody firmy IBM/Telelogic... 212 7.1.2. Borland Together... 212 7.1.3. IBM Rational System Architect t... 213 7.1.4. Enterprise Architect t firmy Sparx Systems... 214 7.2. Zintegrowane środowiska rozwijania aplikacji... 216 7.2.1. NetBeans... 216 7.2.2. Eclipse... 217 7.2.3. Microsoft Visual Studio... 219 7.3. Środowiska do projektowania procesu... 220 7.3.1. Rational Method Composer... 220 7.3.2. Eclipse Process Framework... 220 8. Przykład realizacji systemu... 222 8.1. Opis wymagań... 222 8.2. Analiza... 223 8.2.1. Model przypadków użycia... 223 8.2.1.1. Dokumentacja przypadków użycia... 226 8.2.2. Model zachowania... 227 8.2.2.1. Diagram sekwencji... 227 8.2.2.2. Diagram maszyny stanowej... 229 8.2.3. Model struktury... 232 8.2.3.1. Pakiet Main... 232 8.2.3.2. Pakiet Shapes... 234 8.3. Implementacja... 236 8.4. Uruchamianie... 237 8.5. Testowanie... 237 8.6. Wnioski... 239 Literatura... 240 Indeks alfabetyczny... 241 8