To jest stara wersja strony!
LogTalk_UMLgraph
Generowanie diagramów klas UML w języku Prolog
Cele Projektu:
Analyze, describe, prepare a short tutorial as S5 for UMLgraph.
Provide a simple Prolog
API for genarating, and visualizing UML diagrams from Prolog, write a Prolog parser
Research on existing approaches to representing UML in/with Prolog
Analyze, describe, prepare a short tutorial as S5 for LogTalk.
Check first has anyone made some progress in the integration of these two!
Provide menas for generating visualizations of UML diagrams from Prolog for LogTalk
Podstawy UMLGraph.
UMLgraph został napisany przez greckiego profesora uniwersytetu Ateńskiego o imieniu Diomidis Spinellis.
Pierwsze publiczne wydanie UMLgraph to wersja 1.15 wydana w 2002-07-26. Od tej pory projekt przeszedł różne modyfikacje i zostały dodane nowe funkcjonalności. Aktualna wersja 5.2 została wydana 2008-12-03, a obecnie trwają prace nad wersją 5.3.
UMLgraph jest wydawany na bardzo liberalnej licencji
BSD(Berkeley Software Distribution License), której podstawą jest wolny dostęp do kodu źródłowego, możliwość jego modyfikacji i ulepszania, a także rozprowadzanie programu w nowej zmodyfikowanej postaci, po to aby mogła korzystać z nich cała społeczność.
Instalacja i wymagania UMLGraph!
Musimy najpierw posiadać następujące pakiety w systemie:
Aby korzystać z UMLGraph należy odpowiednio zmodyfikować skrypt: /ścieżka/UMLGraph/bin/umlgraph
Cechy UMLGraph.
Jak sama nazwa wskazuje UMLgraph jest narzędziem umożliwiającym rysowanie diagramów UML (Unified Modeling Language), służących do modelowania obiektów w analizie obiektowej. Opis diagramu UML jest czysto tekstowym opisem reprezentacji, który UMLgraph analizuje i przedstawia w odpowiedniej formie graficznej.
Narzędzie stworzone specjalnie dla języka Java. UMLgraph potrafi analizować składnię i semantykę tego języka i na podstawie analizy tworzyć diagramy UML.
Nie wymaga on pełnych definicji metod czy nawet klas. Definiujemy to co chcemy aby znalazło się na diagramie.
Pozwala on między innymi na ingerowanie w to jak chcemy aby dany element był przedstawiony na diagramie za pomocą dodanych w komentarzach komend JavaDoc, przed definicją klasy, której mają dotyczyć.
UMLGraph generuje diagramy w formatach: gif, ps, png, svg.
UMLGraph pozwala modelować (1):
klasy (używając tagu: @opt shape nazwa )
funkcje (wyspecyfikowane jako metody w klasie)
atrybuty (wyspecyfikowane jako pola w klasie)
stereotypy (używając tagu: @stereotype nazwa )
wartości oznaczone (używając tagu: @tagvalue nazwa wartość )
UMLGraph pozwala modelować (2):
relację implementowania (używając deklaracji z języka Java: implements )
relację dziedziczenia (używając deklaracji z języka Java: extends albo tagu: @extends )
relację assocjacji (używając tagu: @assoc )
relację skierowanej assocjacji (używając tagu: @navassoc )
relację agregacji (używając tagu: @has )
relację kompozycji (używając tagu: @composed )
relację zależności (używając tagu: @depend )
Opcje:
@opt … - służy do formatowania. Posiada liczne opcje z którymi można go stosować. Dokładny opis wszystkich możliwości znajduje się pod linkiem:
Tag @opt.
@note … - powoduje dodanie dodatkowej etykiety,
@view @match - są to znaczniki używane do nadania pewnych opcji klasom których nazwy spełniają np. wyrażenie regularne. Widoki są dziedziczone od innych klas i posiadają ich cechy.
@hidden - dany obiekt nie będzie przedstawiony na diagramie, służy do definiowania parametrów w całym pliku|
Przykład:
/**
* @opt shape class
* @opt edgecolor "yellow"
* @opt nodefontname "Times"
* @opt nodefillcolor "#a0a0a0"
* @opt nodefontsize 14
* @hidden
*/
class UMLOptions{}
/**
* @opt nodefontname "Helvetica-Bold"
* @opt nodefontcolor "white"
* @note opis ...
* ... kontynuacja opisu ...
* @note inny opis ....
*/
class klasa{}
Przykład:
Ciekawe miejsca:
Pierwsza klasa nie jest pokazana na diagramie. Dzieje się to za sprawą znacznika @hidden.
klasa{} posiada cechy wyszczególnione dla UMLOptions{}. Jest to sposób na ustawianie wartości domyślnych dla wszystkich obiektów w pliku, a także elementów takie jak np. tło diagramu. Cechy zostają odziedziczone przez kolejne obiekty.
Początki języka LogTalk
Język napisany przez Paulo Moura.
Pierwsza wersja LogTalk 1.0 została wydana w 1995 roku.
W 1998 roku, przyszła na świat wersja 2.0, która do tej pory jest wersją aktualną i nie jest ona kompatybilna z LogTolk 1.0.
Najnowsza wersja 2.35.1 została wydana dosłownie przed kilkoma dniami, bo 1 marca 2009 roku.
-
Cechy LogTalk!
LogTalk jest rozszerzeniem dla języka Prolog, który wzbogaca go o dodatkowe możliwości.
LogTalk jest próbą integracji programowania logicznego z programowaniem obiektowym.
Pozwala na enkapsulowanie bazy wiedzy, napisanej w deklaratywny sposób, wewnątrz obiektu. Dzięki temu jest ona dostępna jedynie tam gdzie jest potrzebna, a kod programu staje się łatwiejszy w utrzymaniu i bardziej efektywny.
Od strony programisty definiowanie obiektu jest podobne do tworzenia kilku przestrzeni nazw z osobnymi bazami wiedzy w każdym obiekcie.
O jakie cechy LogTalk wzbogaca Prolog?
Integracja programowania logicznego z programowaniem obiektowym.
Wielokrotne używanie napisanego kodu.
Wsparcie zarówno dla programowania opartego na klasach jak i prototypach.
Utrzymywanie hierarchii obiektów.
Separacja interfejsów od definicji klas.
Możliwość ukrywania składników klas. Występują cztery typy praw dostępu do komponentów obiektu: pakietowy, private, protected, i public.
Dziedziczenie.
Wsparcie dla aplikacji wielowątkowych.
Polimorfizm. Wsparcie dla wczesnego jak i późnego wiązania.
Elementy języka.
obiekty - prototypy, klasy i instancje.
protokoły - odpowiedniki interfejsów.
kategorie - nie posiadają odpowiedników. Są to kontenery zawierające pewne funkcjonalności.
predykaty - odpowiedniki funkcji.