Wydział Informatyki - Informatyka (S1)
Sylabus przedmiotu Inżynieria oprogramowania:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | pierwszego stopnia |
Tytuł zawodowy absolwenta | inżynier | ||
Obszary studiów | nauk technicznych, studiów inżynierskich | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Inżynieria oprogramowania | ||
Specjalność | przedmiot wspólny | ||
Jednostka prowadząca | Katedra Inżynierii Oprogramowania | ||
Nauczyciel odpowiedzialny | Michał Fedorov <Michal.Fedorov@zut.edu.pl> | ||
Inni nauczyciele | Michał Fedorov <Michal.Fedorov@zut.edu.pl> | ||
ECTS (planowane) | 4,0 | ECTS (formy) | 4,0 |
Forma zaliczenia | egzamin | Język | polski |
Blok obieralny | — | Grupa obieralna | — |
Formy dydaktyczne
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Student posiada więdzę z podstaw programowania |
W-2 | Student posiada więdzę z programowania obiektowego |
W-3 | Ukończony kurs Wstęp do algorytmizacji |
W-4 | Ukończony kurs ze struktur danych i złożoności obliczeniowej |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Zapoznanie studentów z paradygmatem inżynierii oprogramowania: metodami, metodologiami i narzędziami zapewniające wysoką jakość wytwarzanego oprogramowani w ramach ustalonych terminów i budżecie. |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Analiza narzędzi do opracowania projektu informatycznego. Studium wykonalności. | 2 |
T-L-2 | Specyfikacja wymagań projektu oraz wstępne harmonogrowanie projektu. | 2 |
T-L-3 | Modelowanie i analiza wymagań. Architektura funkcjonalna systemu. | 2 |
T-L-4 | Projektowanie architektury komponentowej. | 2 |
T-L-5 | Realizacja przypadków użycia. Wzorce projektowe. | 4 |
T-L-6 | Opracowanie zestawów testów. Testowanie jenostkowe oraz regresyjne. | 2 |
T-L-7 | Prezentacja wyników projektu. | 1 |
15 | ||
projekty | ||
T-P-1 | Opracowanie dokumentacji projektowej oraz jej implementacja na wybranej platformie | 15 |
15 | ||
wykłady | ||
T-W-1 | Kryzys oprogramowania. Charakterystyczne cechy oprogramowania. Inżynieria oprogramowania a inżynieria systemów. Mity związane z inżynierią oprogramowania. Metody inżynierii oprogramowania. Ad hoc podejście wytwarzania oprogramowania. Pojęcie procesu wytwórczego. Podstawowe etapy procesu wytwórczego. Struktura wysiłków według etapów. Charakterystyka istniejących narzędzi CASE (w tym Open source). Ich wady i zalety. Charakterystyka oprogramowania jakościowego. | 2 |
T-W-2 | Modeli procesów wytwórczych. Liniowy. Formalne transformacje. Modeli ewolucyjne: prototypowanie, model spiralny, proces RUP. Struktura modeli wytwórczych oraz ich porównawcza analiza. Treść etapów procesów wytwórczych. Dojrzałość procesu. | 3 |
T-W-3 | 4P inżynierii oprogramowania. Udziałowcy. Problemy zespołowe. Komunikacja i koordynacja. Dekompozycja procesu wytwórczego. Zarządzanie ryzykiem. Rodzaje zagrożeń. Składniki ryzyka. Tabela zagrożeń. Szacowanie i ocena ryzyka. Monitorowanie oraz kontrolowanie zagrożeń. Plan zapobiegania zagrożeń. | 3 |
T-W-4 | Miary i pomiary w procesie wytwórczym. Miary procesu, produktu, mierzenie oprogramowania. Podstawowe miary: linie kodu, punkty funkcyjne, COCOMO II. Efektywność usuwania defektów. Proces mierzenia oprogramowania. Efektywność usuwania defektów a planowania jakości. Efektywność usuwania defektów a poziom dojrzałości procesu. | 3 |
T-W-5 | Czynności zapewnienia jakości. Przeglądy techniczne. Statystyczne zapewnianie jakości. Miary niezawodności i dostępności. Unikanie błędów. Normy jakości. Harmonogramowanie. Dobór zadań. Dekompozycja zadań. Definiowanie sieci zadań. Śledzenie harmonogramów. Plan przedsięwzięcia. Zarządzanie konfiguracją. Elementy bazowe i obiekty konfiguracji. Identyfikowanie obiektów konfiguracji. Kontrolowanie wersji i zmian. Audyt konfiguracji. | 3 |
T-W-6 | Inżynieria wymagań. Problem wymagań. Definicja i określenie problemu. Zidentyfikowanie udziałowców systemu. Zidentyfikowanie granicy systemy. Zidentyfikowanie ograniczeń na system. Język UML przy modelowaniu przedsiębiorstwa. Przejście od modeli wymagań do modeli systemów. Cechy produktu i jego atrybuty. Metody wyłowienia wymagań. Ankietowanie. Warsztaty wymagań. Burza mózgów i redukcja pomysłów. Wykonanie rysunkowych szkiców ujęć. Stosowanie przypadków użycia. Odgrywania ról. Stosowanie prototypów. Dokument wizji i jego składniki. | 4 |
T-W-7 | Projektowania architektury systemu. Dzielenie na podsystemy. Modularność. Modelowanie architektury w języku UML. Funkcjonalny widok architektury. Wzorce architektoniczne. Technika odwzorowania przypadków użycia na architekturę. | 4 |
T-W-8 | Pojęcie wzorców projektowych: strukturalne, czynnościowe, kreacyjne. Dokumentowanie wzorców. Architektura wzorców strukturalnych: adapter, dekorator, fasada, kompozyt, most, pełnomocnik, pyłek. Architektura wzorców kreacyjnych: budowniczy, fabryka abstrakcyjna, metoda wytwórcza, prototyp, singleton. Architektura wzorców czynnościowych: interpretator, iterator, łańcuch zobowiązań, mediator, Metoda szablonowa, obserwator, odwiedzający, polecenie. Odwzorowanie ich na kod. | 4 |
T-W-9 | Testowanie oprogramowania. Metoda białej skrzynki. Metoda czarnej skrzynki. Spójność modeli i projektów. Testowanie modułów, zgodności. Testowanie według wad. Projektowanie testów na podstawie scenariuszy użycia. Testowanie klas losowe, strefowe. Projektowanie testowanie kooperacji klas. Projektowanie testów na podstawie modeli zachowania i modeli obiektów. Podstawowa technika przy konserwacji: inżynieria odwrotna (na przykładzie wybranego CASE). Round-trip inżynieria. | 4 |
30 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Laboratorium | 15 |
A-L-2 | przygotowanie dokumentacji projektowej | 15 |
A-L-3 | konsultacje | 1 |
A-L-4 | zaliczenie | 1 |
32 | ||
projekty | ||
A-P-1 | Udział w zajęciach | 15 |
A-P-2 | Przygotowywanie projektów - praca własna studenta | 15 |
A-P-3 | obrona projektu | 1 |
A-P-4 | zaliczenie projketu | 1 |
32 | ||
wykłady | ||
A-W-1 | Uczestnictwo w wykładach | 30 |
A-W-2 | Udział w konsultacjach | 2 |
A-W-3 | Samodzielne studiowanie tematyki wykładów | 14 |
A-W-4 | Przygotowanie się do egzaminu | 5 |
A-W-5 | Udział w egzaminie | 2 |
53 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykład informacyjny połączony z metodą badania przypadków oraz komputerową demonstracją |
M-2 | Ćwiczenia laboratoryjne |
M-3 | Zespołowe zadania projektowe |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Ocena prezentacji poszczególnych etapów procesu wytwarzania oprogramowania. |
S-2 | Ocena formująca: Ocena za prezentację implementacji opracowanego oprogramowania. |
S-3 | Ocena podsumowująca: Ocena końcowa za laboratoria jako średnia ważona: - za projekt z wykonaniem testów jednostkowych (70 %) - za implementację (30 %) |
S-4 | Ocena podsumowująca: Ekzamin ustny. |
Zamierzone efekty kształcenia - wiedza
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_C/14_W01 Wiedza z zakresu modeli procesów wytwórczych. | I_1A_W16, I_1A_W15 | T1A_W04, T1A_W08, T1A_W10, T1A_W11 | InzA_W01, InzA_W03 | C-1 | T-W-1, T-W-2, T-L-2, T-L-1, T-P-1 | M-1, M-2, M-3 | S-1, S-4, S-2, S-3 |
I_1A_C/14_W02 Wiedza z metod obiektowych projektowania systemów informatycznych. | I_1A_W06, I_1A_W18 | T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W09 | InzA_W01, InzA_W02, InzA_W04, InzA_W05 | C-1 | T-W-6, T-W-7, T-W-8, T-P-1, T-L-4, T-L-5, T-L-3, T-L-2 | M-2, M-3, M-1 | S-3, S-1, S-2, S-4 |
I_1A_C/14_W03 Wiedza podstawowa z zakresu testowania systemów informatycznych. | I_1A_W06, I_1A_W18 | T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W09 | InzA_W01, InzA_W02, InzA_W04, InzA_W05 | C-1 | T-W-9, T-P-1, T-L-6, T-L-2 | M-2, M-1, M-3 | S-2, S-4, S-1, S-3 |
I_1A_C/14_W04 Wiedza z podstaw zarządzania projektami systemów informatycznych | I_1A_W06, I_1A_W11, I_1A_W15, I_1A_W18 | T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W08, T1A_W09, T1A_W10, T1A_W11 | InzA_W01, InzA_W02, InzA_W03, InzA_W04, InzA_W05 | C-1 | T-W-4, T-W-3, T-L-1, T-W-5, T-P-1, T-L-2 | M-1, M-3, M-2 | S-3, S-4, S-2, S-1 |
Zamierzone efekty kształcenia - umiejętności
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_C/14_U01 Student powinien umieć rozwiązywać zadania inżynierskie z każdego etapu procesu wytwarzania oprogramowania | I_1A_U01, I_1A_U02, I_1A_U05, I_1A_U12, I_1A_U17, I_1A_U03 | T1A_U01, T1A_U02, T1A_U03, T1A_U04, T1A_U06, T1A_U07, T1A_U08, T1A_U09, T1A_U10, T1A_U11, T1A_U12, T1A_U13, T1A_U14, T1A_U15, T1A_U16 | InzA_U01, InzA_U02, InzA_U03, InzA_U04, InzA_U05, InzA_U06, InzA_U07, InzA_U08 | C-1 | T-W-8, T-W-6, T-W-7, T-W-3, T-W-1, T-W-2, T-W-4, T-W-5, T-W-9, T-L-1, T-L-6, T-L-2, T-L-4, T-L-5, T-L-3, T-L-7 | M-1, M-3, M-2 | S-2, S-1, S-3, S-4 |
Kryterium oceny - wiedza
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_C/14_W01 Wiedza z zakresu modeli procesów wytwórczych. | 2,0 | nie spełnia kryteriów okreslonych dla oceny 3 |
3,0 | potrafi wymienić i zdefiniować wybrane podstawowe procesów wytwórczych | |
3,5 | potrafi wymienić i zdefiniować dowolne podstawowe procesy wytwórcze | |
4,0 | potrafi precyzyjnie opisać wybrane procesy wytwórcze | |
4,5 | potrafi precyzyjnie opisać dowolne procesy wytwórcze | |
5,0 | potrafi objaśnić wpływ procesów wytwórczych na przedsiewzięcie informatyczne | |
I_1A_C/14_W02 Wiedza z metod obiektowych projektowania systemów informatycznych. | 2,0 | nie spełnia kryteriów okreslonych dla oceny 3 |
3,0 | potrafi wymienić i zdefiniować wybrane podstawowe diagramy UML i ich zadanie | |
3,5 | potrafi wymienić i zdefiniować dowolne podstawowe diagramy UML i ich zadanie | |
4,0 | potrafi precyzyjnie opisać wybrane podstawowe diagramy UML i ich zadanie | |
4,5 | potrafi precyzyjnie opisać dowolne podstawowe diagramy UML i ich zadanie | |
5,0 | potrafi objaśnić artchitekturę dokumentu standardu UML | |
I_1A_C/14_W03 Wiedza podstawowa z zakresu testowania systemów informatycznych. | 2,0 | nie spełnia kryteriów okreslonych dla oceny 3 |
3,0 | potrafi wymienić i zdefiniować wybrane podstawowe poziomy testowanie, typy testów, role i artefakty procesu testowania oraz metody testowania | |
3,5 | potrafi wymienić i zdefiniować dowolne podstawowe poziomy testowanie, typy testów, role oraz artefakty procesu testowania oraz metody testowania | |
4,0 | potrafi precyzyjnie opisać wybrane poziomy testowanie, typy testów, role oraz artefakty procesu testowania oraz metody testowania | |
4,5 | potrafi precyzyjnie opisać dowolne poziomy testowanie, typy testów, role oraz artefakty procesu testowania oraz metody testowania | |
5,0 | potrafi objaśnić cały proces testowania | |
I_1A_C/14_W04 Wiedza z podstaw zarządzania projektami systemów informatycznych | 2,0 | nie spełnia kryteriów okreslonych dla oceny 3 |
3,0 | potrafi wymienić i zdefiniować wybrane podstawowe metryki wytwarzania oprogramowania | |
3,5 | potrafi wymienić i zdefiniować dowolne podstawowe metryki wytwarzania oprogramowania | |
4,0 | potrafi precyzyjnie opisać wybrane metryki wytwarzania oprogramowania | |
4,5 | potrafi precyzyjnie opisać dowolne metryki wytwarzania oprogramowania | |
5,0 | potrafi objaśnić metryki wytwarzania oprogramowania dotyczące wszystkich aspektów wytwarzania oprogramowania |
Kryterium oceny - umiejętności
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_C/14_U01 Student powinien umieć rozwiązywać zadania inżynierskie z każdego etapu procesu wytwarzania oprogramowania | 2,0 | nie spełnia kryteriów okreslonych dla oceny 3 |
3,0 | umie stosować wybrane podstawowe diagramy UML w celu uzyskania zgodnej dokumentacji projektowej, odwzorowywać je w kodzie oraz stosować wzorce projektowe | |
3,5 | umie stosować dowolne podstawowe diagramy UML w celu uzyskania zgodnej dokumentacji projektowej, odwzorowywać je w kodzie oraz stosować wzorce projektowe | |
4,0 | umie stosować dowolne podstawowe diagramy UML w celu uzyskania zgodnej dokumentacji projektowej, odwzorowywać je w kodzie oraz stosować wzorce projektowe; umie identyfikować przypadki testowe i wykorzystywać podstawowe techniki testowe i narzędzia do przedmiotu testowania. | |
4,5 | umie stosować dowolne podstawowe diagramy UML w celu uzyskania zgodnej dokumentacji projektowej, odwzorowywać je w kodzie oraz stosować wzorce projektowe; umie identyfikować przypadki testowe i wykorzystywać podstawowe techniki testowe do przedmiotu testowania; umie indentyfikowac metryki niezbedne do szacowania i zarzadzania projektem. | |
5,0 | umie stosować dowolne podstawowe diagramy UML w celu uzyskania zgodnej dokumentacji projektowej, odwzorowywać je w kodzie oraz stosować wzorce projektowe; umie identyfikować przypadki testowe i wykorzystywać podstawowe techniki testowe do przedmiotu testowania; umie indentyfikowac metryki niezbedne do szacowania i zarzadzania projektem; umie dostosowywać procesy wywórcze do konkretnego przedsięwzięcia informatycznego |
Literatura podstawowa
- Jaszkiewicz A., Inżynieria oprogramowania, Helion, Gliwice, 1997
- Pressman Roger S., Praktyczne podejście do inżynierii oprogramowania, WNT, Warszawa, 2004
- Sommerville I., Inżynieria oprogramowania, WNT, Warszawa, 2003
- Leffingwell D., Widrig D., Zarządzanie wymaganiami, WNT, Warszawa, 2003
- Booch, G., UML : przewodnik użytkownika, WNT, Warszawa, 2002
- Bernd Bruegge, Allen H. Dutoit, Inżynieria oprogramowania w ujęciu obiektowym. UML, wzorce projektowe i Java, Helion, Gliwice, 2011
- Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides, Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku, Helion, Gliwice, 2010
- Robert C. Martin, Czysty kod. Podręcznik dobrego programisty, Helion, Gliwice, 2010
Literatura dodatkowa
- Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts, Refaktoryzacja. Ulepszanie struktury istniejącego kodu, Helion, Gliwice, 2011
- Steve McConnell, Kod doskonały. Jak tworzyć oprogramowanie pozbawione błędów., Helion, Gliwice, 2010, 2
- Bijay K. Jayaswal, Peter C. Patton, Oprogramowanie godne zaufania. Metodologia, techniki i narzędzia projektowania, Helion, Gliwice, 2008