- Nazwa przedmiotu:
- Inżynieria oprogramowania
- Koordynator przedmiotu:
- Krzysztof SACHA
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Informatyka
- Grupa przedmiotów:
- Przedmioty techniczne
- Kod przedmiotu:
- IOP
- Semestr nominalny:
- 5 / 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).
Przeznaczony dla wszystkich specjalności kierunku Informatyka (ISI oraz SID).
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka IOP_W01
- Ma podstawową wiedzę na temat ekonomicznych uwarunkowań projektów informatycznych
Weryfikacja: Kolokwium
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
I.P6S_WK
- Charakterystyka IOP_W02
- Ma podstawową wiedzę na z zakresu zarządzania projektami informatycznymi
Weryfikacja: Kolokwium
Powiązane charakterystyki kierunkowe:
K_W05
Powiązane charakterystyki obszarowe:
I.P6S_WK, III.P6S_WK.o
- Charakterystyka IOP_W04
- Ma podstawową wiedzę o cyklu życia systemów informatycznych i ich oprogramowania
Weryfikacja: Kolokwium
Powiązane charakterystyki kierunkowe:
K_W15
Powiązane charakterystyki obszarowe:
I.P6S_WG, III.P6S_WG.o
- Charakterystyka IOP-W03
- Ma uporządkowaną wiedzę ogólną z zakresu metod i narzędzi inżynierii oprogramowania oraz kierunków ich rozwoju
Weryfikacja: Kolokwium
Powiązane charakterystyki kierunkowe:
K_W13
Powiązane charakterystyki obszarowe:
I.P6S_WG
Profil ogólnoakademicki - umiejętności
- Charakterystyka IOP_U01
- Potrafi poznawać, analizować i modelować wymagania dla oprogramowania systemów informatycznych
Weryfikacja: Kolokwium, ćwiczenia laboratoryjne
Powiązane charakterystyki kierunkowe:
K_U14
Powiązane charakterystyki obszarowe:
III.P6S_UW.3.o, III.P6S_UW.4.o, I.P6S_UW
- Charakterystyka IOP_U02
- Potrafi projektować i modelować architekturę oprogramowania spełniającego wymagania użytkowników
Weryfikacja: Kolokwium, ćwiczenia laboratoryjne
Powiązane charakterystyki kierunkowe:
K_U15
Powiązane charakterystyki obszarowe:
I.P6S_UW, III.P6S_UW.3.o, III.P6S_UW.4.o
- Charakterystyka IOP_U03
- Potrafi przygotować specyfikację testów oprogramowania prostego systemu informatycznego
Weryfikacja: Kolokwium, ćwiczenia laboratoryjne
Powiązane charakterystyki kierunkowe:
K_U19
Powiązane charakterystyki obszarowe:
I.P6S_UW, III.P6S_UW.3.o
- Charakterystyka IOP_U04
- Potrafi posłużyć się przynajmniej jedną metodę szacowania pracochłonności wytwarzania oprogramowania
Weryfikacja: Kolokwium
Powiązane charakterystyki kierunkowe:
K_U22
Powiązane charakterystyki obszarowe:
I.P6S_UW, III.P6S_UW.2.o
- Charakterystyka IOP_U05
- Potrafi stworzyć plan prostego projektu informatycznego z uwzględnieniem harmonogramu i analizy ryzyka
Weryfikacja: Kolokwium, ćwiczenia laboratoryjne
Powiązane charakterystyki kierunkowe:
K_U23
Powiązane charakterystyki obszarowe:
I.P6S_UO
- Charakterystyka IOP_U06
- Potrafi działać i pracować w zespole
Weryfikacja: ćwiczenia laboratoryjne
Powiązane charakterystyki kierunkowe:
K_UK03
Powiązane charakterystyki obszarowe:
I.P6S_UO