PTI - Polskie Towarzystwo Informatyczne: Oddział Dolnośląski 

V KKIO - monografia


  Ukazała się monografia pod redakcją Zbigniewa Huzara i Zygmunta Mazura.
Spis treści można ściągnąć w formacie PDF (127 KB).

Wstęp do monografii

Początki inżynierii oprogramowania kojarzą się z próbami zrozumienia i opanowania kryzysu wytwarzania oprogramowania w końcu lat sześćdziesiątych ubiegłego stulecia. Kryzys przejawiał się ogromną liczbą przedsięwzięć informatycznych kończących się fiaskiem ze względu na przekroczenie czasu i budżetu przeznaczonego na ich realizację, a także nie osiągnięciem oczekiwanych wymagań.

Próbom przezwyciężenia kryzysu oprogramowania towarzyszyło wiele pomysłów. Pierwsza fala pomysłów, przypadająca na lata siedemdziesiąte, uformowała tak zwane podejście strukturalne. Koniec lat osiemdziesiątych zapoczątkował kolejne podejście, nazywane podejściem obiektowym. Obecnie staje się ono podejściem dominującym.

Jako wyraźnie wyodrębniony dział informatyki inżynieria oprogramowania zaczęła kształtować się na początku lat osiemdziesiątych, a w okresie ostatnich kilkunastu lat, wraz z rozwojem obiektowych metodyk projektowania oprogramowania, stała się dojrzałym działem informatyki. Ciągle jednak, w porównaniu z innymi rodzajami inżynierii, jak na przykład, inżynierią budowlaną, czy okrętową, inżynieria oprogramowania jest dziedziną bardzo młodą.

Wytwarzanie oprogramowania wiąże się zwykle z konkretnym zamierzeniem biznesowym w danej instytucji, przedsiębiorstwie, jednostce gospodarczej. Wytworzenie oprogramowania jest wtedy tylko częścią szerszego przedsięwzięcia. Przedsięwzięcie informatyczne jest planową działalnością, obejmującą zestaw zadań mających wspólny cel - wytworzenie i wdrożenie produktu programowego. Realizacja tych zadań wymaga porozumienia pomiędzy uczestnikami przedsięwzięcia informatycznego, którzy reprezentują zamawiających i wytwórców, oraz użytkowników oprogramowania. Dwoma zasadniczymi problemami podczas realizacji przedsięwzięcia informatycznego jest precyzyjne ustalenie wymagań i oczekiwań przyszłego użytkownika systemu, oraz opanowanie złożoności zadań przez wytwórcę systemu.

Na wiedzę z zakresu inżynierii oprogramowania składa się wiedza techniczna i wiedza o zarządzaniu przedsięwzięciami.

Odnoszą się do tego pierwsze szersze polskie pozycje literaturowe. Książka Andrzeja Jaszkiewicza, Inżynieria oprogramowania (Wydawnictwo Helion, 1997), określa inżynierię oprogramowania jako wiedzę techniczną dotyczącą wszystkich faz cyklu życia oprogramowania, której celem jest uzyskanie wysokiej jakości produktu - oprogramowania.
Książka pod redakcją Janusza Górskiego, Inżynieria oprogramowania w projekcie informatycznym (MIKOM, 1999), podkreśla rolę inżynierii oprogramowania w kontekście przedsięwzięcia informatycznego.

Pojęcia projektu i przedsięwzięcia informatycznego są często używane zamiennie, czego powody wyjaśnia Zdzisław Szyjewski w książce Zarządzanie projektami informatycznymi (Agencja Wydawnicza Placet, 2001):

Projekt jest prostym tłumaczeniem angielskiego słowa project. Lepszym tłumaczeniem jest polskie określenie przedsięwzięcie, które oddaje złożoność różnorodnych działań podejmowanych dla wprowadzania zmian, jednak nie przyjęło się i w praktyce częściej spotykamy określenie projekt.

Współczesne metody inżynierii oprogramowania pozwoliły na opanowanie lub - ostrożniej - na znaczne ograniczenie kryzysu oprogramowania, jednocześnie, ze względu na coraz szersze upowszechnienie informatyki, stale rośnie skala podejmowanych przedsięwzięć informatycznych i typowym staje się wymóg, by tworzone aplikacje funkcjonowały w Internecie.

Wytwarzanie oprogramowania i zarządzanie przedsięwzięciem informatycznym stały się tak złożone, że nie jest możliwa ich realizacja bez komputerowego wsparcia. Obserwujemy dwie tendencje w rozwoju metod inżynierii oprogramowania wspólnie powiązane w ramach podejścia obiektowego, którego paradygmatem jest widzenie procesu wytwarzania oprogramowania jako pewnego procesu modelowania. Proces ten polega na tworzeniu ciągu modeli, który rozpoczyna się modelem opisującym wybraną dziedzinę zastosowań, a kończy się modelem końcowego systemu.

Tendencja pierwsza wiąże się z ujednolicaniem metodyk i notacji, które powstawały w początkowym okresie rozwoju technik obiektowych. Wyrazem tej tendencji jest powstanie i rozwijanie języka UML (Unified Modeling Language), wykorzystywanego do wyrażania głównych artefaktów procesu wytwarzania oprogramowania.

Druga tendencja wyraża się w rozwijaniu metodyk obiektowych oraz wspierającego oprogramowania narzędziowego, nazywanego też pakietami CASE (Computer Added Software Engineering lub Computer Added Software Environment).

Niniejsza monografia jest ilustracją zaangażowania krajowego środowiska akademickiego i przemysłowego w rozwój metod inżynierii oprogramowania. Materiał zawarty w poszczególnych rozdziałach monografii zgrupowano w siedmiu tematycznie jednorodnych częściach, poświęconych poszczególnym problemom z zakresu inżynierii oprogramowania.

Wyodrębniono następujące części:

A. Inżynieria wymagań
B. Projektowanie i implementacja
C. Ocena systemów
D. Metodyki lekkie
E. Zapewnienie jakości
F. Zarządzanie przedsięwzięciem informatycznym
G. Zastosowania

Niezwykle istotną fazą w cyklu życia oprogramowania jest precyzyjne określenie celu i zakresu tworzonego systemu informatycznego oraz szczegółowych wymagań klienta związanych z funkcjonalnością projektowanego systemu. Zagadnieniom tym poświęcona jest pierwsza część niniejszej monografii zatytułowana Inżynieria wymagań.

Kolejna część Projektowanie i implementacja przedstawia, między innymi, metodę BP (Badania - Prototypowanie). Autorzy sugerują modyfikacje modelu spiralnego w obszarze definiowania zadań i punktów kontrolnych, a także zarządzania jakością i zakresem tworzonego systemu. W części tej omówione jest również zagadnienie komponentowego podejścia do projektowania i implementacji. Przedstawiono także nowe wcielenie metodyki Select Perspective, która jest obecnie jednym z bardzo niewielu procesów produkcyjnych, kładących nacisk na komponentowość rozwiązania już na pierwszych etapach cyklu życia systemu. Podejście takie ma za zadanie zmniejszenie całkowitego kosztu wytwarzania systemów oraz umożliwienie jasnego rozdziału odpowiedzialności pomiędzy zespołami tworzącymi części składowe rozwiązania oraz zespołami odpowiedzialnymi za dostarczenie całego systemu, zgodnie z wymaganiami sponsorów przedsięwzięcia.

Niezwykle istotnym elementem jest ocena systemów informatycznych, która jest pojęciem bardzo szerokim. W rozdziałach zgrupowanych w części Ocena systemów, poruszana jest tematyka agentów programowych, systemów wieloagentowych, hurtowni danych, modelowania dynamicznego. Przedstawiona jest również propozycja metodyki zawierającej opis cyklu wytwórczego opartego na zasadzie iteracyjności oraz sterowanego przy pomocy przypadków użycia. Do opisu procesu wytwórczego wykorzystano notację UML, a w szczególności model klas, model współpracy i model czynności. Wyszczególniono podstawowe elementy procesu, jakimi są role, artefakty oraz czynności.

W części Metodyki lekkie przedstawione są zagadnienia związane z zastąpieniem tradycyjnych metod uciążliwego dokumentowania przebiegu prac projektowych lżejszymi formami. Na każdym etapie musimy jednak pamiętać o zapewnieniu jakości oprogramowania czyli zagwarantowaniu, że wytworzone oprogramowanie będzie poprawne i przyjazne w użytkowaniu a przede wszystkim, że będzie spełniało wszystkie wcześniej określone kryteria jakościowe. Zagadnieniom tym jest poświęcona część książki zatytułowana Zapewnienie jakości.

Zagadnienia inżynierii oprogramowania wiążą się ściśle z zagadnieniami zarządzania przedsięwzięciami informatycznymi.

Zarządzanie projektami ma na celu podniesienie jakości i efektywności działań związanych z wytwarzaniem systemów informatycznych. Problemy te są przedstawione i omówione w części zatytułowanej Zarządzanie przedsięwzięciem informatycznym.

Część monografii zatytułowana Zastosowania zawiera opis m.in. jednego z większych projektów pod nazwą CrossGrid sponsorowanego przez Unię Europejską w ramach 5. Programu Ramowego. W projekcie tym uczestniczy 21 niezależnych instytucji naukowych i komercyjnych z 11. krajów. Znaczne rozmiary projektu w połączeniu z jego geograficznym rozproszeniem wymagają opracowania specjalnych procedur, gwarantujących jednorodność i spójność oprogramowania w obrębie całego Konsorcjum Projektu. Ponadto w części tej są omówione zagadnienia związane z programowaniem zespołowym oraz z aspektami dydaktycznymi, między innymi, omawia się nauczanie na odległość, wprowadzanie przedmiotów związanych z inżynierią oprogramowania na uczelniach a także dokonuje się przeglądu literatury z zakresu inżynierii oprogramowania.

Na końcu książki znajduje się indeks autorów kolejnych rozdziałów monografii.

Redaktorzy składają gorące podziękowania Recenzentom za wnikliwe i konstruktywne uwagi dotyczące poszczególnych rozdziałów, które wpłynęły pozytywnie na ich ostateczną wersję.

Zbigniew Huzar
Zygmunt Mazur

© 2002-2017 Polskie Towarzystwo Informatyczne Oddział Dolnośląski  -   Stopka redakcyjna
Ostatnia aktualizacja: 20 października 2003    Dział redaguje: Paweł Mazur