Specjalność studiów I i II stopnia
Oferta dydaktyczna IAiR

Inżynieria oprogramowania

Cel

Przedstawienie procesu powstawania oprogramowania, ze szczególnym uwzględnieniem projektowania aplikacji. Zapoznanie studentów z głównym językiem modelowania w informatyce - UML. Omówienie wzorców projektowych.

Opis

1. Cykl tworzenia oprogramowania. Stosowane metodologie. Praca w zespole - role uczestników projektu. Komunikacja członków zespołu - narzędzia.
2. Analiza wymagań. Komunikacja z nie-informatykami, wspólne definicje, problemy. Schematy funkcjonalności
3. Modelowanie obiektowe - UML. Modele statyczne i dynamiczne systemu. Diagramy statyczne, ich związek z rzeczywistym kodem aplikacji. Generowanie kodu na podstawie diagramu i odwrotnie. Podstawowe narzędzia modelowania
4. Diagramy dynamiczne - zachowanie aplikacji. Maszyna stanów, przejścia między stanami. Diagramy UML opisujące dynamikę.
5. Wzorce projektowe - co to jest i dlaczego warto je stosować. Omówienie podstawowych wzorców wraz z przykładowymi implementacjami.
6. Projekt aplikacji

Wymagania

Znajomość programowania strukturalnego i obiektowego w wybranym języku wyższego poziomu.

Bibliografia

  1. 1. Materiały dodatkowe do przedmiotu
  2. 2. Roger S. Pressman "Praktyczne podejście do inżynierii oprogramowania", WNT 2004
  3. 3. Dick Hamlet, Joe Maybee "Podstawy techniczne inżynierii oprogramowania"

Metody oceny

Końcowa ocena przedmiotu opiera się na projekcie, składającym się z 4 niezależnie ocenianych etapów:
1: analiza funkcjonalna
2: model statyczny
3: model dynamiczny
4: prototyp

Szczegółowy rozkład zajęć

Nr Temat Opis Wymiar
6 Wzorce projektowe Typowe sytuacje i modele w systemach informatycznych. Wykrywanie wzorców. Podstawowe elementy każdego wzorca. Najczęściej spotykane wzorce projektowe i ich przykładowe implementacje.
4
1 Cykl tworzenia oprogramowania Typowy cykl tworzenia oprogramowania. Zespół programistyczny. Główne role: analityk, projektant, koder, tester - i ich zadania. Podstawowe metody pracy nad projektem: wodospadu, spirali, ewolucyjna, komponentowa. Warunki sukcesu. Metody wyceny projektu informatycznego. Szacowanie wydajności systemu i wymagań odn. sprzętu.
W 3
2 Analiza funkcjonalna Co to jest analiza wymagań funkcjonalnych? Rozmowy z nie-informatykami - najczęstsze problemy. Poziom szczegółowości analizy. Diagram przypadków użycia. Aktorzy. Przykład analizy.
W 2
3 Modelowanie statyczne Model w rozumieniu inżynierii oprogramowania. Modelowanie oiektowe - paradygmaty i ich związek z rzeczywistością. Języki zapisów modeli. UML - podstawowe definicje. Typy diagramów i ich elementy. Diagramy opisujące statykę aplikacji - diagram klas, pakietów, obiektów. Zasady tworzenia i przykłady
W 3
4 Modelowanie dynamiczne Modele zachowań aplikacji. Program komputerowy jako maszyna stanów. Przejścia dozwolone i niedozwolone - badanie możliwości i zagrożeń. Diagramy dynamiczne: sekwencji, współpracy, stanów, aktywności. Wykorzystanie modeli dynamiki w testowaniu aplikacji.
W 2
5 Narzędzia wspierające modelowanie Przegląd i prezentacja możliwości popularnego oprogramowania do modelowania UML.
W 1
5 Wzorce projektowe Powtarzalność problemów a powtarzalność rozwiązań. Schematy - wykrywanie i określanie. Typowe rozwiązania informatyczne - wzorce projektowe. Przegląd najpopularniejszych wzorców wraz z przykładami implementacji
W 4
1 Projekt zespołowy Projekt nietrywialnego systemu informatycznego wraz z prototypem. Zadaniem studentów podzielonych na 3-osobowe zespoły będzie opracowanie kompletnego projektu systemu informatycznego wraz z przygotowaniem prototypu. W zespole wyznaczone zostaną role dla jego poszczególnych członków. Projekt wykonywany i oceniany będzie etapami:
  1. Analiza przypadków użycia - w rolę klienta wciela się prowadzący zajęcia.
  2. Model statyczny aplikacji wraz z projektem GUI.
  3. Model dynamiki aplikacji
  4. Prototyp.
Końcowa ocena projektu będzie średnią arytmetyczną ze wszystkich etapów,  ze zwiększoną wagą dla etapów, w których dany student grał rolę lidera.
P 15
Instytut Automatyki i Robotyki
Politechnika Warszawska