Inżynieria oprogramowania
| Ten artykuł od 2012-08 wymaga uzupełnienia źródeł podanych informacji. Możliwe, że ten artykuł w całości albo w części zawiera informacje nieprawdziwe. Informacje bez źródeł w każdej chwili mogą zostać zakwestionowane i usunięte. Pomóż Wikipedii i dodaj przypisy do materiałów opublikowanych w wiarygodnych źródłach. |
Inżynieria oprogramowania – 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 |
Wyzwania dla inżynierii oprogramowania [edytuj]
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
Fazy procesu produkcji oprogramowania [edytuj]
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
Modele cyklu życia oprogramowania [edytuj]
Można wyróżnić szereg modeli życiowych oprogramowania, w tym:
- pisz i poprawiaj
- model kaskadowy
- model prototypowy
- model przyrostowy (iteracyjny)
- model równoległy
- programowanie zwinne (ang. agile programming)
- programowanie ekstremalne (ang. extreme programming)
- synchronizuj i stabilizuj
- model spiralny
- Rational Unified Process
Języki inżynierii oprogramowania [edytuj]
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 metodyki – takie, jak metoda strukturalna Yourdona.
Zobacz też [edytuj]
- Rational Unified Process, proces wytwarzania oprogramowania opracowany przez firmę 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.
- metryka oprogramowania
- Wzorzec projektowy
Linki zewnętrzne [edytuj]
- 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)
- SOFTWARE ENGINEERING – raport z konferencji w Garmisch 7-11 października 1968 r.
- Strona projektu Guide to the Software Engineering Body of Knowledge
- Portal poświęcony językowi modelowania UML – www.uml.com.pl