Autor: mgr inż. DANIEL CZYCZYN-EGIRD Opiekun naukowy: dr hab. inż. profesor PK ADAM SŁOWIK

Podobne dokumenty
Model oceny jakości implementacji wzorców projektowych

Model oceny jakości implementacji wzorców projektowych

Zastosowanie sztucznej inteligencji w testowaniu oprogramowania

LISTA KURSÓW PLANOWANYCH DO URUCHOMIENIA W SEMESTRZE ZIMOWYM 2015/2016

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Metryki oprogramowania. Marian Jureczko

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

PRZEWODNIK PO PRZEDMIOCIE

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Wykład 1 Inżynieria Oprogramowania

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Egzamin / zaliczenie na ocenę*

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

ROZWÓJ SYSTEMÓW SZTUCZNEJ INTELIGENCJI W PERSPEKTYWIE "PRZEMYSŁ 4.0"

INŻYNIERIA OPROGRAMOWANIA

PRZEWODNIK PO PRZEDMIOCIE

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

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

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

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

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

E-ID1S-08-s5. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Koncepcja hybrydowej metody do oceny jakości zaimplementowanych wzorców projektowych

PODYPLOMOWE STUDIA ZAAWANSOWANE METODY ANALIZY DANYCH I DATA MINING W BIZNESIE

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Projekt zespołowy D1_10

KARTA MODUŁU KSZTAŁCENIA

INŻYNIERIA OPROGRAMOWANIA

KARTA PRZEDMIOTU. Projekt zespołowy D1_10

Zastosowanie sieci neuronowych w problemie klasyfikacji wielokategorialnej. Adam Żychowski

KIERUNKOWE EFEKTY KSZTAŁCENIA

Problem eliminacji nieprzystających elementów w zadaniu rozpoznania wzorca Marcin Luckner

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

Programowanie Zespołowe

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006

Szczegółowy plan szkolenia

Podsumowanie wyników ankiety

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

kierunkowy (podstawowy / kierunkowy / inny HES) nieobowiązkowy (obowiązkowy / nieobowiązkowy) polski drugi semestr letni (semestr zimowy / letni)

PRZEWODNIK PO PRZEDMIOCIE

PREDYKCJA DEFEKTÓW NA PODSTAWIE METRYK OPROGRAMOWANIA IDENTYFIKACJA KLAS PROJEKTÓW *

Współczesna problematyka klasyfikacji Informatyki

PRZEWODNIK PO PRZEDMIOCIE

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

ID1SII4. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

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

Systemy uczące się Lab 4

zna metody matematyczne w zakresie niezbędnym do formalnego i ilościowego opisu, zrozumienia i modelowania problemów z różnych

Systemy pomiarowo-diagnostyczne. Metody uczenia maszynowego wykład I dr inż. 2015/2016

Narzędzia CASE dla.net. Łukasz Popiel

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

Przedsięwzięcia Informatyczne w Zarządzaniu

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

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

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

4.1. Wprowadzenie Podstawowe definicje Algorytm określania wartości parametrów w regresji logistycznej...74

Etapy życia oprogramowania

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

Projekt Kompetencyjny - założenia

Politechnika Wrocławska Wydział Elektroniki Informatyka

Odniesienie symbol II/III [1] [2] [3] [4] [5] Efekt kształcenia. Wiedza

Podstawy modelowania programów Kod przedmiotu

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

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

ŚcieŜki Certyfikacji Testera. Karol Mioduszewski - CORRSE

TRUDNOŚCI W IMPLEMENTACJI WZORCÓW PROJEKTOWYCH W MAŁYCH ZESPOŁACH PROGRAMISTYCZNYCH

Inżynieria oprogramowania - opis przedmiotu

ZARZĄDZANIE I INŻYNIERIA PRODUKCJI

MODEL OCENY JAKOŚCI IMPLEMENTACJI WZORCÓW PROJEKTOWYCH W OPROGRAMOWANIU

E-1IZ3-06-s6. Inżynieria Programowania. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Jakość w procesie wytwarzania oprogramowania

Katalog szkoleń certyfikowanych Testowanie Oprogramowania

Metody tworzenia efektywnych komitetów klasyfikatorów jednoklasowych Bartosz Krawczyk Katedra Systemów i Sieci Komputerowych Politechnika Wrocławska

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Analiza i wizualizacja danych Data analysis and visualization

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

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW

PRZEWODNIK PO PRZEDMIOCIE

Optymalizacja Automatycznych Testów Regresywnych

STUDIA I MONOGRAFIE NR

Widzenie komputerowe (computer vision)

Efekty kształcenia dla makrokierunku: INFORMATYKA STOSOWANA Z KOMPUTEROWĄ NAUKĄ O MATERIAŁACH Wydział: MECHANICZNY TECHNOLOGICZNY

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016

ZARZĄDZANIE PROCESEM TESTOWYM (SQAM Test Manager) 7-8 luty 2008, Warszawa Zdobądź z nami certyfikat SQAM Test Manager.

Zarządzanie ryzykiem w projektach informatycznych. Marcin Krysiński marcin@krysinski.eu

Projekt grupowy - opis przedmiotu

Podstawy programowania III WYKŁAD 4

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

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

Zasady organizacji projektów informatycznych

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

Rok akademicki: 2017/2018 Kod: IIN s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

KIERUNKOWE EFEKTY KSZTAŁCENIA

Projekt przejściowy 2015/2016 BARTOSZ JABŁOŃSKI, TOMASZ JANICZEK

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

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

REFERAT PRACY DYPLOMOWEJ

Opis efektów kształcenia dla modułu zajęć

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

Wytwarzanie oprogramowania

Transkrypt:

Autor: mgr inż. DANIEL CZYCZYN-EGIRD Opiekun naukowy: dr hab. inż. profesor PK ADAM SŁOWIK Politechnika Koszalińska 2017

1. Zapewnienie jakości w inżynierii oprogramowania 2. Modele predykcji defektów 3. Sformułowanie problemu 4. Koncepcja proponowanego rozwiązania 5. Podsumowanie 6. Dodatek: Lista osiągnięć 2

Definicja jakości oprogramowania wg ISO/IEC 9126-1:2001 *: 1. Funkcjonalność 2. Niezawodność 3. Użyteczność 4. Efektywność 5. Konserwowalność 6. Przenośność * 9126-3 Software Engineering Product quality Part 3: Internal metrics 3

Definicja jakości oprogramowania w literaturze: 1. Zgodność z wymaganiami [Philip B. Crosby] 2. Przydatność do użytku [Frank M. Gryna] 3. BRAK DEFEKTÓW W PRODUKCIE [Stephen H. Kan] 4

Definicja defektu: Grafika: http://testerzy.pl/baza-wiedzy/defekt-blad 5

Testowanie oprogramowania Najobszerniejsze działania zapewniające wysoką jakość Koszty potrafią przekroczyć 50% całkowitych kosztów wytworzenia systemu informatycznego W metodykach zwinnych występuje tzw. programowanie przez testy (TDD), zaczyna się od przygotowania testów, a następnie wykonuje się implementacje Istnieje szereg narzędzi do zarządzania testami i raportowania, do automatyzacji oraz narzędzi do zarządzania incydentami. 6

http://testerzy.pl/images/narzedzia-w-pracy-testera-02.png 7

Inspekcje oprogramowania Przegląd formalny stanu prac Statyczna analiza kodu programu lub dokumentacji projektowej Kilkugodzinne spotkanie, na którym autor dokumentu lub fragmentu programu relacjonuje wykonane przez siebie modyfikacje Popularna formuła inspekcji -> tzw. Inspekcje Fagana PROJEKTOWANIE TESTY I1 IMPLEMENTACJA I2 I3 JEDNOSTKOWE 8

Modele przyrostu niezawodności Ukazanie poprawy niezawodności modułu lub systemu jako wyniku poprawiania defektów w czasie Przewidywanie przyszłej niezawodności oprogramowania na podstawie danych historycznych Szacowania poziomu niezawodności charakterystyki kodu (metryki) statystyczne korelacje danych (np. z funkcją wykładniczą) 9

Metryki oprogramowania Miara pewnej właściwości oprogramowania lub jego specyfikacji (miara atrybutu) Funkcja odwzorowująca jednostkę oprogramowania w wartość liczbową [IEEE 1061-1998] METRYKI PRODUKTU np. - Number of Public Methods (NPM) - Data Access Metric (DAM) - etc. METRYKI PROCESU np. - Number of Revisions (NR) - Number of Distinct Commiters (NDC) - etc. 10

Narzędzia, które na podstawie wartości metryk danego artefaktu dokonują oszacowania (predykcji) liczby defektów znajdujących się w tym artefakcie Modele takie są bardzo przydatne w procesie testowania, kiedy w wyniku ograniczeń budżetowych nie jesteśmy w stanie przetestować wszystkich wytworzonych artefaktów Zasada 80:20 * - część kodu źródłowego (20%) -> defekty (80%) * Elaine J. Weyuker, Thomas J. Ostrand, Robert M. Bell, Do too many cooks spoil the broth? Using the number of developers to enhance defect prediction models, Empirical Software Engineering, 13(5):539 559, 2008 11

Cel stosowania? OSZCZĘDNOŚĆ CZAS FINANSE KAPITAŁ LUDZKI LEPSZA OPINIA/RENOMA WIĘKSZA POPULARNOŚĆ/ ZAUFANIE WIĘKSZA SPRZEDAŻ 12

Dane Dostęp do kodu źródłowego Dostęp do systemów kontroli wersji (np. SVN) Dostęp do systemów zarządzania projektem i śledzenia defektów (np. JIRA) Ograniczenia Różnorodność metryk oprogramowania Zastosowanie do obiektowych języków programowania Pytanie Czy opierając się na kodzie źródłowym oraz danych historycznych dotyczących wykrytych wcześniej defektów, możliwe jest pozyskanie informacji o potencjalnych ukrytych defektach, które nie zostały jeszcze zdiagnozowane? 13

Cel Opracowanie oraz zweryfikowanie zestawu modeli klasyfikacyjnych służących do predykcji defektów oprogramowania w projektach programistycznych opartych na paradygmacie programowania obiektowego. Wynik klasyfikacji opisujący predykcję możliwych defektów oprogramowania w oparciu o dane wejściowe przyczyni się do zapewnienia lub utrzymania jakości tworzonego oprogramowania. 14

Teza Hybrydowe klasyfikatory pozwalają na efektywniejszą predykcję defektów oprogramowania w projektach informatycznych tworzonych według paradygmatu programowania obiektowego. Są one skuteczniejsze w stosunku do typowo stosowanych modeli klasyfikacyjnych zapewniając tym samym utrzymanie lub poprawę jakości tworzonego oprogramowania. 15

Przegląd i porównanie metod budowy modeli predykcji defektów w oprogramowaniu Opracowanie hybrydowego (=>BARDZIEJ SKUTECZNEGO) modelu opisującego wystąpienie możliwych defektów Zastosowanie wybranych( i zmodyfikowanych autorsko) technik eksploracji danych do budowy modelu (np. do redukcji wymiarowości zadania, odrzucanie najmniej istotnych atrybutów itp.) Opracowanie modelu matematycznego predykcji defektów Wykonanie eksperymentów testowych (jakość, skuteczność) Analiza i ocena otrzymanych wyników, sformułowanie wniosków końcowych 16

Ocena metryk oprogramowania wraz z analizą danych historycznych pozwolą na predykcję defektów w badanym oprogramowaniu. Zaproponowane rozwiązania techniczne pozwolą na częściową automatyzację procesu akwizycji danych. Modele predykcji defektów będą możliwe do zastosowania dla technologii obiektowych. 17

AUTORSKIE IMPLEMENTACJE Akwizycja danych do badań Określenie i wyznaczenie atrybutów klasyfikacji Projekt i implementacja hybrydowych modeli klasyfikacyjnych Projekty open source - Kody źródłowe - SVN - JIRA, Bugzilla, Fossil etc. - Drzewa decyzyjne - Sieci neuronowe - Zbiory przybliżone Ocena jakości i wnioski Próba wdrożenia w przemyśle 18

UCZENIE Liczba klas w pliku WYSOKIE WYSOKIE Śr. Ilość metod w klasie NISKIE Algorytm klasyfikacji Liczba klas w pliku Dane treningowe Śr. ilość metod w klasie Ryzyko defektu 12 5 NISKIE 15 20 WYSOKIE 19 13 NISKIE 50 8 WYSOKIE 7 17 WYSOKIE Klasyfikator (model) if Liczba klas w pliku > 20 or Śr. il. metod w klasie > 15 then Ryzyko = WYSOKIE 19

TESTOWANIE Klasyfikator (model) Dane testowe Liczba klas w pliku Śr. ilość metod w klasie Ryzyko defektu 18 7 NISKIE 22 12 WYSOKIE 16 6 WYSOKIE 37 8 WYSOKIE Ryzyko defektu NISKIE WYSOKIE NISKIE WYSOKIE Dokładność = 3/4 = 75% 20

PREDYKCJA Klasyfikator (model) Dane do predykcji (nowe) Liczba klas w pliku Śr. ilość metod w klasie Ryzyko defektu 100 5? 30 12? 16 6? 67 17? Ryzyko defektu WYSOKIE WYSOKIE NISKIE WYSOKIE 21

Szacunkowo 50% 50% WYKONANO POZOSTAŁO Przewidywany termin zamknięcia przewodu doktorskiego: rok akademicki 2019/2020 22

Zapewnienie jakości w inżynierii oprogramowania Wstęp Aspekty dotyczące jakości oprogramowania Opis metryk oprogramowania Modele predykcji defektów Cel i teza pracy Opis rozdziałów Przegląd stanu wiedzy o modelach predykcji defektów Metryki produktu Metryki procesu Opis czynników istotnych dla procesu predykcji defektów Predykcja pomiędzy projektami Przegląd stanu wiedzy o wybranych technikach eksploracji danych Opis wybranych technik Pozyskiwanie danych do badań Informacje o przebadanych projektach Przykłady użytych metryk produktu Przykłady użytych metryk procesu Opis narzędzi zastosowanych do zbierania i analizowania danych 23

Zastosowanie hybrydowych modeli predykcji defektów Definicja hybrydowego modelu predykcji defektów Opis eksperymentu Wyniki eksperymentu Walidacja uzyskanych wyników Podsumowanie Zastosowanie uzyskanych wyników w praktyce Motywacja zastosowania Wdrożenie modelu predykcji defektów na konkretnym przykładzie Podsumowanie efektów wdrożenia Podsumowanie Część badawcza Część implementacyjna Literatura 24

Publikacje w języku polskim: 1. Daniel Czyczyn-Egird: Eksploracja danych na podstawie szacowania informacji z wykorzystaniem regresji liniowej, Modele Inżynierii Teleinformatyki, 2015 2. Daniel Czyczyn-Egird, Rafał Wojszczyk: Zastosowanie technik eksploracji danych na przykładzie badania popularności wzorców projektowych w serwisie społecznościowym Stackoverflow.com, Zeszyty Naukowe WEiI, 2016 3. Daniel Czyczyn-Egird, Rafał Wojszczyk: Predykcja ataków DDoS za pomocą technik eksploracji danych Zeszyty Naukowe WEiI (przyjęte do druku), 2017 25

Publikacje w języku angielskim: 1. Daniel Czyczyn-Egird, Rafał Wojszczyk: Determining the Popularity of Design Patterns Used by Programmers Based on the Analysis of Questions and Answers on Stackoverflow.com Social Network, Springer International Publishing, 2016 2. Daniel Czyczyn-Egird, Rafał Wojszczyk: The effectiveness of data mining techniques in the detection of DDoS attacks, Springer International Publishing, 2017 3. Daniel Czyczyn-Egird, Rafał Wojszczyk: DDoS Attacks Prediction in a Simulation Environment by means of Data Mining Techniques, Studia Informatica Politechnika Śląska, 2017 26

Konferencje: 1. Krajowa Konferencja Studentów i Młodych Pracowników Nauki w Unieściu w dniach 20-22 maja 2015 2. Krajowa Konferencja Studentów i Młodych Pracowników Nauki w Szczecinie w dniach 20-21 kwietnia 2016 3. 23rd International Science Conference on Computer Networks CN2016 w Brunowie w dniach 14-17 czerwca 2016 4. Krajowa Konferencja Studentów i Młodych Pracowników Nauki w Mielnie w dniach 20-22 maja 2017 5. 14th International Conference on Distributed Computing and Artificial Intelligence (DCAI'17) Polytechnic of Porto - Porto (Portugal) 21st-23rd June, 2017 27

28

Barry W. Boehm, Philip N. Papaccio. Understanding and controlling software costs. IEEE Transactions on Software Engineering, 14:1462 1477, Październik 1988. Elaine J. Weyuker, Thomas J. Ostrand, Robert M. Bell. Do too many cooks spoil the broth? Using the number of developers to enhance defect prediction models. Empirical Software Engineering, 13(5):539 559, 2008. Elaine J. Weyuker, Thomas J. Ostrand, Robert M. Bell. Using developer information as a factor for fault prediction. PROMISE 07: Proceedings of the Third International Workshop on Predictor Modelsin Software Engineering, Washington, DC, USA, 2007. IEEE Computer Society Stephen H. Kan. Metrics and Models in Software Quality Engineering. Addison-Wesley Longman PublishingCo., Inc., Boston, MA, USA, 2002. Cagatay Catal, Banu Diri. Review: A systematic review of software fault prediction studies. Expert Systems with Applications, USA, 2009. Lionel C. Briand, Jurgen Wust, John W. Daly, D. Victor Porter. Exploring the relationship between design measures and software quality in objectoriented systems. Journal of Systems and Software, 51:245 273, Maj 2000 29

MDA - Model Driven Architecture Zbiór metod porządkujących proces tworzenia systemów komputerowych opartych na budowie modeli i ich transformacji. Cykl życia oprogramowania: 1. CIM (ang. Computational Independent Model) - model domenowy, środowisko, czy też wymagania. 2. PIM (ang. Platform-Independent Model) - perspektywa logiczna (projektowa) systemu. 3. PSM (ang. Platform-Specific Model) opis systemu w perspektywie implementacyjnej 4. PDM (ang. Platform Description Model) opis szczegółów technicznych perspektywy wdrożeniowej 30

PRZYKŁADOWE METODY Klasyfikacja poprzez indukcję drzew decyzyjnych Klasyfikatory Bayes owskie Sieci Neuronowe Analiza statystyczna Metaheurystyki (np. algorytmy genetyczne) Zbiory przybliżone k-nn k-najbliższe sąsiedztwo 31

32

33