ISO: IEEE:
Transkrypt
ISO: IEEE:
INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym - normy Wykład 5 (1) ISO: Ogólne dot. jakości: ISO 8402 - terminologia ISO 9000 - wytyczne dotyczące wyboru modelu ISO 9001/3 - modele systemu jakości Dot. oprogramowania: ISO 9126 Information Technology - Software Product Evaluation - Quality Characteristics and Guidelines for their Use ISO 9000-3 Quality management and quality assurance standards - Part 3: Guidelines for the application of ISO 9001:1994 to the development, supply, installation and maintenance of computer software ISO 12207 Information Technology - Software life cycle processes ISO TR 15504 SPICE Software Process Improvement and Capability Determination ISO 12119 Software Packages - Quality Requirements and Testing Wykład 5 (2) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym - wstęp IEEE: IEEE 730, IEEE 983 – planowanie procesu zapewnienia jakości IEEE 1008 – testowanie jednostkowe IEEE 1012 – weryfikacja i walidacja (atestowanie) IEEE 1028 – przeprowadzanie przeglądów i audytów 1 Wykład 5 (3) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym - wstęp Zalecenia normy ISO 9001:2000 – podstawowe założenia polityki jakości •Ukierunkowanie na klienta (również klient wewnętrzny) •Przywództwo (budowa wizji, identyfikacja wartości) •Zaangażowanie ludzi (satysfakcja, motywacja, szkolenia) •Podejście procesowe (koncentracja na poszczególnych krokach procesu i relacjach pomiędzy tymi krokami, pomiary) •Podejście systemowe (całe otoczenie procesu wytwórczego) •Ciągłe doskonalenie (doskonalenie stanu obecnego, ewolucja a nie rewolucja) •Rzetelna informacja (zbieranie i zabezpieczanie danych do podejmowania obiektywnych decyzji) •Partnerstwo dla jakości (bliskie związki producentów z klientami) Wykład 5 (4) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym – ISO 9001:2000 Zasada ciągłego doskonalenia – koło Deminga: Planuj -> Wykonaj -> Sprawdź -> Usprawnij (org. działaj) Podstawowe wymagania normy w zakresie wdrożenia systemu jakości: - zidentyfikować procesy, - określić sekwencję tych procesów i ich wzajemne oddziaływanie, - określić kryteria i metody potrzebne do zapewnienia skuteczności przebiegu i nadzorowania tych procesów, - zapewnić dostępność zasobów i informacji niezbędnych do wspomagania przebiegu i monitorowania tych procesów, - monitorować, mierzyć i analizować te procesy, - wdrażać działania niezbędne do osiągnięcia zaplanowanych wyników i ciągłego doskonalenia tych procesów. 2 Wykład 5 (5) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym - ISO 9001:2000 Zawartość normy: 4.1. Wymagania ogólne • Ogólne działania prowadzone w zakresie zapewnienia jakości 4.2. Wymagania dotyczące dokumentacji 4.2.1. Wymagania ogólne Dokumentacja powinna zawierać: • Udokumentowane deklaracje polityki jakości i celów dot. Jakosci, • Księge jakości, • Udokumentowane minimum procedur wymaganych postanowieniami normy • Dokumenty potrzebne do zapewnienia skutecznego planowania, przebiegu i nadzorowania jej procesów • Zapisy wymagane normą Dokumentacja może mieć dowolną formę i rodzaj nośnika Wykład 5 (6) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym - ISO 9001:2000 4.2.2. Księga jakości Zawartość: • Zakres systemu zarządzania jakością, łącznie ze szczegółami dotyczącymi wszelkich wyłączeń i ich uzasadnienia • Udokumentowane ustanowione procedury lub powołanie się na nie, • Opis wzajemnego oddziaływania między procesami SZJ 4.2.3. Nadzór nad dokumentami: Wymóg ustanowienia udokumentowanej procedury nadzoru dotyczącego: • Zatwierdzania dokumentów pod kątem ich adekwatnosci zanim zostaną wydane • Przeglądu dokumentów i ich aktualizowania • Zapewnienia, że zidentyfikowano zmiany i aktualny status dokumentów, • Zapewnienie dostępności dokumentów w miejscach ich użytkowania, • Zapewnienia, że dokumenty są czytelne i łatwe do zidentyfikowania, • Zapobiegania niezamierzonemu stosowaniu nieaktualnych dokumentów 3 Wykład 5 (7) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym - ISO 9001:2000 4.2.4. Nadzór nad zapisami Zapisy – wszelkie informacje dokumentujące działanie systemu wykorzystywane jako dowody skuteczności działania SZJ, np. plany realizacji, harmonogramy prac, zgłoszenia błędów, raporty weryfikacji, raporty testowania, raporty z przeglądów zarządzania, przeglądów wymagań itp. Wymaganie ustanowienia procedury w celu określenia nadzoru potrzebnego do identyfikacji, przechowywania, zabezpieczania wyszukiwania i zachowywania przez określony czas zapisów 5. Odpowiedzialność kierownictwa 5.1. Zaangażowanie kierownictwa • Zakres obowiązków kierownictwa: • Zakomunikowanie znaczenia spełnienia wymagań klientów, • Ustanowienie polityki jakości, • Przeprowadzanie przeglądów zarządzania, • Zapewnienie dostępności zasobów Wykład 5 (8) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym - ISO 9001:2000 5.2. Orientacja na klienta Najwyższe kierownictwo powinno zapewnić, że wymagania klienta zostały określone i spełnione w celu większego zadowolenia klienta 5.3. Polityka jakości • Zapewnienie znajomości polityki jakości w organizacji • Wykonywanie ciągłych przeglądów w celu weryfikacji przydatności 5.4. Planowanie 5.4.1. Cele dotyczące jakości • Wymóg ustanowienia mierzalnych celów dot. jakości dla poszczególnych funkcji w organizacji 5.4.2. Planowanie systemu zarządzania jakością • Wymóg planowania działań dotyczących wdrażania i udoskonalania SZJ 5.5. Odpowiedzialność, uprawnienia i komunikacja • Wymóg zapewnienia, że odpowiedzialność i uprawnienia są określone i zakomunikowane w organizacji 4 Wykład 5 (9) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym - ISO 9001:2000 5.5.2. Przedstawiciel kierownictwa Najwyższe kierownictwo powinno wyznaczyć członka kierownictwa wyposażonego w odpowiednią odpowiedzialność i uprawnienia dla: • Zapewnienia, że procesy ZJ są ustanowione, wdrożone i utrzymywane, • Przedstawiania najwyższemu kierownictwu sprawozdań dot. funkcjonowania SZJ. • Zapewnienia upowszechnienia w całej organizacji świadomości dot. wymagań klienta 5.6. Przegląd zarządzania • Wymóg przeprowadzania przeglądu SZJ w określonych odstępach czasu. • Należy utrzymywać zapisy z przeglądu zarządzania 6. Zarządzanie zasobami 6.2. Zasoby ludzkie 6.2.2. Kompetencja świadomość i szkolenie • Określenie niezbędnych kompetencji personelu wykonującego czynności mające wpływ na jakość Wykład 5 (10) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym – ISO 9001:2000 • Zapewnienie wykonywania szkoleń dot. SZJ, • Ocenianie skuteczności szkoleń, • Zapewnienie uświadomienia personelowi wagi swoich działań dla osiągania celów zapewnienia jakości • Utrzymywanie odpowiednich zapisów dotyczących szkoleń 6.3. Infrastruktura 6.4. Środowisko pracy 7. Realizacja wyrobu 7.1. Planowanie realizacji wyrobu 7.2. Procesy związane z klientem 7.2.1. Określenie wymagań dotyczących wyrobu 7.2.1. Przegląd wymagań dotyczących wyrobu 7.2.3. Komunikacja z klientem 5 INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym – ISO 9001:2000 Wykład 5 (11) 7.3. Projektowanie i rozwój 7.3.1. Planowanie projektowania i rozwoju 7.3.2. Dane wejściowe do projektowania i rozwoju • Wymagania funkcjonalne i dotyczące parametrów, • Mające zastosowanie wymagania ustawowe i przepisów, • Jeśli ma to zastosowanie – informacje z poprzednich podobnych projektów • Wymagania powinny być kompletne, jednoznaczne i niesprzeczne Należy dokonywać przeglądu danych wejściowych pod kątem ich adekwatności oraz utrzymywać odpowiednie zapisy 7.3.3. Dane wyjściowe z projektowania i rozwoju • Przedstawić dane wyjściowe w formie umożliwiającej weryfikacje w kontekście danych wejściowych. Dane te powinny: • Spełniać wymagania danych wejściowych, • Zawierać kryteria przyjęcia wyrobu lub powoływać się na nie • Specyfikować właściwości wyrobu, które są istotne dla jego bezpieczeństwa Wykład 5 (12) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym – ISO 9001:2000 7.3.4. Przegląd projektowania i rozwoju 7.3.5. Weryfikacja projektowania i rozwoju 7.3.6. Walidacja projektowania i rozwoju 7.3.7. Nadzorowanie zmian w projektowaniu i rozwoju 7.4. Zakupy ... 7.5. Produkcja i dostarczanie usług 7.5.1. Nadzorowanie produkcji i dostarczania usług 7.5.2. Walidacja procesów produkcji i dostarczania usług 7.5.3. Identyfikacja i identyfikowalność 7.5.4. Własność klienta 7.5.5. Zabezpieczenie wyrobu 7.6. Nadzorowanie wyposażenia do monitorowania i pomiarów 6 Wykład 5 (13) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym – ISO 9001:2000 8. Pomiary, analiza i doskonalenie 8.2. Monitorowanie i pomiary 8.2.1. Zadowolenie klienta 8.2. Audyt wewnętrzny 8.2.3. Monitorowanie i pomiary procesów • Należy ustanowić metody monitorowania i pomiarów procesów mogące wykazać zdolność procesów do osiągania zaplanowanych celów. 8.2.3. Monitorowanie i pomiary wyrobu • Prowadzić monitorowanie i pomiary parametrów wyrobu w celu weryfikacji czy zostały spełnione wymagania dot. Wyrobu. Należy to przeprowadzić na odpowiednich etapach wytwarzania wyrobu. • Należy utrzymywać dowód spełnienia kryteriów przyjęcia wyrobu 8.3. Nadzór nad wyrobem niezgodnym • Zapewnić aby wyrób niezgodny został zidentyfikowany tak aby zapobiec jego niezamierzonemu użyciu lub dostawie. Nadzór i związaną z tym odpowiedzialność określić w ustanowionej procedurze. Wykład 5 (14) INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym – ISO 9001:2000 • Należy utrzymywać zapisy dotyczące charakteru niezgodności oraz wykonanych działań z wyrobem niezgodnym • Jeśli wyrób zostanie poprawiony to należy poddać go ponownej weryfikacji 8.4. Analiza danych 8.5. Doskonalenie 8.5.1. Ciągłe doskonalenie 8.5.2. Działania korygujące 8.5.3. Działania zapobiegawcze 7 Wykład 5 (15) INŻYNIERIA OPROGRAMOWANIA Model SEI – Capability Maturity Model Capability Maturity Model == Model Dojrzałości Procesu Wytwarzania Software Engineering Institute, Carnegie Melon University, USA, 1995 Cel: Uzyskanie metody oceny potencjalnych wytwórców oprogramowania dla Departamentu Obrony USA (cel początkowy), Stworzenie schematu stopniowego doskonalenia i oceny dojrzałości procesu wytwarzania. Poziomy dojrzałości: Początkowy -> Powtarzalny -> Zdefiniowany -> Zarządzany -> Optymalizujący) Podobnie jak TQM i ISO 9001:2000 bazuje na zdefiniowaniu procesów składowych zachodzących przy produkcji oprogramowania Wykład 5 (16) INŻYNIERIA OPROGRAMOWANIA Model SEI – Capability Maturity Model Zastosowania CMM: • Ocena kultury wytwarzania dostawców oprogramowania, • Ocena podwykonawców, • Wewnętrzna ocena poziomu zaawansowania organizacji w zakresie zarządzania • Określanie polityki zarządzania w zakresie doskonalenia organizacji • Jako wzorzec przy ustanawianiu wzorców działań i procedur w zakresie wytwarzania oprogramowania 8 Wykład 5 (17) INŻYNIERIA OPROGRAMOWANIA Charakterystyka poziomów dojrzałości: 1. Początkowy Działania chaotyczne, brak lub nieliczne zidentyfikowane procesy. Brak planowania i instrukcji działania w określonych zakresach. Sukces zależy od indywidualnych wysiłków, talentów i zaangażowania. 2. Powtarzalny Zdefiniowane procesy zarządzania dla śledzenia kosztów, harmonogramu i funkcjonalności. Zorganizowane wykorzystanie doświadczeń uzyskanych przy wcześniejszych projektach o podobnym charakterze. 3. Zdefiniowany Działania zarządcze i wytwórcze zostały udokumentowane, ustandaryzowane i skoordynowane w spójnym procesie wytwórczym 4. Zarządzany Wprowadzono monitorowanie i pomiary procesu i wyrobu. Wyniki pomiarów wykorzystywane do bieżącej korekty procesu i wyrobu. 5. Optymalizujący Wdrożone stałe udoskonalanie procesu poprzez analizę statystyk z pomiarów procesu oraz wdrażanie nowych rozwiązań organizacyjnych. Wykład 5 (18) INŻYNIERIA OPROGRAMOWANIA Model SEI – Capability Maturity Model Poziom dojrzałości a przewidywalność procesu wytwórczego: • Zmniejszenie obciążenia wartości średniej szacunku kosztów • Zmniejszenie wariancji szacowania kosztów • Zmniejszenie faktycznych średnich kosztów 9 Wykład 5 (19) INŻYNIERIA OPROGRAMOWANIA Pomiary dojrzałości: • Listy kontrolne dot. cech charakteryzujących kolejne poziomy dojrzałości. • Cechy oceniane ilościowo. • Suma ocen częściowych określa w jakim stopniu dany poziom został osiągnięty Przykład listy dla poziomu Początkowego: • Brak harmonogramu działania, • Brak instrukcji wykonywania typowych działań, • Brak ogólnego uzgodnionego schematu działania, • Niezapewnienie poufności, • Brak stanowiska kierownika projektu • Stopniowa niekontrolowana zmiana wymagań, • Brak doświadczenia zespołu, • Niekontrolowany rozrost projektów, • Brak konsultantów Wykład 5 (20) INŻYNIERIA OPROGRAMOWANIA Model SEI – Capability Maturity Model Kluczowy Obszar Procesów – zestaw powiązanych aktywności wykonywanych w celu podniesienia poziomu dojrzałości. KOP są zdefiniowane dla wszystkich poziomów od 2 Powtarzal -ny Zarządzanie wymaganiami Planowanie projektów Śledzenie projektu Zarządzanie podwykonawstwem Zapewnienie jakości Zarządzanie konfiguracją Zorganizowane zbieranie i analiza wymagań Planowanie działań i etapów Ciągła analiza stanu aktualnego vs. harmonogram Wybór, weryfikacja i nadzór nad podwykonawcami Weryfikacja, walidacja i certyfikacja Zapewnienie integralności produktu w jego cyklu życia Zdefiniowany Definiowanie odpowiedzialności Definiowanie procesów Prowadzenie procesów inź. Planowanie i prowadzenie szkoleń Koordynowanie grup Przeglądy partnerskie Określanie ról i zakresów obowiązków dot. (dopowiedzialności) w zakresie nadzoru procesów Rozwijanie wiedzy i umiejętności zespołu Zarządza ny Ilościowe zarządzanie procesami Zarządzanie jakością Mierzenie i ilościowa ocena wydajnosci procesów Rozwijanie i wdrażanie polityki jakości produktu Optymalizujący Zapobieganie defektom Zarządzanie zmianami technologii Zarządzanie doskonaleniem procesu Identyfikowanie i śledzenie źródeł defektów Identyfikowanie, ocena i wdrażanie użytecznych technologii Działanie mające na celu stałe zwiększanie wydajności procesu Określanie zakresu i kanałów wymiany informacji oraz zasad współpracy Wczesne i obiektywne identyfikowanie defektów 10 Wykład 5 (21) INŻYNIERIA OPROGRAMOWANIA Model SEI – Capability Maturity Model Podział kluczowych obszarów procesów na kategorie: Wykład 5 (22) INŻYNIERIA OPROGRAMOWANIA Model SEI – Capability Maturity Model Struktura CMM: Poziomy dojrzałości Kluczowe obszary procesu – grupy aktywności niezbędne do osiagnięcia celów istotnych dla danego poziomu dojrzałości Cele – wyniki spodziewane w rezultacie prawidłowego wdrożenia praktyk z obszaru procesu. Osiągnięcie celów jest konieczne dla spełnienia KPA Cechy wspólne – atrybuty związane z wdrożeniem KPA, grupują aktywności związane z KPA Kluczowe praktyki – działania przyczyniające się do spełnienia KPA 11 Wykład 5 (23) INŻYNIERIA OPROGRAMOWANIA Model SEI – Capability Maturity Model Wspólne cechy KPA: Commit to Perform Zobowiązanie do wykonywania Działania, które organizacja musi podjąć aby zapewnić, że proces musi być ustanowiony i będzie trwale wykonywany, Zwykle obejmuje ustanawianie polityki organizacji, akceptację i nadzorowanie ze strony najwyższego zarządu. Ability to Perform Zdolność do wykonania Opisuje warunki wstępne niezbędne do wdrożenia procesu, Zwykle obejmuje zasoby, niezbędne struktury organizacyjne oraz szkolenia Activities Performed Czynności wykonywane Opisuje role i procedury niezbędne do wdrożenia obszaru kluczowego. Zwykle obejmuje planowanie, opracowywanie procedur, wykonanie, śledzenie i podejmowanie akcji korekcyjnych Measurement and Analysis Pomiary i analiza Opisuje potrzebę mierzenia parametrów procesu oraz analizowanie wyników. Zwykle zawiera przykłady pomiarów dla określenia statusu i efektywności procesu Verifying Implementation Weryfikacja Opisuje procedury weryfikacyjne sprawdzające zgodność faktycznych działań z ustanowionym procesem Wykład 5 (24) INŻYNIERIA OPROGRAMOWANIA Model SEI – Capability Maturity Model Projektowanie procesów: CMM traktuje projektowanie procesów podobnie jak projektowanie i wykonanie oprogramowania: •Wymagania co do procesu, •Określenie jak proces będzie zdefiniowany i opisany, •Wykonanie projektu procesu, •Weryfikacja procesu, •Wdrożenie procesu 12