- Nazwa przedmiotu:
- Inżynieria oprogramowania
- Koordynator przedmiotu:
- Marcin Szlenk
- Status przedmiotu:
- Fakultatywny ograniczonego wyboru
- Poziom kształcenia:
- Studia II stopnia
- Program:
- Informatyka
- Grupa przedmiotów:
- Przedmioty techniczne - podstawowe
- Kod przedmiotu:
- IOP
- Semestr nominalny:
- 1 / rok ak. 2018/2019
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 100
- 30 godzin wykładu
- 15 godzin ćwiczeń laboratoryjnych
- 5 godzin konsultacji
- 50 godzin samodzielnej pracy zwiazanej z przygotowaniem do kolokwium i przygotowaniem dokumentacji projektowej niezbędnej do zaliczenia ćwiczeń laboratoryjnych
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- 2
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 2
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium15h
- Projekt0h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Znajomość programowania w języku obiektowym i strukturalnym.
- Limit liczby studentów:
- 120
- Cel przedmiotu:
- Celem przedmiotu jest wprowadzenie słuchaczy w podstawowe zagadnienia inżynierii oprogramowania, obejmujące organizację cyklu wytwarzania aplikacji, metodykę projektowania i weryfikacji programów oraz zarządzania projektem programistycznym. Związane z wykładem laboratorium pozwala studentom nabyć praktyczną umiejętność obiektowego modelowania i projektowania programów oraz planowania projektu.
- Treści kształcenia:
- Wprowadzenie (2). Zakres i cel inżynierii oprogramowania. Podstawowe działania i rozkład kosztów projektu. Projektowanie systemu a projektowanie programu. Kaskadowy i iteracyjny model cyklu życia oprogramowania. Metody i narzędzia.
Analiza strategiczna (2). Modelowanie procesów biznesowych. Studium wykonalności, procedura przetargu. Szacowanie kosztów projektu – metoda punktów funkcyjnych i model COCOMO.
Analiza i projektowanie obiektowe (12). Analiza i modelowanie wymagań metodą przypadków użycia (use cases): przypadki użycia, scenariusze, diagram, reguły biznesowe, schemat dokumentacji; przykład. Modelowanie dziedziny problemu: klasy, obiekty i ich relacje, diagram klas, perspektywy widzenia modelu; diagram maszyny stanowej; przykład. Modelowanie architektury w języku UML (Unified Modeling Language): diagramy pakietów, komponentów i rozmieszczenia; diagramy sekwencji i komunikacji; przeznaczenie modeli. Projektowanie architektury oprogramowania: analiza niewrażliwości (robustness analysis), warstwy danych, logiki biznesowej i prezentacji; modelowanie warstwy danych, projektowanie warstwy logiki biznesowej, wzorce projektowe; komunikacja między warstwami, technologie obiektowe, technologia EJB; przykład. Proces RUP; przykład.
Analiza i projektowanie strukturalne (2). Podstawowe pojęcia i modele strukturalne: hierarchia funkcji, diagram przepływu danych, diagram encji, diagram struktury. Wykorzystanie modeli w projekcie: ustalenie zakresu systemu, budowa modelu funkcjonalnego, specyfikowanie danych, budowa modelu implementacyjnego; przykład.
Testowanie oprogramowania (4). Weryfikacja i zatwierdzanie (verification and validation). Poziomy testowania: testowanie jednostkowe, integracyjne i systemowe; testowanie akceptacyjne. Organizacja procesu testowania: plan testów, specyfikacja testów, procedura testowania; usuwanie błędów. Metryki i metody projektowania testów i testowania; automatyzacja testów. Inne techniki weryfikacji: inspekcje kodu, przeglądy, dowody poprawności.
Zarządzanie projektem informatycznym (4). Struktura organizacyjna projektu. Planowanie projektu: struktura podziału pracy i struktura podziału produktu, tworzenie harmonogramu, narzędzia wspomagające. Tworzenie budżetu projektu. Plan projektu. Zarządzanie ryzykiem, zarządzanie biegiem projektu, metoda PRINCE2.
Kierunki rozwoju inżynierii oprogramowania (2). Metody zwinne. Architektura usługowa (SOA), korporacyjna magistrala usług.
Kolokwia zaliczeniowe (2).
- Metody oceny:
- Wykład: 2 kolokwia.
Laboratorium: ocena wyników pracy studenta.
Wymagane zaliczenie obydwu części przedmiotu.
- Egzamin:
- nie
- Literatura:
- 1. Sacha K., Inżynieria oprogramowania, WNT, Warszawa 2010.
2. Fowler M., Scot K.: UML w kropelce; LTP 2002.
3. Booch G., Rumbaugh J., Jacobson I.: UML przewodnik użytkownika, WNT 2001.
- Witryna www przedmiotu:
- https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103C-INIIT-ISP-IOP
- Uwagi:
- Przedmiot prowadzony w każdym semestrze (letnim i zimowym).
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka IOP_W01
- Ma szczegółową wiedzę z zakresu metod zarządzania projektami
Weryfikacja: Kolokwium
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
I.P7S_WG
- Charakterystyka IOP_W02
- Ma teoretyczną i praktyczną wiedzę szczegółową z zakresu inżynierii oprogramowania
Weryfikacja: Kolokwium + zaliczenie laboratorium
Powiązane charakterystyki kierunkowe:
K_W05
Powiązane charakterystyki obszarowe:
I.P7S_WG, III.P7S_WG.o
- Charakterystyka IOP_W02
- Ma wiedzę o nowych metodach i trendach rozwojowych w inżynierii oprogramowania
Weryfikacja: Kolokwium
Powiązane charakterystyki kierunkowe:
K_W07
Powiązane charakterystyki obszarowe:
I.P7S_WG
- Charakterystyka IOP_W04
- Ma uporządkowaną wiedzę na temat istniejących technologii informatycznych i kierunkach ich rozwoju
Weryfikacja: Kolokwium
Powiązane charakterystyki kierunkowe:
K_W10
Powiązane charakterystyki obszarowe:
I.P7S_WG, III.P7S_WG.o
Profil ogólnoakademicki - umiejętności
- Charakterystyka IOP_U01
- Potrafi tworzyć i odczytywać modele w języku UML, używane do komunikacji w środowisku informatycznym
Weryfikacja: Kolokwium + zaliczenie laboratorium
Powiązane charakterystyki kierunkowe:
K_U02
Powiązane charakterystyki obszarowe:
I.P7S_UK
- Charakterystyka IOP_U02
- Potrafi opracować specyfikację wymagań oraz stworzyć i udokumentować projekt systemu zgodny ze specyfikacją wymagań
Weryfikacja: Kolokwium + zaliczenie laboratorium
Powiązane charakterystyki kierunkowe:
K_U05
Powiązane charakterystyki obszarowe:
I.P7S_UW
- Charakterystyka IOP_U03
- Potrafi zebrać pozatechniczne wymagania stawiane systemom informatycznym w dziedzinie aplikacji
Weryfikacja: Kolokwium + zaliczenie laboratorium
Powiązane charakterystyki kierunkowe:
K_U07
Powiązane charakterystyki obszarowe:
I.P7S_UW, III.P7S_UW.2.o
Profil ogólnoakademicki - kompetencje społeczne
- Charakterystyka IOP_KK01
- Ma świadomość roli inżyniera w procesie podejmowania decyzji o realizacji bądź zaniechaniu przedsięwzięcia informatycznego
Weryfikacja: zaliczenie laboratorium
Powiązane charakterystyki kierunkowe:
K_K02
Powiązane charakterystyki obszarowe:
I.P7S_KK, I.P7S_KR