Model oceny jakości implementacji wzorców projektowych

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

Programowanie obiektowe

Programowanie Zespołowe

Metoda przedwdrożeniowego wymiarowania zmian oprogramowania wybranej klasy systemów ERP

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

INŻYNIERIA OPROGRAMOWANIA

Metoda przedwdrożeniowego wymiarowania zmian oprogramowania wybranej klasy systemów ERP

Metoda przedwdrożeniowego wymiarowania zmian oprogramowania wybranej klasy systemów ERP

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

Tester oprogramowania 2014/15 Tematy prac dyplomowych

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

PRZEWODNIK PO PRZEDMIOCIE

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

Usługa: Audyt kodu źródłowego

Zasady organizacji projektów informatycznych

PRZEWODNIK PO PRZEDMIOCIE

RADA WYDZIAŁU Elektroniki i Informatyki. Sprawozdanie z realizacji praktyk studenckich na kierunku Informatyka w roku akademickim 2017/18

Analiza i projektowanie obiektowe w UML Kod przedmiotu

Opis metodyki i procesu produkcji oprogramowania

Wprowadzenie do programowania aplikacji mobilnych

Modelowanie i Programowanie Obiektowe

Etapy życia oprogramowania

KARTA MODUŁU KSZTAŁCENIA

Wzorce projektowe. dr inż. Marcin Pietroo

PRZEWODNIK PO PRZEDMIOCIE

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

Plik pobrano z Tytuł: Wzorce projektowe, cz. 2 Strategy Ostatnia aktualizacja:

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Wykorzystanie modeli danych do weryfikacji implementacji wzorców projektowych

Programowanie obiektowe

Podstawy modelowania programów Kod przedmiotu

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

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

Inżynieria oprogramowania. Jan Magott

Zaawansowane programowanie w C++ (PCP)

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.


Wykład 1 Inżynieria Oprogramowania

Wzorce projektowe i refaktoryzacja

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

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?

Programowanie obiektowe

Programowanie obiektowe

Rok akademicki: 2014/2015 Kod: IEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

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

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Rok akademicki: 2012/2013 Kod: IET SW-s Punkty ECTS: 3. Kierunek: Elektronika i Telekomunikacja Specjalność: Systemy wbudowane

PRZEWODNIK PO PRZEDMIOCIE

PROJEKT Z BAZ DANYCH

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

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Egzamin / zaliczenie na ocenę*

INŻYNIERIA OPROGRAMOWANIA

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

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

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

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

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Web frameworks do budowy aplikacji zgodnych z J2EE

Inżynieria Oprogramowania w Praktyce

PRZEWODNIK PO PRZEDMIOCIE

Inżynieria oprogramowania

Modele inżynierii teleinformatyki 9 (Wybrane zastosowania)

Recenzja rozprawy doktorskiej pana mgr inż. Rafała Wojszczyka pt. Model oceny jakości implementacji wzorców projektowych

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

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

Zastosowanie sztucznych sieci neuronowych w prognozowaniu szeregów czasowych (prezentacja 2)

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

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

Zaawansowane programowanie obiektowe - wykład 5

Dokument Detaliczny Projektu

Akademia ADB Wykład I Praca w grupie i jakość kodu

Organizacja procesu projektowania, rozwoju i serwisowania systemu wspomagającego zarzadzanie uczelnią

Programowanie obiektowe

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

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

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Zaawansowane programowanie w języku C++

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

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

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

KIERUNKOWE EFEKTY KSZTAŁCENIA

Lokalizacja Oprogramowania

JAK OPTYMALNIE DOBRAĆ ODPOWIEDNIE TECHNOLOGIE INFORMATYCZNE?

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Narzędzia CASE dla.net. Łukasz Popiel

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

problem w określonym kontekście siły istotę jego rozwiązania

Spis treści. Wstęp Część I Internet rozwiązania techniczne... 13

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

PRZEWODNIK PO PRZEDMIOCIE

Transkrypt:

Model oceny jakości implementacji wzorców projektowych mgr inż. Rafał Wojszczyk Promotor: prof. dr hab. inż. Volodymyr Khadzhynov Promotor pomocniczy: dr inż. Piotr Ratuszniak Politechnika Koszalińska 1

Agenda 1. Geneza i problem badawczy 2. Metoda oceny jakości implementacji wzorców projektowych 3. Przykład użycia w/w metody 4. Badania weryfikujące i podsumowanie 2

Geneza zespoły wytwórcze Popularność małe zespoły, znikoma ilość dokumentacji projektowej (lub brak). Wytwarzają: autorskie oprogramowanie bazodanowe w nowoczesnym, obiektowym języku programowania, stale rozwijane, aby zapewnić konkurencyjność. Agile Spiralny Brak RUP Kaskadowy Pozostałe Jak obniżyć koszty konserwacji i rozwoju oprogramowania? 3

Geneza wzorce projektowe Szablony rozwiązań dla powtarzających się problemów w programowaniu obiektowym. Wymaga zrozumienia i własnego wkładu od osoby implementującej. Korzyści: unikanie wybranych błędów, łatwiejsze poprawianie błędów, większa czytelność kodu, tańsza rozbudowa. Trudności: brak wzorcowych wzorców, brak automatycznej implementacji, różnorodność implementacji, zbyt luźne podejście w zwinnych zespołach, nie testuje się wzorców, pozorna implementacja. 4

Geneza przykład Singleton Cel: jeden egzemplarz klasy Jakość implementacji w kryterium rozbudowy i integracji Poziom jakości 1 (niski) 2 (średni) 3 (wysoki) Przykład implementacji wzorca public class Singleton1 { public Singleton1 instance = new Singleton1(); private Singleton1() { } } public class Singleton2 { static Singleton2 instance = new Singleton2(); private Singleton2() { } } public class Singleton3 { public static Singleton3 instance = new Singleton(); private Singleton3() { } } Konsekwencje Błędy w działaniu aplikacji, wymaga poprawy błędów i ich skutków (np. uszkodzenie danych) Brak możliwości integracji przez zewnętrzne aplikacje, wymaga ponownej implementacji Umożliwia integrację przez zewnętrzne aplikacje, łatwiejsze wykorzystanie mechanizmu refleksji 5

Geneza poziomy jakości 4. Występuje wzorzec i zapewnia korzyść Oczekiwany poziom jakości Alternatywne metody: Spine, Lepus2, D 3, Simplycity, Pinot 3. Występuje wzorzec i zapewnia korzyści, ale występują drobne usterki 2. Występuje wzorzec (spełnia cel) ale jego zastosowanie nie zapewnia korzyści 1. Brak wzorca, ale fragmenty implementacji przypominają wzorzec 0. Brak wzorca 6

Geneza proces wytwórczy A A1 A2 B1 B2 3 czas A1 iteracja z implementacją wzorca, B1 rozbudowa oprogramowania, A2, B2 czas zarezerwowany na przegląd i ogólną poprawę oprogramowania, tzw. code-review, w tym wykorzystanie metod statycznej analizy oprogramowania, A3 ocena jakości implementacji wzorców projektowych i poprawa implementacji wzorców. 7

Problem badawczy Zwinny zespół wytwórczy stale rozwija swój produkt programowy (aplikacja bazodanowa napisana w obiektowym języku programowania), w którym implementuje wzorce projektowe, aby obniżyć koszty rozbudowy i konserwacji. Poszukiwana jest metoda oceny jakości implementacji wzorców projektowych, którą można wykorzystać w trakcie tzw. code-review. A1 A2? 8

Teza Struktury danych oparte na założeniach paradygmatu programowania obiektowego oraz wykorzystanie przynajmniej dwóch rodzajów metryk 1, umożliwia budowę metody oceny jakości implementacji wzorców projektowych, która pozwala uzyskiwać wyniki oceny z lepszą dokładnością i nie większym kosztem niż jest to możliwe przy pomocy alternatywnych metod statycznej analizy oprogramowania. 1 Opisują szablony wzorców 9

Rozwiązanie wykorzystanie w procesie wytwórczym A1 A2 Testy funkcjonalne A2 Wzajemne inspekcje kodu A2 Pozostałe testy i sprawdzanie kodu A3 Proponowana metoda to uzupełnienie metod statycznej analizy oprogramowania, które są wykorzystywane w trakcie code-review (dobór metod zależy od konkretnego zespołu wytwórczego) 10

Rozwiązanie - Metoda oceny implementacji wzorców projektowych A1 A2 A 3 B1 B2 Wytworzony kod Ocena Wynik oceny Nie Lider zespołu podejmuje decyzję o poprawie implementacji Model Programu Poprawa kodu Tak 11

Rozwiązanie podejmowanie decyzji zawężony obszar kodu źródłowego do sprawdzenia wyłącznie fragmenty poniżej oczekiwanego poziomu, znana jest liczba i miejsca występowania usterek, podpowiedzi 12 poprawy. Wynik oceny: 2 poniżej oczekiwań 3 zgodne z oczekiwaniami Element w kodzie źródł. Plik Wiersz Poziom jakości Klasa1 Class1 12 3 Pole1 Class1 45 2 Właściwość2 Class2 70 2 Liczba modyfikacji: 80 % kodu poniżej 3 poziomu: 30 Jeżeli: implementacja poniżej 3 poziomu i program będzie rozbudowywany i liczba modyfikacji mieści się w A3, to: popraw implementację, jeżeli nie to: przejdź do kolejnej iteracji.

Przykład wykorzystania budowa modelu wzorca i metryk ch 1 ch 2 ch 3 ch 4 ch 4 Diagram klas wzorca Strategia 4 3 2 1 0 Model Wzorca (charakterystyki): ch 1 = (deklaracja interfejsu, M 1 ) ch 2 = (deklaracja operacji, M 2 ) ch 3 = (realizacja interfejsu, M 3 ) ch 4 = (implementacja Operacji, M 4 ) ch 5 = (kontekst implementacji, M 5 ) ch 6 = (inicjalizacja i wybór, M 6 ) Model Metryk dla charakterystyka 1 (ch 1 ): 3 jeżeli MET, brak, public, Strategy, interface m 1,1 = 2 jeżeli MET, abstract, public, Strategy, class 1 jeżeli MET, brak, public, Strategy, class 4 3 2 1 0 4 jeżeli MET = 1 2 jeżeli 2 MET 10 m 1,2 = 1 jeżeli MET > 11 0 jeżeli MET = 0 Gdzie: MET zbiór metod w danym typie 13

Przykład wykorzystania - ocena A3 public abstract class SortStrategy t 1 =(Ø, Ø, MET 1, abstract, public, SortStrategy, class) Model programu 3, (MET, brak, public, Strategy, interface) m 1,1 = 2, MET, abstract, public, Strategy, class 1, MET, brak, public, Strategy, class 4, MET = 1 2, 2 MET 10 m 1,2 = 1, MET > 11 0, MET = 0 Model metryk Ocena Wynik oceny Wynik metryk: m 1,1 = 2, m 1,2 = 4 Wynik dla ch 1 = Min(m 1,1, m 1,2 ) = 2 Poniżej oczekiwanego poziomu 14

Przykład wykorzystania interpretacja wyniku A3 Wnioskowanie na podstawie wszystkich charakterystyk w kryterium rozbudowy: 42% kodu wzorca nie spełnia oczekiwanego poziomu jakości, 42% to 200 leksemów (pojedynczych słów w kodzie) do zmodyfikowania każda modyfikacja to dodatkowy koszt dla zespołu. 15

Przykład wykorzystania ocena po poprawie A3 public interface SortStrategy t 1 =(Ø, Ø, MET 1, brak, public, SortStrategy, interface) Model programu 3, (MET, brak, public, Strategy, interface) m 1,1 = ቐ2, MET, abstract, public, Strategy, class 1, MET, brak, public, Strategy, class m 1,2 = 4, MET = 1 2, 2 MET 10 1, MET > 11 0, MET = 0 Model metryk Ocena Wynik oceny Wynik metryk: m 1,1 = 3, m 1,2 = 4 Wynik dla ch 1 = Min(m 1,1, m 1,2 ) = 3 Spełnia oczekiwany poziom 16

Wstępny eksperyment weryfikacyjny symulacja bez oraz z użyciem metody, dodanie nowej operacji do wzorca Strategia, wykazanie nierówności: Koszt A + B > Koszt A + B I. A1 A2 B1 B2 Koszt A Koszt B II. A A1 A2 B1 3 B2 Koszt A Koszt B 17

Wynik eksperymentu każdy z uczestników dodał nową operację oraz poprawił błąd w jednej z istniejących operacji, program składał się z 24 typów (klas, interfejsów itp.). Uczestnik Sumaryczny koszt I przebiegu [rhb] Sumaryczny koszt II przebiegu [rbh] Zysk czasowy po zastosowaniu proponowanej metody 1 3,5 2 43% 2 5,5 4 28% 3 7 6 14% Średnio 28% 18

Plan weryfikacji praktycznej Przy współpracy z Quick-Solution. Przebieg: rozbudowa modelu wzorca i metryk wspólnie z zespołem, ocena implementacji wzorców po wykonaniu iteracji. Pytania do zespołu wytwórczego: Ile usterek zostało słusznie znalezionych przez metodę? Ile to fałszywe alarmy? Ile usterek zostało pominięte przez metodę? Budowa narzędzia (programu komputerowego) wspierającego metodę. 19

Plan weryfikacji dokładności i kosztu użycia analiza porównawcza opracowanej metody oraz Spine, Lepus2, na przykładzie wybranych wzorców (Singleton, Strategia, Fabryka, Stan), oczekiwane rezultaty: wykazanie większej dokładności proponowanej metody od alternatywnych, wyznaczenie minimalnego zestawu mierzonych własności (metryk), które są niezbędne, aby odróżnić 2 od 3 poziomu jakości, wykazanie niższego sumarycznego kosztu użycia proponowanej metody. 20

Kierunki dalszych badań ocena implementacji wzorców projektowych pod względem innych kryteriów, np. odporność na nieuprawnioną ingerencję w kod, wymienność modułów oprogramowania, zastosowanie do innych wzorców i dobrych praktyk, np. wzorce architektury (MVC, MVP), wzorce Martina Fowlera, zasady GRASP i SOLID. 21

Podsumowanie zdefiniowano problem związany z implementacją wzorców projektowych przez zwinne zespoły, zdefiniowano modele: programu komputerowego, wzorca projektowego, metryk, opracowano nową metodę oceny jakości implementacji wzorców, przeprowadzono wstępny eksperyment weryfikujący w/w metodę, opracowano plany dalszej weryfikacji. 22

Wykaz publikacji 1/4 Rafał Wojszczyk, Quality Assessment of Implementation of Strategy Design Pattern, w: Advances in Intelligent Systems and Computing,, Springer International Publishing, Switzerland 2017 przyjęte do druku. Rafał Wojszczyk, Piotr Ratuszniak, Trudności w implementacji wzorców projektowych w małych zespołach programistycznych, Research on Enterprise in Modern Economy theory and practice, Gdańsk 2017 przyjęte do druku. Rafał Wojszczyk, Włodzimierz Khadzhynov, The Process of Verifying the Implementation of Design Patterns - Used Data Models, w: Advances in Intelligent Systems and Computing, Vol. 521, strony od 103 do 116, Springer International Publishing, Switzerland 2017 - WoS. 23

Wykaz publikacji 2/4 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, w: Communications in Computer and Information Science, vol. 608, strony od 421 do 433, Springer International Publishing, Switzerland 2016 WoS. Rafał Wojszczyk, Robert Wójcik, The Model of Quality Assessment of Implementation of Design Patterns, w: Advances in Intelligent Systems and Computing, vol. 474, strony od 515 do 524, Springer International Publishing, Switzerland 2016 WoS. Rafał Wojszczyk, Włodzimierz Khadzhynov, Wykorzystanie modeli danych do weryfikacji implementacji wzorców projektowych, w: Zeszyty Naukowe Wydziału Elektroniki i Informatyki nr 10, strony od 193 do 209, Wydawnictwo Uczelniane Politechniki Koszalińskiej, ISSN 1897-7421, Koszalin 2016. 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, w: Zeszyty Naukowe Wydziału Elektroniki i Informatyki nr 10, strony od 81 do 94, Wydawnictwo Uczelniane Politechniki Koszalińskiej, ISSN 1897-7421, Koszalin 2016. 24

Wykaz publikacji 3/4 Rafał Wojszczyk, Włodzimierz Khadzhynov, Data Models in the Verification of the Singleton Pattern, w: Journal of Theoretical and Applied Computer Science, vol. 9, no. 3/2015, Szczecin 2016. Rafał Wojszczyk, Model oceny jakości implementacji wzorców projektowych w oprogramowaniu, w: Innowacje w zarządzaniu i inżynierii produkcji, Tom II, strony od 300 do 309, Oficyna Wydawnicza Polskiego Towarzystwa Zarządzania Produkcją, Opole 2016. Rafał Wojszczyk, The model and function of quality assessment of implementation of design patterns, w: Applied Computer Science, Vol. 11, No. 3, strony od 45 do 56, Politechnika Lubelska, ISSN 1895-3735, Lublin 2015. Rafał Wojszczyk, Weryfikacja poprawności implementacji struktury wzorców projektowych w oparciu o model referencyjny, w: Od procesów do oprogramowania: badania i praktyka, strony od 73 do 83, Zeszyty Rady Naukowej Polskiego Towarzystwa Informatycznego, ISBN 978-83-60810-73-6, Warszawa 2015. 25

Wykaz publikacji 4/4 Rafał Wojszczyk, Koncepcja hybrydowej metody do oceny jakości zaimplementowanych wzorców projektowych, w: Zeszyty Naukowe Wydziału Elektroniki i Informatyki nr 7, strony od 17 do 26, Wydawnictwo Uczelniane Politechniki Koszalińskiej, ISSN 1897-7421, Koszalin 2015. Rafał Wojszczyk, Pozyskiwanie struktury obiektowej z kodu zarządzanego przy wykorzystaniu metod inżynierii odwrotnej, w: Inżynieria oprogramowania: badania i praktyka, strony od 199 do 213, Zeszyty Rady Naukowej Polskiego Towarzystwa Informatycznego, ISBN 978-83-63919-15-3, Warszawa 2014. Rafał Wojszczyk, Porównanie sposobów reprezentacji wzorców projektowych, w: Modele inżynierii teleinformatyki 9, strony od 133 do 145, Wydawnictwo Uczelniane Politechniki Koszalińskiej, ISSN 2353-6535, Koszalin 2014. Rafał Wojszczyk, Zestawienie metryk oprogramowania obiektowego opartych na statycznej analizie kodu źródłowego, w: Zarządzanie projektami i modelowanie procesów, strony od 95 do 107, Zeszyty Rady Naukowej Polskiego Towarzystwa Informatycznego, ISBN 978-83-7518-599-7, Warszawa 2013. 26

Model oceny jakości implementacji wzorców projektowych mgr inż. Rafał Wojszczyk dziękuję za uwagę 27