Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Jakość w procesie wytwarzania oprogramowania Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Podobne prezentacje


Prezentacja na temat: "Jakość w procesie wytwarzania oprogramowania Jarosław Kuchta Dokumentacja i Jakość Oprogramowania"— Zapis prezentacji:

1 Jakość w procesie wytwarzania oprogramowania Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

2 Dokumentacja i Jakość Oprogramowania 2 Jakość w procesie wytwarzania oprogramowania Względny koszt wprowadzania zmian w zależności od fazy realizacji projektu

3 Dokumentacja i Jakość Oprogramowania 3 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łędyDetekcja Błędy z poprzedniego etapu Błędy do następnego etapu Źródło: Pressman

4 Dokumentacja i Jakość Oprogramowania 4 Jakość w procesie wytwarzania oprogramowania Efekt wzmocnienia błędów – kontrola jakości przy testowaniu 0 0% % 4 1, % %0 0 50%0 0 50%0 0 Analiza wymagań Projektowanie Implementacja Testy integracyjne Testy akceptacyjne Testy systemowe Źródło: Pressman

5 Dokumentacja i Jakość Oprogramowania 5 Jakość w procesie wytwarzania oprogramowania Efekt wzmocnienia błędów – kontrola jakości w całym procesie 0 70% % 1 1, % %0 0 50%0 0 50%0 0 Analiza wymagań Projektowanie Implementacja Testy integracyjne Testy akceptacyjne Testy systemowe Źródło: Pressman

6 Dokumentacja i Jakość Oprogramowania 6 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 226,5143 Podczas testowania Po wydaniu Razem2177 Kontrola jakości w całym procesie Podczas wytwarzania 221,533 Przed testowaniem 366,5234 Podczas testowania Po wydaniu Razem693 Źródło: Pressman

7 Dokumentacja i Jakość Oprogramowania 7 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 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 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 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) 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)

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

9 Dokumentacja i Jakość Oprogramowania 9 Jakość w procesie wytwarzania oprogramowania Software Quality Assurance jest to planowy i usystematyzowany zbiór akcji wymaganych dla zapewnienia jakości w oprogramowaniu 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: 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 odpowiada czynnikom jakości? Czy oprogramowanie powstaje zgodnie z wcześniej ustanowionymi standardami? Czy oprogramowanie powstaje zgodnie z wcześniej ustanowionymi standardami? Czy techniczne dyscypliny odpowiednio wypełniają swoje role w aspekcie aktywności SQA? Czy techniczne dyscypliny odpowiednio wypełniają swoje role w aspekcie aktywności SQA?

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

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

12 Dokumentacja i Jakość Oprogramowania 12 Jakość w procesie wytwarzania oprogramowania Rodzaje FTR przegląd (walkthrough) przegląd (walkthrough) przejrzenie treści dokumentu zgodnie z jego logicznym uporządkowaniem (np. odczytanie dokumentu) przejrzenie treści dokumentu zgodnie z jego logicznym uporządkowaniem (np. odczytanie dokumentu) inspekcje inspekcje przejrzenie dokumentu zgodnie z listą kontrolną przejrzenie dokumentu zgodnie z listą kontrolną

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

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

15 Dokumentacja i Jakość Oprogramowania 15 Jakość w procesie wytwarzania oprogramowania Lista kontrolna dla projektowania (1) Czy wymagania softwerowe znalazły odwzorowanie w architekturze oprogramowania? Czy wymagania softwerowe znalazły odwzorowanie w architekturze oprogramowania? Czy zastosowano odpowiednią modularyzację? Czy moduły są funkcjonalnie niezależne? 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 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 z dziedziną informacji? Czy struktura danych jest spójna ze specyfikacją wymagań? Czy struktura danych jest spójna ze specyfikacją wymagań? Czy uwzględniono łatwość pielęgnacji? Czy uwzględniono łatwość pielęgnacji? Czy jawnie uwzględniono czynniki jakości? Czy jawnie uwzględniono czynniki jakości?

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

17 Dokumentacja i Jakość Oprogramowania 17 Jakość w procesie wytwarzania oprogramowania Lista kontrolna dla implementacji Czy projekt został odpowiednio przetłumaczony na kod? 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 zachowano zgodność ze standardami kodowania w zakresie stylu języka, komentarzy, prologów modułów? Czy nie ma niepoprawnych lub niejednoznacznych komentarzy? Czy nie ma niepoprawnych lub niejednoznacznych komentarzy? Czy typy danych zostały odpowiednio dobrane? Czy typy danych zostały odpowiednio dobrane? Czy stałe fizyczne zostały poprawnie zdefiniowane? Czy stałe fizyczne zostały poprawnie zdefiniowane?

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

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

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

21 Dokumentacja i Jakość Oprogramowania 21 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ń 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. Rozumienie i spełnianie oczekiwań klientów jest wyzwaniem dla organizacji i wymaga odpowiednich procesów.

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

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

24 Dokumentacja i Jakość Oprogramowania 24 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 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 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 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 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. W fazie utrzymania przeprowadza się szkolenia i stale doskonali procesy projektowe i relacje z klientami.

25 Dokumentacja i Jakość Oprogramowania 25 Jakość w procesie wytwarzania oprogramowania Literatura Pressman R.S., Software engineering. A practitioners approach, McGraw-Hill, International Edition, 1992 Pressman R.S., Software engineering. A practitioners approach, McGraw-Hill, International Edition, 1992 Górski J. et al., Inżynieria oprogramowania w projekcie informatycznym, wyd. Mikom, Warszawa, 2000 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, Dahlgaard J. J., Kristensen K., Kanji G. K. - Fundamentals of Total Quality Management, Polish edition by PWN, Grudowski P., Kolman R., Meller A., Preihs J. - Zarządzanie jakością (Quality Management), Wydawnictwo Politechniki Gdanskiej, Grudowski P., Kolman R., Meller A., Preihs J. - Zarządzanie jakością (Quality Management), Wydawnictwo Politechniki Gdanskiej, 1996.


Pobierz ppt "Jakość w procesie wytwarzania oprogramowania Jarosław Kuchta Dokumentacja i Jakość Oprogramowania"

Podobne prezentacje


Reklamy Google