|
|
pl:miw:miw08_ardcase_uml [2008/06/15 20:57] miw |
pl:miw:miw08_ardcase_uml [2019/06/27 15:50] |
====== Opis ====== | |
Artur Poniedziałek (4AR) <arturponiedzialek@gmail.com> | |
| |
Design ARD+, XTTv2: UML cases | |
| |
UML + MVC Cases – A search for design examples made with UML with MVC approach, esp. behavior diagrams are needed; examples should be complete and well documented in UML; evaluation of the existing cases; modelling selected examples with ARD+/XTT+(v2) | |
| |
====== Spotkania ====== | |
*[[pl:miw:miw08_ardcase_uml:projekt|przebieg prac nad projektem]] | |
| |
| |
| |
| |
| |
| |
| |
====== Projekt ====== | |
| |
*[[pl:miw:miw08_ardcase_uml:aktualnewyniki|opracowanie projektu]] | |
*[[pl:miw:miw08_ardcase_uml:ard|rejestracja studentów w ARD]] | |
*[[pl:miw:miw08_ardcase_uml:ard_diagramy|uzyskane diagramy w ARD]] | |
| |
| |
| |
| |
====== Sprawozdanie ====== | |
| |
| |
| |
==== 1. Cel projektu==== | |
Celem projektu było stworzenie diagramu ARD w oparciu o diagramy UML/MVC pewnego systemu. | |
W czasie prac związanych z wyszukiwaniem właściwych systemów uzgodniono, że projekt będzie dotyczył | |
systemu rejestacji studentów na seminaria. | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
==== 2. Wykonanie projektu i wnioski ==== | |
| |
Naczelnym zadaniem w projekcie było uzyskanie diagramu ARD wybranego systemu, poprzez przedstawienie sposobu translacji diagramów UML. Kluczem do rozwiązania problemu było odnalezienie istotnych diagramów UML, istotnych czyli takich co w pierwszym przybliżeniu pasowałyby do właściwości "prostych" oraz "złożonych" (tzw. atrybuty fizykalne oraz konceptualne) funkcjonujących w terminologi ARD. | |
| |
Można zadać pytanie czy w ogóle istnieje funkcja przejścia (translacji) diagramów UML do ARD ? Na powyższe pytanie nie można tak po prostu odpowiedzieć. Jedno jest natomiast pewne diagramy w UML tworzy się od najbardziej ogólnych (przypadki użycia, diagramy klas dla dziedziny) po bardziej szczegółowe (diagramy klas w analizie, diagramy sekwencji i kooperacji). Nie inaczej jest w przypadku ARD: zaczynamy od pewnych ogólnych pojęć (atrybuty konceptualne) i poprzez ich podział lub zamianę osiągamy na najbardziej szczegółowym poziomie atrybuty fizykalne oraz operacje jakie można na nich wykonać. | |
| |
Temat projektu sugeruje wykorzystanie diagramów behawioralnych UML'a. Jest to sensowne podejście, ale wydaje się, że nie w początkowej fazie projektu. Skoro ARD to zbiór atrybutów i operacji to powinniśmy najpierw ustalić czym się zajmujemy a dopiero potem jak tego używamy. Nasuwa się pomysł, że powinniśmy zacząć od struktury, czyli od diagramów klas w UML'u. | |
| |
Diagramy klas na wczesnym etapie projektu mają specyfikowany zbiór atrybutów i prostych operacji jakie zmieniają stan poszczególnych instancji (obiektów wspomnianych klas). Taki tok myślenia został właśnie przyjęty w projekcie. Na wstępie został wybrany zbiór najbardziej podstawowych właściwości z diagramów klas systemu UML, a następnie zaczynając od atrybutu konceptualnego zaczęto tworzyć system w ARD. | |
| |
Wygenerowany diagram w ARD przedstawia kilka istotnych informacji na temat modelowanego systemu: | |
- System rejestracji studentów to tak naprawdę kilka mniejszych systemów, które ze sobą współpracują. | |
- Pierwszy z podsystemów przedstawia relację, że plan studenta oraz historia jego seminariów są w związku z opłatą oraz terminem seminarium | |
- Drugi z podsystemów przedstawia dwie relacje, że student jest w związku z prowadzącym, a prowadzący musi uwzględniać fakt czy student brał wcześniej udział w seminarium, i czy są np. wolne miejsca aby zapisać studenta. | |
- Trzeci podsystem przedstawia relację, że potwierdzenie zapisu jest dokonywane przez prowadzącego na podstawie utworzonej przez niego listy studentów. | |
| |
W tym momencie pozornie prosty system nieco się skomplikował. W istocie mamy teraz trzy mniejsze podsystemy, które pracują w pewien określony sobie sposób. Nasuwa się pytanie czy te systemy są niezależne ? Czy w ogóle mogą być niezależne skoro wszystkie dotyczą systemu rejestracji studenta ? | |
| |
Te i wiele innych pytań z całą pewnością mogą posłużyć za temat kolejnego projektu. Trzeba przeanalizować co nam daje informacja, że początkowo jeden system stał się nadsystemem w stosunku do nowych trzech systemów. Jak ten fakt dalej wykorzystać ? Czy jest to jedyny sposób realizacji rejestracji studentów ? Czy inne diagramy uml dałyby zbliżony diagram ARD analizowanego systemu ? | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
==== 3. Napotkane problemy ==== | |
| |
Trzeba powiedzieć na wstępie, że ARD jest stosunkowo słabo udokumentowane a przynajmniej niewłaściwie. Przykład termostatu jest specyficzny i nie objaśnia dobrze składni dla split'a dla atrybutów konceptualnych. Oficjalne dokumenty opisujące ARD jak choćby [[hekate:bib:hekate_bibliography#gjn2008flairs-ardprolog]] w prawdzie podają wiele przykładów split ( podziału ), ale nigdzie nie jest podany jeden kompleksowy przykład opisujący listy jakie trzeba podać jako "argumenty" split'a. Byłoby dobrze przedstawić podział dla przykładowego atrybutu [ a , b , c ], który ma zostać podzielony na inne atrybuty np. [a,b] oraz [c] czy też [c] i [a,b] odpowiednio zależnościami [a,b] -> [c] ( [a,b] zależy od [c]) oraz [c] -> [a,b] ( [c] zależy od [a,b] ). | |
Krótko mówiąc opisać parametry splita: | |
- atrybut do podziału np. [a,b,c,d,e] | |
- lista nowych atrybutów np. [ [a,b] , [c], [d,e] ] | |
- lista list połączeń między nowymi atrybutami np. [ [ [a,b], [c] ], [ [c], [d,e] ] ]. | |
| |
Brak powyższego opisu sprawił, że godziny spędzone nad próbą tworzenia diagramu ARD w systemie Varda przeszły do historii jako "źle wykorzystane". | |
| |
Druga kwestia jest związana z wykorzystaniem środowiska Varda. Na stronie [[hekate:varda|Varda]] w prawdzie rozdzielono przykład użycia Vardy w systemie Unix/Windows, ale nie wyjaśniono choćby co robią komendy: | |
| |
<code> | |
?- sar('therm-ard.dot'). | |
?- shi('therm-tph.dot'). | |
?- gax. | |
?- sxt('therm-xtt.dot'). | |
</code> | |
| |
Wspomniano tylko, że służą do generowania diagramów w Graphizie nie wyjaśniając, że tworzą one kod rozumiany przez Graphiza, który trzeba "skompilować" w Graphizie aby otrzymać plik bitmapy, png czy jpg. Na temat Graphiza wiadomo tylko, że jest "needed to build visual models". | |
| |
Tych kilka "komend" prologu wywoływanych z Vardy to chyba niepełny potencjał. W zasadzie co robi sar, shi, gax ? Nie napisano choćby jak wywołać helpa w Vardzie (oczywiście można powiedzieć, że doświadczony użytkownik metodą prób i błędów dojdzie to tego). Może warto przedstawić wynik działania helpa w Vardzie na stronie [[hekate:varda|Varda]] ? | |
| |
====== Materiały ====== | |
| |
| |
===== Linki do UML i MVC ===== | |
| |
* [[http://www.pst.informatik.uni-muenchen.de/~kochn/pUML2001-Hen-Koch.pdf|ogólnie o modelowaniu webowym]] | |
* [[http://services.eng.uts.edu.au/~dbl/archive/2003-Low02b.pdf|rozrzerzenie UMLa o diagramy potrzebne do modelowania MVC]] | |
| |
| |
| |
| |
===== ===== | |
| |
=== 1. kwietnia 2008 === | |
| |
| |
Do dalszej analizy wybrano diagramy UML z : | |
| |
**System seminariów dla studentów - jeden z lepiej udokumentowanych** | |
| |
* [[http://www.agilemodeling.com/artifacts/|Strona główna ( patrz od pozycji UML )]] | |
* [[http://www.agilemodeling.com/artifacts/systemUseCase.htm|Use Cases Diagrams]] | |
* [[http://www.agilemodeling.com/artifacts/classDiagram.htm|Class Diagrams]] | |
* [[http://www.agilemodeling.com/artifacts/activityDiagram.htm|Activity Diagrams]] | |
* [[http://www.agilemodeling.com/artifacts/sequenceDiagram.htm|Sequence Diagrams]] | |
* [[http://www.agilemodeling.com/artifacts/componentDiagram.htm|Component Diagrams]] | |
| |
| |
| |
| |
===== ===== | |
| |
=== 19. marca 2008 === | |
== PetStore == | |
Ok, this could be //[[hekatedev:hekate_cases|a case]]// allright. | |
| |
See the [[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html|discussion here]]. | |
| |
It is a example of using the [[http://java.sun.com/blueprints/patterns/MVC.html|MVC pattern in Java]]. | |
General discussion of [[http://java.sun.com/blueprints/patterns/index.html|patterns in Java is here]]. | |
| |
Some classic Smalltalk [[http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html|MVC tips here]]. | |
| |
An idea is to investigate some common MVC frameworks, such as [[http://struts.apache.org/primer.html#mvc|Struts]] (see some [[http://www-128.ibm.com/developerworks/ibm/library/j-struts/|introduction]]). | |
| |
Another example, [[http://www.codeproject.com/aspnet/ModelViewController.asp|warning! ASP.NET]]. | |
| |
For [[wp>yeomens]]: //[[wp>Design Patterns]]// by the Gang'O'Four. | |
| |
**IW**: please evaluate! :-) | |
| |
--- //[[gjn@agh.edu.pl|Grzegorz J. Nalepa]] 2006/12/30 23:06// | |
| |
| |
= Evaluation = | |
| |
* example seems to be comprehensive | |
* mistake: class diagram is showed in a very early development stage -- v.good example how it should not be done :-) :!: | |
* mistake: activity diarams are placed toward the end of the design process, should be just oppisite :-) :!: | |
* mistake: physical diagram is placed after the class diagram should be before :!: | |
* some diagrams are UML based some are not, i.e. DFD at the very beginning, it's not named DFD though and it is not complete | |
* quite nice example of the MVC approach | |
* an example how the design process should not be conducted, could be reworked with Hekate approach :!: | |
| |
--- //[[wojnicki@agh.edu.pl|Igor Wojnicki]] 2007/01/05 11:59// | |
| |
===== ===== | |
| |
=== 12-13 marca 2008 === | |
| |
Uporządkowanie zasobów: | |
| |
**Przykład systemu udzielania pożyczek (Sun Java)** | |
| |
| |
* [[http://developers.sun.com/jsenterprise/learning/tutorials/index.jsp|Strona główna tutoriala]] | |
* [[http://developers.sun.com/jsenterprise/learning/tutorials/jse8/uml_use_case.html| Use Case]] | |
* [[http://developers.sun.com/jsenterprise/learning/tutorials/jse8/uml_class_diagram.html| Class diagram]] | |
* [[http://developers.sun.com/jsenterprise/learning/tutorials/jse8/uml_collab_diagram.html| Collaboration diagram]] | |
* [[http://developers.sun.com/jsenterprise/learning/tutorials/jse8/uml_sequence_diagram.html| Sequence diagram]] | |
| |
> nice one --- //[[wojnicki@agh.edu.pl|Igor Wojnicki]] 2008/03/17 21:11// | |
| |
> OK! --- GJN | |
| |
**Piggy Bank System - niestety żaden narazie nie działa - napisałem już maila do IBM** | |
| |
* [[http://publib.boulder.ibm.com/infocenter/rsdhelp/v7r0m0/index.jsp?topic=/com.ibm.xtools.modeler.doc/topics/cactd.html|Strona główna tutoriala (IBM)]] | |
* [[http://publib.boulder.ibm.com/help/livehelp/?pluginID=com.ibm.samplegallery&class=com.ibm.samplegallery.SampleGalleryAction&arg=com.ibm.xtools.sample.umlmodels/topics/piggybankusecasediagram.html|Sample: PiggyBank use-case diagram]] | |
* [[http://publib.boulder.ibm.com/help/livehelp/?pluginID=com.ibm.samplegallery&class=com.ibm.samplegallery.SampleGalleryAction&arg=com.ibm.xtools.sample.umlmodels/topics/piggybankactivitydiagram.html|Sample: PiggyBank activity diagram]] | |
* [[http://publib.boulder.ibm.com/help/livehelp/?pluginID=com.ibm.samplegallery&class=com.ibm.samplegallery.SampleGalleryAction&arg=com.ibm.xtools.sample.umlmodels/topics/piggybankclassdiagram.html|Sample: PiggyBank class diagram]] | |
* [[http://publib.boulder.ibm.com/help/livehelp/?pluginID=com.ibm.samplegallery&class=com.ibm.samplegallery.SampleGalleryAction&arg=com.ibm.xtools.sample.umlmodels/topics/piggybanksequencediagram.html|Sample: PiggyBank sequence diagram]] | |
* [[http://publib.boulder.ibm.com/help/livehelp/?pluginID=com.ibm.samplegallery&class=com.ibm.samplegallery.SampleGalleryAction&arg=com.ibm.xtools.sample.umlmodels/topics/compositestructurediagram.html|Sample: Composite structure diagram]] | |
| |
**Inny system** | |
| |
*[[http://www.developer.com/design/article.php/2109801|Creating Use Case Diagrams]] | |
*[[http://www.developer.com/design/article.php/2206791|Creating UML Class Diagrams]] | |
| |
> it's rather a quick howto; out --- //[[wojnicki@agh.edu.pl|Igor Wojnicki]] 2008/03/17 21:11// | |
| |
**System płatniczy - wszystkie rodzaje diagramów (Borland)** | |
| |
* [[http://dn.codegear.com/article/31863#activity-diagrams| Use cases, Class, Activity i Sequence Diagrams]] | |
| |
> looks good --- //[[wojnicki@agh.edu.pl|Igor Wojnicki]] 2008/03/17 21:11// | |
| |
> OK! --- GJN | |
| |
**System płatniczy - niestety nie wszystkie diagramy dotyczą jednego systemu** | |
| |
* [[http://www.visual-paradigm.com/VPGallery/diagrams/index.html|Strona główna]] | |
* [[http://www.visual-paradigm.com/VPGallery/diagrams/UseCase.html| Use Case Diagrams]] | |
* [[http://www.visual-paradigm.com/VPGallery/diagrams/Class.html|Class Diagrams]] | |
* [[http://www.visual-paradigm.com/VPGallery/diagrams/Sequence.html|Sequence Diagrams]] | |
* [[http://www.visual-paradigm.com/VPGallery/diagrams/Activity.html|Activity Diagrams]] | |
* [[http://www.visual-paradigm.com/VPGallery/diagrams/Collaboration.html|Communication Diagrams]] | |
| |
> looks good --- //[[wojnicki@agh.edu.pl|Igor Wojnicki]] 2008/03/17 21:11// | |
| |
> raczej nie! --- GJN | |
| |
| |
**System seminariów dla studentów - jeden z lepiej udokumentowanych** | |
| |
* [[http://www.agilemodeling.com/artifacts/|Strona główna ( patrz od pozycji UML )]] | |
* [[http://www.agilemodeling.com/artifacts/systemUseCase.htm|Use Cases Diagrams]] | |
* [[http://www.agilemodeling.com/artifacts/classDiagram.htm|Class Diagrams]] | |
* [[http://www.agilemodeling.com/artifacts/activityDiagram.htm|Activity Diagrams]] | |
* [[http://www.agilemodeling.com/artifacts/sequenceDiagram.htm|Sequence Diagrams]] | |
* [[http://www.agilemodeling.com/artifacts/componentDiagram.htm|Component Diagrams]] | |
| |
> quite good --- //[[wojnicki@agh.edu.pl|Igor Wojnicki]] 2008/03/17 21:11// | |
| |
> OK! --- GJN | |
| |
**Nieco prymitywny system (Sparx)** | |
| |
* [[http://www.sparxsystems.com/resources/uml2_tutorial/|Strona główna]] | |
* [[http://www.sparxsystems.com/resources/uml2_tutorial/uml2_usecasediagram.html|Use Case Diagrams]] | |
* [[http://www.sparxsystems.com/resources/uml2_tutorial/uml2_activitydiagram.html|Activity Diagrams]] | |
* [[http://www.sparxsystems.com/resources/uml2_tutorial/uml2_sequencediagram.html|Sequence Diagrams]] | |
| |
> simple but I think it can be useful --- //[[wojnicki@agh.edu.pl|Igor Wojnicki]] 2008/03/17 21:11// | |
| |
| |
> ewentualnie OK! --- GJN | |
| |
**Luźne przykłady diagramów sekwencji** | |
| |
* [[http://www.tracemodeler.com/gallery/|Sequence Diagrams + MVC ]] | |
| |
> out, these are just examples not cases --- //[[wojnicki@agh.edu.pl|Igor Wojnicki]] 2008/03/17 21:11// | |
| |
**Kompletny prosty system ( wszystkie istotne diagramy )** | |
| |
* [[http://portal.etsi.org/mbs/Languages/UML/uml_example.htm|Strona główna]] | |
| |
> nice one --- //[[wojnicki@agh.edu.pl|Igor Wojnicki]] 2008/03/17 21:11// | |
| |
> OK! --- GJN | |
| |
| |
| |
=== 4 marca 2008 === | |
| |
* [[http://developers.sun.com/jsenterprise/learning/tutorials/jse8/uml_class_diagram.html|UML Modeling: Creating Class Diagrams]] | |
* [[http://developers.sun.com/jsenterprise/learning/tutorials/jse8/uml_sequence_diagram.html|UML Modeling: Creating Sequence Diagrams]] | |
* [[http://developers.sun.com/jsenterprise/learning/tutorials/jse7/narrated/uml/umlflash.html|UML Modeling with Sun Java Studio Enterprise 7 IDE - Flash Video]] | |
* [[http://www.ibm.com/developerworks/rational/library/4697.html|UML Activity Diagrams: Detailing User Interface Navigation - najlepsze jak dotychczas przykłady]] | |
* [[www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/| UML basics: The class diagram]] | |
* [[http://publib.boulder.ibm.com/infocenter/rsdhelp/v7r0m0/index.jsp?topic=/com.ibm.xtools.modeler.doc/topics/cactd.html|Help - do modelowania UML]] | |
* [[http://www.developer.com/design/article.php/10925_2210821_3|The UML Class Diagram: Part II]] | |
* [[http://www.ee.oulu.fi/research/tklab/courses/521464S/ROOPhomework.pdf|projektowania class diagram - opis]] | |
* [[http://www.visual-paradigm.com/VPGallery/| Gallery Home - UML narzędzia i przykłady diagramów ]] | |
| |
===== ===== | |
| |
=== 1 marca 2008 === | |
* [[http://www.agilemodeling.com/artifacts/|Ciekawe przykłady różnego rodzaju diagramów na podstawie książki]] | |
* [[http://www.sparxsystems.com/resources/uml2_tutorial/uml2_activitydiagram.html|Sparx Systems - UML 2 Tutorial - Activity Diagram]] | |
* [[http://www.ibm.com/developerworks/rational/library/3101.html|UML's Sequence Diagram - rozbudowany przykład ze strony IBM]] | |
* [[http://davors.com/articles/turnstile-system-example-use-cases/|Use case - świetny przykład]] | |
* [[http://www.sequencediagrameditor.com/diagrams/AutomatedRegistrationSystem.htm|Sequence diagram - rejestracja studenta przez www ]] | |
* [[http://www.tracemodeler.com/gallery/|Przykłady diagramów sekwencji w jpg-ach]] | |
* [[http://portal.etsi.org/mbs/Languages/UML/uml_example.htm|rózne diagramy]] | |
* [[http://www.objectmentor.com/resources/articles/umlCollaborationDiagrams.pdf|model dynamiczny]] | |
* [[http://www.devx.com/ibm/Article/21623|Tip: Introduction to UML sequence diagrams]] | |
* [[http://www.visual-paradigm.com/VPGallery/diagrams/State.html|Ciekawe przykładziki różnych diagramów]] | |
* [[http://uml.netbeans.org/qa/nb55/StateDiagram/Plan_STD_Usability.html|uml: State Diagram Usability Samples]] | |
* [[http://jeffsutherland.com/oopsla98/pavel.html|Structuring Specification of Business Systems with UML]] | |
| |
| |
| |
| |
| |
===== Linki do ARD+ oraz XTT ===== | |
| |
| |
* [[https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#gjn2008flairs-ardprolog|opis ARD+ ]] | |
* [[https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#ali2008flairs|opis XTT+ ]] | |
| |
| |