高新民:“十三五”信息化与电子政务发...

In?ynieria oprogramowania (ang. software engineering, SE) – dyscyplina informatyczna stosuj?ca podej?cie in?ynierskie do tworzenia oprogramowania[1][2]: od analizy i okre?lenia wymagań, przez projektowanie i wdro?enie, a? do ewolucji gotowego oprogramowania.
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.
Wyzwania
[edytuj | edytuj kod]Do najwi?kszych wyzwań w dziedzinie in?ynierii oprogramowania nale??:
- zapewnienie, zarówno wstecznej, jak i przysz?ej; kompatybilno?ci mi?dzy-systemowej i ci?g?o?ci dzia?ania (systemy spadkowe)
- integralno?? i kooperacja systemów opartych na ró?nych technologiach (systemy heterogeniczne)
- minimalizacja czasu produkcji oprogramowania przy jednoczesnej maksymalizacji jego jako?ci (metodyki produkcji systemów)
Proces produkcji oprogramowania
[edytuj | edytuj kod]Fazy
[edytuj | edytuj kod]W in?ynierii oprogramowania wyró?nia si? od kilku do nawet kilkunastu etapów w procesie jego produkcji, w zale?no?ci od potrzeb. Typowym podstawowo istniej?cym podzia?em jest:
- specyfikacja – 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? jego 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
Metodyki
[edytuj | edytuj kod]Mo?na wyró?ni? szereg metodyk dotycz?cych procesu produkcji oprogramowania (zarz?dzania przedsi?wzi?ciem programistycznym), w tym:
- model kaskadowy
- model prototypowy
- model przyrostowy (iteracyjny)
- model równoleg?y
- programowanie zwinne (ang. agile programming)
- programowanie ekstremalne (ang. extreme programming)
- scrum
- kanban
- model spiralny
- Rational Unified Process
Metody opisu
[edytuj | edytuj kod]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 | edytuj kod]- 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
- in?ynieria komputerowa
Przypisy
[edytuj | edytuj kod]- ↑ The Joint Task Force for Computing Curricula , A volume of the Computing Curricula Series [online], web.archive.org, 2015 [dost?p 2025-08-14] [zarchiwizowane z adresu 2025-08-14] .
- ↑ GND, Katalog der Deutschen Nationalbibliothek [online], portal.dnb.de [dost?p 2025-08-14] .
Linki zewn?trzne
[edytuj | edytuj kod]- 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