Jakość w procesie wytwarzania oprogramowania

Slides:



Advertisements
Podobne prezentacje
Kamil Markuszewski Mateusz Mikłuszka
Advertisements

Rodzaje testów oprogramowania
Jarosław Kuchta Jakość Oprogramowania
Jakość w procesie wytwarzania oprogramowania
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Modelowanie przypadków użycia
Projektowanie w cyklu życia oprogramowania
JAKOŚĆ & Metody Jej Pomiaru
Testowanie oprogramowania
1 / 47 WARSZAWA 2005 Przemysław Siekierko Stanisław Andraszek Rational Unified Process.
Inżynieria Oprogramowania 9. Testowanie oprogramowania
SOS SYSTEM OBSŁUGI SZKOŁY
Projektowanie Aplikacji Komputerowych
JAKOŚĆ PRODUKTU - USŁUGI
Projektowanie Aplikacji Komputerowych
SYSTEMY ZARZĄDZANIA - GENEZA
Struktura SYSTEMU Jacek Węglarczyk.
ISO 9001:2000 z perspektywy CMMI a poznańska rzeczywistość
Analiza i walidacja wymagań
Copyright © Jerzy R. Nawrocki Wprowadzenie Analiza systemów informatycznych Wykład.
Cykle życia oprogramowania
Jarosław Kuchta Jakość Systemów Informatycznych
Pomiary w inżynierii oprogramowania
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Model jakości CMM/CMMI
Pomiary w inżynierii oprogramowania
Jakość systemów informacyjnych (aspekt eksploatacyjny)
Rational Unified Process
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
Dalsze elementy metodologii projektowania. Naszym celem jest...
Wykład 2 Cykl życia systemu informacyjnego
Psychologiczne aspekty pracy testera oprogramowania
C.d. wstępu do tematyki RUP
© Victo Testowanie dla menedżerów Wersja TDM Slajd 1 (27) Testowanie oprogramowania dla menedżerów Co menedżerowie i kierownicy naprawdę potrzebują
Adam Gabryś , v1.1,
ŚCIEŻKA KRYTYCZNA Ciąg następujących po sobie zadań w ramach projektu trwających najdłużej ze wszystkich możliwych ciągów, mających taką własność, że opóźnienie.
AKREDYTACJA LABORATORIUM Czy warto
Kompleksowe zarządzanie jakością informacji (TIQM)
Wewnętrzny system zapewniania jakości PJWSTK - główne założenia i kierunki działań w ramach projektu „Kaizen - japońska jakość w PJWSTK” Projekt współfinansowany.
Microsoft Solution Framework
Zarządzanie jakością projektu
Rozwiązania informatyczne dla przedsiębiorstw
SYSTEM DYNAMICZNEJ ANALIZY JAKOŚCI SCENARIUSZY BIZNESOWYCH Łukasz Budnik.
Metodyki zarządzania projektami
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Dr Karolina Muszyńska Na podst.:
TESTOWANIE OPROGRAMOWANIA
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Analiza kluczowych czynników sukcesu
PROCESY W SYSTEMACH SYSTEMY I PROCESY.
Waterfall model.
SYSTEM FUNKCJI, PROCESÓW I PRZEDSIĘWZIĘĆ W ORGANIZACJI.
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Systemy informatyczne
Etapy rozwoju zarządzania jakością
Dodatkowe slajdy (Koszty jakości)
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
ZINTEGROWANE SYSTEMY ZARZĄDZANIA
Eksploatacja zasobów informatycznych przedsiębiorstwa.
Wdrażanie SYSTEMU Jacek WĘGLARCZYK.
7/1/ Projektowanie Aplikacji Komputerowych Piotr Górczyński Cykl życia systemu.
1 Dodatkowe slajdy prof.nadzw.dr hab. Zofia Zymonik (Koszty jakości)
Innowacyjne metody zarządzania jakością oprogramowania Przeglądy oprogramowania i standard IEEE 1028 Bartosz Michalik
Faza 1: Faza zaprojektowania systemu monitoringu projektu: 1. Inwentaryzacja obietnic złożonych sponsorowi we wniosku - przegląd założeń projektu, opracowanie.
ANALIZA WARTOŚCI PRZEDSIĘWZIĘĆ PROJEKTOWYCH ZE SZCZEGÓLNYM UWZGLĘDNIENIEM KRYTERIUM ICH EFEKTYWNOŚCI Bartłomiej Czekaj Numer albumu: 1892 Promotor: Prof.
Agile Programming a jakość
Zarządzanie projektami informatycznymi
IEEE SPMP Autor : Tomasz Czwarno
Zapis prezentacji:

Jakość w procesie wytwarzania oprogramowania Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania Jakość w procesie wytwarzania oprogramowania http://www.eti.pg.gda.pl/katedry/kask/pracownicy/Jaroslaw.Kuchta/Jakosc/ J.Kuchta@eti.pg.gda.pl

Jakość w procesie wytwarzania oprogramowania Względny koszt wprowadzania zmian w zależności od fazy realizacji projektu Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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

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

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

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 1,5 33 36 234 225 3 202 693 Źródło: Pressman Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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) Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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

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? Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

Jakość w procesie wytwarzania oprogramowania Aktywności SQA Stosowanie metod technicznych Przeprowadzanie formalnych przeglądów technicznych (FTR – Formal Technical Review) Testowanie oprogramowania Wymuszenie standardów Kontrolowanie zmian Wykonywanie pomiarów Zapisywanie i raportowanie Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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

Jakość w procesie wytwarzania oprogramowania 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ą Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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? Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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? Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

Lista kontrolna dla projektowania (1) Czy wymagania softwerowe znalazły odwzorowanie w architekturze oprogramowania? 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? Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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? Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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? Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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 oprogramowania? Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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? Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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

Jakość w procesie wytwarzania oprogramowania 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. Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

Jakość w procesie wytwarzania oprogramowania 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ą w 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. Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

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

TQM w inżynierii oprogramowania 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. Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania

Jakość w procesie wytwarzania oprogramowania Literatura Pressman R.S., Software engineering. A practitioner’s approach, McGraw-Hill, International Edition, 1992 Górski J. et al., Inżynieria oprogramowania 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. Jakość Systemów Informatycznych Jakość w procesie wytwarzania oprogramowania