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

Transkrypt

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
2
Wprowadzenie
3
Schematy aplikacyjne
 Integralna część rozporządzeń do ustawy PGiK
 definiują spójną i jednorodną strukturę baz danych
 opracowane zgodnie z normami ISO serii 19100
 w trakcie ich tworzenia napotkano wiele problemów
technicznych związanych z transformacją UML-GML
 wykonawcy wskazali szereg wad, błędów, nieprawidłowości
4
Problem
 Przyczyny
 niejednoznaczność transformacji UML-GML
 zbyt duża złożoność schematów aplikacyjnych UML i GML
 może mieć istotny wpływ na możliwość
 generowania plików GML z konkretnymi obiektami
 przetworzenia i obsługi takich plików przez oprogramowanie GIS
 Rozwiązanie
 obliczyć złożoność schematów aplikacyjnych
 zaproponować ich optymalizację
 podnieść jakość schematów aplikacyjnych
i baz danych tworzonych na ich podstawie
5
Miary złożoności
 Informatyka
 metryki oprogramowania
 miary pewnych własności oprogramowania
lub jego specyfikacji
 miara złożoności strukturalnej
 oszacowanie jakości oprogramowania (produktu końcowego)
 monitorowanie złożoności poszczególnych komponentów
 np. modelu informacyjny systemu w postaci diagramów klas UML
6
Złożoność UML
 Metryki złożoności diagramów klas
 metryki wielkości
(size metrics)
 metryki złożoności strukturalnej
(structural complexity metrics)
7
Złożoność UML
 metryki wielkości
(size metrics)
 NC (Number of Classes)
 NA (Number of Attributes)
 NM (Number of Methods)
8
Złożoność UML
 metryki złożoności strukturalnej
(structural complexity metrics)
 NAssoc (Number of Associations)
 NAgg (Number of Aggregations)
 NDep (Number of Dependencies)
 NGen (Number of Generalisations)
 NGenH (Number of Generalization hierarchies)
 AscNoRole (Associations Without Role)
 LoneClass (Lonely Classes)
9
Złożoność XML Schema
 Metryki złożoności XML Schema
 XML-agnostic
 XSD-agnostic
 XSD-aware
10
Złożoność XML Schema
 XML-agnostic
 nie uwzględniają żadnych informacji powiązanych z XML
 KB
 LOC (Lines of Code)
11
Złożoność XML Schema
 XSD-agnostic
 uwzględniają zależności związane z XML, abstrahują od XSD
 #NODE
 #ANN
12
Złożoność XML Schema
 XSD-aware
 koncentruje się na strukturze plików XSD
 #Elg
 #CTg
 #STg
 #MGg
 #AGg
 #ATg
 #GLOBAL
13
Złożoność XML Schema
 C(XSD) = C(Vg) + C(Gg) + C(Tg)
 uwzględnia strukturę schematów XML (nie ogranicza
się do zliczenia poszczególnych komponentów schematów)
 uwzględnia struktury rekurencyjne
 C(Vg) – złożoność wszystkich elementów i atrybutów globalnych,
które mogą być załączone lub zaimportowane z zewnętrznych
schematów XSD lub zadeklarowane/zdefiniowane w danym pliku XSD
 C(Gg) – złożoność elementów i atrybutów globalnych, które mogą być
zadeklarowane/zdefiniowane w danym pliku XSD i nie posiadają żadnych
powiązań (referencji) z innymi elementami w danym schemacie XSD
 C(Tg) – złożoność definicji/deklaracji globalnych typów złożonych
i prostych (wbudowanych i zdefiniowanych przez użytkownika)
nie posiadających żadnych powiązań z innymi elementami w danym
schemacie XSD
14
Narzędzia programowe
Nie można kontrolować tego,
czego nie da się zmierzyć
(DeMarco)
 Przykłady
 SDMetrics (UML)
 UML Metrics Producer (UML)
 Castor (XML Schema)
 … GIS
 grafy
 analizy sieciowe
15
Analiza złożoności SA GUGiK
 Założenia
 uwzględniono tylko schematy aplikacyjne z rozporządzeń
udostępnione na stronie GUGiK (pliki EAP i XSD)
http://www.gugik.gov.pl/prawo/schematy-aplikacyjne
 nie uwzględniono schematu „Modelu Podstawowego”
 nie uwzględniono klas pochodzących z innych
schematów, ale uwzględniono referencje do tych klas
 tylko wybrane metryki
 analiza wykonana „ręcznie”
 Enterprise Architect (UML)
 Notepad++ (XSD)
16
Analiza złożoności SA UML
Metryki UML
SA UML
NC
NA
NAssoc
NGen
LoneClass
EGiB
71
699
78
30
38
RCiWN
20
158
10
6
13
PRG
10
71
4
5
3
EMUiA
15
83
9
1
10
BDOT
60
244
3
27
32
GESUT
36
182
4
17
17
MZ
1
0
7
0
0
SytWys
12
45
17
0
6
Osnowa
29
180
9
11
10
17
Analiza złożoności SA GML
SA GML
Metryki XML Schema
KB
LOC
#NODE
#CTg
#STg
EGiB
154
5053
317
76
34
RCiWN
35,1
1152
71
14
13
PRG
22,8
572
41
16
9
EMUiA
18,7
489
70
16
15
BDOT
44,9
1154
116
56
96
GESUT
29,9
795
90
40
16
MZ
1,86
28
7
2
0
SytWys
14,5
374
41
12
18
Osnowa
31,3
746
165
38
24
18
Wnioski
 Duża złożoność niektórych schematów
 szeroki zakres tematyczny
 źle (nieefektywnie) zaprojektowana struktura danych
 Testowane metryki nie oddają w pełni charakteru
schematów aplikacyjnych GUGiK
 nie uwzględniają np.
 użycia stereotypu „voidable” (UML), wartości „nilReason” (GML)
 klas abstrakcyjnych (UML, GML)
 różnych rodzajów geometrii (UML, GML)
 ograniczeń nakładanych na atrybuty (UML)
 wzajemnych zależności między poszczególnymi
schematami aplikacyjnymi (UML, GML)
19
Co dalej?
 Zbadanie złożoności próbek z danymi
 plików GML zawierających konkretne obiekty
 Sprawdzenie wpływu złożoności schematów
aplikacyjnych na jakość (w tym złożoność) danych
 Opracowanie autorskich metryk złożoności
 dostosowanych do specyfiki schematów aplikacyjnych
UML i GML zawartych w rozporządzeniach
 Przetestowanie funkcjonalności narzędzi
GIS do obliczania złożoności struktur
zapisanych w UML i XML Schema
 ewentualnie opracowanie własnego narzędzia
20
Dziękuję za uwagę!!!
 dr inż. Agnieszka Chojka
[email protected]
Katedra Geodezji Szczegółowej
Wydział Geodezji i Gospodarki Przestrzennej
Uniwersytet Warmińsko-Mazurski w Olsztynie