Katalog przedmiotów
Inżynieria oprogramowania
CeleCelem przedmiotu jest zapoznanie studentów z podstawowymi problemami, metodami, technikami i narzędziami produkcji oprogramowania wysokiej jakości. Nacisk jest położony na obiektowe podejście do projektowania i modelowanie systemu w UML 2.
Zakres
Wprowadzenie. Cele, problemy i zakres inżynierii oprogramowania. Kryteria jakości oprogramowania.
Obiektowa analiza i projektowanie: wprowadzenie – cechy i zalety modelu obiektowego, analiza obiektowa (identyfikacja obiektów, organizowanie obiektów, opis interakcji, definicja operacji).
UML 2. – standard modelowania obiektowego: poziomy modelu i typy diagramów. Przykłady użycia (use case)- elementy diagramów, organizowanie. Model logiczny - diagramy klas (klasy – atrybuty i operacje, relacje agregacji, generalizacji, asocjacji, role, krotności, atrybuty powiązań, kwalifikacje, powiązania ternarne), diagramy sekwencji (typy komunikatów, ramki złożone: iteracje, alternatywy, opcje,..), diagram pakietów, diagramy maszyn stanów (zdarzenia, warunki, akcje, strukturalizacja – generalizacja i agregacja, mechanizm historii), diagramy czynności (decyzje, czynności współbieżne i synchronizacje, wysyłanie i odbiór komunikatów), diagramy komunikacji (numerowanie komunikatów, warunkowe, sekwencyjne i równoległe wysyłanie komunikatów, synchronizacja komunikatów. Model implementacyjny – diagram komponentów (komponenty, podsystemy, porty) i model fizyczny (diagram montażowy).
Metoda produkcji oprogramowania z zastosowaniem UML.
Modele cyklu życia oprogramowania (wodospadowy, ewolucyjny, spiralny), przyrostowa realizacja oprogramowania, montaż z gotowych elementów, prototypowanie. Lekkie metodyki programowania (XP programming).
Czynniki nietechniczne w inżynierii oprogramowania (osobowości w grupie, organizacja zespołów).
Studium wykonalności. Decyzje podejmowane w studium wykonalności, czynniki sukcesu, rezultaty. Analiza i specyfikacja wymagań. Definicja i specyfikacja wymagań. Przykładowa struktura dokumentu definicji/specyfikacji wymagań. Wymagania funkcjonalne i niefunkcjonalne. Specyfikacje nieformalne i formalne.
Projektowanie oprogramowania. Jakość projektu, cechy „dobrego projektu”. Walidacja i weryfikacja oprogramowania. Podejście obiektowe i funkcjonalne do projektowania.
Strukturalna analiza i projektowanie. Przydatność metod strukturalnych, narzędzia modelowania strukturalnego. Diagramy przepływu danych (DFD) – procesy, magazyny danych, przepływy, terminatory. Specyfikacja procesów na najniższym poziomie (język naturalny, warunki początkowe i końcowe, tablice decyzyjne, diagramy przepływu sterowania, diagramy Nassi-Shneidermana). Diagramy związków encji (ERD) – typy związków, liczności, wskaźniki asocjowanych typów, nadtypy, podtypy, odmiany diagramów. Diagramy sieci przejść (STD) i diagramy struktury (structure charts). Testowanie i inspekcja. Testowanie ukierunkowane na wyszukiwanie defektów – funkcjonalne, strukturalne (złożoność cyklomatyczna McCabe, pokrycie kodu - ścieżki niezależne, pokrycie danych, testowanie pętli). Testowanie obiektów. Estymacja kosztów. Metoda punktów funkcyjnych, model COCOMO 81 i COCOMO II. Model CMM. Miary niezawodności oprogramowania i techniki programowania dla systemów o dużej niezawodności.
Literatura podstawowa
1. Materiały do wykładu z Inżynierii Oprogramowania udostępnione w uczelnianym systemie UBI.
2. M. Śmiałek: Zrozumieć UML 2.0 Metody modelowania obiektowego, Helion 2005,
lub
S. Wrycza, B. Marcinkowski, K. Wyrzykowski: Język UML 2.0 w modelowaniu systemów informatycznych, Helion 2005,
lub
dowolny inny podręcznik do UML 2.0.
3. I. Sommerville: Inżynieria oprogramowania, WNT 2003
Literatura uzupełniająca
1. I. Bluemke: Inżynieria Oprogramowania, seria Pomocnicze materiały dydaktyczne WSISIZ 2003.
2. A. Jaszkiewicz: Inżynieria oprogramowania, Helion 1997.
3. J. Górski i inni: Inżynieria oprogramowania w projekcie informatycznym, Mikom.
4. E. Yourdon: Współczesna analiza strukturalna, WNT 1996.
5. S. Szejko (redakcja): Metody wytwarzania oprogramowania, Mikom 2002.
6. K. Subieta: Wprowadzenie do inżynierii oprogramowania, Wydawnictwo PJWSTK, 2002.
7. R.V. Binder: Testowanie systemów obiektowych. Modele , wzorce i narzędzia, WNT 2003.
Punkty ECTS
4 - niestacjonarne,
3 - stacjonarne
Rodzaje studiów, na których przedmiot jest realizowany
niestacjonarne - 1-go stopnia,
stacjonarne - 1-go stopnia
Specjalności, na których przedmiot jest realizowany
Informatyka w telekomunikacji,
Bazy danych,
Inżynieria oprogramowania,
Komputerowe wspomaganie grafiki,
Sieci komputerowe
Prowadzący
dr inż. Ilona Bluemke


