PLANOWANIE JAKOŚCI OPROGRAMOWANIA W ŚWIETLE MIĘDZYNARODOWYCH NORM SERII ISO. POZIOM ORGANIZACYJNY ORAZ WYROBU / PROJEKTU Karol Chrabański Wstęp W niniejszym artykule zdefiniowania wymagają jak się wydaje co najmniej następujące pojęcia : system zarządzania jakością to zbiór wzajemnie powiązanych lub wzajemnie oddziałujących elementów do kierowania organizacją i jej nadzorowania w odniesieniu do jakości jakość to stopień w jakim zbiór inherentnych właściwości spełnia wymagania, czyli potrzebę lub oczekiwanie, które zostało ustalone, przyjęte zwyczajowo lub jest obowiązkowe zarządzanie jakością to skoordynowane działania dotyczące kierowania organizacją i jej nadzorowania w odniesieniu do jakości. Kierowanie i nadzorowanie w odniesieniu do jakości zazwyczaj obejmuje ustanowienie polityki jakości i celów dotyczących jakości, planowania jakości, sterowania jakością, zapewnienie jakości planowanie jakości to część zarządzania jakością ukierunkowana na ustalenie celów dotyczących jakości i określająca procesy operacyjne i związane z nimi zasoby niezbędne do osiągnięcia celów dotyczących jakości. Ustanowienie planów jakości moŝe być częścią planowania jakości oprogramowanie to synonim określenia wyrób procesu programowania, czyli zbioru programów komputerowych, procedur, ewentualnie takŝe towarzyszących im dokumentów i danych PowyŜsze definicje przyjęto za normą PN-EN ISO 9000:2000 o nazwie Systemy zarządzania jakością. Podstawy i terminologia. Definicję oprogramowania przyjęto za ISO/IEC 90003:2004 Software engineering. Guidelines for the application of 9001:2000 to computer software. First edition 2004.02.15
TEORETYCZNE PODSTAWY TWORZENIA SWO I STRATEGIE BUDOWY E-BIZNESU Międzynarodowe normy serii ISO W lutym 2004 roku pierwszy raz została wydana międzynarodowa norma ISO / IEC 90003 o następującym tytule ( w tłumaczeniu ) : InŜynieria oprogramowania- wytyczne stosowania normy ISO 9001:2000 do oprogramowania komputerowego. Wspomniana norma dostarcza organizacjom wskazówek dotyczących stosowania normy ISO 9001:2000 w zakresie nabywania, dostarczania, opracowywania i utrzymania oprogramowania komputerowego. Norma ta została opracowana przez Wspólną Komisję Techniczną ISO / IEC JTC 1, Technologie Informacyjne, Podkomisja S.C. 7, Projektowanie oprogramowania i systemów. Zastosowanie tej międzynarodowej normy jest właściwe dla oprogramowana będącego: 1. Elementem umowy handlowej z inną organizacją 2. Wyrobem dostępnym w danym sektorze rynku 3. Przeznaczonym do stosowania do wspomagania procesów organizacyjnych 4. Zainstalowanym w sprzęcie komputerowym 5. Powiązanym z usługami dotyczącymi oprogramowania Planowanie jakości oprogramowania w ujęciu międzynarodowych norm serii ISO Całość problematyki dotyczącej procesów planowania jakości w kontekście wymagań i zaleceń międzynarodowych norm ISO 9001:2000 i ISO / IEC 90003 jest eksponowana w co najmniej dwóch aspektach : 1. Osiągania zaplanowanych wyników 2. Ciągłego doskonalenia procesów pozwalających osiągnąć zaplanowane wyniki Planowanie jakości w zakresie oprogramowania moŝe dotyczyć zarówno poziomu organizacyjnego jak i poziomu projektu / wyrobu ( vide punkt 5.4.2 - Planowanie systemu zarządzania jakością ). Przy czym zalecenia normy ISO / IEC 90003 odnośnie planowania systemu zarządzania jakością na poziomie organizacyjnym mogą obejmować następujące grupy czynności : a) definiowanie odpowiednich modeli cyklu Ŝycia stosowanych dla typów projektów podejmowanych przez organizację, w tym sposobu, w jaki organizacja zwykle wdraŝa procesy cyklu Ŝycia oprogramowania b) definiowanie wyrobów roboczych rozwoju (opracowania) oprogramowania. Do nich moŝna zaliczyć : 1. Dokumenty dotyczące wymagań, czyli specyfikacje. Oprogramowanie ma je spełniać
ROZDZIAŁ I 2. Dokumenty dotyczące projektu architektury oprogramowania 3. Dokumenty dotyczące szczegółowego projektu 4. Kod programu 5. Dokumentacja uŝytkownika oprogramowania c) definiowanie treści planów zarządzania oprogramowaniem, w skład których zalicza się: 1. Plany zarządzania projektem oprogramowania 2. Plany zarządzania konfiguracją oprogramowania 3. Plany weryfikacji i walidacji oprogramowania 4. Plany zapewnienia jakości oprogramowania 5. Plany szkoleń d) definiowanie sposobu dostosowania metod inŝynierii programowania do projektów organizacji w ramach cyklu Ŝycia e) identyfikowanie narzędzi i środowiska w którym odbywa się rozwój (opracowanie),eksploatacja lub konserwacja oprogramowania f) określenie konwencji w zakresie stosowania języków oprogramowania, np. reguł kodu, bibliotek oprogramowania i struktur g) identyfikowanie ewentualnych ponownych zastosowań oprogramowania z uwzględnieniem punktu normy- 7.5.4 Własność klienta Całość zagadnień opisanych powyŝej a dotyczących punktu normy 5. 4 Planowanie i podpunktu 5.4.2- Planowanie systemu zarządzania jakością ujmuje rysunek nr 1. Dodatkowo na charakteryzowanym poziomie organizacyjnym przedstawiciel kierownictwa organizacji ( korzystne jest,aby w przypadku organizacji wytwarzającej oprogramowanie przedstawiciel kierownictwa miał doświadczenie w zakresie rozwoju oprogramowania ) powinien rozwaŝyć kaŝdą zmianę modelu cyklu Ŝycia, która mogłaby mieć wpływ na system zarządzania jakością oraz zagwarantować, Ŝe zmiany takie nie zagraŝają sterowaniu systemu zarządzania jakością. Planowanie jakości oprogramowania na poziomie produktu /wyrobu podane jest w 7 punkcie normy ISO 9001:2000 o nazwie Realizacja wyrobu. Dzieli się on - w ramach normy ISO 9001:2000 - na podpunkty, a te dalej są rozwijane na bardziej szczegółowe w ramach normy ISO / IEC 90003 ( tutaj zaznaczone pogrubionym tekstem). Norma ISO 9001:2000 wskazuje, Ŝe organizacja powinna: 1. Zaplanować i opracować procesy potrzebne do realizacji wyrobu ( tutaj oprogramowania ) 2. Zapewnić spójność planowania realizacji wyrobu z wymaganiami innych procesów zarządzania jakością, które są podane w punkcie 4.1 normy
TEORETYCZNE PODSTAWY TWORZENIA SWO I STRATEGIE BUDOWY E-BIZNESU 3. Zaplanować realizację wyrobu i określić (całość pokazuje rysunek nr 3) : a) cele dotyczące jakości wymagania dotyczące wyrobu b) potrzeby dotyczące: ustanowienia procesów dokumentów zasobów specyficznych dla wyrobu c) wymagane działania specyficzne dla wyrobu-dotyczące : weryfikacji walidacji monitorowania kontroli i badań oraz kryteria przyjęcia wyrobu d) zapisy potrzebne do dostarczenia dowodów, Ŝe : procesy realizacji spełniają wymagania p. 4.2.4 ( nadzór nad zapisami ) oraz wyrób będący wynikiem realizowanych procesów równieŝ spełnia wymagania p. 4.2.4 Ujęcie elementów od a do d obrazuje rysunek nr 2. Dodatkowo rysunek dla punktu normy 7.1 Planowanie realizacji wyrobu i jego rozwinięcia 7.1.1- Cykl Ŝycia oprogramowania i 7.1.2- Planowanie jakości przedstawia zalecenia sformułowane w normie ISO/IEC 90003 ( całość ujęto przerywanymi kreskami ). Planowanie realizacji wyrobu w części dotyczącej cyklu Ŝycia oprogramowania ( p. 7.1.1 )-zostało uszczegółowione przez normę ISO / IEC 90003 poprzez wprowadzenie zagadnień dotyczących określonych kwestii. Oto one : 1. Procesy, działania, i zadania naleŝy planować i wykonywać, stosując modele cyklu Ŝycia odpowiednie do rodzaju projektu, z uwzględnieniem : a. skali, b. złoŝoności, c. bezpieczeństwa, d. ryzyka i e. integralności 2. Norma ISO 9001:2000 ma być stosowana niezaleŝnie od uŝywanego modelu cyklu Ŝycia, a jej celem nie jest wskazywanie jakiegoś konkretnego modelu cyklu Ŝycia, ani sekwencji procesu. 3. Projektowanie i rozwój mogą być procesem ewolucyjnym, dlatego w miarę realizacji procesu moŝe być konieczna zmiana lub aktualizacja procedur, po rozwaŝeniu zmian w odpowiednich działaniach i zadaniach. Wówczas to: a. naleŝy rozwaŝyć stosowność uŝycia metod projektowania i rozwoju dla danego rodzaju zadania, wyrobu lub projektu oraz kompatybilność stosowanej aplikacji, metod i narzędzi
ROZDZIAŁ I b. w przypadku wyrobów, których awaria niesie ryzyko obraŝeń u ludzi, względnie prowadzi do szkód lub pogorszenia stanu substancji materialnej i środowiska, w projektowaniu i rozwoju (opracowaniu) takiego oprogramowania naleŝy uwzględnić wymagania ustalające wymaganą odporność i sposób reagowania na warunki groŝące awarią c. oczekiwany wynik podjętych prac planowania rozwoju oprogramowania sprowadza się do ustalenia jakie wyroby mają być wytwarzane, kto i kiedy ma je produkować (zob. 7.3.1). d. planowanie jakości oprogramowania na poziomie projektu / wyrobu powinno zaowocować opisem sposobu, w jaki określone wyroby mają być rozwijane, oceniane lub konserwowane. Planowanie jakości oprogramowania na poziomie projektu w wersji rozszerzonej i skróconej wg ISO / IEC 90003 Uprzednio wskazany punkt normy 7.1.2- Planowanie jakości w zakresie oprogramowania został odniesiony do planowanie jakości oprogramowania na poziomie projektu. Z podziałem na dwie wersje: rozszerzoną i skróconą. W wersji rozszerzonej planowanie jakości oprogramowania na poziomie projektu powinno uwzględniać ( vide rys. 2 ) : a. włączenie planów rozwoju lub nawiązanie do nich (zob. 7.3.1) b. wymagania jakościowe związane z wyrobem i / lub procesami c. dostosowanie systemu zarządzania jakością i/lub identyfikację konkretnych procedur i instrukcji, odpowiednio do zakresu instrukcji jakości i wszelkich ustalonych wyłączeń (ISO 9001:2000, 1.2) d. właściwe dla danego projektu procedury i instrukcje, jak specyfikacje testów oprogramowania określające plany, projekty, przypadki i procedury testowe dla jednostki, integracji, systemu i testów odbiorczych (zob. 8.2.4) e. metody, model(e) cyklu Ŝycia, narzędzia, konwencje języków programowania, biblioteki, struktury i inne zasoby wielokrotnego uŝytku f. kryteria rozpoczynania i kończenia kaŝdego etapu projektu g. rodzaje przeglądów i innych wymaganych działań weryfikacyjnych i walidacyjnych (zob. 7.3.4, 7.3.5 i 7.3.6) h. wymagane procedury zarządzania konfiguracją (zob. 7.5.3) i. wymagane działania monitorujące i pomiarowe j. osoby odpowiedzialne za zatwierdzenie rezultatów procesów przewidzianych do dalszego wykorzystania k. potrzeby w zakresie szkolenia w korzystaniu z narzędzi i technik oraz planowanie szkoleń z wyprzedzeniem w stosunku do zapotrzebowania na dane umiejętności
TEORETYCZNE PODSTAWY TWORZENIA SWO I STRATEGIE BUDOWY E-BIZNESU l. wymagane zapisy (zob. 4.2.4) m. zarządzanie zmianami, np. zmianami zasobów, harmonogramu i umowy Planowanie jakości, moŝe występować równieŝ w formie skróconej. Jest ono szczególnie uŝyteczne w celu objaśniania ograniczonych celów w zakresie jakości w przypadku oprogramowania roboczego. Przykłady oprogramowania roboczego obejmują : 1. Prototypy demonstrujące uŝyteczność koncepcji 2. Wyliczenia badawcze tylko na uŝytek projektanta, 3. Rozwiązania tymczasowe pozbawione takich elementów, jak zabezpieczenia lub pełne funkcje operacyjne, które zostaną wdroŝone w przyszłych wersjach, 4. Jednorazowe raporty z analizy danych. Oprogramowanie robocze powinno być sprawdzane w sposób zgodny z jego planowanym zastosowaniem, aby ograniczyć moŝliwość pojawienia się niezamierzonych pominięć i błędów. Z uwagi na ograniczenia obszerności niniejszego artykułu zostaną pominięte zagadnienia planowania oprogramowania w punkcie normy 7.2- Procesy związane z klientem. Więcej miejsca zostanie poświęcone punktowi normy 7.3- Projektowanie i rozwój. Całość zagadnienia ujęto na rysunku nr 3. Zaciemniono na rysunku najistotniejsze elementy z punktu widzenia planowania jakości oprogramowania.poniŝej zostaną one szerzej opisane. Zgodnie z punktem 7.3.1.1- Planowanie projektowania i rozwoju - powinno uwzględniać odpowiednio następujące kwestie: a. działania z zakresu analizy wymagań, projektowania i rozwoju, kodowania, integrowania, testowania, instalowania i zapewnienia pomocy w aspekcie odbioru wyrobów procesu programowania; obejmuje to identyfikację lub odniesienie do następujących elementów: 1. Działania, które naleŝy wykonać 2. Dane wejściowe wymagane w przypadku poszczególnych działań 3. Wymagane rezultaty poszczególnych działań 4. Weryfikacja wymagana w przypadku rezultatów poszczególnych działań [jak w 7.1.2 g) zob. równieŝ 7.3.5] 5. Działania zarządcze i wspomagające, które naleŝy wykonać 6. Wymagane szkolenie zespołu [jak w 7.1.2 k)] b. planowanie na potrzeby kontroli produktów i świadczenia usług c. organizację zasobów projektu, w tym struktura zespołu, zakresy obowiązków, korzystanie z dostawców i uŝywane zasoby materiałowe d. interfejsy organizacyjne i techniczne pomiędzy poszczególnymi jednostkami lub grupami, np. zespołami projektowymi, dostawcami, partnerami, uŝyt-
ROZDZIAŁ I kownikami, przedstawicielami klientów, przedstawicielami ds. zapewnienia jakości (zob. 7.3.1.4) e. analizę moŝliwego ryzyka, załoŝeń, zaleŝności i problemów związanych z projektowaniem i rozwojem f. harmonogram identyfikujący: 1. Etapy projektu [zob. równieŝ 7.1.2 j)] 2. Podział obowiązków 3. Dodatkowe zasoby i synchronizację 4. Dodatkowe zaleŝności 5. Punkty węzłowe harmonogramu 6. Działania weryfikacyjne i walidacyjne [jak w punkcie 7.1.2 g) g. identyfikację 1. Norm, reguł, praktyk i konwencji, metodologii, modelu cyklu Ŝycia, wymagań ustaw i przepisów [jak 7.1.2 d) i e)] 2. Narzędzi i technik do rozwoju, w tym równieŝ kwalifikacji narzędzi i technik i konfiguracji ich elementów sterujących 3. Urządzeń, sprzętu i oprogramowania uŝywanego do rozwoju 4. Konfiguracji praktyk zarządzania [jak w punkcie 7.1.2 h)] 5. Metoda kontrolowania niezgodności wyrobów 6. Metody nadzoru nad oprogramowaniem stosowane w celu wsparcia rozwoju 7. Procedury słuŝące do archiwizacji, wykonywania rezerwowych kopii i kontroli dostępu do oprogramowania 8. Metody nadzoru nad zabezpieczeniem antywirusowym 9. Kontrola zabezpieczenia h. identyfikacja odnośnego planowania (w tym planowania systemu) dotyczącego takich spraw, jak jakość (zob. 7.1), zarządzanie ryzykiem, zarządzanie konfiguracją, zarządzanie dostawcami, integracja, testowanie (zob. 7.3.6), zarządzanie wydaniami, instalacja, szkolenie, migracja, konserwacja, ponowne wykorzystanie, komunikacja i pomiar i. nadzór nad dokumentacją w tym archiwum dokumentów / akt i dystrybucją NaleŜy dokonywać okresowych przeglądów planowania i stosownie do potrzeb, wprowadzać zmiany w planach. Dokument definiujący projekt i planowanie rozwoju oraz wszelkie kwestie związane z planowaniem moŝe stanowić odrębny dokument, część innego dokumentu lub moŝe składać się z kilku dokumentów. W ramach punktu normy 7.3.6 - Walidacja projektowania i rozwoju norma ISO / IEC 90003 wymienia : a. walidację 7.3.6.1 b. testowanie 7.3.6.2
TEORETYCZNE PODSTAWY TWORZENIA SWO I STRATEGIE BUDOWY E-BIZNESU Właściwe testowanie oprogramowania obejmuje ustalanie, dokumentowanie, przeglądanie i realizowanie planów w następującym zakresie: a. testy jednostkowe, np. autonomiczne testy komponentów b. testy integracyjne i systemowe, np. testy agregacji komponentów oprogramowania (i całego systemu) c. testy kwalifikacyjne, tj. testy kompletnego wyrobu przed dostawą mające potwierdzić spełnianie przez oprogramowanie określonych wymagań d. testy przy odbiorze, tj. testy kompletnego wyrobu mające potwierdzić spełnianie przez oprogramowanie kryteriów odbioru Podsumowanie Niniejszy artykuł jedynie w części opisał zagadnienia planowania jakości oprogramowania. Poruszana problematyka jak mi się wydaje ma duŝe znaczenie dla praktycznych działań podejmowanych w zakresie dostarczania oprogramowania realizującego uzgodnione wymagania. Literatura: [CHRA04] Chrabański K.: Wskazania praktyczne przydatne w trakcie realizacji wyrobu programistycznego w oparciu o wymagania systemu zarządzania jakością zgodnego z międzynarodowa normą ISO 9001:2000, (w:) Praca zbiorowa pod red. Celiny M. Olszak Społeczeństwo informacyjne tom II, Śląska WyŜsza Szkoła Zarządzania w Katowicach, Katowice, 2004 PN-EN ISO 9001: 2000 Systemy zarządzania jakością. Wymagania International Standard ISO / IEC 90003: Software engineering Guidelines for the application of 9001:2000 to computer software. Firts edition 2004.02.15.
ROZDZIAŁ I Rys. 1. Planowanie jakości oprogramowania w części związanej z punktem 5 Schemat wymagań ujętych w ISO 9001:2000 uzupełnionych zaleceniami z ISO/IEC 90003 Źródło : Opracowanie własne
TEORETYCZNE PODSTAWY TWORZENIA SWO I STRATEGIE BUDOWY E-BIZNESU Rys. 2. Planowanie jakości oprogramowania w części związanej z punktem 7.1. Schemat wymagań ujętych w ISO 9001:2000 uzupełnionych zaleceniami z ISO/IEC 90003 Źródło : Opracowanie własne
ROZDZIAŁ I Rys. 3.Planowanie jakości oprogramowania w części związanej z punktem 7.3. Schemat wymagań ujętych w ISO 9001:2000 uzupełnionych zaleceniami z ISO/IEC 9000 Rys Źródło : Opracowanie własne