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

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

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

Jakość w procesie wytwarzania oprogramowania

Wprowadzenie do jakości systemów informatycznych

Model jakości McCalla

Zarządzanie projektem informatycznym

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Wymiarowanie projektu informatycznego

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

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

Zasady organizacji projektów informatycznych

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

poziom: Core wersja: 2.6 moduł: B : Wytwarzanie SYLLABUS

Wymiarowanie projektów informatycznych Metoda punktów funkcyjnych.

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

INŻYNIERIA OPROGRAMOWANIA

Metryki oprogramowania. Marian Jureczko

Historia modeli programowania

Szacowanie rozmiaru oprogramowania

Podstawy Programowania. Języki programowania

Egzamin / zaliczenie na ocenę*

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Jakość jest najważniejszym kryterium oceny przydatności produktów dla klienta, a to właśnie klient umożliwia funkcjonowanie wytwórcy tych produktów

Tom 6 Opis oprogramowania

Wykład 1 Inżynieria Oprogramowania

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

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

PRZEWODNIK PO PRZEDMIOCIE

Jarosław Kuchta. Projektowanie Aplikacji Internetowych. Wprowadzenie

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

Nieprawidłowości w wymiarowaniu punktami funkcyjnymi

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Sterowniki Programowalne (SP)

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

Narzędzia CASE dla.net. Łukasz Popiel

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma studiów: Stacjonarne. audytoryjne. Wykład Ćwiczenia

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dokumentacja projektu QUAIKE Architektura oprogramowania

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

Zarządzanie projektem informatycznym

Oszacowanie pracochłonności wykonania systemu metodą punktów funkcyjnych

Metody pomiaru i szacowania oprogramowania

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

Technologia informacyjna (IT - Information Technology) dziedzina wiedzy obejmująca:

Języki programowania imperatywnego

Języki i metodyka programowania

Modelowanie procesów współbieżnych

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

FFT i dyskretny splot. Aplikacje w DSP

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

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Analiza punktów funkcyjnych Miara wielkość funkcjonalnej oprogramowania

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

Państwowa Wyższa Szkoła Techniczno-Ekonomiczna w Jarosławiu

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Podstawy programowania. Wprowadzenie

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Metryki. Pomiar złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz

Wykład 7. Projektowanie kodu oprogramowania

Kurs wybieralny: Zastosowanie technik informatycznych i metod numerycznych w elektronice

Lokalizacja Oprogramowania

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Wytwarzanie, integracja i testowanie systemów informacyjnych

Język programowania PASCAL

Kontrola jakości artefaktów

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY.

Prezentacja specjalności studiów II stopnia. Inteligentne Technologie Internetowe

SCHEMAT OCENIANIA poziom rozszerzony arkusz II

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Wykorzystanie inżynierskich metod pomiaru rozmiaru oprogramowania Wisła, r.

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Testowanie oprogramowania. Wykład 11 inżynieria jakości oprogramowania cz. I podstawy teorii pomiarów metryki rozmiaru: LOC metryki rozmiaru: FP

Studencka Pracownia Inżynierii Oprogramowania Zespół nr 2, IIUWR 2008/09. Bartłomiej Gałkowski, Marek Kembrowski, Tomasz Maciejewski.

Modelowanie i Programowanie Obiektowe

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Geneza powstania języka C++

Inżynieria oprogramowania. Jan Magott

Podstawy i języki programowania

Algorytmy od problemu do wyniku

WYKAZ PRZEDMIOTÓW I PLAN REALIZACJI

Łatwa czy niełatwa droga do celu? - wdrożenie COSMIC w ZUS

Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Język ludzki kod maszynowy

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Metody Programowania

Programowanie w VB Proste algorytmy sortowania

PLAN STUDIÓW. Zał. nr 3 do ZW 33/2012. Załącznik nr 1 do Programu studiów. WYDZIAŁ: Informatyki i Zarządzania. KIERUNEK: Informatyka

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

KARTA MODUŁU KSZTAŁCENIA

Modelowanie i analiza systemów informatycznych

WYKAZ PRZEDMIOTÓW I PLAN REALIZACJI

Paradygmaty programowania

Zakład Usług Informatycznych OTAGO

E5 potrafi zaprojektować i zaimplementować prosty model

Transkrypt:

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

Cel pomiarów ocena jakości produktu ocena procesów (produktywności ludzi) stworzenie podstawy dla szacowania ocena korzyści (nowe techniki i narzędzia) ocena potrzeby nowych narzędzi lub szkoleń Jakość Oprogramowania Pomiary w inżynierii oprogramowania 2

Kategorie pomiarów pomiary bezpośrednie (np. długość, czas) pomiary pośrednie Jakość Oprogramowania Pomiary w inżynierii oprogramowania 3

Kategorie metryk w inżynierii oprogramowania Metryki techniczne Metryki jakości Metryki produktywności Metryki zorientowane na rozmiar Metryki zorientowane na funkcje Metryki zorientowane na ludzi Metryki techniczne złożoność, modularność Metryki jakości spełnienie wymagań użytkownika Metryki produktywności wydajność procesu wytwarzania Metryki zorientowane na rozmiar odnoszą się do rozmiaru kodu Metryki zorientowane na funkcje odnoszą się do liczby funkcji Metryki zorientowane na ludzi odnoszą się do pracy ludzkiej Jakość Oprogramowania Pomiary w inżynierii oprogramowania 4

Metryki zorientowane na rozmiar (1) Metryki bezpośrednie wielkość kodu [KLOC] wielkość dokumentacji [strony] pracochłonność [osobomiesiące] koszt liczba defektów Jakość Oprogramowania Pomiary w inżynierii oprogramowania 5

Metryki zorientowane na rozmiar (2) Metryki pośrednie produktywność = wielkość kodu/pracochłonność awaryjność = ilość defektów/wielkość kodu kosztowność = koszt/wielkość kodu udokumentowanie = wielkość dokumentacji/wielkość kodu Jakość Oprogramowania Pomiary w inżynierii oprogramowania 6

Metryki zorientowane na rozmiar (za i przeciw) Za wielkość kodu może być łatwo policzona wielkość kodu jest używana w wielu modelach szacowania oprogramowania wpływ wielkości kodu jest dobrze udokumentowany Przeciw wielkość kodu jest zależna od języka programowania zwięzłe, krótkie programy mają gorsze wskaźniki nie nadają się dla języków nieproceduralnych szacowanie wielkości kodu jest konieczne przed rozpoczęciem kodowania Jakość Oprogramowania Pomiary w inżynierii oprogramowania 7

Metryki zorientowane na funkcje punkty funkcyjne (FP Function Points) punkty funkcjonalne (FP Feature Points) Jakość Oprogramowania Pomiary w inżynierii oprogramowania 8

Punkty funkcyjne (1) Parametr pomiarowy Liczba Współczynnik wagowy Prosty Średni Złożony Liczba ważona Liczba wejść od użytkownika 3 4 6 = Liczba wyjść do użytkownika 4 5 7 = Liczba interakcji z użytkownikiem 3 4 6 = Liczba plików 7 10 15 = Liczba interfejsów zewnętrznych 5 7 10 = Liczba punktów Jakość Oprogramowania Pomiary w inżynierii oprogramowania 9

Punkty funkcyjne (2) F i : 0 1 2 3 4 5 brak wpływu incydentalnie umiarkowanie średnio znacząco zasadniczo 1. Czy system wymaga wiarygodnego zachowywania i odzyskiwania danych? 2. Czy wymagane jest przekazywanie danych? 3. Czy występują funkcje przetwarzania rozproszonego? 4. Czy wydajność jest krytyczna? 5. Czy system ma pracować w istniejącym, trudnym środowisku operacyjnym? 6. Czy system wymaga wprowadzania danych on-line? 7. Czy dane wprowadzane on-line wymagają transakcji wejściowych zbudowanych na wielu ekranach lub operacjach? 8. Czy główne pliki są aktualizowane on-line? 9. Czy wejścia, wyjścia, pliki lub interakcje są złożone? 10. Czy wewnętrzne przetwarzanie jest złożone? 11. Czy kod jest zaprojektowany do powtórnego wykorzystania? 12. Czy konwersja i instalacja jest zawarta w projekcie? 13. Czy system został zaprojektowany dla wielu instalacji w różnych organizacjach? 14. Czy aplikacja jest zaprojektowana w sposób przyjazny dla użytkownika i tak, by ułatwiać wprowadzanie zmian? Jakość Oprogramowania Pomiary w inżynierii oprogramowania 10

Punkty funkcyjne (3) FP = liczba punktów [0,65 + 0,01 x Sum(F i )] Metryki pośrednie produktywność = FP/pracochłonność awaryjność = ilość defektów/fp kosztowność = koszt/fp udokumentowanie = wielkość dokumentacji/fp Jakość Oprogramowania Pomiary w inżynierii oprogramowania 11

Punkty funkcjonalne Parametr pomiarowy Liczba Waga Liczba ważona Liczba wejść od użytkownika 4 = Liczba wyjść do użytkownika 5 = Liczba interakcji z użytkownikiem 4 = Liczba plików 7 = Liczba interfejsów zewnętrznych 7 = Algorytmy 3 = Liczba punktów Jakość Oprogramowania Pomiary w inżynierii oprogramowania 12

Punkty funkcyjne/ funkcjonalne (za i przeciw) Za są niezależne od języka programowania nadają się zarówno dla języków proceduralnych jak i nieproceduralnych mogą być stosowane we wczesnych fazach planowania Przeciw obliczenia mają charakter częściowo subiektywny dane są trudne do zebrania nie mają bezpośredniego znaczenia fizycznego Jakość Oprogramowania Pomiary w inżynierii oprogramowania 13

Zależność LOC/FP dla różnych języków programowania Język programowania LOC/FP Asembler 300 COBOL 100 FORTRAN 100 PASCAL 90 ADA 70 Języki obiektowe 30 Języki czwartej generacji 20 Generatory kodu 15 Jakość Oprogramowania Pomiary w inżynierii oprogramowania 14

Metryki złożoności metryka Halsteada metryka cyklometryczna McCabe a Jakość Oprogramowania Pomiary w inżynierii oprogramowania 15

Metryki Halsteada (1) n 1 liczba różnych operatorów w programie n 2 liczba różnych operandów w programie N 1 całkowita liczba operatorów N 2 całkowita liczba operandów Jakość Oprogramowania Pomiary w inżynierii oprogramowania 16

Metryki Halsteada przykład (1) Sub Sort(X,N) Dim X(N) If N<2 Return For I = 2 To N For J = 1 To I IF X(I)<X(J) Then Save = X(I) X(I) = X(J) X(J) = Save End If Next Next End Sub Lp Operator Liczba 1 koniec instrukcji 7 2 indeksowanie 6 3 = 5 4 IF 2 5 FOR 2 6, 2 7 < 2 8 RETURN 1 9 koniec programu 1 n 1 =9 N 1 =28 Jakość Oprogramowania Pomiary w inżynierii oprogramowania 17

Metryki Halsteada przykład (2) Sub Sort(X,N) Dim X(N) If N<2 Return For I = 2 To N For J = 1 To I IF X(I)<X(J) Then Save = X(I) X(I) = X(J) X(J) = Save End If Next Next End Sub Lp Operand Liczba 1 X 6 2 I 5 3 J 4 4 N 2 5 2 2 6 Save 2 7 1 1 n 2 =7 N 2 =22 Jakość Oprogramowania Pomiary w inżynierii oprogramowania 18

Metryki Halsteada (3) długość programu: N = N1 + N2 rozmiar słownika: n = n 1 + n 2 objętość algorytmu: V = N log 2 (n) stosowana zamiast LOC objętość funkcji powinna być od 20 do 1000 objętość pliku powinna być od 100 do 8000 poziom trudności: D = (n 1 /2)*(N 2 /n 2 ) wyznacza stopień odporności na błędy poziom programu: L = 1/D wysiłek implementacyjny: E = V*D czas na implementację: T = E/18 (w sekundach) liczba potencjalnych błędów: B = E (2/3) / 3000 Jakość Oprogramowania Pomiary w inżynierii oprogramowania 19

Metryka złożoności cyklometrycznej McCabe a R 1 R 2 R 5 R 3 R 4 v(g) = 5 oznacza liczbę potencjalnych ścieżek wykonania dla funkcji powinna nie większa niż 15 dla plików powinna nie większa niż 100 Maintainability Index = MAX(0,(171-5.2 * ln(halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(lines of Code))*100 / 171) Jakość Oprogramowania Pomiary w inżynierii oprogramowania 20

Metryki spójności grafów Spójność grafu spójność słaba nierozdzielność (węzłowa, krawędziowa) spójność silna Jakość Oprogramowania Pomiary w inżynierii oprogramowania 21

Ankiety (kwestionariusze) Brak metryk obiektywnych Duża subiektywność Wymuszenie obiektywności pytania tak/nie Duża liczba pytań niechęć do odpowiedzi nierzetelność odpowiedzi Wiarygodność oceny Duża liczba oceniających Jakość Oprogramowania Pomiary w inżynierii oprogramowania 22

Bibliografia Pressman R.S., Software engineering. A practitioner s approach, McGraw-Hill, International Edition, 1992 Halstead Maurice, Elements of Software Science, Elsevier Science Ltd, 1977 http://www-ivs.cs.uni-magdeburg.de/sweng/us/experiments/hals/ http://yunus.hacettepe.edu.tr/~sencer/compl exity.html Jakość Oprogramowania Pomiary w inżynierii oprogramowania 23