Inżynieria oprogramowania


Opis
 
W latach 60. ubiegłego wieku zaczęto budować bardzo duże oprogramowania takie jak na przykład system operacyjny IBM OS/360. Pojawiły się wtedy problemy natury poza-algorytmicznej, związane z zarządzaniem tego typu przedsięwzięciami, ewolucją oprogramowania itp. Zaczęło rodzić się przeświadczenie, że tworzenie oprogramowania mogłoby być bardziej efektywne, gdyby skorzystać z doświadczeń innych dziedzin inżynierskich, takich jak budownictwo czy elektronika. Termin „inżynieria oprogramowania” (ang. Software Engineering) powstał w trakcie seminarium zorganizowanego w Niemczech pod auspicjami NATO w 1968 roku.
 
Przedmiot obejmuje następujące jednostki wiedzy z zakresu inżynierii oprogramowania, wymienione w standardzie kształcenia dla studiów I stopnia na kierunku Informatyka: projektowanie oprogramowania; procesy wytwarzania oprogramowania; wymagania i ich specyfikacja; walidacja i testowanie oprogramowania; ewolucja oprogramowania; zarządzanie przedsięwzięciem programistycznym.
 

Po zaliczeniu przedmiotu student powinien mieć podstawowe umiejętności w zakresie: posługiwania się wzorcami projektowymi; projektowania oprogramowania zgodnie z metodyką obiektową; dokonywania przeglądu projektu oprogramowania; specyfikowania wymagań dotyczących oprogramowania i przeprowadzania ich przeglądu; tworzenia, oceny i realizacji planu testowania; uczestniczenia w inspekcji kodu; zarządzania konfiguracją oprogramowania.

Zagadnienia dotyczące projektowania oprogramowania będą rozwijane w ramach przedmiotu „Zaawansowane projektowanie obiektowe", natomiast problemy i metody zarządzania przedsięwzięciem programistycznym (ze szczególnym uwzględnieniem planowania) będą szczegółowo dyskutowane w ramach przedmiotu „Zaawansowana inżynieria oprogramowania".

 

Sylabus
 
Autor
 
Wymagania wstepne
 

Zawrtość

Przedmiot składa się z 30 godzin wykładów podzielonych na moduły i związanych z nimi ćwiczeń laboratoryjnych (w takim samym wymiarze). Poniżej opisano zawartość poszczególnych modułów wykładów.

 
 
 

 

 

 
 
 
 
 
 
 
 
 
 
Litratura
 
    1. K.Beck, A.Cynthia, Wydajne programowanie – Extreme Programming, Mikom, 2005.
    2. A. Cockburn, Jak pisać efektywne przypadki użycia, WNT, Warszawa 2004.
    3. S.Covey, 7 nawyków skutecznego działania REBIS, 2002.
    4. M.Fowler, K.Scott, UML w kropelce, LTP, 2002.
    5. R. Pressman, Software Engineering, McGraw-Hill, New York 1997.
 
Moduły
 
    1. Wprowadzenie do przedmiotu, (Ćwiczenia)
    2. Zasady skutecznego działania, (Ćwiczenia)
    3. Specyfikacja wymagań, (Ćwiczenia)
    4. Kontrola jakości artefaktów, (Ćwiczenia)
    5. Język UML, cz. I, (Ćwiczenia)
    6. Język UML, cz. II, (Ćwiczenia)
    7. Metody formalne, (Ćwiczenia)
    8. Wzorce projektowe, (Ćwiczenia)
    9. Zarządzanie konfiguracją, (Ćwiczenia)
    10. Wprowadzenie do testowania, (Ćwiczenia)
    11. Automatyzacja wykonywania testów, (Ćwiczenia)
    12. Programowanie Ekstremalne, (Ćwiczenia)
    13. Ewolucja oprogramowania i refaktoryzacja, (Ćwiczenia)