Inżynieria oprogramowania – dziedzina inżynierii systemów zajmująca się wszelkimi aspektami produkcji oprogramowania: od analizy oraz określenia wymagań, przez projektowanie oraz wdrożenie, aż do ewolucji gotowego oprogramowania. Podczas kiedy informatyka zajmuje się teoretycznymi aspektami produkcji oprogramowania, inżynieria oprogramowania koncentruje się na stronie praktycznej.
Termin "inżynieria oprogramowania" po raz pierwszy stał się użyty w przełomie lat 1950/60 (ale oficjalnie za narodziny tej dyscypliny głosi się lata 1968 oraz 1969, w których miały miejsce dwie konferencje sponsorowane przez NATO, odpowiednio w Garmisch oraz Rzymie).
Wyzwania dla inżynierii oprogramowania
Wyzwania dla inżynierii oprogramowania:
- systemy spadkowe – jak konserwować oprogramowanie, które powstało wiele lat temu oraz ciągle jest w użyciu
- systemy heterogeniczne – problem integracji systemów stworzonych z użyciem wielorakich języków oraz technologii
- sprawna produkcja systemów – umożliwienie produkcji oprogramowania na czas bez uszczerbku dla jego jakości
Fazy procesu produkcji oprogramowania
W inżynierii oprogramowania proces produkcji oprogramowania dzieli się na pewne fazy, typowy podział to:
- specyfikacja – na tym etapie następuje określenie oraz ustalenie wymagań, które musi spełniać oprogramowanie
- projektowanie – ustalenie ogólnej architektury systemu, wymagań dla poszczególnych jego składowych
- implementacja – realizacja ustalonej architektury poprzez implementację składowych (modułów) oraz połączeń pomiędzy nimi.
- integracja – zintegrowanie poszczególnych składowych w jeden system, testowanie całego systemu
- ewolucja – uruchomienie systemu, usuwanie wykrytych podczas jego używania błędów, rozszerzanie systemu
Modele cyklu życia oprogramowania
Można wyróżnić szereg modeli życiowych oprogramowania, w tym:
Języki inżynierii oprogramowania
Inżynieria oprogramowania rozwinęła szereg języków wspomagających proces tworzenia oprogramowania. Aktualnie popularność zyskały języki wspierające programowanie obiektowe – najważniejszym z nich jest UML. Inżynieria oprogramowania wypracowała jednak już wcześniej inne metodyki – takie, jak metoda strukturalna Yourdona.
Sprawdź też
Linki zewnętrzne