Inżynieria oprogramowania
Z Wikipedii
Inżynieria oprogramowania to dziedzina inżynierii systemów zajmująca się wszelkimi aspektami produkcji oprogramowania: od analizy i określenia wymagań, przez projektowanie i wdrożenie, aż do ewolucji gotowego oprogramowania. Podczas gdy informatyka zajmuje się teoretycznymi aspektami produkcji oprogramowania, inżynieria oprogramowania koncentruje się na stronie praktycznej.
Termin "inżynieria oprogramowania" po raz pierwszy został użyty w przełomie lat 1950/60 (ale oficjalnie za narodziny tej dyscypliny podaje się lata 1968 i 1969, w których miały miejsce dwie konferencje sponsorowane przez NATO, odpowiednio w Garmisch i Rzymie).
Spis treści |
[edytuj] Wyzwania dla inżynierii oprogramowania
Wyzwania dla inżynierii oprogramowania:
- systemy spadkowe - jak konserwować oprogramowanie, które powstało wiele lat temu i ciągle jest w użyciu
- systemy heterogeniczne - problem integracji systemów zbudowanych z użyciem różnych języków i technologii
- sprawna produkcja systemów - umożliwienie produkcji oprogramowania na czas bez uszczerbku dla jego jakości
[edytuj] 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 i 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) i połączeń mię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
[edytuj] Modele życiowe oprogramowania
Można wyróżnić szereg modeli życiowych oprogramowania:
- pisz i poprawiaj
- model kaskadowy
- model prototypowy
- model przyrostowy
- model iteracyjny
- model równoległy
- programowanie ekstremalne (ang. extreme programming)
- synchronizuj i stabilizuj
- model spiralny
[edytuj] Języki inżynierii oprogramowania
Inżynieria oprogramowania rozwinęła szereg języków wspomagających proces tworzenia oprogramowania. Obecnie 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 metodologie - takie, jak metoda strukturalna Yourdona.
[edytuj] Zobacz też
- Rational Unified Process, proces wytwarzania oprogramowania opracowany przez firmę firmy Rational Software (która stworzyła również język UML). Jest to metodyka, która wywarła silny wpływ na współczesną inżynierię oprogramowania.
- Krytyka inżynierii oprogramowania
[edytuj] Linki zewnętrzne
- Inżynieria oprogramowania (materiały dydaktyczne MIMUW na studia informatyczne I stopnia)
- Zaawansowana inżynieria oprogramowania (materiały dydaktyczne MIMUW na studia informatyczne II stopnia)
- Jak kończyć projekty?
- SOFTWARE ENGINEERING - raport z konferencji w Garmisch 7-11 października 1968 r.
- Strona projektu Guide to the Software Engineering Body of Knowledge