pobierz plik referatu
Transkrypt
pobierz plik referatu
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rozdział 1 w w Koncepcja użycia języka XVCL do zapisu ewolucji diagramów UML reprezentujących struktury baz danych da .b w Streszczenie. Zaproponowano metodę zapisu ewolucji diagramów UML, reprezentujących struktury baz danych, za pomocą języka XVCL – bazującego na XML języka zapisu wariantów. Diagramy UML zapisano w XMI i zapis ten opatrzono metainformacją w XVCL, opisującą ewolucję. Szczególną uwagę zwrócono na możliwość zapisu projektów mających wiele wariantów rozwijanych równolegle, a różniących się nieznacznie. Zaproponowano też wykorzystanie typowych narzędzi projektowych (Rational Rose) do wspomagania zarządzania wariantami. 1 Wprowadzenie pl s. Projektowanie i utrzymanie systemów informacyjnych z bazami danych wymaga z reguły wielokrotnego modyfikowania struktur danych, często trwającego przez cały wieloletni okres życia systemu. Niejednokrotnie także istnieje potrzeba wytworzenia kilku równolegle żyjących wariantów, różniących się tylko stosunkowo nielicznymi szczegółami. Zarządzanie wieloma wersjami i wariantami schematów danych jest zwykle zadaniem niełatwym i wymagającym formalizacji; próbę takiej właśnie formalizacji zaprezentowano poniżej. 1.1 Motywacja – ewolucja struktur danych zapisanych w UML Obecnie jednym z popularnych sposobów zapisu schematów baz danych są diagramy klas UML, reprezentujące (np. z użyciem stereotypów): − w projektowaniu konceptualnym (terminologia wg [1]) – encje i związki, jak w [2]; − w projektowaniu logicznym – tabele, jak w UML Data Profile [3], [4]. Potrzebne są więc sposoby, by w sposób formalny zapisywać ewolucję tak zapisanych schematów danych: ich kolejne wersje i równolegle istniejące warianty. Ponieważ diagramy UML mają powszechnie akceptowaną reprezentację tekstową – format XMI (XML Metadata Interchange [5]), do zapisu ewolucji schematów można użyć narzędzi przeznaczonych do zarządzania wariantami dokumentów tekstowych. Takim właAdam Bębenek, Tomasz Traczyk: Politechnika Warszawska, Instytut Automatyki i Informatyki Stosowanej, ul. Nowowiejska 15/19, 00-665 Warszawa, Polska email: [email protected], [email protected] (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 A. Bębenek, T. Traczyk śnie narzędziem jest język XVCL. Zastosowanie XVCL do zapisu wariantów diagramów przypadków użycia i czynności zaprezentowano w [6]; niniejsza praca stanowi propozycję adaptacji tego podejścia do zapisu ewolucji diagramów klas reprezentujących struktury baz danych. W dalszym tekście skupiono się na diagramach UML reprezentujących związki encji (jak w [2]), ale to samo podejście może być do diagramów reprezentujących tabele (jak w [3], [4]). w 1.2 Język XVCL da .b w w Język XVCL (XML-based Variant Configuration Language) [7], [8] jest dialektem XML służącym do zapisu wariantów programów lub innych dokumentów tekstowych, bazującym na idei tzw. ram Bassetta [9]. Zapis mającego wiele wariantów dokumentu składa się ze zbioru ramek (x-frames), zawierających fragmenty dokumentu opatrzone znakowaniem XVCL, opisującym zmienność. W ramkach można umieszczać odwołania do innych ramek (instrukcje <adapt>), zatem ramki tworzą graf skierowany (x-framework), zbliżony zwykle budową do drzewa (ale ze „zrostami” – poszczególne ramki mogą mieć więcej niż jedną ramkę nadrzędną). Ramki niższych poziomów (adaptowane) zawierają zapisy bardziej generyczne, zaś ramki wyższych poziomów (adaptujące) określają sposób adaptacji swych ramek podrzędnych do bardziej specyficznych warunków. W ramce adaptowanej można określić fragmenty (<break>), które w czasie jej przetwarzania mogą być uzupełnione lub zastąpione przez fragmenty zdefiniowane za pomocą instrukcji <insert> w ramce nadrzędnej (adaptującej). Procesor XVCL [10], przetwarzający tak zdefiniowaną strukturę, przetwarza ramki rekurencyjnie, poczynając od ramki najwyższego poziomu, tzw. ramki specyfikacyjnej. W miejsce każdej napotkanej instrukcji <adapt> podstawia zaadaptowaną zawartość ramki podrzędnej i w ten sposób scala zawartość całej struktury ramek w jeden dokument wynikowy. W XVCL można także używać zmiennych: instrukcje <set> i <set-multi> sterują podstawianiem zmiennych jedno- i wielowartościowych. W tekście adaptowanego dokumentu można odwoływać się do tych zmiennych i do wyrażeń na nich opartych; zmienne mogą także sterować działaniem instrukcji XVCL, np. przetwarzaniem warunkowym (instrukcja <select>) lub iteracjami sterowanymi zmienną wielowartościową (instrukcja <while>). Co ciekawe, w XVCL wartość zmiennej podstawiona w ramce nadrzędnej ma priorytet nad podstawieniami w ramkach podrzędnych, by możliwe było zmienianie (adaptacja) lokalnych podstawień wartości domyślnych przez ramki nadrzędne (adaptujące). pl s. 2 Zapis wariantów i wersji diagramów UML za pomocą XVCL 2.1 Reprezentacja diagramów UML Aby móc wykorzystać język XVCL do zapisu procesu ewolucji, należy przekształcić diagramy UML do postaci tekstowej. Większość narzędzi projektowych umożliwia eksport diagramów UML do plików w formacie XMI i ten format wykorzystano jako postać źródłową, której warianty mogą być zapisane za pomocą XVCL. Aby umożliwić procesorowi odróżnienie komend języka XVCL (który, podobnie jak XMI, jest dialektem XML) od zwykłego tekstu XMI opisującego obiekty UML, zastosowano przestrzeń nazw (namespace) i każdą komendę języka XVCL poprzedzono prefiksem xvcl (procesor XVCL należy uruchamiać z opcją –N). W wyniku działania procesora XVCL powstaje plik XMI, będący 14 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Koncepcja użycia języka XVCL do zapisu ewolucji diagramów UML odwzorowaniem wynikowego wariantu, który może być zaimportowany przez narzędzie projektowe i wyświetlony w postaci graficznej. 2.2 Zapis wyboru wariantu z rodziny systemów w Rodziną systemów nazywany będzie zbiór systemów, które wywodzą się ze wspólnego źródła i mają część wspólną oraz części różniące się. Istnieje wówczas rdzeń zbioru diagramów UML, odpowiadający wspólnej części systemów rodziny, który jest włączany do wszystkich diagramów opisujących członków rodziny. Za pomocą XVCL należy opisać te części diagramów, którymi systemy rodziny się różnią. Specyfikacji wariantów dokonuje się, w zależności od sytuacji, wykorzystując tylko jedną z wielu opcji albo superpozycję (połączenie) kilku opcji. Jeśli diagramy końcowe różnią się całymi klasami lub zbiorami klas, to można stworzyć oddzielne ramki XVCL (pliki) i sterować ich załączaniem poprzez ustawianie zmiennych w ramce specyfikacyjnej. Dla przykładu zapis kilku opcji może wyglądać następująco: w w da .b <xvcl:while using-items-in="PrzelewBankowy"> <xvcl:select option="PrzelewBankowy"> <xvcl:option value="Internet"> <xvcl:adapt x-frame="Internet.xvcl" /> </xvcl:option> <xvcl:option value="Telefon"> <xvcl:adapt x-frame="Telefon.xvcl" /> </xvcl:option> <xvcl:option value="OddzialBanku"> <xvcl:adapt x-frame="OddzialBanku.xvcl" /> </xvcl:option> </xvcl:select> </xvcl:while> W ramce specyfikacyjnej nadawane są, w zależności od potrzeb, wartości zmiennej sterującej wyborem opcji, np. zapis równoczesnego wyboru kilku z opcji może wyglądać tak: <xvcl:set-multi var="PrzelewBankowy" value="Internet, OddzialBanku" /> Wynikowy diagram będzie w tym przypadku superpozycją diagramów odpowiadających wybranym opcjom. pl s. 2.3 Zapis wariantów atrybutów i związków Różnice o większej szczegółowości, dotyczące zmian atrybutów i związków, można zapisać wykorzystując polecenia XVCL: − <break> – obejmujące miejsce wprowadzenia zmian w ramce opisującej klasę, − <insert> – umieszczone w ramce specyfikacyjnej, określające specyficzny dla danej opcji kod XMI. Kod dodany do ramki specyfikacyjnej może zatem wyglądać tak: <xvcl:adapt x-frame="Klasa.xvcl"> <xvcl:insert break="nowe_atrybuty"> … <!-- kod w XMI nowych atrybutów--> </xvcl:insert> <xvcl:insert break="istniejacy_atrybut"> … <!-- kod w XMI modyfikujący istniejący atrybut--> </xvcl:insert> </xvcl:adapt /> 15 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 A. Bębenek, T. Traczyk 2.4 Zapis ewolucji systemu w czasie w Przez ewolucję systemu w czasie rozumie się tu ciąg kolejnych wersji systemu, powstających w czasie jego rozwoju i wprowadzających kolejne modyfikacje do struktur danych. Wersje oznaczono kolejnymi wartościami atrybutu versions. Informację o pochodzeniu kolejnej wersji umieszczono na początku ramki specyfikacyjnej; użyto sposobu zapisu, który umożliwia wywodzenie kolejnej wersji niekoniecznie z wersji bezpośrednio poprzedniej. Zapis <xvcl:set-multi var="versions" value="1,2,3"/> oznacza, że wersja nr 3 korzysta ze zmian, które były wprowadzane we wszystkich poprzednich wersjach. Natomiast użycie: <xvcl:set-multi var="versions" value="1,3"/> oznacza, że wersja nr 3 korzysta tylko ze zmian, które były wprowadzone w wersji nr 1, a zmiany z wersji nr 2 są pomijane. Zmianami w kodzie XMI steruje się przez ustawianie – za pomocą komendy option – wartości odpowiednich zmiennych, jak w przykładzie poniżej. w /> /> /> da .b w <xvcl:set-multi var="versions" value="1,3" /> <xvcl:while using-items-in="versions"> <xvcl:select option="versions"> <xvcl:option value="1"> <xvcl:set var="zmienna1" value="11" </xvcl:option> <xvcl:option value="2"> <xvcl:set var="zmienna1" value="12" <xvcl:set var="zmienna2" value="21" </xvcl:option> <xvcl:option value="3"> <xvcl:set var="zmienna2" value="22" <xvcl:set var="zmienna3" value="31" </xvcl:option> </xvcl:select> </xvcl:while> /> /> Następnie, w zależności od stanu tak ustawionych zmiennych, procesor XVCL dołącza całe pliki XMI ze specyfikacjami diagramów lub modyfikuje ich fragmenty. pl s. <xvcl:select option="zmienna1"> <xvcl:option value="11"> <xvcl:adapt x-frame="diagram1.xvcl"> <xvcl:ifdef var=”zmienna2”> <xvcl:select option="zmienna2"> <xvcl:option value="21"> <xvcl:insert break="zmiana21"> … <!-- kod w XMI --> </xvcl:insert> </xvcl:option> <xvcl:option value="2"> <xvcl:insert break="zmiana22"> … <!-- kod w XMI --> </xvcl:insert> </xvcl:option> </xvcl:select> </xvcl:ifdef> </xvcl:adapt> </xvcl:option> <xvcl:option value="12"> … <!—analogiczny kod XVCL opisujący przypadek 12 --> </xvcl:option> </xvcl:select> 16 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Koncepcja użycia języka XVCL do zapisu ewolucji diagramów UML 3 Zastosowanie Rational Rose do zarządzania ewolucją diagramów 3.1 Wykorzystanie diagramu przypadków użycia do zarządzania wariantami w Konieczność kodowania wariantów w języku XVCL może być uciążliwa dla użytkownika. Dlatego opracowano sposób wykorzystania popularnego narzędzia projektowego Rational Rose, ułatwiający zarządzanie wariantami. Użyto odpowiednio przystosowanego widoku przypadków użycia (wybrano ten rodzaj diagramu ze względu na możliwość powiązania każdego węzła diagramu ze specyficznym diagramem klas). Posługując się diagramem przypadków użycia wzbogaconym o pewne stereotypy, można budować diagramy wariantów – schematy przedstawiające zależności między wariantami (patrz rys. 1). Każdy przypadek użycia reprezentuje wariant, do którego przypisany jest oddzielny diagram klas. Użytkownik może zarządzać wariantami posługując się językiem graficznym, bez wgłębiania się w zawiłości składni języków XVCL i XMI. Odpowiednie oprogramowanie umożliwi automatyczne budowanie ramek XVCL w zależności od struktury diagramu. da .b w w pl s. Rys. 1. Przykładowy diagram wariantów rodziny systemów 3.2 Wykorzystanie zaawansowanych możliwości programu Rational Rose Do zbudowania rozszerzeń ułatwiających zarządzanie wariantami używane są zaawansowane możliwości Rational Rose: interfejs programistyczny REI oraz język RSL. Rose Extensibility Interface (REI) [11] jest zbiorem pakietów klas, które stanowią interfejs programistyczny, pozwalający kontrolować całą funkcjonalność programu Rational Rose. Dzięki niemu z diagramów przypadków użycia i diagramów klas mogą być pobrane szczegółowe informacje, służące do zapisu wyeksportowanego kodu XMI w postaci XVCL. 17 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 A. Bębenek, T. Traczyk w Rational Rose Language (RSL) jest językiem skryptowym, służącym do komunikacji z REI. Skrypty pisane w nim służą do oprogramowania kolejnych etapów działania systemu zarządzania ewolucją: − uzupełnienia tekstowej reprezentacji diagramu brakującymi szczegółowymi informacjami (np. powiązaniami między diagramami) w postaci kodu XMI, − przedstawienia struktury diagramu wariantów w postaci kodu XVCL, − inicjalizacji zmiennych w ramce specyfikacyjnej, zgodnej z wyborem wariantów, dokonanym przez użytkownika na diagramie (np. przez zaznaczenie myszką), − uruchomienia procesora XVCL [10], który tworzy plik XMI gotowy do importu. Samo przetwarzanie diagramów na postać XMI i ponownie na postać graficzną jest wykonywane za pomocą standardowych narzędzi wbudowanych w Rational Rose: − UML 1.3 Export przekształca diagram UML w plik w formacie XMI; stworzony plik jest wykorzystywany jako wersja startowa dla dalszego przekształcania przez skrypty napisane w RSL i REI; − UML 1.3 Import wczytuje wygenerowany przez procesor XVCL plik XMI, dzięki czemu wynikowy diagram może być przedstawiony w postaci graficznej. w w 3.3 Przykład zarządzania wariantami rodziny systemów da .b Załóżmy, że naszym zadaniem jest zaprojektowanie rodziny diagramów związków encji (w notacji UML), z których w przyszłości może powstać: − system ewidencji książek i ich autorów, np. księgarnia internetowa, − system ewidencji książek, czasopism, filmów, płyt z muzyką oraz ich twórców, np. sklep internetowy, − biblioteka wypożyczająca tylko książki, − biblioteka wypożyczająca książki, czasopisma, prace magisterskie, dokumenty w formie elektronicznej. Dla każdego z tych systemów trzeba stworzyć osobne, ale bardzo podobne diagramy klas. Jeśli więc potrzebna będzie jakaś nowa wspólna funkcjonalność, trzeba będzie modyfikować kilka diagramów. Lepszym rozwiązaniem jest wyodrębnienie za pomocą XVCL funkcjonalności, które są wspólne oraz takich, które są specyficzne, a następnie automatyczne tworzenie diagramów systemów rodziny. Posługując się widokiem przypadków użycia zbudowano diagram wariantów przykładowej rodziny systemów (rys. 1). Na diagramie przy niektórych wymaganiach występuje krotność: − 1 – oznacza, że wymaganie jest obowiązkowe, − 0..1 – oznacza, że wymaganie jest nieobowiązkowe. Do reprezentacji różnego typu powiązań użyto dwóch stereotypów: − <<one-of-many>> – tylko jedno z wielu wymagań może zostać wybrane, − <<any-of-many>> – można wybrać kilka z wielu wymagań. Stosując się do tych zasad można zauważyć, że końcowy system musi zajmować się jednym z dwóch zasobów: Tylko książki albo Książki, czasopisma, kasety video itp. Ponadto system może obsługiwać wypożyczanie swoich zasobów. Diagram przypisany do węzła Rdzeń systemu zawiera wszystkie te informacje, które występują u każdego członka rodziny systemów (rys. 2). W tym przykładzie są to informacje na temat autorów, ponieważ można tam zawrzeć zarówno dane o twórcach książek, jak i reżyserach filmów. Diagram przypisany do węzła opcjonalnego Umożliwienie wypożyczeń zawiera wszystkie informacje, które są potrzebne by gromadzić dane na temat tego, kto i co wypożyczył. Węzeł obowiązkowy Jakie zasoby posiada? pl s. 18 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Koncepcja użycia języka XVCL do zapisu ewolucji diagramów UML nie zawiera żadnego diagramu i służy jedynie do logicznego przedstawienia podziału systemów na dwa rodzaje: zajmujących się tylko książkami albo mających w swym zakresie większą różnorodność zasobów. Na diagramie przypisanym do węzła Książki, czasopisma, kasety video itp. przedstawiono możliwość wprowadzania do bazy informacji zarówno o książkach, jak i o innych zasobach. Między innymi wprowadzono tutaj atrybut typ_zasobu, który ok.reśla z czym mamy do czynienia. Natomiast diagram przyporządkowany do węzła Tylko książki umożliwia gromadzenie danych jedynie o książkach. w da .b w w pl s. Rys. 2. Podgląd diagramów związków encji przypisanych do kolejnych wariantów W trakcie tworzenia diagramu końcowego łączone są ze sobą diagramy z różnych węzłów. Asocjacje są tworzone dzięki zdefiniowanym powiązaniom między klasami; definicje powiązań umieszcza się we właściwościach podrzędnych węzłów, w pokazanej poniżej formie (oznaczenie nazwaDiagramu.nazwaKlasy). 19 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 A. Bębenek, T. Traczyk w Tylko ksiazki: A:class=”ksiazki.ksiazka”, name=”napisana przez”, multiplicity=”1”, B:class=”rdzen.autorstwo”, name=”napisalo”, multiplicity=”1..*”; Książki, czasopisma, kasety video, itp.: A:class=”zasoby.zasob”, name=”stworzony przez”, multiplicity=”1”, B:class=”rdzen.autorstwo”, name=”stworzylo”, multiplicity=”1..*”; Umożliwienie wypożyczeń: A:class=”ksiazki.wydanie_ksiazki”, name=”posiada”, multiplicity=”1”, B:class=”wypozyczenia.egzemplarz”, name=”nalezy do”, multiplicity=”0..*”; A:class=”zasoby.wydanie_zasobu”, name=”posiada”, multiplicity=”1”; B:class=”wypozyczenia.egzemplarz”, name=”nalezy do”, multiplicity=”0..*”; w Użytkownik, w celu stworzenia diagramu obrazującego bibliotekę wypożyczającą tylko książki, wybiera na diagramie wariantów węzły: Rdzeń systemu, Jakie zasoby posiada?, Tylko książki oraz Umożliwienie wypożyczeń. W ramce specyfikacyjnej zostaną wówczas ustawione odpowiednie wartości zmiennych, które sterują wykonaniem właściwych fragmentów kodu i utworzeniem wynikowego diagramu (rys. 3). w <set var="Jakie zasoby posiada?" value=”ksiazki" /> <set var="Umozliwienie wypozyczen" value=”wypozyczenia" /> <xvcl:adapt x-frame="rdzen.xvcl" /> da .b <!-- ramka z rdzeniem jest zawsze dołączana do końcowego diagramu--> <xvcl:select option="Jakie zasoby posiada?"> <xvcl:option value="ksiazki"> <!--ten fragment będzie wykonany--> <xvcl:adapt x-frame="ksiazki.xvcl"> <xvcl:insert break="ksiazki_rdzen"> … <!—- kod XMI związku między książkami a rdzeniem--> </xvcl:insert> </xvcl:adapt> </xvcl:option> <xvcl:option value="zasoby"> <!--to nie będzie wykonane--> <xvcl:adapt x-frame="zasoby.xvcl"> <xvcl:insert break="zasoby_rdzen"> … <!—- kod XMI związku między zasobami a rdzeniem--> </xvcl:insert> </xvcl:adapt> </xvcl:option> </xvcl:select> pl s. <xvcl:ifdef var=”Umozliwienie wypozyczen”> <!--konstrukcja dla węzła opcjonalnego - diagram wypozyczenia --> <xvcl:adapt x-frame="wypozyczenia.xvcl"> <xvcl:select option="Jakie zasoby posiada?"> <xvcl:option value="ksiazki"> <!—-to będzie wykonane--> <xvcl:insert break="wypozyczenia_ksiazki"> …<!—-kod XMI związku z książkami--> </xvcl:insert> </xvcl:option> <xvcl:option value="zasoby"><!—-to nie będzie wykonane--> <xvcl:insert break="wypozyczenia_zasoby"> …<!—-kod XMI związku z zasobami--> </xvcl:insert> </xvcl:option> </xvcl:select> </xvcl:adapt> </xvcl:ifdef> 20 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Koncepcja użycia języka XVCL do zapisu ewolucji diagramów UML w w w Rys. 3. Wygenerowany diagram związków encji, przedstawiający bibliotekę wypożyczającą tylko książki da .b 4 Podsumowanie 4.1 Stan prac i dalsze zadania 4.2 Potencjalne zastosowania pl s. Opracowano koncepcję użycia języka XVCL do zapisu ewolucji diagramów UML, reprezentujących struktury baz danych. Obecnie trwają prace nad oprogramowaniem rozszerzającym pakiet Rational Rose o możliwość zarządzania wariantami diagramów. Dalsze prace polegać będą z jednej strony na rozwijaniu koncepcji; opracowania wymaga np. sposób graficznej reprezentacji ewolucji systemów w czasie. Z drugiej strony planuje się przeprowadzenie testów opracowanego sposobu zapisu i narzędzi na rzeczywistym przypadku: diagramach związków encji opisujących strukturę bazy danych konstrukcji detektora cząstek (Detector Construction Database [12]) – „żyjącego” projektu, mającego trzy równolegle utrzymywane warianty i wiele kolejnych wersji, rozwijanych na przestrzeni kilku lat. Zaprezentowany w tym rozdziale sposób zapisu ewolucji diagramów UML może znaleźć zastosowanie przede wszystkim do zarządzania projektami systemów, które rozwijane są przez dłuższy czas i istnieją w więcej niż jednym wariancie jednocześnie. Jest to sytuacja stosunkowo często występująca w przypadku systemów informacyjnych z bazami danych, dla których typowa jest wieloletnia eksploatacja powiązana z nieustannymi modyfikacjami schematu danych; stosunkowo często występuje też konieczność równoczesnego utrzymywania kilku wariantów schematów, np. dla różnych docelowych platform DBMS. Dlatego w prowadzonych pracach skoncentrowano się na diagramach UML, reprezentujących struktury baz danych. 21 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 A. Bębenek, T. Traczyk Można mieć nadzieję, że zaproponowane podejście umożliwi sformalizowany zapis ewolucji wersji i wariantów schematów struktur danych, co mogłoby ułatwić zarządzanie projektami i utrzymywanie długookresowo eksploatowanych systemów informacyjnych. Literatura w 1. 2. Conolly T., Begg C.: Systemy baz danych. RM 2004. Gornik D.: Entity relationship modeling with UML. Rational Software – IBM 2003, 3. Gornik D.: UML Data Modeling Profile. Rational Software Corporation 2002, 4. Gornik D.: Relational modeling with UML. Rational Software – IBM 2003, 5. XML Metadata Interchange (XMI). Object Management Group (OMG) 2001, http://www.ibm.com/developerworks/rational/library/319.html http://www.jeckle.de/files/RationalUML-RDB-Profile.pdf w http://www.ibm.com/developerworks/rational/library/322.html http://www.omg.org/technology/documents/formal/xmi.htm 6. da .b w Jarzabek S., Zhang H.: XML-based Method and Tool for Handling Variant Requirements in Domain Models. Proceedings of 5-th International Symposium on Requirements Engineering, RE’01. Toronto, Canada 2001. 7. Wong T.W., Jarzabek S., Myat Swe S., Shen R., Zhang H.Y.: XML Implementation of Frame Processor. Proceedings of ACM Symposium on Software Reusability, SSR’01. Toronto, Canada 2001. 8. Soe M.S., Zhang H., Jarzabek S.: XVCL: A Tutorial. Proceedings of 14-th International Conference on Software Engineering and Knowledge Engineering, SEKE’02, Italy. ACM Press 2002. 9. Bassett P.: The Theory and Practice of Adaptive Components. Lecture Notes In Computer Science; Vol. 2177. Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering. Springer-Verlag 2000. 10. XML-based Variant Configuration Language – Download Site, http://sourceforge.net/project/showfiles.php?group_id=58966 11. Using the Rose Extensibility Interface. Rational Software Corporation 2001, http://www.cs.rhul.ac.uk/CompSci/Computers/rational/pdf/rose_REI_guide/Rose_REI_guide.pdf 12. Traczyk T.: Rozproszona heterogeniczna baza danych wspierająca budowę wielkiego eksperymentu fizyki wysokich energii. W ramach pracy zbiorowej pod redakcją S. Kozielskiego i in.: Bazy danych. Modele, technologie, narzędzia. Wydawnictwa Komunikacji i Łączności 2005. pl s. 22 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006