Pomiary w inżynierii oprogramowania

Slides:



Advertisements
Podobne prezentacje
Programowanie obiektowe PO PO - LAB 6 Wojciech Pieprzyca.
Advertisements

Jarosław Kuchta Jakość Oprogramowania
Projektowanie w cyklu życia oprogramowania
Inżynieria Oprogramowania 10. Szacowanie kosztu oprogramowania cz. 2
Wprowadzenie do C++ Zajęcia 2.
PROGRAMOWANIE STRUKTURALNE
Inżynieria Oprogramowania 10. Szacowanie kosztu oprogramowania cz. 1
Wydział Zastosowań Informatyki i Matematyki SGGW
Opracowanie zasad tworzenia programów ochrony przed hałasem mieszkańców terenów przygranicznych związanych z funkcjonowaniem dużych przejść granicznych.
JAKOŚĆ PRODUKTU - USŁUGI
Budowa i integracja systemów informacyjnych
DOKUMENTOWANIE PROCESU ZINTEGROWANEGO
Węgiel jako wyrób Jacek Węglarczyk.
Co UML może zrobić dla Twojego projektu?
Próba eksperymentalnej oceny metody PROBE
Dokumentowanie wymagań w języku XML
Szacowanie rozmiaru i pracochłonności
Szacowanie rozmiaru i pracochłonności
Copyright © Jerzy R. Nawrocki Szacowanie rozmiaru i pracochłonności Inżynieria oprogramowania.
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Szacowanie rozmiaru oprogramowania
Jarosław Kuchta Jakość Systemów Informatycznych
Pomiary w inżynierii oprogramowania
Jakość systemów informacyjnych (aspekt eksploatacyjny)
Metody Funkcyjne FPA Maciej Bukowski PJWSTK grudzień 2006.
Jeden z języków programowania, który powinieneś znać
Dalsze elementy metodologii projektowania. Naszym celem jest...
Analiza, projekt i częściowa implementacja systemu obsługi kina
Wykład 4 Analiza i projektowanie obiektowe
Wykład 7 Projektowanie kodu oprogramowania
Wykład 2 Cykl życia systemu informacyjnego
Szacowanie złożoności oprogramowania
C.d. wstępu do tematyki RUP
Instytut Tele- i Radiotechniczny WARSZAWA
Programowanie w języku Matlab
Wykład 1 – część pierwsza
Wymiana integracja ? oprogramowania dr Danuta Kajrunajtys.
Model I/O bazujący na HSWN Problem uczenia sieci HSWN
Maszyna wirtualna ang. virtual machine, VM.
Zaprojektowanie i wykonanie prototypowego systemu obiegu dokumentów (workflow) dla Dziekanatu Wydziału z wykorzystaniem narzędzi open-source i cloud computing.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Rynek tłumaczeń i lokalizacji w Polsce, Wrocław marca 2009r. Małgorzata Haas-Tokarska Maksymilian Nawrocki MORAVIA IT.
Programowanie obiektowe – język C++
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Systemy wbudowane Wykład nr 3: Komputerowe systemy pomiarowo-sterujące
SPECJALNOŚĆ: Oprogramowanie Systemowe
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski.
Walidacja danych alina suchomska.
Pojęcie sterowania przepływem produkcji
ŁUKASZ DZWONKOWSKI Modele zwinne i ekstremalne. Podejście tradycyjne
Zarządzanie projektami informatycznymi
Studium osiągalności. Rozmiar projektu (np. w punktach funkcyjny projektu w porównaniu do rozmiaru zakładanego zespołu projektowego i czasu Dostępność.
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Struktura systemu operacyjnego
Dokumentacja programu komputerowego i etapy tworzenia programów.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Innowacyjne metody zarządzania jakością oprogramowania Przeglądy oprogramowania i standard IEEE 1028 Bartosz Michalik
(c) InMoST 2006 Plan szkolenia ▪ Wprowadzenie (9:00-10:30): Czym jest szacowanie? (MO) Systematyczne podejście do planowania (ŁO) Planowanie, a kalendarz.
Programowanie Obiektowe – Epilog
Różnice między programowanie strukturalnym a obiektowym
Projekt modułu BANK INTERNETOWY Moduł funkcji banku
Budowa i integracja systemów informacyjnych
Wykład 1 – część pierwsza
IEEE SPMP Autor : Tomasz Czwarno
Zgłoszenie w ramach kategorii Razem
Zapis prezentacji:

Pomiary w inżynierii oprogramowania Jarosław Kuchta Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii 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ń Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

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

Kategorie pomiarów w inżynierii oprogramowania 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 Metryki techniczne Metryki jakości Metryki produktywności Metryki zorientowane na rozmiar Metryki zorientowane na funkcje Metryki zorientowane na ludzi Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

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

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 Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

Metryki zorientowane na rozmiar (za i przeciw) 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 Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

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

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

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

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

Pomiary w inżynierii oprogramowania 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 Liczba plików 7 Liczba interfejsów zewnętrznych Algorytmy 3 Liczba punktów Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

Punkty funkcyjne/ funkcjonalne (za i przeciw) 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 Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

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

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

Pomiary w inżynierii oprogramowania Metryki Halsteada (1) n1 – liczba różnych operatorów w programie n2 – liczba różnych operandów w programie N1 – całkowita liczba operatorów N2 – całkowita liczba operandów Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

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 End Sub Lp Operator Liczba 1 koniec instrukcji 7 2 indeksowanie 6 3 = 5 4 IF FOR , < 8 RETURN 9 koniec programu n1=9 N1=28 Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

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 End Sub Lp Operand Liczba 1 X 6 2 I 5 3 J 4 N Save 7 n2=7 N2=22 Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

Pomiary w inżynierii oprogramowania Metryki Halsteada (3) długość programu: N = N1 + N2 rozmiar słownika: n = n1 + n2 objętość algorytmu: V = N log2(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 = (n1/2)*(N2/n2) 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 Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

Metryka złożoności cyklometrycznej McCabe’a v(G) = 5 R3 R4 oznacza liczbę potencjalnych ścieżek wykonania dla funkcji powinna nie większa niż 15 dla plików powinna nie większa niż 100 Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

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

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 Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania

Pomiary w inżynierii oprogramowania 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/sw-eng/us/experiments/hals/ http://yunus.hacettepe.edu.tr/~sencer/complexity.html Dokumentacja i Jakość Oprogramowania Pomiary w inżynierii oprogramowania