Jakość w procesie wytwarzania oprogramowania

Podobne dokumenty
Etapy życia oprogramowania

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

Inżynieria wymagań. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

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

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

PRZEWODNIK PO PRZEDMIOCIE

Opis metodyki i procesu produkcji oprogramowania

Testowanie oprogramowania. Piotr Ciskowski

Maciej Oleksy Zenon Matuszyk

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

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

Zasady organizacji projektów informatycznych

Goal Question Metrics. Jarosław Kuchta Jakość Systemów Informatycznych

tel. (+48 81) /22 fax (+48 81) Wykład Ćwiczenia Laboratorium Projekt

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

Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania. Pomiary w inżynierii oprogramowania

Projektowanie systemów informatycznych. Roman Simiński programowanie.siminskionline.pl. Cykl życia systemu informatycznego

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

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

Plan Testów Systemu SOS

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

Przedsięwzięcia Informatyczne w Zarządzaniu

Egzamin / zaliczenie na ocenę*

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

Testowanie oprogramowania

Dlaczego testowanie jest ważne?

Zawód tester, czyli na czym polega testowanie. Katarzyna Łabinska Justyna Sacha - Gawlik

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

Wstęp do zarządzania projektami

Testowanie systemów informatycznych Kod przedmiotu

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

Dwuwymiarowy sposób na podróbki > 34

Podrozdziały te powinny zawierać informacje istotne z punktu widzenia przyjętego celu pracy

Cykle życia systemu informatycznego

Projekt Kompetencyjny - założenia

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Inżynieria oprogramowania (Software Engineering) Wykład 1

Kontrola jakości artefaktów

Systemy zabezpieczeń

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

Modelowanie i analiza systemów informatycznych

Wykład 1 Inżynieria Oprogramowania

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

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

INŻYNIERIA OPROGRAMOWANIA

Testowanie w procesie Scrum

Faza Określania Wymagań

Szablon Planu Testów Akceptacyjnych

Wykład 7. Projektowanie kodu oprogramowania

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

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

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Jarosław Kuchta. Projektowanie Aplikacji Internetowych. Wprowadzenie

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

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

1

PRZEWODNIK PO PRZEDMIOCIE

Plan zarządzania projektem

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

Opis przedmiotu zamówienia

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

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

Piotr Krząkała. Dyrektor Handlowy ds. Kluczowych Klientów

Wstęp do zarządzania projektami

Szybkie prototypowanie w projektowaniu mechatronicznym

WPROWADZENIE DO UML-a

Dni: 3. Opis: Adresaci szkolenia

Metodologia weryfikacji wymagań IRIS w obszarze Projektowania i Rozwoju w teorii i praktyce. Szymon Wapienik TUV NORD Polska

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

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

Testowanie i walidacja oprogramowania

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

PRZEWODNIK PO PRZEDMIOCIE

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Strategia testów mająca doprowadzić do osiągnięcia pożądanych celów

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

Wstęp do zarządzania projektami

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

Wprowadzenie do systemów informacyjnych

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Cele oraz techniki tworzenia prototypów systemów infromatycznych. Inżynieria Oprogramowania

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

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

Harmonogramowanie projektów Zarządzanie Zakresem

UPEDU: Rozpoznanie wymagań (ang. requirements discipline)

Projektowanie oprogramowania

Inżynieria Programowania Inżynieria wymagań. Plan wykładu. Motto. Wstęp. Notatki. Notatki. Notatki. Notatki. Arkadiusz Chrobot

ŚCIEŻKA KRYTYCZNA. W ścieżkach krytycznych kolejne zadanie nie może się rozpocząć, dopóki poprzednie się nie zakończy.

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

KIERUNKOWE EFEKTY KSZTAŁCENIA

Darmowy fragment

Inżynieria oprogramowania (Software Engineering)

Szczegółowy plan szkolenia

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

t e s t o w a n i e j e s t ł a t w e

Projekt. Prince2 PRoject. IN Controlled Environments PROCESY KOMPONENTY TECHNIKI

Transkrypt:

Jarosław Kuchta Jakość Oprogramowania http://www.eti.pg.gda.pl/katedry/kask/pracownicy/jaroslaw.kuchta/jakosc/ J.Kuchta@eti.pg.gda.pl

Względny koszt wprowadzania zmian w zależności od fazy realizacji projektu 100 90 80 70 60 50 40 30 20 10 0 100 10 1 Definiowanie Opracowywanie Utrzymywanie 2

Model wzmocnienia błędów Błędy Detekcja Błędy z poprzedniego etapu Źródło: Pressman Błędy przepuszczone Błędy wzmocnione 1:x Błędy nowowprowadzone Procent wydajności detekcji błędów Błędy do następnego etapu 3

Efekt wzmocnienia błędów kontrola jakości przy testowaniu Analiza wymagań 94 0 0 0% 10 Testy integracyjne 0 50% 0 10 6 47 4 Projektowanie 6 4 1,5 0% 25 Testy systemowe 0 50% 37 10 24 27 Implementacja 10 27 3 20% 25 Testy akceptacyjne 94 Źródło: Pressman 0 0 0 50% 12 4

Efekt wzmocnienia błędów kontrola jakości w całym procesie Analiza wymagań 24 0 0 70% 10 Testy integracyjne 0 50% 0 3 2 12 1 Projektowanie 2 1 1,5 50% 25 Testy systemowe 0 50% 15 5 6 10 Implementacja 5 10 3 60% 25 Testy akceptacyjne 24 Źródło: Pressman 0 0 0 50% 3 5

Porównanie kosztów wytwarzania Błędy wykryte Liczba błędów Koszt jednostkowy Koszt sumaryczny Kontrola jakości przy testowaniu Przed testowaniem 22 6,5 143 Podczas testowania 82 15 1230 Po wydaniu 12 67 804 Razem 2177 Kontrola jakości w całym procesie Podczas wytwarzania 22 1,5 33 Przed testowaniem 36 6,5 234 Podczas testowania 15 15 225 Po wydaniu 3 67 202 Razem 693 Źródło: Pressman 6

Ewolucja polityki jakościowej Kontrola jakości (QC Quality Control) lata 1970-te kontrolowanie jedynie jakości produktu końcowego Sterowanie jakością (QC Quality Control) lata 1980-te kontrolowanie jakości produktów pośrednich Zapewnienie jakości (SQA Software Quality Assurance) lata 1990-te opracowanie procedur zapewniających jakość na każdym etapie Zarządzanie jakością (TQM Total Quality Management) lata 2000 przeniesienie ciężaru zapewnienia jakości z inżynierów na całą organizację (zarządzanie) 7

Proces dla Quality Control Specyfikacja wymagań QC Kontroluje się jakość produktu po każdym etapie prac Analiza QC Projektowanie QC Kontrola jakości produktów pośrednich jest nieefektywna! Implementacja QC Testowanie 8

Software Quality Assurance jest to planowy i usystematyzowany zbiór akcji wymaganych dla zapewnienia jakości w oprogramowaniu powołuje się grupę SQA (inżynierowie, kierownicy, klienci, sprzedawcy i inni), która przygląda się powstającemu oprogramowaniu z punktu widzenia klienta: Czy oprogramowanie odpowiada czynnikom jakości? Czy oprogramowanie powstaje zgodnie z wcześniej ustanowionymi standardami? Czy techniczne dyscypliny odpowiednio wypełniają swoje role w aspekcie aktywności SQA? 9

Aktywności SQA Stosowanie metod technicznych Przeprowadzanie formalnych przeglądów technicznych (FTR Formal Technical Review) Testowanie Wymuszenie standardów Kontrolowanie zmian Wykonywanie pomiarów Zapisywanie i raportowanie 10

Cele FTR wykrycie błędów w funkcjach, logice lub implementacji w dowolnej jego reprezentacji, sprawdzenie, czy przeglądane oprogramowanie jest zgodne z wymaganiami, upewnienie się, że reprezentacja jest zgodna z wcześniej zdefiniowanymi standardami, uzyskanie opracowanego w jednolity sposób, sprawienie, by projekty były łatwiejsze w utrzymaniu. 11

Rodzaje FTR przegląd (walkthrough) przejrzenie treści dokumentu zgodnie z jego logicznym uporządkowaniem (np. odczytanie dokumentu) inspekcje przejrzenie dokumentu zgodnie z listą kontrolną 12

Lista kontrolna dla specyfikacji wymagań Czy główne funkcje są zdefiniowane w sposób powiązany i jednoznaczny? Czy interfejsy między elementami systemowymi są zdefiniowane? Czy ustalono granice wydajności dla całego systemu oraz dla każdego jego elementu? Czy ustalono ograniczenia projektowe dla każdego elementu? Czy wybrane zostało najlepsze rozwiązanie? Czy rozwiązanie jest technologicznie możliwe? Czy opracowano mechanizm walidacji i weryfikacji systemu? Czy zachowano spójność pomiędzy wszystkimi elementami systemu? 13

Lista kontrolna dla analizy Czy analiza dziedziny problemu jest kompletna, zwarta i dokładna? Czy zakończono partycjonowanie problemu? Czy model danych odpowiada obiektom danych, ich atrybutom i relacjom? Czy wszystkie wymagania znalazły odwzorowanie w modelu? Czy wykonano prototyp dla użytkownika? Czy wydajność jest osiągalna w aspekcie ograniczeń wprowadzanych przez inne elementy systemu? Czy kryteria walidacyjne są kompletne? 14

Lista kontrolna dla projektowania (1) Czy wymagania softwerowe znalazły odwzorowanie w architekturze? Czy zastosowano odpowiednią modularyzację? Czy moduły są funkcjonalnie niezależne? Czy zdefiniowano interfejsy dla modułów i elementów systemów zewnętrznych? Czy struktura danych jest spójna z dziedziną informacji? Czy struktura danych jest spójna ze specyfikacją wymagań? Czy uwzględniono łatwość pielęgnacji? Czy jawnie uwzględniono czynniki jakości? 15

Lista kontrolna dla projektowania (2) Czy algorytmy odpowiadają wymaganym funkcjom? Czy algorytmy są logicznie poprawne? Czy interfejs jest spójny z projektem architektury? Czy logiczna złożoność jest rozsądna? Czy określono obsługę błędów i ochronę przed błędami? Czy lokalne struktury danych są poprawnie zdefiniowane? Czy zachowano konstrukcje programowania strukturalnego? Czy szczegółowość projektowania jest odpowiednia dla języka implementacji? Czy uwzględniono łatwość pielęgnacji? 16

Lista kontrolna dla implementacji Czy projekt został odpowiednio przetłumaczony na kod? Czy zachowano zgodność ze standardami kodowania w zakresie stylu języka, komentarzy, prologów modułów? Czy nie ma niepoprawnych lub niejednoznacznych komentarzy? Czy typy danych zostały odpowiednio dobrane? Czy stałe fizyczne zostały poprawnie zdefiniowane? 17

Lista kontrolna dla testowania (1) Czy główne fazy testowania zostały poprawnie zidentyfikowane i przeprowadzone? Czy zachowano zgodność kryteriów walidacji ze specyfikacją wymagań? Czy główne funkcje zademonstrowano wcześnie? Czy zasoby testów zostały zidentyfikowane i są dostępne? Czy ustalono sposób zapisywania wyników testów? Czy moduły sterujące testami i moduły zastępcze testów zostały zidentyfikowane? Czy określono testy obciążeniowe? 18

Lista kontrolna dla testowania (2) Czy przeprowadzono testowanie metodą białej i czarnej skrzynki? Czy wszystkie niezależne ścieżki logiczne zostały przetestowane? Czy przypadki testowe zostały zidentyfikowane i wylistowane z oczekiwanymi rezultatami? Czy obsługa błędów została przetestowana? Czy wartości graniczne zostały przetestowane? Czy przetestowano timing i wydajność? Czy określono dopuszczalne odchylenia od oczekiwanych rezultatów? 19

Proces dla SQA FTR Specyfikacja wymagań FTR Jakość produktu kontroluje się wielokrotnie na każdym etapie prac Analiza FTR Projektowanie FTR Implementacja FTR Jak dowiodła praktyka SQA wcale nie zapewnia wysokiej jakości! Testowanie 20

Co to jest TQM? Total Quality Management jest to zbiór działań sprawiających, że każdy członek organizacji (od dyrektora do sprzątaczki) rozumie, jakie są oczekiwania klientów tej organizacji i dąży do spełnienia tych oczekiwań Rozumienie i spełnianie oczekiwań klientów jest wyzwaniem dla organizacji i wymaga odpowiednich procesów. 21

Naczelne zasady TQM Jakość może i musi być zarządzana. Każdy ma swojego klienta i swojego dostawcę. Procesy, a nie ludzie stanowią problem. Każdy pracownik jest odpowiedzialny za jakość. Problemom trzeba zapobiegać, a nie tylko rozwiązywać Jakość musi być mierzona. Poprawa jakości musi być stała Standard jakości jest wolny od defektów. Cele są oparte o wymagania, a nie negocjowane. Koszty są ukryte w całym cyklu życia, a nie tylko w wytwarzaniu. Kierownictwo musi być zaangażowane i musi przewodzić. Działania na rzecz poprawy jakości muszą być planowane i organizowane. 22

Podejście procesowe TQM Specyfikacja wymagań QM Analiza QM Zapewnia się jakość procesów w każdej fazie cyklu życia Projektowanie QM TQM Implementacja QM Testowanie QM Utrzymanie QM 23

TQM w inżynierii W fazie specyfikacji wymagań konieczne jest określenie potrzeb wszystkich użytkowników, w tym użytkowników informacji generowanej przez oprogramowanie, użytkowników wprowadzających dane i dostawców wewnętrznych. W fazie analizy i projektowania konieczne jest przeglądanie projektów przez użytkowników. W fazie implementacji konieczne jest przeprowadzanie przeglądów wzajemnych (peer review). W fazie testowania konieczne jest przeprowadzenie testowania przez klientów i ocena dokumentacji. W fazie utrzymania przeprowadza się szkolenia i stale doskonali procesy projektowe i relacje z klientami. 24

Literatura Pressman R.S., Software engineering. A practitioner s approach, McGraw-Hill, International Edition, 1992 Górski J. et al., Inżynieria w projekcie informatycznym, wyd. Mikom, Warszawa, 2000 Dahlgaard J. J., Kristensen K., Kanji G. K. - Fundamentals of Total Quality Management, Polish edition by PWN, 2000. Grudowski P., Kolman R., Meller A., Preihs J. - Zarządzanie jakością (Quality Management), Wydawnictwo Politechniki Gdanskiej, 1996. 25