Wdrażanie technologii CASE (Cz. 3)

Proces produkcji oprogramowania

Odpowiedzią rynku na rodzącą się potrzebę zdyscyplinowania produkcji oprogramowania były, pojawiające się począwszy od połowy lat 70., techniki, metodyki i podejścia strukturalne. Powstały zatem metody analizy, projektowania, prototypowania, kodowania, testowania oraz pielęgnowania itd., systemów informatycznych. W każdej z wymienionych kategorii można jeszcze wyróżnić metody pochodzące od różnych autorów: Yourdon/DeMarco, Warnier/Orr, Gane/Sarson, Ward/Mellor, SSADM, Systems Engineering i wiele innych. Dokonał się także podział na metody klasyczne, czasu rzeczywistego, obiektowe etc. Powstały także metody tworzenia bardzo specyficznych klas programów, np. świetna, podbudowana teoretycznie, metodyka budowy kompilatorów, do której jeszcze daleko współczesnym metodykom strukturalnym. Równolegle postępował rozwój różnorodnych narzędzi CASE, które miały za zadanie wspomagać te techniki i podejścia oraz częściowo automatyzować proces tworzenia oprogramowania.

Burzliwy rozwój metod i narzędzi CASE nie przyniósł jednak spodziewanego wzrostu wydajności i jakości wykonywanych systemów informatycznych. Okazało się, że narzędzia i techniki to jeszcze za mało. Tworzą one zaledwie park maszynowy niezbędny do sprawnej produkcji oprogramowania, ale bezużyteczny jeśli nie wie się, jak z niego korzystać. Bezużyteczność tę łatwo zrozumieć wyobrażając sobie halę pełną maszyn produkcyjnych składających się na linię produkcyjną fabryki samochodów, ale za to ustawionych w sposób chaotyczny. Mamy zatem linie montażowe, które lakierują dopiero co wyprodukowane fotele i wkręcają śrubki prosto w nowiuteńkie opony. Czy w ten sposób może powstać samochód?

Co zatem jest niezbędne w naszej Fabryce Systemów Informatycznych, abyśmy mogli ją tak nazwać? Stosowanie poszczególnych technik i narzędzi musi być powiązane poprzez stosowanie odpowiednich procedur pracy zespołowej łączących metody, produkty i narzędzia w ściśle określony schemat produkcji i narzucających pewne rygory, które chaos nieskoordynowanych działań zamieniają w kontrolowany proces. Musi istnieć właściwy proces produkcyjny, czyli coś, co firmę wytwarzającą oprogramowanie upodobni chociaż trochę do fabryki samochodów.

Kontynuując tę analogię zastanówmy się, na czym ma właściwie polegać proces produkcyjny oprogramowania. Zastanówmy się też czy praktyczna realizacja idei Fabryki Systemów Informatycznych jest potrzebna i możliwa, a jeśli tak, to jak ją urzeczywistnić.

Potrzeba poprawy procesu produkcji oprogramowania

Wielokrotnie już poruszano temat ważności oprogramowania w naszym codziennym życiu i w realizacji ważnych, strategiczych celów biznesowych wielu nowoczesnych organizacji. W miarę tego, jak dojrzewają potrzeby związane z informatyką, dojrzewa również ona sama, co przejawia się w coraz poważniejszym traktowaniu problemów, jakie mogą wyniknąć z nieumiejętnego stosowania lub też nie stosowania metod inżynierii oprogramowania.

Proces tworzenia oprogramowania może się zmieniać w zależności od projektu, w którym jest stosowany. Każda organizacja ma własne, nieco odmienne sposoby prowadzenia pracy zespołów informatycznych. Niemniej jednak istnieją pewne ogólne zasady, którze rządzą wytwarzaniem oprogramowania, bez względu na jego specyfikę lub organizację, która je wytwarza.