1/5 Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2011/2012 Nazwa przedmiotu: Analiza i projektowanie systemów informatycznych Kierunek: Specjalność: Tryb studiów: INFORMATYKA Kod/nr Dzienne studia II-go stopnia (magisterskie) Rodzaj przedmiotu: kierunkowy Liczba pkt ECTS 6 Instytut/ Katedra: Instytut Informatyki / Zakład Teorii Informatyki Semestr: I i II Prowadzący przedmiot: Dr inż. Piotr Bajerski Prowadzący zajęcia: Liczba godzin Wykład: dr inż. Piotr Bajerski dr inż. Robert Brzeski dr inż. Katarzyna Harężlak dr inż. Henryk Josiński Ćwiczenia: Laboratorium: dr inż. Małgorzata Bach dr inż. Piotr Bajerski dr inż. Robert Brzeski dr inż. Adam Duszeńko dr inż. Katarzyna Harężlak dr inż. Ewa Płuciennik-Psota dr inż. Aleksandra Werner dr inż. Łukasz Wyciślik Projekt: Seminarium: Wykład: 30 Ćwiczenia: Laboratorium: 30 Projekt: Seminarium:
2/5 Powiązanie ze standardami i cel kształcenia Grupa treści kierunkowych 1. Kształcenie w zakresie modelowania i analizy systemów informatycznych. Cechy systemów informatycznych i związanych z nimi artefaktów. Wybrane metody modelowania i ich zastosowanie. Wybrane metody analizy systemów informatycznych i związanych z nimi artefaktów. Celem przedmiotu jest umożliwienie studentom nabycia umiejętności i kompetencji w zakresie analizowania cech systemów informatycznych oraz konstruowania modeli systemów informatycznych i umiejętnego posługiwania się nimi. Szczególny nacisk kładziony jest na stosowanie języka UML oraz poprawne wykorzystywanie wzorców projektowych i architektonicznych. Przedmioty wprowadzające oraz wymagania wstępne Inżynieria Oprogramowania, Bazy Danych
3/5 Treść wykładów: Wprowadzenie. Cechy systemów informatycznych i związanych z nimi artefaktów. Etyka wytwarzania oprogramowania. Klasyczne modele procesów wytwarzania oprogramowania. Rational Unified Process (RUP). Zasady zwinnego wytwarzania oprogramowania (ang. Agile Software Development), XP (ang. Extreme Programming) i SCRUM. Inżynieria wymagań. Klasyfikacja wymagań. Zarządzanie wymaganiami. Atrybuty wymagań. RequisitePro jako przykład narzędzia wspierającego dokumentację i zarządzanie wymaganiami. Dokument wizji (RUP). Łączenie wymagań z innymi artefaktami projektu (ang. traceability). Zasady tworzenia i wykorzystywania modelu przypadków użycia. Wybrane metody modelowania systemów informatycznych. Modelowanie biznesowe (BPMN i BPEL). Modelowanie obiektowe i strukturalne. UML. Diagramy klas, interakcji, aktywności, maszyny stanowej, pakietów i wdrożeniowe. Zasady doboru diagramów UML i zapisu powiązań pomiędzy ich elementami. Tworzenie modeli analitycznych, projektowych i implementacyjnych w UML. SysML. Generacja kodu na podstawie modeli w UML. Zastosowania narzędzi CASE. Klasyczne wzorce projektowe: adapter, brama, dekorator, fabryki, fasada, kompozyt, interfejs oddzielony, mediator, most, metoda szablonowa, odwiedzający, obserwator, pamiątka, pełnomocnik, polecenie, pula obiektów, pyłek, rejestr, przypadek szczególny, singleton, stan, strategia, usługa zastępcza. Zasady stosowania wzorców projektowych. Modelowanie architektury systemów informatycznych. Warstwowa budowa systemów informatycznych. Specyfikacja architektury w oparciu o 4+1 View Model z RUP. Koncepcja architektury sterowanej modelami (ang. Model Driven Architecture; MDA). Wzorce i zręby architektury aplikacji korporacyjnych. Wzorce logiki dziedziny. Wzorce architektury źródła danych. Wzorce prezentacji. JPA oraz Hibernate i EclipseLink jako przykłady zastosowania wzorców mapowania obiektowo-relacyjnego w dostępie do baz danych. Wprowadzenie do EJB 3.1. Architektura serwerów aplikacyjnych. Projektowanie usług sieciowych (ang. Web Services). SOA, ROA i SaaS. Integracja korporacyjnych systemów informatycznych. Wzorce projektowe w systemach przesyłu komunikatów. ESB. Zapewnienie jakości w procesie wytwarzania oprogramowania modele ISO 9000 i SEI CMMI. Testowanie systemów informatycznych. Testy jednostkowe, integracyjne, obciążeniowe, wydajnościowe i akceptacyjne. Automatyzacja testów. Zastosowanie ciągłej integracji (ang. Continuous Integration) w procesie wytwarzania oprogramowania. Szacowanie kosztu i pracochłonności oprogramowania model COCOMO i metoda punktów przypadków użycia.
4/5 Treść/Tematy: Laboratoriów Laboratorium składa się z 6 ćwiczeń. Wszystkie 6 spotkań jest poświęconych analizie i projektowaniu jednego systemu informatycznego. 1. Analiza wymagań. Tworzenie dokumentu wizji i słownika terminologii na postawie szablonów z RUP. Dokumentowanie zależności między wymaganiami. 2. Modelowanie przypadków użycia. Powiązanie przypadków użycia z wymaganiami. Specyfikacja wybranego przypadku użycia w oparciu o szablon dokumentu z RUP oraz za pomocą diagramów aktywności. 3. Model analityczny. Specyfikacja realizacji wybranego przypadku użycia na poziomie analitycznym. 4. Opracowanie architektury systemu w oparciu o 4+1 View Model. Użycie wzorców architektonicznych. Projekt warstwy dziedziny. 5. Specyfikacja realizacji wybranego przypadku użycia na poziomie projektowym. Rozbudowanie diagramów klas dla warstw: prezentacji, aplikacji, dziedziny i zasobów. Użycie wzorców projektowych. Wykorzystanie diagramu zmian stanów do opisu zachowania klas. 6. Przegląd i refaktoryzacja projektu. Uaktualnienie powiązań pomiędzy wytworzonymi artefaktami. Generacja schematu bazy danych oraz fragmentów aplikacji. Na laboratorium są wykorzystywane narzędzia IBM-Rational: RequisitePro, Rational Software Architect i Rational Data Architect. Metody dydaktyczne Wykład uzupełniany slajdami i pokazami komputerowymi. Forma egzaminu/zaliczenia przedmiotu 1. Wykład Kolokwium pisemne i aktywność na zajęciach. 2. Laboratorium Realizacja programu laboratorium i aktywność na zajęciach. Minimalne wymagania do zaliczenia Umiejętność konstruowania i posługiwania się analitycznymi, projektowymi i implementacyjnymi modelami systemów informatycznych. Znajomość UML. Znajomość klasycznych modeli procesów wytwarzania oprogramowania oraz zasad RUP, XP, SCRUM i wytwarzania sterowanego testami. Znajomość podstawowych wzorców projektowych, zależności między nimi oraz zasad ich stosowania. Umiejętność użycia narzędzi CASE do tworzenia modeli UML oraz generacji na ich podstawie kodu aplikacji i schematu bazy danych.
5/5 Literatura (podstawowa i specjalistyczna) Literatura podstawowa: 1. Sommerville I.: Inżynieria oprogramowania. WNT, Warszawa, 2003 (tłumaczenie 6 wydania Software Engineering, Addison-Wesley 2001; polecane wydanie 9, Person Eduction, Inc. 2011). 2. S. Wrycza, B. Marcinkowski, K. Wyrzykowski: Język UML 2.0 w modelowaniu systemów informatycznych. Helion, Gliwice, 2005. 3. Gamma E., Helm R., Johnson R., Vlissides J.: Wzorce projektowe. WNT, Warszawa, 2005 lub Helion Gliwice 2010. 4. Fowler M, Rice D., Foemmel M., Hieatt E., Mee R., Stafford R.: Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe. Helion, Gliwice, 2005. Literatura specjalistyczna: 1. Erl T..:SOA Design Patterns. Prentice Hall, 2009. 2. Hohpe G., Woolf B.: Enterprise Integration Patterns. Designing, Building and Deploying Messaging Solutions. Addison-Wesley 2004. 3. Kroll P., Kruchten P.: Rational Unified Process od strony praktycznej. WNT, Warszawa, 2007. 4. Beck K., Andres C.: Wydajne programowanie. extreme Programming. MIKOM, Warszawa, 2006. 5. Leffingwell D., Widrig D.: Zarządzanie wymaganiami. WNT, Warszawa, 2003. 6. Schneider G., Winters J.: Stosowanie przypadków użycia. WNT, Warszawa, 2004. 7. Meszaros G.: xunit Test Patterns. Refactoring Test Code. Addison-Wesley 2007. Zatwierdzono:. (data i podpis prowadzącego) (data i podpis Dyrektora Instytutu/Kierownika Katedry)