Inżynieria oprogramowania

Kryzys oprogramowania zaowocował powstaniem nowej dziedziny wiedzy.

Kryzys oprogramowania zaowocował powstaniem nowej dziedziny wiedzy.

Inżynieria oprogramowania (software engineering) jest dziedziną informatyki zajmującą się profesjonalną produkcją oprogramowania. Jej metody, których praktyczne stosowanie wspomagają narzędzia CASE, są powszechnie wykorzystywane przez poważne, światowe firmy programistyczne. Dziedzina ta już od wielu lat jest podstawą kształcenia informatyków na zachodnich uczelniach technicznych i dzisiaj chcemyw tym artykule przybliżyć inżynierię oprogramowania polskiemu Czytelnikowi.

Kryzys oprogramowania

Inżynieria oprogramowania jest dziedziną informatyki, która pojawiła się w połowie lat 60. Jej rozwój poprzedziło zwrócenie uwagi na tzw. kryzys oprogramowania. W latach 50. i na początku lat 60. tworzono wyłącznie bardzo małe programy. Wynikało to zarówno z niewielkich możliwości ówczesnych komputerów, jak i z braku zapotrzebowania na złożone oprogramowanie. Sytuacja zmieniła się w połowie lat 60. Rozwój sprzętu komputerowego oraz języków programowania umożliwił tworzenie znacznie bardziej złożonych systemów. Pojawili się także pierwsi programiści, tj. ludzie profesjonalnie zajmujący się wytwarzaniem oprogramowania. W tym okresie uświadomiono sobie również przydatność komputerów w nowych zastosowaniach. m.in. w zarządzaniu. W związku z tym podjęto wiele prób budowy złożonych systemów informatycznych, których realizacja wymagała współpracy zespołów ludzkich. Wiele z tych przedsięwzięć nigdy nie ukończonych, pozostałe znacznie przekroczyły założony czas i budżet. Stało się jasne, że rozwój technik budowy oprogramowania nie nadąża za rozwojem sprzętu. To właśnie zjawisko określa się jako "kryzys oprogramowania".

"Kryzys oprogramowania" trwa zresztą do dziś. W latach 90. 90% poważnych firm programistycznych w USA uważa, że często zdarzają się im opóźnienia przedsięwzięć programistycznych. Obserwacje autora potwierdzają, że sytuacja w Polsce nie jest z pewnością pod tym względem lepsza. Oprogramowanie jest też chyba jedynym produktem technicznym, w którym błędy są powszechnie akceptowane (porównaj reakcję na błąd w PENTIUM z reakcją na błędy w oprogramowaniu). Producenci programów sprzedawanych w milionach egzemplarzy nie dają praktycznie żadnej gwarancji na to, że ich produkt działa zgodnie z opisem.

Jakie są przyczyny "kryzysu oprogramowania"? Liczne konferencje i dyskusje na ten temat, które odbywały się w połowie lat 60., zaowocowały wskazaniem następujących jego przyczyn:

  • duża złożoność systemów informatycznych

  • niepowtarzalność poszczególnych przedsięwzięć

  • nieprzejrzystość oprogramowania, tj. fakt trudności w ocenie stopnia zaawansowania prac

  • pozorna łatwość wytwarzania i dokonywania poprawek w oprogramowaniu.
Rozmaite propozycje wyjścia z "kryzysu oprogramowania" zaowocowały powstaniem nowej dziedziny - inżynierii oprogramowania.

Zakres inżynierii oprogramowania

Inżynierię oprogramowania można zdefiniować jako wiedzę techniczną, dotyczącą wszystkich faz cyklu życia oprogramowania, której celem jest uzyskanie wysokiej jakości produktu - oprogramowania. Definicja ta zwraca uwagę na najistotniejsze cechy tej dziedziny, które omówimy dalej.

Inżynieria oprogramowania traktuje oprogramowanie jako produkt. Ogólne kryteria jakości oprogramowania są zbliżone do tego typu kryteriów definiowanych dla innych wyrobów. Dobre oprogramowanie powinno więc być zgodne z wymaganiami użytkownika, niezawodne, efektywne, łatwe w konserwacji i ergonomiczne.

Produkcja oprogramowania traktowana jest jako proces składający się z wielu faz, począwszy od momentu, kiedy podejmowane są strategiczne decyzje o sposobie realizacji przedsięwzięcia, aż do fazy eksploatacji, w której oprogramowanie jest wykorzystywane przez użytkowników. Implementacja, czyli kodowanie, jest tylko jednym z etapów budowy oprogramowania. Sukces całego przedsięwzięcia programistycznego zależy od jakości pracy na wszystkich etapach jego realizacji.

Inżynieria oprogramowania jest wreszcie wiedzą techniczną a nie teoretyczną nauką. Jej metody, techniki i narzędzia powstają i są rozwijane przede wszystkim w oparciu na praktycznych doświadczeniach i weryfikowane są podczas ich praktycznego stosowania. Dziedzina ta wykorzystuje także dorobek wielu nauk, np. teorii programowania, sztucznej inteligencji, badań operacyjnych, psychologii i nauki o zarządzaniu.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200