e-Informatica Software Engineering Journal Analiza polskojęzycznej literatury z zakresu “Inżynierii oprogramowania”

Analiza polskojęzycznej literatury z zakresu “Inżynierii oprogramowania”

Andrzej Kobyliński*,  Przemysław Polak**
*Katedra Informatyki Gospodarczej,  Szkoła Główna Handlowa w Warszawie **Katedra Informatyki Gospodarczej,  Szkoła Główna Handlowa w Warszawie
Streszczenie

Celem opracowania jest określenie, jakie obszary zaliczane do dziedziny inżynierii oprogramowania, są uwzględniane w polskojęzycznej literaturze przedmiotu. Autorzy dokonali analizy 25 tekstów, próbując zakwalifikować przekazywane tam treści do 10-ciu obszarów SoftWare Engineering Body Of Knowledge (SWEBOK).

Wprowadzenie#

Liczba uczelni kształcących specjalistów z dziedziny informatyki bezustannie rośnie, w większości z nich do programu studiów włączony został przedmiot “Inżynieria oprogramowania”, a niektóre uruchomiły nawet tak nazwany kierunek studiów.

Z drugiej strony, przyczyną dużej liczby spektakularnych często niepowodzeń we wdrażaniu systemów informatycznych jest, przynajmniej w części, niedostateczne wykształcenie realizatorów i zarządzających przedsięwzięciami informatycznymi.

Inżynieria oprogramowania, jako przedmiot akademicki, włączona została do programu nauczania w polskich uczelniach stosunkowo niedawno, bo w ostatnim dziesięcioleciu. Można więc przypuszczać, że absolwenci kończący studia we wcześniejszym okresie (a tacy stanowią większość wśród pracujących zawodowo informatyków) nie zetknęli się w trakcie studiów z tym przedmiotem. Oczywiście, podejście takie jest uproszczone; na uczelniach ekonomicznych od 30-tu lat wykładany jest przedmiot “Projektowanie systemów informatycznych”, którego zakres w dużej części pokrywa się z zawartością przedmiotu “Inżynieria oprogramowania” [KOBY1998]. Aby się o tym przekonać, wystarczy sięgnąć do opracowania pod redakcją E. Niedzielskiej [NIED1982], które na uczelniach ekonomicznych było przez wiele lat podstawowym podręcznikiem przedmiotu “Projektowanie systemów informatycznych”.

Program przedmiotu “Inżynieria oprogramowania” nie jest ściśle ujednolicony i różni się w zależności od uczelni i wykładowcy; kursy przedmiotu wahają się od jednodniowych seminariów, aż do 5-letnich studiów magisterskich.

W ostatnich latach, po powstaniu organizacji emphSoftWare Engineering Body Of Knowledge (SWEBOK), sytuacja ulega normalizacji. W Polsce jeszcze kilka lat temu zdarzało się, że w ramach przedmiotu wykładana była teoria i analiza algorytmów, obecnie taka sytuacja odchodzi w niepamięć. Wydaje się, że przełom nastąpił w 1997 roku, gdy ukazała się książka Andrzeja Jaszkiewicza p.t. emphInżynieria oprogramowania, która przyczyniła się do upowszechnienia zakresu tematycznego objętego tym terminem.

Powtarzalność i efektywność procesów dydaktycznych realizowanych podczas wszelkich szkoleń/kursów/studiów nie może opierać się na heroizmie i indywidualnej wiedzy, doświadczeniu praktycznym i umiejętnościach wykładowców. Podstawę do ujednolicenia procesu dydaktycznego stanowią podręczniki. W początkowym okresie transformacji polskiej gospodarki powstało mnóstwo niezależnych oficyn wydawniczych, które swoją szansę rozwoju postrzegały w wydawaniu samouczków na temat obsługi popularnych programów komputerowych. W książkach tych często połowę objętości zajmowały zrzuty ekranów. Do nowych oficyn dołączyły duże wydawnictwa z tradycjami, które aby przetrwać na rynku zastosowały podobną politykę wydawniczą. Na szczęście w kilku ostatnich latach nastąpiła zmiana i coraz częściej na półkach księgarskich można znaleźć książki o wysokim poziomie i charakterze akademickim. Zarówno duże, jak i małe wydawnictwa wydają pozycje o charakterze ogólniejszym, a nie mające charakteru efemerycznych instrukcji obsługi konkretnego programu.

Praca może stanowić dla czytelników, szukających materiałów z zakresu inżynierii oprogramowania, pomoc w doborze książek, które zawierają informacje dotyczące interesujących ich zagadnień. Ubocznym jej celem jest wskazanie przyszłym autorom książek, które obszary SWEBOK są w niedostateczny sposób udokumentowane w polskojęzycznej literaturze.

Zakres inżynierii oprogramowania#

SWEBOK % próbuje ujednolicić zakres inżynierii oprogramowania. Aktualnie obowiązujący materiał wchodzący w zakres tego działu informatyki został podzielony na 10 części [SWEB2001]://

  • Wymagania
  • Projekt
  • Konstrukcja
  • Testowanie
  • Konserwacja
  • Zarządzanie konfiguracją
  • Zarządzanie wytwarzaniem oprogramowania
  • Procesy inżynierii oprogramowania
  • Narzędzia i metody inżynierii oprogramowania
  • Jakość oprogramowania

Pierwszych pięć obszarów dotyczy faz cyklu życia oprogramowania, które można uszeregować sekwencyjnie w taki sposób, że pokryją pełny cykl życia systemu. Pozostałe części obejmują czynności, które wykonywane są równolegle do czynności rozwojowych lub pełnią funkcję pomocniczą w ich realizacji.

Każdy z obszarów podzielony został na bardziej szczegółowe punkty. Ich zawartość została uwzględniona w przeprowadzanych dalej analizach, jednak ze względu na rozmiary publikacji pomijamy ich szczegółową listę (zob. [SWEB2001]).

Metoda badawcza#

Badaniu poddano 25 książek. Przeprowadzona analiza ich zawartości miała na celu określenie, jaka część ich treści może być zaliczona do poszczególnych obszarów SWEBOK. Tabela 1 zawiera tytuły książek, które zostały poddane analizie. Podkreślić należy, że w większości są to pozycje wydane przez wydawnictwa ogólnopolskie. W dwóch przypadkach są to publikacje oficyn uczelnianych, ale dostępne w wybranych księgarniach na terenie całego kraju oraz w formie wysyłkowej.Wybór publikacji poddanych analizie dokonany został w sposób subiektywny i autorzy przepraszają w tym miejscu autorów i wydawnictwa, których dzieła nie były uwzględnione w opracowaniu. Niemniej wydaje się, że dobór jest dość reprezentatywny, z wyjątkiem być może książek poświęconych implementacyjnym podstawom systemów oprogramowania. Na rynku znajduje się bowiem całe bogactwo książek poruszających problematykę języków programowania, baz danych, systemów operacyjnych i sieci komputerowych, które w ostateczności można by przypisać do trzeciego obszaru SWEBOK (konstrukcja). Większość z nich opisuje jeden produkt komercyjny, takie pozycje nie zostały uwzględnione w analizie. Nad włączeniem do badania innych, bardziej ogólnych, można by się zastanawiać. Niemniej, lista pozycji uwzględnionych w badaniu jest na tyle długa (zob. tabela 1), porównywalna w tym względzie np. z [MIRU2000], że autorzy podjęli arbitralną decyzję o umieszczeniu w zestawieniu wyłącznie dwóch książek z tego zakresu.

Tabela 1. Lista wybranych do analizy publikacji książkowych
Barker R. (1996): CASE Method. Modelowanie związków encji, WNT, Warszawa.
Barker R., Longman C. (1996): CASE Method. Modelowanie funkcji i procesów, WNT, Warszawa.
Bays M. E. (2001): Metodyka wprowadzania oprogramowania na rynek, WNT, Warszawa.
Begier B. (1999): Inżynieria oprogramowania – problematyka jakości, WPP, Poznań.
Beynon-Davies P. (1999): Inżynieria systemów informacyjnych, WNT, Warszawa.
Chabik J. (1999): Praktyka skutecznego programowania, Nakom, Poznań.
Coad P., Yourdon E.(1994-A): Analiza obiektowa, Read Me, Warszawa.
Coad P., Yourdon E.(1994-P): Projektowanie obiektowe, Read Me, Warszawa.
Dumnicki R., Kasprzyk A., Kozłowski M. (1998): Analiza i projektowanie obiektowe, Helion, Gliwice
Flasiński M. (1997): Wstęp do analitycznych metod projektowania systemów informatycznych, WNT, Warszawa.
Fuglewicz P., Stąpor K., Trojnar A. (1996): CASE dla ludzi, Wyd. 2, Lupus, Warszawa.
Górski J. (1999) (red.): Inżynieria oprogramowania w projekcie informatycznym, Mikom, Warszawa.
Hunt A., Thomas D. (2002): Pragmatyczny programista. Od czeladnika do mistrza, WNT, Warszawa.
Jaszkiewicz A.(1997): Inżynieria oprogramowania, Helion, Gliwice.
Kerningham B. W., Pike R. (2002): Lekcja programowania, WNT, Warszawa.
Martin J., Odell J. J. (1997): Podstawy metod obiektowych, WNT, Warszawa.
Niedzielska E., Skwarnik M. (1993) (red): Projektowanie systemów informatycznych, Wyd. 3, PWE, Warszawa.
Patton R. (2002): Testowanie oprogramowania, Mikom, Warszawa.
Robertson J., Robertson S. (1999): Pełna analiza systemowa, WNT, Warszawa.
Roszkowski J. (2002): Analiza i projektowanie strukturalne, Wyd. 2, Helion, Gliwice.
Sikorski M. (2000): Zarządzanie jakością użytkową w przedsięwzięciach informatycznych, WPG, Gdańsk.
Szejko S. (red.) (2002): Metody wytwarzania oprogramowania, Mikom, Warszawa.
Szyjewski Z. (2001): Zarządzanie projektami informatycznymi, Placet, Warszawa.
Wrycza S.(1999): Analiza i projektowanie systemów informatycznych zarządzania – metodyki, techniki, narzędzia, PWN, Warszawa.
Yourdon E. (1996): Współczesna analiza strukturalna, WNT, Warszawa.

Źródło: opracowanie własneAutorzy niniejszego rozdziału przeanalizowali wszystkie wymienione w tabeli 1. książki, próbując zakwalifikować ich tekst do poszczególnych obszarów SWEBOK. Rejestrowana była liczba stron odnosząca się do każdego z obszarów. W celu ustandaryzowania uzyskanych wyników (poszczególne książki znacznie różnią się formatem, a szczególnie liczbą stron), jako miarę porównawczą wykorzystano procent zawartości książki, jaki poświęcony został poszczególnym tematom. Procent ten był liczony poprzez podzielenie liczby stron poświęconych danemu tematowi przez liczbę wszystkich stron całej pozycji.

Wyniki#

Udział obszarów SWEBOK w poszczególnych książkach#

W tabeli 2. przedstawiono, jaka część każdej z analizowanych pozycji została poświęcona poszczególnym obszarom SWEBOK. Procent pokrycia tekstu zawarty w tej tabeli należy rozpatrywać w sposób przybliżony.

Tabela 1. Lista wybranych do analizy publikacji książkowych
1. Barker (1996) 80% <5% <3% <3%
2. Barker, Longman (1996) 60% 20% <3% 10%
3. Bays (2001) 80% 10%
4. Begier (1999) 40% 30% <5% 20%
5. Beynon-Davies (1999) 20% 10% 10% 10% 10% <3% <5%
6. Chabik (1999) 10% 20% 20% <3% <3% 20%
7. Coad, Yourdon (1994-A) 70% <5% 10% <3%
8. Coad, Yourdon (1994-P) 70% 20% <5% <3%
9. Dumnicki i in. (1998) 60% 20% <5% <1% <3% <3%
10. Flasiński (1997) 40% 40% <5% <5%
11. Fuglewicz i in. (1996) 40% 40% <3% <3% <3% 10%
12. Górski i in. (1999) 20% 10% 10% 10% 10% 30%
13. Hunt, Thomas (2002) 10% 60% 10% <3% 10%
14. Jaszkiewicz (1997) 40% 10% <5% <5% <5% <1% 10% 10% <5% <1%
15. Kerningham, Pike (2002) 80% 10%
16. Martin, Odell (1997) 20% <3% <1%
17. Niedzielska, Skwarnik (1993) 10% 50% <3% <3% <3% <3% <5%
18. Patton (2002) 80% <5% <5% <3%
19. Robertson, Robertson (1999) 90%
20. Roszkowski (2002) 50% 10% 10%
21. Sikorski (2000) 20% 60%
22. Szejko i in. (2002) 10% 10% 10% <5% <3% <5% 40% 10%
23. Szyjewski (2001) 80% 10%
24. Wrycza (1999) 20% 20% <3% <3% 10% 10%
25. Yourdon (1996) 80% <3% <3% <1% <1% <5% <3% <1%

Legenda:

0-1% <1% 36-45% 40%
1-3% <3% 46-55% 50%
3-5% <5% 56-65% 60%
6-15% 10% 66-75% 70%
16-25% 20% 76-85% 80%
26-35% 30% 86-95% 90% Źródła: opracowanie własne

W legendzie pod tabelą zostało szczegółowo opisane, jak należy interpretować zawarte w tabeli liczby. Wyniki te należy traktować wyłącznie w sposób ilościowy i nie dający podstaw do wyciągania żadnych wniosków dotyczących jakości prezentacji tematu. Trzeba też w tym miejscu zauważyć, że w żadnym wierszu tabeli 2. liczby nie sumują się do 100%. Związane jest to z tym, że wszystkie książki, nawet te ściśle ukierunkowane na określoną tematykę, zawierają wstępy, spisy, indeksy, poruszają problemy ogólno-informatyczne, nie związane bezpośrednio z żadnym z 10-ciu obszarów inżynierii oprogramowania.

Ranking popularności poszczególnych obszarów SWEBOK#

Liczby zawarte w tabeli 3. obrazują, jaka część całości przebadanej literatury z dziedziny inżynierii oprogramowania poświęcona jest poszczególnym obszarom SWEBOK. Wskaźniki procentowe uzyskano poprzez podzielenie liczby stron przypisanych do każdego obszaru przez sumaryczną liczbę stron wszystkich 25-ciu książek.

Tabela 3. Ranking popularności poszczególnych obszarów SWEBOK
Wymagania 34%
Projekt 11%
Konstrukcja 9%
Zarządzanie wytwarzaniem oprogramowania 7%
Testowanie 6%
Procesy inżynierii oprogramowania 5%
Jakość oprogramowania 5%
Zarządzanie konfiguracją 3%
Narzędzia i metody inżynierii oprogramowania 2%
Konserwacja <1%

Źródła: opracowanie własneZdecydowanie najpopularniejszym tematem, poruszanym przez prawie wszystkich autorów są wymagania (analiza wymagań), a w następnej kolejności projektowanie. Odpowiada to intuicyjnemu odczuciu, którego można nabrać czytając same tytuły rozpatrywanych książek – słowa “analiza” i “projektowanie” najczęściej występują w tytułach.

Należy tu wskazać na jeszcze jedną trudność, na jaką napotkali autorzy przy dokonywaniu niniejszej analizy. Otóż zarówno w fazie analizy, jak i projektowania, wytwórcy mogą posługiwać się tymi samymi technikami. Na przykład diagramy DFD lub ERD są na tyle uniwersalne, że wykorzystuje się je w obu wymienionych fazach.

Zdecydowanie najmniej popularnym tematem jest konserwacja oprogramowania. Wyłącznie 5 pozycji, i to w sposób śladowy, zajmuje się tą tematyką.

Jedyną książką, w której poruszane są wszystkie tematy wyróżnione przez SWEBOK jest Inżynieria oprogramowania A. Jaszkiewicza.

Podkreślenia wymaga, że tytuły książek dość ściśle odpowiadają ich treści. Książki z “analizą” w tytule faktycznie znaczną część swej objętości poświęcają temu tematowi; podobnie jest z “testowaniem”, “zarządzaniem”, “projektowaniem” i innymi tematami. W tabeli 4. wyróżniono książki przodujące pod względem objętości poświęcanej poszczególnym tematom. Autorzy przeglądu nie podejmują się wskazania, która z książek jest najlepsza – przeznaczone są dla różnych odbiorców i ta sama tematyka bywa ujmowana w odmienny sposób; nie można więc wyników zawartych w tabeli 4. traktować jako wskaźnika reprezentowanego poziomu lub jakości sposobu prezentacji tematu.

Tabela 4. Książki o dominującej tematyce
Rozdział SWEBOK Tytuł książki
1. Wymagania (Robertson &Robertson, 1999), (Barker, 1996), (Barker &Longman, 1996), (Coad &Yourdon, 1994-A), (Yourdon, 1996), (Roszkowski, 2002), (Dumnicki i in., 1998)
2. Projekt (Coad &Yourdon, 1994-P), (Niedzielska &Skwarnik, 1993), (Flasiński, 1997)
3. Konstrukcja (Kerningham &Pike, 2002), (Hunt &Thomas, 2002)
4. Zarządzanie wytwarzaniem oprogramowania (Patton, 2002), (Górski i in., 1999), (Hunt &Thomas, 2002), (Kerningham &Pike, 2002)
5. Testowanie (Jaszkiewicz, 1997)
6. Procesy inżynierii oprogramowania (Bays, 2001)
7. Jakość oprogramowania (Szyjewski, 2001), (Chabik, 1999)
8. Zarządzanie konfiguracją (Szejko, 2002), (Begier, 1999), (Sikorski, 2000), (Szyjewski, 2001)
9. Narzędzia i metody inżynierii oprogramowania (Szejko, 2002), (Wrycza, 1999), (Fuglewicz i in., 1996)
10. Konserwacja (Sikorski, 2000), (Górski i in., 1999), (Begier, 1999)

Źródła: opracowanie własne

Pojmowanie terminu “Inżynieria oprogramowania” – przykłady#

Nie sposób w tym miejscu nie wspomnieć o zamieszaniu, które prawie 25 już lat temu wprowadziło Wydawnictwo Naukowo – Techniczne (WNT), które w końcu lat 70., po wydaniu w serii Biblioteka Inżynierii Oprogramowania (BIO) kilku książek bezsprzecznie zaliczanych do tej grupy (Projektowanie niezawodnego oprogramowania G. J. Myersa, Niezawodność oprogramowania H. Kopetza, Metodologia programowania W. M. Turskiego), wydały w niej książki z zupełnie innych dziedzin, dotyczące np. konkretnych języków programowania lub systemów operacyjnych. Sytuacja się nie zmieniła: WNT w serii BIO już w latach 90-tych wydało pozycje: “Algebra stosowana dla matematyków i informatyków” oraz “Kryptografia i ochrona danych”. Nie deprecjonuje to rangi tego zasłużonego wydawnictwa, tym bardziej, że kilka lat temu podjęło ono trud wydawania serii “Ludzie. Komputery. Informacja”, w której wydawane są takie bestsellery, jak: Mityczny osobomiesiąc F. P. Brooksa, Marsz ku klęsce E. Yourdona, czy też Czynnik ludzki T. DeMarco i T. Listera.Należy jeszcze zwrócić uwagę na inny problem, jaki autorzy napotkali w trakcie zbierania materiałów. Książki poddane analizie były w przeważającej części wyszukiwane w dużej, nowoczesnej bibliotece akademickiej z wolnym dostępem do półek. W bibliotece tej książki z zakresu informatyki zgrupowane są w 10-ciu działach tematycznych. Oczywiście, nie ma tam działu poświęconego inżynierii oprogramowania, natomiast przebadane wydawnictwa znajdowały się rozrzucone w 6-ciu działach. I tak, przykładowo:

  • Wstęp do analitycznych metod projektowania systemów informatycznych zaliczony został do działu “Informatyka”,
  • Inżynieria systemów informacyjnych, Metodyka wprowadzania oprogramowania na rynek, Analiza i projektowanie obiektowe – do działu “Systemy operacyjne i obsługa komputerów”,
  • Pełna analiza systemowa, CASE Method: Modelowanie funkcji i procesów oraz większość pozostałych książek – do działu “Programowanie. Języki programowania. Teoria programowania”,
  • CASE dla ludzi, Współczesna analiza strukturalna – do działu “Programy do tworzenia baz danych. Bazy danych”,
  • CASE Method: Modelowanie związków encji, Analiza obiektowa, Projektowanie obiektowe – do działu “Internet. Sieci komputerowe” (?),
  • naliza i projektowanie systemów informatycznych zarządzania – do działu “Programy do zastosowań technicznych. CAD. CAM” (?!).

Świadczy to tylko o powszechnym (poza środowiskiem) braku świadomości istnienia i rozumienia znaczenia dziedziny o nazwie “Inżynieria oprogramowania”.

Zakończenie#

Oferta książkowa z dziedziny informatyki na polskim rynku wydawniczym wydaje się być bardzo bogata. W minionym dziesięcioleciu ukazały się setki, a może nawet tysiące pozycji z zakresu informatyki. Niemniej książek, w których poruszana jest szeroko problematyka dotycząca różnych aspektów wytwarzania systemów informatycznych, wcale nie jest dużo. Większość pozycji dotyczy podstaw obsługi dostępnego na rynku oprogramowania, nieco mniej jest pozycji poruszających problematykę podstaw metodyki konstrukcji oprogramowania – głównie w aspekcie implementacyjnym, natomiast nieliczna (ale już zauważalna, czego nie dało by się powiedzieć 10 lat temu) jest grupa pozycji dotyczących budowy (i różnych związanych z tym problemów) oprogramowania dużych, złożonych systemów informatycznych – czyli inżynierii oprogramowania.//

Bibliografia#

[KOBY1998] A. Kobyliński, Is Software Engineering an Engineering Discipline?, 265–268, 1998, Eds. P. Klint, J. R. Nawrocki, Scientific Publishers OWN, SEES ?98 Conference Proceeding of the Software Engineering Education Symposium.
[MIRU2000] M. M. Misic i N. L. Russo, Reading between the lines: an examination of systems analysis and design texts, 65–73, vol. 50, październik 2000.
[NIED1982] Projektowanie systemów informatycznych, edition: Wyd. 2, 1998, Red. Niedzielska E., PWE.
[SWEB2001] SWEBOK, IEEE-Trial Version 1.00, May 2001, URL: www.swebok.org.

©2015 e-Informatyka.pl, All rights reserved.

Built on WordPress Theme: Mediaphase Lite by ThemeFurnace.