Model CMMI, ISO, zapewnianie jakości oprogramowania

Podobne dokumenty
Cechy charakterystyczne tworzenia oprogramowania w Inżynierii Biomedycznej. Wykładowca Dr inż. Zofia Kruczkiewicz

Jakość oprogramowania część 2 Zapewnianie jakości oprogramowania

Jakość w procesie wytwarzania oprogramowania

Etapy życia oprogramowania

Kuchta Jarosław Jakość Oprogramowania. Modele dojrzałości procesu wytwarzania oprogramowania CMM/CMMI

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Wykład 1 Inżynieria Oprogramowania

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

Zasady organizacji projektów informatycznych

Opis metodyki i procesu produkcji oprogramowania

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Wstęp do zarządzania projektami

Wytwórstwo oprogramowania. michał możdżonek

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

Wstęp do zarządzania projektami

Testowanie oprogramowania. Piotr Ciskowski

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Maciej Oleksy Zenon Matuszyk

INŻYNIERIA OPROGRAMOWANIA Wykład 6 Organizacja pracy w dziale wytwarzania oprogramowania - przykład studialny

Zarządzanie konfiguracją produktu w całym cyklu Ŝycia. Aleksandra Grzywak-Gawryś Warsztaty Rola IRIS w branŝy kolejowej

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Wstęp do zarządzania projektami

INŻYNIERIA OPROGRAMOWANIA Jakość w projekcie informatycznym - normy

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Projekt Kompetencyjny - założenia

Cykle życia systemu informatycznego

dr Stanisław Gasik Podstawy konkurencyjności w projektach Koszt Wartość

Inżynieria oprogramowania (Software Engineering)

Inżynieria Programowania Zarządzanie projektem

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Inżynieria Programowania Zarządzanie projektem. Plan wykładu. Motto. Motto 2. Notatki. Notatki. Notatki. Notatki.

Tworzenie i śledzenie harmonogramów. Definicje i metody weryfikacji i walidacji

Egzamin / zaliczenie na ocenę*

Tworzenie i śledzenie harmonogramów Wykładowca Dr inż. Zofia Kruczkiewicz

Certified IT Manager Training (CITM ) Dni: 3. Opis:

PRZEWODNIK PO PRZEDMIOCIE

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Luki w bezpieczeństwie aplikacji istotnym zagrożeniem dla infrastruktury krytycznej

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

ISO 9000/9001. Jarosław Kuchta Jakość Oprogramowania

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Koncepcja systemu zarządzania jakością w dużym projekcie informatycznym zgodnie z normą ISO/IEC 9001:2008

Modelowanie i analiza systemów informatycznych

ISO 9001:2015 przegląd wymagań

PRZEWODNIK PO PRZEDMIOCIE

Usługowy model zarządzania w oparciu o ITIL v3. wprowadzenie do biblioteki ITIL na prostym przykładzie

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Rozdział 4 Planowanie rozwoju technologii - Aleksander Buczacki 4.1. Wstęp 4.2. Proces planowania rozwoju technologii

MSF. Microsoft Solution Framework

Standard ISO 9001:2015

Wprowadzenie, podstawowe pojęcia, projekt a produkt Wykład1

PLAN ZARZĄDZANIA KONFIGURACJĄ OPROGRAMOWANIA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Zarządzanie i inżynieria jakości / Adam Hamrol. Warszawa, Spis treści

Plan. Zapewnienie jakości produktu informatycznego. Zarządzanie jakością i metryki oprogramowania. Podstawowe parametry mierzalne

Szczegółowy plan szkolenia

PRZEWODNIK PO PRZEDMIOCIE

1

KARTA MODUŁU KSZTAŁCENIA

Bezpieczeństwo aplikacji i urządzeń mobilnych w kontekście wymagań normy ISO/IEC oraz BS doświadczenia audytora

Zarządzanie projektami. Wykład 2 Zarządzanie projektem

Biuro projektu: ul. Kościuszki 4/6a, Rzeszów, tel.: ,

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Małgorzata Matyjek listopada 2008 Wrocław

Projekt. Prince2 PRoject. IN Controlled Environments PROCESY KOMPONENTY TECHNIKI

wbudowane October 7, 2015 KSEM WETI PG Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych - wydajność Wydajność

Zmiany w standardzie ISO dr inż. Ilona Błaszczyk Politechnika Łódzka

Wybór ZSI. Zakup standardowego systemu. System pisany na zamówienie

Normalizacja dla bezpieczeństwa informacyjnego

AL 1302 ZARZĄDZANIE PROJEKTAMI W OPARCIU O METODYKĘ PRINCE2

Leszek Dziubiński Damian Joniec Elżbieta Gęborek. Computer Plus Kraków S.A.

Dni: 3. Opis: Adresaci szkolenia

IATF 16949:2016 Zatwierdzone Interpretacje

Projektowanie systemów informatycznych. wykład 6

Web frameworks do budowy aplikacji zgodnych z J2EE

Narzędzia CASE dla.net. Łukasz Popiel

INŻYNIERIA OPROGRAMOWANIA

Zarządzanie projektami. Porównanie podstawowych metodyk

Usługa: Audyt kodu źródłowego

Marek Krętowski Wydział Informatyki PB. Wersja 1.1 IO2 (wyk.

Dobór systemów klasy ERP

Testowanie i walidacja oprogramowania

PRZEWODNIK PO PRZEDMIOCIE

Agile Project Management

Zarządzanie ryzykiem w projektach informatycznych. Marcin Krysiński marcin@krysinski.eu

Normy ISO serii Normy ISO serii Tomasz Greber ( dr inż. Tomasz Greber.

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Dotyczy PN-EN ISO 14001:2005 Systemy zarządzania środowiskowego Wymagania i wytyczne stosowania

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

Przedsięwzięcia Informatyczne w Zarządzaniu

PRINCE2. Metodyka zarządzania projektami. Na podstawie prezentacji R. Radzik, J. Binkiewicz, K. Kasprzak

Wprowadzenie, podstawowe pojęcia, projekt a produkt Wykład1

Skrót wymagań normy ISO 9001/2:1994, PN-ISO 9001/2:1996

Zarządzanie jakością w logistyce ćw. Artur Olejniczak

Transkrypt:

Model CMMI, ISO, zapewnianie jakości oprogramowania Zofia Kruczkiewicz 1

Literatura 1. I. Sommerville, Inżynieria oprogramowania, s. Klasyka informatyki, WNT 2003 2. Stephen H. Kan, Metryki i modele w inżynierii jakości oprogramowania, MIKOM, 2006 3. Roger S. Pressman, Praktyczne podejście do oprogramowania, s. Inżynieria oprogramowania, WNT, 2004 4. http://whatis.cmmiinstitute.com, http://resources.sei.cmu.edu/library/results.cfm 5. http://www.tutorialspoint.com/cmmi/ 6. http://en.wikipedia.org/wiki/capability_maturity_model_integration 7. http://msdn.microsoft.com/pl-pl/library/ee461556.aspx 2015-11-21 Zofia Kruczkiewicz - Kierowanie 2

Główne zagadnienia 1. Podstawowe definicje [3] 2. Zapewnianie jakości i standardy [1, 2, 3] 3. Planowanie jakości [1] 4. Kontrolowanie jakości [1, 3] 5. Formalne metody zapewniania jakości [3] 6. Miernictwo oprogramowania i miary [1, 2, 3] 7. Kryteria oceny jakości [2] 8. CMMI [4, 5, 6, 7] 3

Główne zagadnienia 1. Podstawowe definicje [3] 4

Definicje jakości Jakość - Zespół cech decydujących o ocenie danego wyrobu Rodzaje jakości: Jakość projektu produktu zgodność z wymaganiami, Jakość implementacji produktu zgodność z udokumentowanymi standardami tworzenia oprogramowania Skuteczność w użytkowaniu, pielęgnacji i rozwijaniu kodu Definicje jakości oprogramowania: Satysfakcja użytkownika= działający produkt + dobra jakość + zrealizowany budżet i harmonogram Jakość produktu jest funkcją tego, jak bardzo on zmienia świat na lepsze 5

Ocena zewnętrzna produktu (wykład 4) 1) jakość oprogramowania (wynikające ze złożoności struktury programu - Henderson-Sellers): testowalności, a więc również niezawodności (wykład 8), stopnia osiągniętej abstrakcji zrozumiałości programu stopnia pielęgnacji wieloużywalności 2) funkcjonalność 3) koszt. 6

Koszt zapewniania jakości Rodzaj kosztu Koszt zapewniania jakości Koszt oceniania Koszt niepowodzeń wewnętrznych Koszt niepowodzeń zewnętrznych Składniki kosztu Planowanie jakości Formalne przeglądy techniczne Narzędzia Szkolenia Inspekcja Konfigurowanie i pielęgnacja narzędzi Testowanie Przeróbki Poprawki Analiza wykrytych błędów Analiza zgłoszenia usterki Zwrot i wymiana wadliwego produktu Pomoc udzielonej pracownikom Napraw gwarancyjnych

Względny koszt poprawiania błędów 10000 Względny koszt poprawiania błędu ile razy wzrasta koszt 1000 100 10 0 1 Przykład: LOC =200 000, czas_usuwania_błędów =7053h, koszt_h =40 USD, liczba_błędów = 3112, cały_koszt=282120 USD, koszt_usuwania_błędu 91 USD, a po wdrożeniu: 3640 91000 USD 8

Usuwanie i wzmacnianie się błędów bez przeglądów technicznych Błędy z poprzedniego etapu Faza procesu Stare błędy Wzmocnione błędy 1 : x Nowe błędy Procentowa skuteczność usuwania błędów Błędy przekazane do następnego etapu Model 0 0% 0 10 6 4 Projekt 6 0% 4*1.5= 6 37 10 27 Testy jednostkowe 10 20% 27*3=81 93 10 25 25 93 Testy integracji 93 50% 0 0 47 Testy funkcjonalne 47 50% 0 0 24 Testy systemowe 24 50% 0 0 12 błędów niewykrytych

Usuwanie i wzmacnianie się błędów po wprowadzeniu przeglądów technicznych Model 0 70% 0 3 2 1 Projekt 2 50% 1*1.5= 2 15 5 10 Testy jednostkowe 5 60% 10*3=30 24 10 25 25 24 Testy integracji 94 50% 0 0 12 Testy funkcjonalne 12 50% 0 0 6 Testy systemowe 6 50% 0 0 3 błędy niewykryte 10

Główne zagadnienia 1. Podstawowe definicje [3] 2. Zapewnianie jakości i standardy [1, 2, 3] 11

Zarządzanie jakością i tworzenie oprogramowania [1] Proces tworzenia oprogramowania Zespół kontroli jakości Proces zarządzania jakością Zespół wykonawców W1 W2 W3 W4 W5 Z1 Z2 Z3 Z4 Z5 Standardy i procedury Plan jakości Zarządzanie jakością powinno być oddzielone od zarządzania projektem. 12

Zarządzanie jakością oprogramowania można podzielić na trzy zasadnicze czynności: 1) Zapewnianie jakości 2) Planowanie jakości 3) Kontrola jakości Zarządzanie jakością stanowi niezależne sprawdzenie procesu tworzenia oprogramowania sprawdza się, czy wyprodukowane oprogramowanie jest zgodne ze: standardami i celami firmy (usprawnianie procesu i produktu, jakość społeczności pracowników), wymaganiami klienta, który zamówił oprogramowanie. 13

Lp Czynności zapewniania jakości 1 Przygotowanie planu zapewniania jakości 2 Uczestniczenie w ustaleniu postaci procesu wytwórczego 3 Sprawdzenie zgodności prac wytwórczych ze zdefiniowanym procesem Zapewnianie jakości [3] Zespół wykonawców Slajd 25 Wybór procesu Usuwanie niezgodności Zespół kontroli jakości Sprawdzenie zgodności z polityką firmy, normami jakości np. ISO-9001 Wykrywanie niezgodności (identyfikuje, dokumentuje, wyszukuje) i czuwanie nad ich usunięciem 14

Zapewnianie jakości cd Lp Czynności zapewniania jakości 4 Sprawdzenie zgodności wybranych produktów roboczych z wymaganiami zawartymi w opisie procesu wytwórczego 5 Dopilnowanie, aby niedoskonałości procesu wytwórczego lub produktów roboczych dokumentowano i poprawiano zgodnie z ustalonymi procedurami 6 Przechowywanie informacji o wykrytych niezgodnościach i składanie sprawozdań do kierownictwa firmy Zespół wykonawców Usuwanie niezgodności Usuwanie niezgodności Usuwanie niezgodności Zespół kontroli jakości Wykrywanie niezgodności (identyfikuje, dokumentuje, wyszukuje) i czuwanie nad ich usunięciem; wykonywanie raportów dla kierownika projektu Wykrywanie błędów w planie przedsięwzięcia, opisie procesu wytwórczego, dokumentacji standardów i produktach roboczych i czuwanie nad ich usunięciem; wykonywanie raportów dla kierownika projektu Wszelkie niezgodności są śledzone aż do ich usunięcia

Model zapewnienia jakości ISO 9001 Model procesu jakości niezależny od gałęzi przemysłu 20 wymagań dla systemu zapewniania jakości Zadanie kierownictwa Kontrola niezgodnych produktów Obsługa, składowanie, pakowanie i dostarczanie Produkty dostarczane przez dostawców Kontrola procesu Osprzęt do testowania i kontroli Przegląd umowy Kontrola dokumentów Wewnętrzne kontrole jakości Realizacja usług System jakości Kontrola projektów Zakupy Identyfikacja i śledzenie produktów Inspekcja i testowanie Stan kontroli i testów Czynności poprawiające Rejestry jakości Szkolenie Metody statystyczne 16

ISO 9000 system zarządzania jakością Firma jako sieć powiązanych procesów Model jakości ISO 9000 jego egzemplarzem jest Firmowy podręcznik jakości dokumentuje Firmowy proces jakości jest używany przy opracowywaniu jego egzemplarzem jest Plan jakości przedsięwzięcia 1 Plan jakości przedsięwzięcia 2 Plan jakości przedsięwzięcia 3 Zarządzanie jakością przedsięwzięć ISO 9000-3 zawiera interpretację ISO-9000 dla tworzenia oprogramowania 17

Własności standardów oprogramowania Najlepiej dopasowane praktyki dla potrzeb firmy Stanowią szkielet jakości Standaryzacja działań Typy standardów Standardy produktowe Standardy procesowe Standardy te są ściśle powiązane: celem standardów procesowych często jest przestrzeganiem standardów produktowych. 18

Przykłady standardów produktowych i procesowych Standardy produktowe Formularz przeglądu projektu Struktura dokumentacji wymagań Format nagłówka procedury Styl programowania w Javie Format planu przedsięwzięcia Formularz żądania zmiany Standardy procesowe Przebieg przeglądu projektu Zgłaszanie dokumentów do zarządzania strukturą (CM-Configuration Management) Proces rozpowszechniania wersji Proces akceptacji planu przedsięwzięcia Proces panowania nad zmianami Proces rejestrowania testów 19

Metody opracowywania standardów 1) Opracowanie standardów również przez inżynierów oprogramowania 2) Dostosowywanie standardów do zmian technologii 3) Zautomatyzowanie procesów za pomocą narzędzi programistycznych wspiera standardy ułatwia ich zachowanie lub wprowadzanie koniecznych zmian. 20

Standardy dokumentowania 1. Standardy procesu dokumentowania 2. Standardy dokumentów: 1) Standardy identyfikacji dokumentów 2) Standardy struktury dokumentów 3) Standardy prezentacji dokumentów 4) Standardy aktualizacji dokumentów 3. Standardy wymiany dokumentów elektroniczne przesyłanie dokumentów 21

Przykład procesu dokumentowania - proces tworzenia dokumentacji z uwzględnieniem kontroli jakości Utwórz wstępny projekt Zrecenzuj projekt Uwzględnij komentarze recenzenta Przygotuj nową wersję projektu Etap 1: Tworzenie Zaakceptowany dokument Wykonaj korektę Opracuj ostateczny projekt Sprawdź ostateczny projekt Etap 2: Opracowywanie Zaakceptowany dokument Złóż tekst Przejrzyj skład Utwórz matrycę Drukuj egzemplarze Etap 3: Druk 22

Jakość procesu i produktu Zdefiniuj proces Utwórz produkt Oceń jakość produktu Utwórz proces Nie Odpowiednia jakość Tak Opracuj standard procesu 23

Główne zagadnienia 1. Podstawowe definicje [3] 2. Zapewnianie jakości i standardy [1, 2, 3] 3. Planowanie jakości [1] 24

Składowe planu jakości 1) Określenie produktu opis produktu, rynek produktu i oczekiwania wobec produktu 2) Plany dotyczące produkcji daty krytycznych wydań, plany dystrybucji i serwisu 3) Opisy procesu procesy tworzenia i serwisowania produktu, 4) Cele jakościowe atrybuty krytyczne produktu związane z produkcją 5) Ryzyka i zarządzanie ryzykiem czynniki zapobiegające obniżeniu jakości produktu 6) Rodzaje prowadzonych audytów i przeglądów 7) Dokumenty przygotowywane przez zespół kontroli jakości 8) Informacje przekazywane zespołowi wytwórczemu 25

Główne zagadnienia 1. Podstawowe definicje [3] 2. Zapewnianie jakości i standardy [1, 2, 3] 3. Planowanie jakości [1] 4. Kontrolowanie jakości [1, 3] 26

Podejścia do kontroli jakości prowadzone przez zespół kontroli jakości Przeglądy jakości badanie zgodności oprogramowania i dokumentacji ze standardami Automatyczna ocena oprogramowania za pomocą metryk, badanie zgodności ze standardami Rodzaje przeglądów Kontrola programu lub projektu Przeglądy postępu Przegląd jakości Zasadniczy cel Wykrycie szczegółowych błędów w wymaganiach, projekcie lub kodzie na podstawie listy kontrolnej z potencjalnymi błędami Przegląd produktu i procesu pod kątem kosztów, planów i harmonogramów Analiza techniczna komponentów produktu lub dokumentacji w celu wykrycia niezgodności między specyfikacją, projektem, kodem i dokumentacją komponentu i stopnia przestrzegania standardów jakości 27

Zasady prowadzenia formalnego przeglądu technicznego przez zespół wytwórczy 1. Ocenianie produktu, a nie wykonawcy 2. Przygotowanie planu zebrania i przestrzeganie planu 3. Ograniczenie dyskusji 4. Zgłaszanie wszystkich zauważonych problemów, jednak bez próby ich rozwiązania 5. Tworzenie notatek 6. Ograniczenie liczby uczestników i dopilnowanie ich przygotowania do zebrania 7. Przygotowanie listy kontrolnej dla każdego ocenianego produktu roboczego 8. Przeznacz czas i zasoby na prowadzenie przeglądów należy umieścić je w harmonogramie projektu 9. Przeszkolenie wszystkich uczestników projektu 10. Przeglądanie początkowych przeglądów pierwszy produkt poddany przeglądowi to sama procedura prowadzenia przeglądów

Główne zagadnienia 1. Podstawowe definicje [3] 2. Zapewnianie jakości i standardy [1, 2, 3] 3. Planowanie jakości [1] 4. Kontrolowanie jakości [1, 3] 5. Formalne metody zapewniania jakości [3] 29

Formalne metody zapewniania jakości statystyczne zapewnianie jakości Zebranie i pogrupowanie informacji o usterkach w oprogramowaniu Próba ustalenia przyczyny powstania każdej usterki Wybranie 20% najważniejszych przyczyn usterek na podstawie zasady Pareto (20% przyczyn powoduje 80% usterek) Po ustaleniu najważniejszych przyczyn, rozwiązanie tych problemów w celu usunięcia usterek 50% Podsumowanie: Zajmuj się tylko tym co ważne, ale najpierw upewnij się, że wiesz, co jest ważne 30

Przykład metody statystycznej NBS: niekompletna lub błędna specyfikacja NKK: nieporozumienie w kontaktach z klientem ŚOS: Świadome odejście od specyfikacji NNP: naruszenie norm oprogramowania BRD: błędna reprezentacja danych BIK: błędny interfejs komponentu LBP: logiczny błąd projektowania NBT: niekompletnelub błędne testowanie NND: niekompletna lub niedokładna dokumentacja BTK: błąd translacji lub kompilacji BIU: błędny interfejs użytkownika INN: inne

Przykład metody statystycznej E i - całkowita liczba błędów wykrytych w i-tej fazie procesu tworzenia produktu S i - liczba poważnych błędów M i - liczba umiarkowanych błędów T i - liczba drobnych błędów PS - wielkość produktu w S, w m, w t wagi przyznane poszczególnym rodzajom błędów w S =10, w m =3, w t =1 Indeks fazy procesu tworzenia produktu Pi i PI i = w S (S i / E i ) + w m (M i / E i ) + w t (T i / E i ) Indeks błędów jako suma indeksów wszystkich faz procesu tworzenia produktu EI = (i x PI i ) / PS = (PI 1 + 2PI 2 + 3PI 3 + + ipi i ) / PS Wg tabeli (następny slajd) Najliczniejsze przyczyny błędów - 52%: NBS, NKK, BRD Najpoważniejsze przyczyny błędów - NBS, BRD, BTK, LBP Stanowi to 10% wszystkich błędów (89/942)

Przykład metody statystycznej cd E (Razem) S i (Poważnie) M i (Umiarkowanie) T i (Drobne) Błąd Liczba % Liczba % Liczba % Liczba % NBS 205 22 34 27 68 18 103 24 NKK 156 16 12 9 68 18 76 18 ŚOS 48 5 1 1 24 6 23 5 NNP 25 3 0 0 15 4 10 2 BRD 130 14 26 20 68 18 36 8 BIK 58 6 9 7 18 5 31 7 LBP 45 5 14 11 12 3 19 4 NBT 95 10 12 9 35 9 48 11 NND 36 4 2 2 20 5 14 3 BTK 60 6 15 12 19 5 26 6 BIU 28 3 3 2 17 5 8 2 INN 56 6 0 0 15 4 41 10 Razem 942 100 128 100 379 100 435 100 2015-11-21 33

Główne zagadnienia 1. Podstawowe definicje [3] 2. Zapewnianie jakości i standardy [1, 2, 3] 3. Planowanie jakości [1] 4. Kontrolowanie jakości [1, 3] 5. Formalne metody zapewniania jakości [3] 6. Miernictwo oprogramowania i miar [1,2,3] 34

Klasyfikacja złożoności oprogramowania - związki między zewnętrznymi atrybutami oprogramowania i miarami wewnętrznych atrybutów (wg Brian Henderson- Sellers) Złożoność obliczeniowa Złożoność funkcjonalna problemu jest zależna od Złożoność Złożoność psychologiczna Właściwości programisty Złożoność reprezentacji Złożoność produktu/dokumentacji = złożoność strukturalna mierzona przez metryki złożoności strukturalnej zewnętrzne atrybuty wewnętrzne atrybuty metryki stylu metryki modułowe metryki międzymodułowe metryki rozmiaru metryki struktur danych metryki logicznej struktury (przepływu sterowania) metryki modułowe (złożoność proceduralna) metryki modułowe (złożoność semantyczna) metryki semantycznej spójności jest zależna od metryki połączeń miary wewnętrznych atrybutów metryki spójności 35

Miary predykcyjne i kontrolne [1] Proces tworzenia oprogramowania Produkt programowy Pomiary kontrolne Pomiary predykcyjne Decyzje menedżerskie 36

Proces pomiaru produktu [1] Wybierz pomiary do wykonania Zanalizuj komponenty z anomaliami i wykonaj refaktoryzację Wybierz komponenty do oceny Zidentyfikuj anomalie w pomiarach Zmierz właściwości (np. atrybuty wewnętrzne) komponentu 37

Związki funkcyjne i niefunkcyjne między atrybutami zewnętrznymi i wewnętrznymi oprogramowania [1] na podstawie atrybutów wewnętrznych ocenia się atrybuty zewnętrzne oprogramowania Atrybuty zewnętrzne Atrybuty wewnętrzne Pielęgnowalność Liczba parametrów metod Niezawodność Złożoność cyklomatyczna Liczba linii kodu źródłowego Wieloużywalność Liczba komunikatów o błędach Funkcjonalność Wielkość podręcznika użytkownika Pomiary subiektywne Pomiary obiektywne 38

Główne zagadnienia 1. Podstawowe definicje [3] 2. Zapewnianie jakości i standardy [1, 2, 3] 3. Planowanie jakości [1] 4. Kontrolowanie jakości [1, 3] 5. Formalne metody zapewniania jakości [3] 6. Miernictwo oprogramowania i miary [1, 2, 3] 7. Kryteria oceny jakości [2] 39

Poziom zadowolenia klienta [2] Kolejność nierosnąca wartości atrybutów Metoda 1 (macierz korelacji) Metoda 2 (analiza wielokrotnej regresji) Niezawodność Niezawodność Łatwość użytkowania Łatwość instalacji Łatwość użytkowania Dokumentacja Wydajność Metoda 3 (analiza regresji logistycznej) Niezawodność Łatwość użytkowania Łatwość instalacji Dostępność Łatwość instalacji Wydajność Łatwość serwisu Łatwość serwisu Łatwość serwisu Dokumentacja Wydajność Dostępność Dostępność Dokumentacja 40

Główne zagadnienia 1. Podstawowe definicje [3] 2. Zapewnianie jakości i standardy [1, 2, 3] 3. Planowanie jakości [1] 4. Kontrolowanie jakości [1, 3] 5. Formalne metody zapewniania jakości [3] 6. Miernictwo oprogramowania i miary [1, 2, 3] 7. Kryteria oceny jakości [2] 8. CMMI [4, 5, 6, 7] 41

CMMI - Capability Maturity Model Integration CMMI: wytyczne dla poprawy jakości produktu i integracji procesu. Pięć poziomów dojrzałości procesów wytwórczych CMM (Capability Maturity Model, 1991) stanowią podstawę dla CMMI (wykład 1) Celem CMMI jest zarządzanie ryzykiem i dostarczanie produktu wysokiej jakości Model CMMI pozwala zrozumieć elementy świata rzeczywistego i pomaga opracować koncepcje produktu oraz jego poprawę dzięki temu, że: Dostarcza framework oraz języki komunikacji Wykorzystuje lata doświadczeń Ułatwia wykonawcom zapamiętanie dużego modelu pozwalając skupić się na poprawie jego jakości Używany jest przez instruktorów i konsultantów Dostarcza informacji wspierających rozwiązywanie sporów w oparciu o standardy 42

Dyscypliny stosowania modeli CMMI Inżynieria systemów (SE = System Engineering) Inżynieria oprogramowania (SW= Software Engineering) + SE Zintegrowany rozwój produktu i procesu (IPPD= Integrated Product and Process Development) + SE+ SW Zlecenia i dostawcy (SS = Supplier Sourcing) + SE+SW+IPPD+ 43

Trzy modele CMMI 1.3 1. CMMI-Rozwój (CMMI-DEV) - wsparcie organizacji zajmujących się rozwojem produktów i usług 2. CMMI-Usługi (CMMI-SVC) wsparcie organizacji zajmujących się dostarczaniem usług 3. CMMI-Nabywanie (CMMI-ACQ) wspiera organizacje zajmujące się zarządzaniem i pozyskiwaniem produktów i usług od zewnętrznych poddostawców. W styczniu 2013 roku, cały pakiet produktów CMMI został przeniesiony z SEI (SOFTWARE Engineering Institute) CMMI, do nowo utworzonej organizacji na Carnegie Mellon University. 44

Zależności pomiędzy modelami CMMI

Poziomy dojrzałości modelu CMMI (Maturity levels) (wykład 1) Cele ogólne Praktyki ogólne Cele specyficzne Praktyki specyficzne

Obszary procesów na pięciu poziomach dojrzałości procesu 47

Komponenty obszaru procesu 48

Poziomy wydolności modelu CMMI (Capability levels) Poziomy wydolności CL0-CL3 Obszary procesu PA Poziomy wydolności wybranych obszarów procesu pozwalają na udoskonalenie procesów występujących w tych wybranych obszarach procesów w ramach poziomów od CL0 do CL3. 49

22 obszary procesu w modelu CMMI Skrót Nazwa procesu Nazwa procesu CAR Causal Analysis and Resolution Analiza przyczyn i rozwiązań CM Configuration Management Zarządzanie konfiguracją DAR Decision Analysis and Resolution Analiza decyzji i rozwiązań MA Measurement and Analysis Pomiar i analiza OID OPM Organizational Innovation & Deployment Organizational Performance Management Innowacje organizacyjne i wdrażanie Zarządzanie przebiegiem organizacyjnym OPD Organizational Process Definition Definicja procesu organizacyjnego OPF OPP Organizational Process Focus Organizational Process Performance Skupienie się na procesie organizacyjnym Przebieg procesu organizacyjnego OT Organizational Training Szkolenie organizacyjne

22 obszary procesu CMMI cd Skrót Nazwa procesu Nazwa procesu PI Product Integration Integracja produktu PPQA Process and Product Quality Assurance Zapewnienie jakości procesu i produktu PMC Project Monitoring and Control Kontrola i monitorowanie projektu PP Project Planning Planowanie projektu QPM Quantitative Project Management Zarządzanie ilościowe projektem RD Requirements Definition Definicja wymagań REQM Requirements Management Zarządzanie wymaganiami RSKM Risk Management Zarządzanie ryzykiem SAM Supplier Agreement Management Zarządzanie umową z poddostawcą TS Technical Solution Rozwiązanie techniczne VER Verification Weryfikacja VAL Validation Walidacja, atestowanie

4 kategorie obszarów procesowych 52

SCAMPI, CMMI Security Guides Standard CMMI Appraisal Method for Process Improvement (SCAMPI) metoda przyznawania certyfikatów dojrzałości procesu CMMI Security Guides przewodniki dostarczające informacji dotyczącej bezpieczeństwa oprogramowania: Case for Security Content in CMMI for Services - dla procesu zarządzania rozwojem oprogramowania Security by Design with CMMI for Development, Version 1.3 obejmuje następujące procesy: OPSD - Organizational Preparedness for Secure Development dla procesu wytwarzania i rozwoju oprogramowania SMP - Secure Management in Projects dla procesu kierowania projektem SRTS - Security Requirements and Technical Solution dla procesu definiowania wymagań oprogramowania i wyboru rozwiązań technicznych SVV - Security Verification and Validation dla procesów walidacji (badania zgodności produktu z wymaganiami) i weryfikacji oprogramowania (badania poprawnej budowy oprogramowania) 53

TSP integracja wielu praktyk CMMI 54

CMMI-Usługi (CMMI-SVC) wsparcie organizacji zajmujących się dostarczaniem usług 55