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 wstępne

Zawartość

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.

Literatura

  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


Wykłady

  1. Wprowadzenie
  2. Zasady skutecznego działania
  3. Specyfikacja wymagań
  4. Kontrola jakości artefaktów
  5. Język UML cz. I
  6. Język UML, cz. II
  7. Metody formalne
  8. Wzorce projektowe
  9. Zarządzanie konfiguracją oprogramowania
  10. Wprowadzenie do testowania
  11. Automatyzacja wykonywania testów
  12. Programowanie Ekstremalne
  13. Ewolucja oprogramowania i refaktoryzacja

Laboratoria

Laboratorium 1

Laboratorium 2

Laboratorium 3

Laboratorium 4

Laboratorium 5

Laboratorium 6

Laboratorium 7

Laboratorium 8

Laboratorium 9

Laboratorium 10