Ocena jakości obiektowo zorientowanego projektu programistycznego na podstawie metryk oprogramowania **

Wielkość: px
Rozpocząć pokaz od strony:

Download "Ocena jakości obiektowo zorientowanego projektu programistycznego na podstawie metryk oprogramowania **"

Transkrypt

1 Słowa kluczowe: obiektowe metryki oprogramowania, model predykcji błędów, jakość, wytwarzanie oprogramowania. Marian Jureczko * Ocena jakości obiektowo zorientowanego projektu programistycznego na podstawie metryk oprogramowania ** Praca opisuje przeprowadzony w warunkach akademickich eksperyment, którego celem była próba konstrukcji modelu ilustrującego zależności pomiędzy wartościami metryk oprogramowania a jakością programu. Badano zarówno metryki wyliczane z kodu źródłowego programu, tu mowa o takich metrykach jak: LCOM, CBO, RFC, WMC, DIT, NOC, jak i metryki wyliczane z diagramów języka UML, a mianowicie: NATC1, NATC2, NOPC1, NOPC2, NASC, DIT, NSUBC. Badania miały na celu znalezienie zależności pomiędzy wartościami metryk a czasem jaki należy poświęcić na naprawienie, znalezionych podczas testów, błędów w kodzie źródłowym klasy dla której metryki wyliczano. Środowisko eksperymentu stanowiły cztery podobne, zarówno pod względem tematyki jak i rozmiaru, projekty realizowane przez programistów o zbliżonym doświadczeniu. Do implementacji wykorzystywano obiektowe języki programowania: C# i java. 1. WPROWADZENIE W procesie wytwarzania oprogramowania istnieje bardzo silna zależność pomiędzy czasem wykrycia błędu a kosztami związanymi z jego usunięciem. Im później błąd zostanie wykryty tym większe są koszty jego eliminacji. Zazwyczaj w literaturze zaleca się prowadzenie intensywnego testowania oraz kontroli jakości już od najwcześniejszych etapów realizacji projektu, w celu jak najwcześniejszego wykrywania wszystkich nieprawidłowości [12], [13], [15]. Można próbować wspomóc ten proces przez szacowanie poprawności elementu na podstawie niektórych jego cech. Prowadzi się liczne badania dotyczące predykcji jakości na podstawie metryk strukturalnych. Istnieje wiele różnych zestawów metryk odnoszących się do różnych, powstających w trakcie procesu wytwarzania oprogramowania artefaktów. Przy pomocy metryk próbuje się opisywać dokumenty ze specyfikacją systemu * Instytut Informatyki, Automatyki i Robotyki, Politechnika Wrocławska * * Praca naukowa finansowana ze środków na naukę w latach jako projekt badawczy 3 T11C

2 [11] i [21]. Działania takie napotykają jednak poważne problemy powiązane z analizą języka naturalnego. Problemy te są szczególnie trudne do pokonania jeżeli dotyczą języka polskiego. Zdecydowanie bardziej obiecujące są prace dotyczące oceny jakości na podstawie metryk wyliczanych z modelu systemu. Opracowuje się specjalne zestawy metryk dedykowane do opisywania modelu wyrażonego w UML [16]. Dyskutuje się zasadność takiego podejścia [4], i co najważniejsze, w stosunku do pewnych specyficznych systemów, uzyskuje się już nawet ciekawe wyniki [18]. Najbardziej ugruntowane są jednak badania dotyczące predykcji błędów na podstawie metryk wyliczanych z kodu źródłowego. Spektakularne wyniki udało się uzyskać w [3]. W pracy tej próbowano zastosować, omówiony dalej, zestaw metryk CK Metrics [10] do wyliczenia prawdopodobieństwa istnienia w klasie błędu. Przeprowadzone badania wykazały istnienie znaczącej, dodatniej korelacji pomiędzy prawdopodobieństwem zajścia błędu, a wartościami metryk DIT, RFC i CBO oraz ujemnej korelacji pomiędzy prawdopodobieństwem zajścia błędu a wartością metryki NOC. W [8], opierając się na kilku różnych zestawach metryk (w sumie 49 metryk), udało się skonstruować model, który znajduje 95% błędów systemu natomiast 85% modułów, które model oznakowuje jako błędne, faktycznie zawiera błędy. Do predykcji jakości stosuje się również z powodzeniem metody zaczerpnięte z gruntu sztucznej inteligencji, takie jak sieci neuronowe [17]. Prowadzi się też badania mające na celu wskazać najlepiej nadający się do oceny jakości i predykcji defektów zestaw metryk [1], [8], [19]. Według [19] najlepszym takim zestawem jest wykorzystywany w tej pracy zestaw CK Metrics. Natomiast według [8], gdzie wybierano pojedyncze metryki z różnych zestawów, wśród metryk najlepiej nadających się do przewidywania jakości, powinny się znaleźć dwie metryki z zestawu CK Metrics: NOC i RFC. Innym badanym aspektem opisywania systemu przy pomocy metryk strukturalnych jest automatyczne pozyskiwanie wartości metryk [5], [7], [20]. Istnieje wiele narzędzi pozwalających na automatyzację tego procesu. Zdecydowana ich większość jest jednak dedykowana do wyliczania metryk z kodu źródłowego [5], [20]. Jedynie nieliczne pozwalają na wyliczanie metryk z diagramów stanowiących model systemu [7]. Poważnym problemem podczas automatycznego wyliczania metryk jest fakt, że różne narzędzia w różny sposób interpretują definicje poszczególnych metryk i tym samym mogą wprowadzać dodatkowe błędy do pomiarów. W ramach tej pracy została podjęta próba konstrukcji modeli dokonujących predykcji błędów w projekcie informatycznym na podstawie metryk strukturalnych. Zastosowano dwa podejścia. Pierwsze to tworzenie modeli opierających się na metrykach wyliczanych z kodu źródłowego (czyli podobne do przedstawionego w [3], [8] i [17]). Drugie natomiast to tworzenie modeli, opierających się na metrykach wyliczanych na podstawie diagramów UML stanowiących model systemu.

3 2. PLAN EKSPERYMENTU Eksperyment przeprowadzony został w środowisku akademickim. Opiera się on na czterech projektach programistycznych realizowanych przez studentów piątego roku informatyki. Każdy z projektów był wykonywany przez czteroosobowy zespół. Położony został duży nacisk na jakość w każdym z zespołów jedna z osób pełniła funkcję inspektora. Inspektor miał za zadanie wychwytywać błędy popełniane przez pozostałych członków zespołu, jego rola była oparta na zaleceniach przedstawionych w [13]. Drugą wyodrębnioną w każdym zespole funkcją była funkcja kierownika. Był on odpowiedzialny za organizację pracy i rozdzielanie zadań pomiędzy członków zespołu (w tym i siebie). Wszystkie cztery projekty były realizowane w tej samej metodyce zbliżonej bardzo do procesu kaskadowego. Na podobieństwo do tego procesu wskazuje między innymi harmonogram prac: Na początek przygotowywano specyfikację programu w języku UML. Kolejno konstruowano diagramy przypadków użycia, klas, sekwencji i stanów. Przy pomocy diagramów klas modelowano cały system, za wyjątkiem jego interfejsu graficznego. Natomiast diagramy sekwencji oraz stanów były konstruowane jedynie dla niektórych fragmentów tworzonego systemu. Na realizację tego etapu poświęcono cztery miesiące. Drugi etap to implementacja w jednym z obiektowych języków programowania. Trzy programy zostały zaimplementowane przy pomocy C#, jeden natomiast przy pomocy javy. Wykonanie tego etapu trwało trzy miesiące. Trzeci etap to testowanie i poprawianie znalezionych podczas testowania błędów. Testy przeprowadzali ci sami studenci, którzy realizowali omawiane projekty. Zorganizowano to jednak w taki sposób, że nikt nie testował swojego projektu, tylko któryś z realizowanych przez jedną z pozostałych grup. Testowanie rozpoczęło się równocześnie z poprawianiem błędów i trwało trzy tygodnie. Na poprawianie błędów przeznaczono natomiast cztery tygodnie. Podczas naprawiania błędów odnotowywano jaki czas poświęcono na tą czynność. Programy testowano na zasadzie czarnej skrzynki. Jako błędy, oprócz niepoprawnego funkcjonowania (w tym i niepoprawnego prezentowania danych), traktowano również niezaimplementowanie funkcjonalności, które według dokumentacji w programie powinny się pojawić. Nie uwzględniano natomiast kwestii związanych z wydajnością. Zmierzone na tym etapie czasy poświęcone na poprawienie błędów posłużyły jako wyjście (zmienna zależna) konstruowanych modeli. Wejściem (zmienne niezależne) modeli były wartości przedstawionych dalej metryk. Modele konstruowano przy pomocy regresji liniowej, do każdego wejścia dobierano taki współczynnik, aby suma wejść jak najlepiej przybliżała czas potrzebny na poprawienie błędów. Więcej szczegółów na temat konstrukcji modeli znajduje się w dalszej części pracy.

4 3. ZASTOSOWANE METRYKI Zastosowano odrębne zestawy metryk, do opisania atrybutów projektu programu wyrażonego diagramami UML oraz do programu już zaimplementowanego METRYKI WYLICZANE NA PODSTAWIE KODU ŹRÓDŁOWEGO Jako metryki wyliczane na podstawie kodu źródłowego wybrane zostały metryki zaproponowane w [10], popularnie nazywane CK Metrics. Poniżej zostały one pokrótce omówione, więcej szczegółów na ich temat można znaleźć w: [1], [2], [3], [9], [14] oraz [15]. Response For a Class (RFC, z ang. odpowiedź klasy): Jest to liczba metod, które mogą być wywołane w odpowiedzi na wiadomość odebraną przez obiekt danej klasy. Wyliczana jest przez zsumowanie wszystkich metod danej klasy oraz zbioru odpowiedzi, czyli metod z innych klas, które mogą zostać wywołane przez którąś z metod danej klasy. Depth of Inheritance Tree (DIT, z ang. głębokość drzewa dziedziczenia): Jest to ilość przodków danej klasy w najdłuższej ścieżce dziedziczenia. W skład ścieżki dziedziczenia wliczane były również klasy systemowe (dostarczane przez środowisko programistyczne), z których dana klasa dziedziczyła. Lack of Cohesion Of Methods (LCOM, z ang. brak spójności metod): Metryka ta wskazuje jak blisko metody są powiązane z atrybutami. Im większa wartość metryki tym słabsze powiązanie. Tutaj zastosowano tą metrykę w wersji zaproponowanej w [14]. Jej wartość wylicza się konstruując graf dwudzielny G(M,A,K). Wierzchołki ze zbioru M reprezentują metody klasy, a wierzchołki ze zbioru A atrybuty. K to zbiór krawędzi. Pomiędzy wierzchołkiem m i M, a wierzchołkiem a i A istnieje krawędź wtedy, gdy metoda m i korzysta z atrybutu a j, lub gdy metoda m i wywołuje inną metodę m k, która jest w grafie powiązana krawędzią z atrybutem a j. Dla tak skonstruowanego grafu wartość metryki wylicza się ze wzoru: k m LCOM = a 1 m (1) gdzie k to liczebność zbioru K, a to liczebność zbioru A, m to liczebność zbioru M. Więcej informacji o tej metryce można znaleźć w [14] metryka ta jest tam oznaczana symbolem: LCOM*.

5 Coupling Between Objects (CBO, a ang. powiązania pomiędzy obiektami): Metryka ta pokazuje jak silnie dana klasa jest powiązana z innymi klasami. Za powiązanie uznaje się odwołanie do metody lub pola zdefiniowanego w innej klasie. Wartość tej metryki jest równa liczbie klas, z którymi dana klasa jest powiązana. Przy wyliczaniu tej metryki brane są również pod uwagę klasy systemowe (dostarczane przez środowisko programistyczne). Weight Method per Class (WMC, z ang. ważona liczba metod w klasie): Jest to suma wszystkich metod zdefiniowanych w klasie, każda metoda jest sumowana z przyporządkowaną jej wagą. Tu każdej metodzie przyporządkowywano wagę równą jeden. Number of Children (NOC, z ang. liczba klas pochodnych): Metryka ta jest wyliczana jako liczba bezpośrednich podklas danej klasy w hierarchii dziedziczenia METRYKI WYLICZANE NA PODSTAWIE DIAGRAMÓW Do opisania modelu systemu wyrażonego przy pomocy diagramów UML wykorzystane zostały metryki zaproponowane w [16]. Niestety z niektórych z nich trzeba było zrezygnować. W szczególności trzeba było odrzucić wszystkie te, które wyliczane były na podstawie diagramów sekwencji. W badanych projektach diagramy sekwencji wykorzystano bowiem jedynie do modelowania niektórych interakcji. Wyliczanie na podstawie tych diagramów metryk dałoby więc przekłamane wartości. Z zestawu wybrano następujące metryki: Number of the attributes in a class - unweighted (NATC1, z ang. nieważona liczba atrybutów w klasie): Metryka zlicza liczbę atrybutów jaką posiada rozważana klasa. Number of the attributes in a class weighted (NATC2, z ang. ważona liczba atrybutów w klasie): Metryka zlicza liczbę atrybutów jakie posiada klasa. Każdy atrybut jest brany z odpowiednią wagą. Wartość wagi zależy od widoczności atrybutu. Atrybuty public i package mają wagę 1.0, protected mają wagę 0.5, a private 0. Number of the operations in a class unweighted (NOPC1, z ang. nieważona liczba metod w klasie): Metryka zlicza liczbę metod jaką posiada rozważana klasa. Number of the operations in a class weighted (NOPC1, z ang. ważona liczba metod w klasie): Metryka zlicza liczbę metod jakie posiada klasa. Każda metoda jest brana z odpowiednią wagą. Wartość wagi zależy od widoczności metody w sposób analogiczny jak w NATC2. Number of the associations linked to a class (NASC, z ang. liczba asocjacji powiązanych z klasą): Jest to liczba asocjacji przy pomocy których dana klasa jest powiązana z innymi klasami. Jako asocjacje liczone są również agregacje. Depth of Inheritance Tree (DIT, z ang. głębokość drzewa dziedziczenia): Jest to liczba przodków danej klasy w najdłuższej ścieżce dziedziczenia.

6 Number of subclasses of a class (NSUBC, z ang. Liczba podklas danej klasy): Jest to liczba bezpośrednich podklas danej klasy w hierarchii dziedziczenia. 4. UZYSKANE WARTOŚCI METRYK Aby można było rozróżnić poszczególne projekty zostały one oznaczone literami. Projektom realizowanym w języku C# przyporządkowano litery A, B i C natomiast projekt pisany w języku java został opatrzony literą D. Projekt A składa się z 48 klas, projekt B z 40 klas, projekt C z 39 klas, a projekt D z 23 klas. Łącznie przebadano więc 150 klas. Liczba klas w przypadku metryk wyliczanych z diagramów jest nieco mniejsza i wynosi 136. Jest tak ponieważ klasy związane z implementacją interfejsu graficznego nie zostały uwzględnione na diagramach. Proces wyliczania metryk z kodu źródłowego został zautomatyzowany poprzez zastosowanie specjalistycznych programów. W przypadku projektów wykonanych w języku C# wykorzystano do tego celu narzędzie NDepend. Natomiast w stosunku do projektu wykonanego w javie, do wyliczania metryk użyto dwóch narzędzi: Eclipse Metrics plugin oraz ckjm WARTOŚCI METRYK WYLICZANYCH Z KODU ŹRÓDŁOWEGO Max Min Średnia Mediana δ WMC ,73 7,5 8,11 DIT 8 1 3,34 3 2,41 NOC ,33 0 1,98 RFC , ,79 CBO , ,11 LCOM 2 0 0,67 0,88 0,45 Tabela 1: Wartości metryk kodu źródłowego Table 1: Values of source code metrics W tab. 1 przedstawione są wartości metryk dla wszystkich czterech realizowanych projektów. Na podstawie tych danych można odnieść wrażenie, że bardzo intensywnie wykorzystywany był mechanizm dziedziczenia o czym mogłaby świadczyć stosunkowo wysoka wartość metryki DIT. Jej wartość średnia jest około trzy razy większa niż jej wartość dla projektów badanych w [3] i [9]. Przekonanie takie jednak jest błędne, dziedziczenia było wykorzystywane bardzo umiarkowanie, a wysoka wartość tej metryki wynika z użytych w projektach języków (zarówno java, jak i C# wymuszają tworzenie klas, które mają przynajmniej jednego przodka; wymogu takiego nie ma w języku C++, który był wykorzystywany w projektach omawianych w [3] i [9]) oraz uwzględniania przy wyliczaniu tej metryki klas systemowych które, pojawiają się na ścieżce dziedziczenia. Na fakt stosunkowo małego wykorzystywania

7 dziedziczenia wskazuje niska wartość metryki NOC. Wartość średnia tej metryki pokazuje, że zdecydowana większość klas nie miała potomków. Wartość maksymalna, równa 22, dowodzi jednak, że były tworzone również klasy z myślą o tym, żeby zakotwiczyć w nich sporych rozmiarów drzewa dziedziczenia. Na złe praktyki programistyczne wskazuje stosunkowo duża wartość metryki CBO. Sytuacja taka sugeruje, że poprawianie błędów, może być obarczone sporym nakładem czasowym z uwagi na liczne zależności pomiędzy klasami. Max Min Średnia Mediana δ WMC ,91 8 8,56 DIT 7 1 2,34 2 1,6 NOC ,44 0 2,31 RFC , ,41 CBO , ,45 LCOM 2 0 0,6 0,8 0,48 Tabela 2: Wartości metryk kodu źródłowego dla klas implementacyjnych Table 2: Values of source code metrics for implementation classes Wśród klas można wydzielić dwie grupy zasadniczo różniące się wartościami metryk. Pierwsza, to klasy graficznego interfejsu użytkownika (wszystkie badane projekty posiadają graficzny, a nie tekstowy interfejs), natomiast druga, to klasy implementacyjne, czyli wszystkie pozostałe. Porównując wartości metryk wyliczonych dla klas implementacyjnych z wartościami metryk wyliczonych dla wszystkich klas, najłatwiej zauważyć różnicę pomiędzy wartościami metryk NOC i DIT. W klasach implementacyjnych metryka DIT przyjmuje zdecydowanie niższe wartości. Co wskazuje na to, że klasy te rzadko dziedziczyły po specjalizowanych klasach systemowych (zazwyczaj dziedziczyły Max Min Średnia Mediana δ WMC ,54 8 6,88 DIT 8 1 6,18 7 2,08 NOC 2 0 0,05 0 0,32 RFC , ,79 CBO , ,21 LCOM 2 0 0,86 0,92 0,32 Tabela 3: Wartości metryk kodu źródłowego dla klas gui Table 3: Values of source code metrics for gui classes tylko po klasie Object, co dawało wartość metryki DIT równą jeden). Metryka NOC natomiast przyjmuje wartość większą niż dla zbioru wszystkich klas. To z kolei świadczy o tym, że jeżeli już stosowano mechanizm dziedziczenia to zazwyczaj dziedziczono po klasach tworzonych na potrzeby projektu, a nie po klasach systemowych. Powstawały więc hierarchie dziedziczenia projektowane na potrzeby danego projektu. Warto również zauważyć, że nieco mniejszą wartość przyjmuje tu metryka CBO.

8 W klasach składających się na graficzny interfejs użytkownika bardzo wysoka jest wartość metryki DIT. Jej wartość średnia to aż 6,18. Jest tak, ponieważ większość klas z tej grupy dziedziczy po wyspecjalizowanych klasach systemowych komponentach interfejsu graficznego. Bardzo niska za to jest wartość metryki NOC - po klasach wchodzących w skład tej grupy raczej już nie dziedziczono. Stosunkowo duża jest wartość metryki CBO, jej średnia wynosi 20,87, kiedy dla wszystkich klas jej średnia to 15,56. Okazuje się więc, że bardzo duże uzależnienie od innych klas wykazują głównie klasy interfejsu graficznego KORELACJA METRYK WYLICZANYCH Z KODU ŹRÓDŁOWEGO WMC DIT NOC RFC CBO LCOM WMC 1 0,06 0,01 0,25 0,6 0,2 DIT 1-0,12-0,03 0,21 0,37 NOC 1 0,02-0,05 0,01 RFC 1 0,45-0,05 CBO 1 0,14 LCOM 1 Tabela 4: Macierz korelacji - wartości metryki z wszystkich projektów Table 4: Correlation matrix values of metrics for all projects W publikacjach [3] i [9] badając zestaw metryk zaproponowany w [10] rozważano korelację pomiędzy wartościami poszczególnych metryk. Niezwykle ciekawy jest również fakt, że w pracach tych (tj. [3] i [9]) uzyskano przeciwstawne rezultaty. Z obliczeń przeprowadzonych w [3] wynika, że rozważane metryki nie są skorelowane. Natomiast w [9] wykryto silną korelację pomiędzy wartościami trzech metryk: CBO, RFC, WMC. Dla poszczególnych badanych projektów podawano tam różne wartości, ogólnie jednak współczynniki korelacji pomiędzy tymi metrykami oscylowały w okolicach wartości 0,9. WMC DIT NOC RFC CBO LCOM WMC 1-0,28-0,3 0,63 0,38 0,28 DIT 1-0,22 0,28 0,36 0,32 NOC 1-0,35-0,28-0,48 RFC 1 0,92 0,47 CBO 1 0,39 LCOM 1 Tabela 5: Macierz korelacji - wartości metryk z klas z projektu C Table 5: Correlation matrix values of metrics for project C Macierz korelacji wyliczona na podstawie metryk wyliczonych z wszystkich klas, stworzonych na potrzeby wszystkich czterech projektów daje największy wskaźnik korelacji pomiędzy metrykami WMC i CBO równy 0,6. Stosunkowo wysoki jest również wskaźnik korelacji pomiędzy RFC i CBO (r = 0,45). Zdecydowanie wyższe

9 wartości współczynnika korelacji pojawią się jednak, gdyby rozpatrywać poszczególne projekty z osobna. Współczynniki korelacji wyliczane dla poszczególnych projektów przyjmują niestety znacznie większe wartości wskazujące, że metryki CBO, RFC oraz WMC są silnie ze sobą skorelowane. Poczynione w rozważanych projektach obserwacje skorelowania metryk dały wyniki pośrednie w stosunku do tych, które uzyskano w [3] i [9]. Warto tu nadmienić, że w [3] współczynniki korelacji były wyliczane na podstawie danych dotyczących wszystkich projektów, a w [9] współczynniki te były wyliczane dla każdego projektu z osobna. Istnieje analogia w badanych tu projektach: współczynniki korelacji wyliczane dla każdego projektu z osobna przyjmują wysokie wartości, natomiast liczone dla wszystkich projektów łącznie, przyjmują stosunkowo niskie wartości. Można więc zaryzykować stwierdzenie, że w obrębie jednego projektu istnieje prosta zależność pomiędzy metrykami CBO, RFC i WMC, jednak dla różnych projektów zależność ta jest inna. Jeżeli jest tak w istocie to oznaczałoby to, że dla każdego projektu z osobna można na podstawie wartości metryk skonstruować model predykcji jakości, jednak bardzo trudno będzie stworzyć model uniwersalny. 4.3 WARTOŚCI METRYK WYLICZANYCH Z DIAGRAMÓW Wartości metryk wyliczanych na podstawie diagramów są przedstawione w podobny sposób jak wartości metryk wyliczanych z kodu źródłowego, z tą tylko Max Min Średnia Mediana δ NATC ,36 3 9,64 NATC ,12 0 1,88 NOPC ,32 5 8,19 NOPC2 43,5 0 6,52 4 6,83 NASC 8 0 0,86 0 1,24 DIT 3 0 0,36 0 0,73 NSUBC ,24 0 1,12 Tabela 6: Wartości metryk wyliczanych z diagramów Table 6: Values of diagram metrics różnicą, że nie wprowadzono tutaj podziału na klasy implementacyjne i klasy interfejsu graficznego. Często na diagramach klas nie ma informacji, która umożliwiłaby przeprowadzenie takiego podziału, czasami interfejsu graficznego w ogóle się tam nie modeluje. Metryki związane z dziedziczeniem, czyli NSUBC i DIT, wskazują na znikome wykorzystywanie dziedziczenia. Dodatkowo na niską wartość metryki DIT złożył się fakt, że podczas jej wyliczania nie są uwzględniane, pojawiające się na ścieżce dziedziczenia klasy systemowe. Klasy systemowe również nie były uwzględniane

10 podczas wyliczania metryki NASC. Klasy te nie są uwzględniane, ponieważ nie pojawiają się na diagramach klas. 4.4 KORELACJA METRYK WYLICZANYCH Z DIAGRAMÓW Współczynniki korelacji dla metryk wyliczanych z diagramów nie przyjmują zbyt dużych wartości. Niechlubnym wyjątkiem jest silne skorelowanie metryk NOPC1 i NOPC2 wynikające z faktu, iż w badanych projektach przeważały metody publiczne. NATC1 NATC2 NOPC1 NOPC2 NASC DIT NSUBC NATC1 1 0,38 0,61 0,39 0,06-0,19-0,05 NATC2 1 0,42 0,49 0,2-0,24-0,06 NOPC1 1 0,87 0,15-0,15 0,13 NOPC2 1 0,14-0,06 0,14 NASC 1 0,05 0 DIT 1 0,04 NSUBC 1 Tabela 7: Macierz korelacji wartości metryk wyliczanych z diagramów Table 7: Correlation matrix values of diagram metrix 5. UZYSKANE REZULTATY Przed konstrukcją właściwego modelu wyliczono współczynniki korelacji pomiędzy wejściami, a wyjściami modelu (tabela 8). Dla metryk wyliczanych z kodu źródłowego przedstawiono trzy wartości. Pierwsza z nich jest wyliczona dla wszystkich klas, druga dla klas implementacyjnych, a trzecia dla klas interfejsu graficznego. Z tab. 8 wynika, że wyjście zależy w jakimś stopniu od wartości metryk WMC, CBO, NOPC, NASC w większości przypadków są one silnie skorelowane z wyjściem. Dokładniejsza analiza sprowadzała się do konstrukcji modeli, które na podstawie wartości metryk podawać będą szacowany czas potrzeby na naprawienie błędów. Badano dwa rodzaje modeli. Pierwszy rodzaj to kombinacja liniowa wejść plus wyraz wolny, drugi natomiast, w stosunku do pierwszego, został wzbogacony o człony interakcyjne, czyli iloczyny dwóch różnych wejść. Do wyliczania współczynników, przez które są mnożone wartości poszczególnych metryk, zastosowano metodę regresji liniowej KONSTRUKCJA MODELU NA PODSTAWIE METRYK KODU ŹRÓDŁOWEGO Podjęto próby konstrukcji oddzielnych modeli dla poszczególnych projektów, dla klas implementacyjnych, dla klas interfejsu graficznego i dla wszystkich przeanalizowanych projektów. W tab. 9 przedstawiono wartości współczynników najbardziej odległe od zera oraz uzyskane korelacje (r) pomiędzy wyjściem z modelu,

11 a wyjściem zmierzonym. Wartości współczynników są powiązane myślnikiem z określeniem wejścia, któremu są przypisane. Z przedstawionego opisu modeli wynika, że nakład pracy związany z poprawianiem klasy silnie zależy od wartości metryki WMC, prawdopodobnie zależy również od wartości metryki DIT. W modelach z interakcjami często, oprócz tych dwóch metryk, przewijają się metryki LCOM (co jest rezultatem dosyć zaskakującym) oraz CBO (czego z kolei należało oczekiwać). Uzyskane współczynniki korelacji są bardzo wysokie, co świadczy o tym, że modele dobrze oddają szukaną zależność. Z drugiej jednak strony duża różnorodność modeli sugeruje, że mogą one nie być słuszne dla innych, nie badanych tutaj projektów. Projekt A B C D Wszystkie WMC 0,83 0,85 0,85 0,64 0,68 0,1 0,24 0,37 0,75 0,43 0,51 0,04 0,52 0,5 0,66 DIT 0,22-0,2 0,82-0,3-0,3 0,31 0,32 0,08 0 0,26 0,34 0,44 0,03-0,1 0,05 NOC 0,13 0,17 0 0,03 0 0,18-0,1-0,1 0-0, ,13 0,16 0 RFC 0,07 0,04-0,8 0,07 0, ,4 0,4 0,38 0,34-0,5 0,04 0,03 0,07 CBO 0,65 0,65 0,69 0,59 0,61 0,41 0,36 0,38 0,43 0,81 0,85-0,3 0,3 0,29 0,27 LCOM -0,2-0,3 0,91 0,11 0,17 0,23 0,14 0,12 0,33 0,33 0,26-0,3-0,1 0,1 0,12 NATC1 0,28 0,09-0,12 0,14 0,2 NATC2 0,13 0,2-0,21 0,18 0,05 NOPC1 0,23 0,54 0,34 0,34 0,28 NOPC2 0,13 0,5-0,21 0,25 0,2 NASC 0,13 0,27 0,58 0,38 0,02 DIT (diag.) -0,24 0,55-0,1-0,11-0,08 NSUBC -0,1 0-0,1-0,11-0,07 Tabela 8: Współczynniki korelacji pomiędzy wejściami i wyjściem modelu Table 8: Correlations between inputs and outputs of the model Ocena predykcji, czasu potrzebnego na naprawienie błędów w klasie, wygenerowanych przy pomocy modelu z członami interakcyjnymi została przedstawiona na rys. 1. Dla zdecydowanej większości klas model przewidział czas potrzebny do naprawienia błędów w klasie nie różniący się od faktycznie potrzebnego czasu o więcej niż 15 minut. Średni rzeczywisty czas potrzebny na naprawę klasy to 21 minut, a jego odchylenie standardowe wynosi 51 minut.

12 Modele bez członów interakcyjnych Modele z członami interakcyjnymi Projekt A WMC-0,16; r=0,85 DIT*NOC-0,22;WMC*LCOM-0,1; r=0,97 Projekt B WMC-0,03; CBO-0,03; r=0,76 LCOM-0,1; CBO*LCOM-0,1; r=0,82 Projekt C WMC-0,01; DIT-0,04; r=0,54 LCOM-2,5; DIT*LCOM-0,23; r=0,86 Projekt D WMC-0,03; DIT-0,19; r=0,88 DIT-0,3; WMC-0,2; r=0,99 Wszystkie projekty WMC-0,06; r=0,58 WMC-0,05; CBO-0,04; DIT*LCOM-0,09; DIT*NOC-0,06; r=0,906 Klasy impement. WMC-0,05; NOC-0,06; r=0,58 WMC-0,05; NOC*CBO-0,04; r=0,84 Klasy gui WMC-0,08; r=0,72 WMC-0,2; DIT*CBO-0,02; NOC*CBO- 0,04; r=0,84 Tabela 9: Opis modeli budowanych na podstawie metryk kodu źródłowego Table 9: Description of models which are based on source code's metrics Liczba klas Rysunek 10: Histogram błędów modelu Figure 1: Histogram with model errors 5.2. KONSTRUKCJA MODELU NA PODSTAWIE METRYK DIAGRAMÓW Modele oparte na metrykach wyliczanych z diagramów są słabej jakości. Wskazują na to niskie wartości współczynników korelacji. Osiągniętych przy ich pomocy wyników nie można więc uznać za wiążące. Z uzyskanych obserwacji wynika, że nakład pracy związany z poprawianiem klasy zależy

13 najbardziej od liczby metod w klasie (metryki NOPC1 i NOPC2). Słabszą zależnością jest powiązany z liczbą atrybutów (NATC1 i NATC2) i z liczbą asocjacji (NASC). Nie zależy za to prawie wcale od długości ścieżki dziedziczenia (DIT). Modele bez członów interakcyjnych Modele z członami interakcyjnymi Projekt A NOPC2-0,13; r=0,4 NATC2*NOPC1-0,58; NOPC1*NSUBC- 0,85; NASC*NSUBC-1,19; r=0,59 Projekt B NASC-0,08; NOPC1-0,06; r=0,63 NATC2-0,4; NATC1*NASC-0,04; NOPC2*NASC-0,06; r=0,71 Projekt C NOPC1-0,06; r=0,88 NOPC2-0,1; NOPC2*NASC-0,5; NATC2*NOPC1-0,36; r=0,97 Projekt D NATC2-0,19; NOPC1-0,03; r=0,88 NATC1-0,2; NATC2-0,3; NOPC2-0,2; NATC2*NASC-0,07; r=0,99 Wszystkie projekty NOPC1-0,048; r=0,33 NATC2-0,15; NOPC1*DIT-0,19; NASC*NSUBC-0,24; r=0,46 Tabela 110: Opis modeli budowanych na podstawie metryk diagramów Table 10: Description of models which are based on diagram's metrics 6. WNIOSKI I MOŻLIWOŚCI DALSZEGO ROZWOJU Udało się znaleźć zależności pomiędzy wartościami metryk, a jakością aplikacji. W przypadku metryk wyliczanych z kodu źródłowego uzyskano dosyć wiarygodne modele, zdecydowanie gorzej jest jednak z metrykami wyliczanymi z diagramów. Aby otrzymać lepsze rezultaty w przypadku tych drugich warto spróbować wziąć pod uwagę również metryki wyliczane z diagramów sekwencji lub zastosować inny zestaw metryk. Modele konstruowane na podstawie zestawu metryk CK Metrics wykazały, że na czas naprawiania defektów w klasie największy wpływ mają metryki WMC, DIT i CBO. Wyniki takie nie są do końca zgodne z wynikami uzyskanymi w [3]. Tam wykazano dodatnią korelację pomiędzy prawdopodobieństwem wystąpienia błędu w klasie a metrykami DIT, CBO i RFC, oraz ujemną korelację z metryką NOC. Rozbieżności częściowo można wytłumaczyć doborem innego wyjścia modelu. W [3] jest to prawdopodobieństwo wystąpienia błędu w klasie. Takie podejście powoduje, że wszystkie błędy są brane z taką samą wagą. W tej pracy natomiast przypisano błędom wagę równą czasowi potrzebnemu na naprawienie klasy. Ujemna korelacja metryki NOC z awaryjnością klasy wynika z faktu, że klasy o wysokiej wartości tej metryki były w badanych w [3] projektach dokładniej testowane. W badanych tu projektach takich działań nie podejmowano. Nie powinna natomiast dziwić obecność metryki

14 WMC wśród metryk najmocniej powiązanych z niską jakością klasy. Metryka ta jest bowiem bezpośrednio powiązana z rozmiarem klasy, a im większy rozmiar tym więcej okazji do popełnienia błędu. W przypadku zarówno jednych, jak i drugich metryk, warto oczywiście przeprowadzić dalsze badania weryfikujące uzyskane rezultaty. Opisywany tu eksperyment dotyczył bowiem tylko czterech projektów programistycznych, co nie stanowi niestety reprezentatywnej próbki. Projekty te były bardzo do siebie podobne, zarówno pod względem rozmiaru jak i tematyki, więc uzyskane dla nich wyniki można potraktować jako adekwatne tylko dla projektów takiego właśnie typu. Należy również rozważyć możliwość istnienia słabości uzyskanych modeli, wynikających z zastosowania w projektach różnych języków programowania, co z kolei pociągnęło za sobą konieczność zastosowania różnych narzędzi do wyliczania metryk. Wpływ na wykryte zależności może też mieć stosowana metodyka wytwarzania oprogramowania. W badanych projektach stosowano metodykę bardzo bliską metodyce kaskadowej. Dalsze badań powinny więc przeanalizować możliwość zastosowania uzyskanych wyników dla procesów wytwarzania oprogramowania opartych o metodyki zwinne. LITERATURA [1] Aggarwal K.K., Singhy Y., Kaur A., Malhotra R., Empirical Study of Object Oriented Metrics, Journal of Object Technology, 2006, 5 (8), [2] Banasiya J., Davis C.G., A Hierarchical Model for Object Oriented Design Quality Assessment. IEEE Trans. Software Eng, 2002, 28 (1), [3] Basili V.R., Briand L.C., Melo W.L., A Validation of Object Oriented Design Metrics as Quality Indicators, IEEE Trans. Software Eng., 1996, 22 (10), [4] Bhatti S. N., Why Quality? ISO 9126 Software Quality Metrics (Functionality) Support by UML Suite, ACM SIGSOFT Software Eng. Notes, 2005, 30 (2), 1-5. [5] Bieman J., Kang B.-K., Measuring Design-Level Cohesion, IEEE Trans. Software Eng., 1998, 24 (2), [6] Blackburn S.M., Garner R., Hoffmann C., Khang A.M., Mckinley K.S., Bentzur R., Diwan A, Feinberg D., Frampton D., Guyer S.Z., Hirzel M., Hosking A., Jump M., Lee H., Eliot J., Moss B., Phansalkar A., Stefanowić D., Vandrunen T., von Dincklage D., Wiedermann B., The DaCapo benchmarks: java benchmarking development and analysis, 21 st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, 2006, [7] Blumke I., Zając P., Metryki MOOD w Rational Rose, V Krajowa Konferencja Inżynierii Oprogramowania, 2003, [8] Briand L., Daly J., Porter V., Wust J., Predicting Fault-Prone Classes with Design Measures in Object-Oriented Systems, 9 th Int. Symposium on Software Reliability Eng., 1998, [9] Chidamber S.R., Darcy D.P., Kemerer C.F., Managerial Use of Metrics for Object Oriented Software: An Exploratory Analysis, IEEE Trans. Software Eng., 1998, 24 (8), [10] Chidamber S.R., Kemerer C.F., A Metrics Suite for Object Oriented Design, IEEE Trans. Software Eng., 1996, 20 (6),

15 [11] Etzkorn L., Delugach H., Towards a Semantic Metrics Suite for Object-Oriented Design, 34 th Int. Conference on Technology of Object-Oriented Languages and Systems, 2000, [12] Flasiński M., Zarządzanie projektem informatycznym, PWN, Warszawa, [13] Górski J., Inżynieria oprogramowania w projekcie informatycznym, MIKOM, Warszawa, [14] Henderson-Sellers B., Object-Oriented Metrics, measures of Complexity, Prentice Hall, [15] Kan S.H., Metrics and Models in Software Quality Engineering, Addison-Wesley Professional, [16] Kim H., Boldyref C., Developing Software Metrics Applicable to UML Models, 6 th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Eng., 2002 [17] Khohgoftaar T.M., Pandy A.S., More H.B., A Neural Network Approach for Predicting Software Development Faults, 3 rd Int. IEEE Symp. Software Reliability Eng., 1992, [18] Ohlsson N., Alberg H., Predicting Fault-Prone Software Modules in Telephone Switches, IEEE Trans. Software Eng., 1996, 22 (12), [19] Olague H. M., Etzkorn L. H., Empirical Validation of Three Software Metrics Suite to Predict Fault- Proneness of Object-Oriented Classes Developed Using Highly Interative or Agile Software Development Processes, IEEE Trans. Software Eng., 2007, 33 (6), [20] Systa T., Yu P., Using OO Metrics and Rigi to evaluate java software, Tampere, University of Tampre, Department of Computer Science, Report A , [21] Stein C., Etzkorn L., Utley D., Computing Software Metrics from Design Documents, 42 nd Southeas regional conference, Huntsville, Alabama, 2004, USE OF SOFTWARE METRICS FOR FINDING WEAK POINTS OF OBJECT ORIENTED PROJECTS This paper describes an experiment which was realized in academic environment. This experiment was realized to create a model which will be able to present the relationship between values of software metrics and quality of application. There were studied metrics calculated from source code (LCOM, CBO, RFC, WMC, DIT and NOC) and metrics calculated from UML diagrams (NATC1, NATC2, NOPC1, NOPC2, NASC, DIT and NSUBC). Values of those metrics were used as inputs for the model. Lack of quality was used as output for the model. Lack of quality should be interpreted as time which was spent for fixing bugs in source code. The environment of this experiment consisted of four similar software projects. Each project was developed by programmers with similar experience. Those projects were implemented in object oriented languages: C# and java.

Metryki oprogramowania. Marian Jureczko

Metryki oprogramowania. Marian Jureczko Metryki oprogramowania Marian Jureczko Plan wykładu Metryki wyliczane z kodu źródłowego CK Metrics (1994) Złożoność cyklomatyczna McCabe'a (1976) Metryki wyliczane z diagramów (2002) Narzędzia do wyliczania

Bardziej szczegółowo

Metryki obiektowe jako wskaźniki jakości kodu i projektu

Metryki obiektowe jako wskaźniki jakości kodu i projektu Metryki obiektowe jako wskaźniki jakości kodu i projektu Bartosz Walter Instytut Informatyki Politechniki Poznańskiej 1 Wprowadzenie Metryki stanowią szybki i wygodny sposób oceny jakości oprogramowania.

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

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

Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania. Pomiary w inżynierii oprogramowania 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

Bardziej szczegółowo

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

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017 Wykład 12 7 czerwca 2017 Czym jest UML? UML składa się z dwóch podstawowych elementów: notacja: elementy graficzne, składnia języka modelowania, metamodel: definicje pojęć języka i powiazania pomiędzy

Bardziej szczegółowo

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

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego Etapy Ŝycia systemu informacyjnego Wprowadzenie do metodologii modelowania systemów informacyjnych 1. Strategia 2. Analiza 3. Projektowanie 4. Implementowanie, testowanie i dokumentowanie 5. WdroŜenie

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas Analiza i projektowanie obiektowe 2016/2017 Wykład 10: Tworzenie projektowego diagramu klas Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Projektowy

Bardziej szczegółowo

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

Metryki. Pomiar złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz Metryki Pomiar złożoności modułowej i międzymodułowej oprogramowania autor: Zofia Kruczkiewicz 1 Metryki złożoności modułowej i międzymodułowej Chidamber & Kemerer (CK) 2 Metryki złożoności modułowej i

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Podniesienie poziomu wiedzy studentów z inżynierii oprogramowania w zakresie C.

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH Modeling and analysis of computer systems Kierunek: Informatyka Forma studiów: Stacjonarne Rodzaj przedmiotu: Poziom kwalifikacji: obowiązkowy

Bardziej szczegółowo

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

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12 KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie

Bardziej szczegółowo

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

Bardziej szczegółowo

UML w Visual Studio. Michał Ciećwierz

UML w Visual Studio. Michał Ciećwierz UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować

Bardziej szczegółowo

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

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH Kierunek: Informatyka Modeling and analysis of computer systems Forma studiów: Stacjonarne Rodzaj przedmiotu: obowiązkowy w ramach specjalności:

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Narzędzia CASE dla.net. Łukasz Popiel

Narzędzia CASE dla.net. Łukasz Popiel Narzędzia CASE dla.net Autor: Łukasz Popiel 2 Czym jest CASE? - definicja CASE (ang. Computer-Aided Software/Systems Engineering) g) oprogramowanie używane do komputerowego wspomagania projektowania oprogramowania

Bardziej szczegółowo

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

PREDYKCJA DEFEKTÓW NA PODSTAWIE METRYK OPROGRAMOWANIA IDENTYFIKACJA KLAS PROJEKTÓW * INŻYNIERIA OPROGRAMOWANIA W PROCESACH INTEGRACJI SYSTEMÓW INFORMATYCZNYCH Pod redakcją J. Górskiego, C. Orłowskiego, 2010 PWNT Gdańsk PREDYKCJA DEFEKTÓW NA PODSTAWIE METRYK OPROGRAMOWANIA IDENTYFIKACJA

Bardziej szczegółowo

Rysunek 1: Przykłady graficznej prezentacji klas.

Rysunek 1: Przykłady graficznej prezentacji klas. 4 DIAGRAMY KLAS. 4 Diagramy klas. 4.1 Wprowadzenie. Diagram klas - w ujednoliconym języku modelowania jest to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez

Bardziej szczegółowo

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

INŻYNIERIA OPROGRAMOWANIA

INŻYNIERIA OPROGRAMOWANIA INSTYTUT INFORMATYKI STOSOWANEJ 2013 INŻYNIERIA OPROGRAMOWANIA Inżynieria Oprogramowania Proces ukierunkowany na wytworzenie oprogramowania Jak? Kto? Kiedy? Co? W jaki sposób? Metodyka Zespół Narzędzia

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Podstawy modelowania programów Kod przedmiotu

Podstawy modelowania programów Kod przedmiotu Podstawy modelowania programów - opis przedmiotu Informacje ogólne Nazwa przedmiotu Podstawy modelowania programów Kod przedmiotu 11.3-WI-INFP-PMP Wydział Kierunek Wydział Informatyki, Elektrotechniki

Bardziej szczegółowo

Technologie obiektowe

Technologie obiektowe WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność

Bardziej szczegółowo

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

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, 2004 Zofia Kruczkiewicz 1. Przedstaw znaczenie oprogramowania we współczesnym świecie. x 3 2. Jaki wpływ na ludzi, komunikację

Bardziej szczegółowo

Analiza składowych głównych. Wprowadzenie

Analiza składowych głównych. Wprowadzenie Wprowadzenie jest techniką redukcji wymiaru. Składowe główne zostały po raz pierwszy zaproponowane przez Pearsona(1901), a następnie rozwinięte przez Hotellinga (1933). jest zaliczana do systemów uczących

Bardziej szczegółowo

Maciej Oleksy Zenon Matuszyk

Maciej Oleksy Zenon Matuszyk Maciej Oleksy Zenon Matuszyk Jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów kontroli jakości oprogramowania. Weryfikacja oprogramowania - testowanie zgodności systemu

Bardziej szczegółowo

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language) Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu

Bardziej szczegółowo

Zmienne zależne i niezależne

Zmienne zależne i niezależne Analiza kanoniczna Motywacja (1) 2 Często w badaniach spotykamy problemy badawcze, w których szukamy zakresu i kierunku zależności pomiędzy zbiorami zmiennych: { X i Jak oceniać takie 1, X 2,..., X p }

Bardziej szczegółowo

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Programowanie obiektowe Object-Oriented Programming. Automatyka i Robotyka II stopień ogólnoakademicki

Programowanie obiektowe Object-Oriented Programming. Automatyka i Robotyka II stopień ogólnoakademicki Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2013/2014

Bardziej szczegółowo

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego. Testowanie I Cel zajęć Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego. Testowanie oprogramowania Testowanie to proces słyżący do oceny

Bardziej szczegółowo

Wykład 1 Inżynieria Oprogramowania

Wykład 1 Inżynieria Oprogramowania Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI

Bardziej szczegółowo

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

Metryki. Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz Metryki Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania autor: Zofia Kruczkiewicz 1 Zastosowanie narzędzi ant i ckjm do pomiaru złożoności oprogramowania 2 1. Wskazanie ścieżki

Bardziej szczegółowo

KARTA MODUŁU KSZTAŁCENIA

KARTA MODUŁU KSZTAŁCENIA KARTA MODUŁU KSZTAŁCENIA I. Informacje ogólne 1 Nazwa modułu kształcenia Inżynieria 2 Nazwa jednostki prowadzącej moduł Instytut Informatyki, Zakład Informatyki Stosowanej 3 Kod modułu (wypełnia koordynator

Bardziej szczegółowo

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

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami Politechnika Gdańska Wydział Zarządzania i Ekonomii Katedra Zastosowań Informatyki w Zarządzaniu Zakład Zarządzania Technologiami Informatycznymi Model referencyjny Open Source dla dr hab. inż. Cezary

Bardziej szczegółowo

Opis metodyki i procesu produkcji oprogramowania

Opis metodyki i procesu produkcji oprogramowania Opis metodyki i procesu produkcji oprogramowania Rational Unified Process Rational Unified Process (RUP) to iteracyjny proces wytwarzania oprogramowania opracowany przez firmę Rational Software, a obecnie

Bardziej szczegółowo

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Dziedziczenie Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasy Student oraz Pracownik: class Student class Pracownik

Bardziej szczegółowo

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

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI KARTA PRZEDMIOTU przedmiotu Stopień studiów i forma Rodzaj przedmiotu Grupa kursów Zaawansowane techniki analizy systemowej oparte na modelowaniu warsztaty Studia podyplomowe Obowiązkowy NIE Wykład Ćwiczenia

Bardziej szczegółowo

Michał Olejnik. 22 grudnia 2009

Michał Olejnik. 22 grudnia 2009 Continuous TDD Politechnika Wrocławska Informatyka 22 grudnia 2009 Agenda Wprowadzenie 1 Wprowadzenie 2 3 4 5 Agenda Wprowadzenie 1 Wprowadzenie 2 3 4 5 Agenda Wprowadzenie 1 Wprowadzenie 2 3 4 5 Agenda

Bardziej szczegółowo

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

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation) Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation) Zarządzanie wymaganiami Ad hoc (najczęściej brak zarządzania nimi) Niejednoznaczna, nieprecyzyjna komunikacja Architektura

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Inżynieria oprogramowania Rodzaj zajęć: wykład, laboratorium TESTOWANIE OPROGRAMOWANIA Software testing Forma

Bardziej szczegółowo

Modelowanie i analiza systemów informatycznych

Modelowanie i analiza systemów informatycznych Katolicki Uniwersytet Lubelski Jana Pawła II Wydział Matematyki, Informatyki i Architektury Krajobrazu Modelowanie i analiza systemów informatycznych ćwiczenia informacja wstępna dr Viktor Melnyk, prof.

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

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

Autor: mgr inż. DANIEL CZYCZYN-EGIRD Opiekun naukowy: dr hab. inż. profesor PK ADAM SŁOWIK 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

Bardziej szczegółowo

Zasady organizacji projektów informatycznych

Zasady organizacji projektów informatycznych Zasady organizacji projektów informatycznych Systemy informatyczne w zarządzaniu dr hab. inż. Joanna Józefowska, prof. PP Plan Definicja projektu informatycznego Fazy realizacji projektów informatycznych

Bardziej szczegółowo

Projektowanie oprogramowania. Termin zajęć: poniedziałek, 18.00-19.45. a podstawie materiału ze strony. http://gromit.iiar.pwr.wroc.

Projektowanie oprogramowania. Termin zajęć: poniedziałek, 18.00-19.45. a podstawie materiału ze strony. http://gromit.iiar.pwr.wroc. Projektowanie oprogramowania Termin zajęć: poniedziałek, 18.00-19.45 a podstawie materiału ze strony http://gromit.iiar.pwr.wroc.pl/p_inf/ Przebieg realizacji projektu (tabela 1) Nr tygo dnia Spotkanie

Bardziej szczegółowo

Optymalizacja Automatycznych Testów Regresywnych

Optymalizacja Automatycznych Testów Regresywnych Optymalizacja Automatycznych Testów Regresywnych W Organizacji Transformującej do Agile Adam Marciszewski adam.marciszewski@tieto.com Agenda Kontekst projektu Typowe podejście Wyzwania Cel Założenia Opis

Bardziej szczegółowo

Spis treúci. 1. Wprowadzenie... 13

Spis treúci. 1. Wprowadzenie... 13 Księgarnia PWN: W. Dąbrowski, A. Stasiak, M. Wolski - Modelowanie systemów informatycznych w języku UML 2.1 Spis treúci 1. Wprowadzenie... 13 2. Modelowanie cele i metody... 15 2.1. Przegląd rozdziału...

Bardziej szczegółowo

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3 Wydział: Zarządzania Kierunek: Informatyka i Ekonometria Specjalność: - Poziom studiów: Studia I stopnia

Bardziej szczegółowo

Egzamin / zaliczenie na ocenę*

Egzamin / zaliczenie na ocenę* WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI Zał. nr 4 do ZW33/01 KARTA PRZEDMIOTU Nazwa w języku polskim : INŻYNIERIA OPROGRAMOWANIA Nazwa w języku angielskim: SOFTWARE ENGINEERING Kierunek studiów (jeśli

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

Bardziej szczegółowo

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz Oceny z prezentacji INKU011S Zofia Kruczkiewicz Data Student Oceny Uwagi 22.10.2017 231085 3.0 Przedstaw idealne środowisko do stosowania inżynierii oprogramowania- opisz elementy tego środowiska (sprzęt

Bardziej szczegółowo

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

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik Projektowanie oprogramowania Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik Agenda Weryfikacja i zatwierdzanie Testowanie oprogramowania Zarządzanie Zarządzanie personelem

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Wprowadzenie do analizy korelacji i regresji

Wprowadzenie do analizy korelacji i regresji Statystyka dla jakości produktów i usług Six sigma i inne strategie Wprowadzenie do analizy korelacji i regresji StatSoft Polska Wybrane zagadnienia analizy korelacji Przy analizie zjawisk i procesów stanowiących

Bardziej szczegółowo

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

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Zofia Kruczkiewicz 1 Zunifikowany iteracyjno- przyrostowy proces tworzenia oprogramowania kiedy? Przepływ działań Modelowanie przedsiębiorstwa

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie teoretyczne. Rozważana

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach specjalności: Programowanie aplikacji internetowych Rodzaj zajęć: laboratorium PRZEWODNIK PO PRZEDMIOCIE I KARTA PRZEDMIOTU

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty przedmiotu Stopień studiów i forma: Rodzaj przedmiotu Kod przedmiotu Grupa kursów Zaawansowane techniki analizy

Bardziej szczegółowo

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

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK KLUCZ ODPOWIEDZI Część DODATEK 8.1 9.4 PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB Na podstawie: Syllabus REQB Certified Professional for Requirements Engineering, Advanced Level, Requirements

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą

Bardziej szczegółowo

Projektowanie oprogramowania

Projektowanie oprogramowania Wrocław, 27.09.2010 1. Warunki wstępne Projektowanie oprogramowania Warunkiem uczestnictwa w zajęciach jest zaliczenie przedmiotu: Podstawy inżynierii oprogramowania (ćwiczenia) Zajęcia składają się z

Bardziej szczegółowo

Projektowanie oprogramowania

Projektowanie oprogramowania Wrocław, 24.09.2018 1. Warunki wstępne Projektowanie oprogramowania Warunkiem uczestnictwa w zajęciach jest zaliczenie przedmiotu: Podstawy inżynierii oprogramowania (ćwiczenia) Zajęcia składają się z

Bardziej szczegółowo

ZŁOŻONOŚĆ schematów aplikacyjnych UML i GML

ZŁOŻONOŚĆ schematów aplikacyjnych UML i GML ZŁOŻONOŚĆ schematów aplikacyjnych UML i GML Agnieszka Chojka Uniwersytet Warmińsko-Mazurski w Olsztynie XXIV Konferencja PTIP, 5-7 listopada 2014 r., Warszawa Wprowadzenie 2 3 Schematy aplikacyjne Integralna

Bardziej szczegółowo

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1 Charakterystyka oprogramowania obiektowego 1. Definicja systemu informatycznego 2. Model procesu wytwarzania oprogramowania - model cyklu życia oprogramowania 3. Wymagania 4. Problemy z podejściem nieobiektowym

Bardziej szczegółowo

Analiza Danych Sprawozdanie regresja Marek Lewandowski Inf 59817

Analiza Danych Sprawozdanie regresja Marek Lewandowski Inf 59817 Analiza Danych Sprawozdanie regresja Marek Lewandowski Inf 59817 Zadanie 1: wiek 7 8 9 1 11 11,5 12 13 14 14 15 16 17 18 18,5 19 wzrost 12 122 125 131 135 14 142 145 15 1 154 159 162 164 168 17 Wykres

Bardziej szczegółowo

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

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, 2004 Zofia Kruczkiewicz 1. Przedstaw znaczenie oprogramowania we współczesnym świecie x 1 2. Jaki wpływ na ludzi, komunikację

Bardziej szczegółowo

Wzorce projektowe i refaktoryzacja

Wzorce projektowe i refaktoryzacja Wzorce projektowe i refaktoryzacja Paweł Kozioł p.koziol@students.mimuw.edu.pl 18.01.2005 Moja praca magisterska Narzędzie dla środowiska Eclipse wspierające stosowanie wzorców projektowych J2EE Prowadzący:

Bardziej szczegółowo

Web frameworks do budowy aplikacji zgodnych z J2EE

Web frameworks do budowy aplikacji zgodnych z J2EE Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym

Bardziej szczegółowo

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium: Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.

Bardziej szczegółowo

Programowanie Obiektowe i C++

Programowanie Obiektowe i C++ Programowanie Obiektowe i C++ Marcin Benke 2.10.2006 Dzisiaj Co umiemy Paradygmaty programowania Co będzie na wykładach Zasady zaliczania Programowanie obiektowe Co umiemy Programowałem w C++ Programowałem

Bardziej szczegółowo

Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny

Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny mgr inż. Kajetan Kurus 15 kwietnia 2014 1 Dostępne techniki programowania Tworząc program należy

Bardziej szczegółowo

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP Laboratoria 5-7- część 1 Identyfikacja klas reprezentujących logikę biznesową projektowanego oprogramowania, definicja atrybutów i operacji klas oraz związków między klasami - na podstawie analizy scenariuszy

Bardziej szczegółowo

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką? ROZDZIAŁ1 Podstawy inżynierii oprogramowania: - Cele 2 - Zawartość 3 - Inżynieria oprogramowania 4 - Koszty oprogramowania 5 - FAQ o inżynierii oprogramowania: Co to jest jest oprogramowanie? 8 Co to jest

Bardziej szczegółowo

Projekt systemu informatycznego

Projekt systemu informatycznego Projekt systemu informatycznego Kod przedmiotu: PSIo Rodzaj przedmiotu: specjalnościowy ; obieralny Wydział: Informatyki Kierunek: Informatyka Specjalność (specjalizacja): Inżynieria Systemów Informatycznych

Bardziej szczegółowo

Testowanie i walidacja oprogramowania

Testowanie i walidacja oprogramowania i walidacja oprogramowania Inżynieria oprogramowania, sem.5 cz. 3 Rok akademicki 2010/2011 Dr inż. Wojciech Koziński Zarządzanie testami Cykl życia testów (proces) Planowanie Wykonanie Ocena Dokumentacja

Bardziej szczegółowo

Projektowanie logiki aplikacji

Projektowanie logiki aplikacji Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie logiki aplikacji Zagadnienia Rozproszone przetwarzanie obiektowe (DOC) Model klas w projektowaniu logiki aplikacji Klasy encyjne a klasy

Bardziej szczegółowo

Projekt Kompetencyjny - założenia

Projekt Kompetencyjny - założenia Projekt Kompetencyjny - założenia sem. V 2013 kgrudzi.kis.p.lodz.pl projekt kompetencyjny 1 System informatyczny zbiór powiązanych ze sobą elementów, którego funkcją jest przetwarzanie danych przy użyciu

Bardziej szczegółowo

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4 Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli

Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli Automatyczne generowanie testów z modeli Numer: 1 (33) Rozkmina: Projektowanie testów na podstawie modeli (potem można je wykonywać ręcznie, lub automatycznie zwykle chce się automatycznie) A ja mówię

Bardziej szczegółowo

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski INFORMATYKA W ZARZĄDZANIU Wykład VI dr Jan Kazimirski jankazim@mac.edu.pl http://www.mac.edu.pl/jankazim MODELOWANIE SYSTEMÓW UML Literatura Joseph Schmuller UML dla każdego, Helion 2001 Perdita Stevens

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

WPROWADZENIE DO UML-a

WPROWADZENIE DO UML-a WPROWADZENIE DO UML-a Maciej Patan Instytut Sterowania i Systemów Informatycznych Dlaczego modelujemy... tworzenie metodologii rozwiązywania problemów, eksploracja różnorakich rozwiązań na drodze eksperymentalnej,

Bardziej szczegółowo

1. Eliminuje się ze zbioru potencjalnych zmiennych te zmienne dla których korelacja ze zmienną objaśnianą jest mniejsza od krytycznej:

1. Eliminuje się ze zbioru potencjalnych zmiennych te zmienne dla których korelacja ze zmienną objaśnianą jest mniejsza od krytycznej: Metoda analizy macierzy współczynników korelacji Idea metody sprowadza się do wyboru takich zmiennych objaśniających, które są silnie skorelowane ze zmienną objaśnianą i równocześnie słabo skorelowane

Bardziej szczegółowo

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013 SYLLABUS na rok akademicki 01/013 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr III/VI Specjalność Bez specjalności Kod katedry/zakładu

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego. Umiejętność czytania oraz tworzenia diagramów klas UML jest podstawą w przypadku zawodu programisty. Z takimi diagramami będziesz spotykał się w przeciągu całej swojej kariery. Diagramy klas UML są zawsze

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Systemy uczące się Lab 4

Systemy uczące się Lab 4 Systemy uczące się Lab 4 dr Przemysław Juszczuk Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny 26 X 2018 Projekt zaliczeniowy Podstawą zaliczenia ćwiczeń jest indywidualne wykonanie projektu uwzględniającego

Bardziej szczegółowo

Wprowadzenie do programu RapidMiner, część 4 Michał Bereta

Wprowadzenie do programu RapidMiner, część 4 Michał Bereta Wprowadzenie do programu RapidMiner, część 4 Michał Bereta www.michalbereta.pl 1. Wybór atrybutów (ang. attribute selection, feature selection). Jedną z podstawowych metod analizy współoddziaływania /

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Inżynieria oprogramowania Rodzaj zajęć: laboratorium PROJEKT ZESPOŁOWY DYPLOMOWY IO Team Project SE Forma studiów:

Bardziej szczegółowo

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji Analiza i programowanie obiektowe 2016/2017 Wykład 6: Projektowanie obiektowe: diagramy interakcji Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Przejście

Bardziej szczegółowo

Opis realizacji dla czterech zespołów (4 przypadki użycia)

Opis realizacji dla czterech zespołów (4 przypadki użycia) Projektowanie oprogramowania Termin zajęć: czwartek, sala L2.6, C16 7.30-9.00, 9.15-10.45 Na podstawie materiału ze strony http://gromit.iiar.pwr.wroc.pl/p_inf/ Przebieg realizacji projektu (tabela 1)

Bardziej szczegółowo