Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_ardcase_uml [2008/03/13 15:51] miw |
pl:miw:miw08_ardcase_uml [2019/06/27 15:50] (aktualna) |
====== Opis ====== | ====== Opis ====== |
| __**Projekt zakończony**__ |
| |
Artur Poniedziałek (4AR) <arturponiedzialek@gmail.com> | Artur Poniedziałek (4AR) <arturponiedzialek@gmail.com> |
| |
| |
====== Spotkania ====== | ====== Spotkania ====== |
===== 08.03.04 ===== | *[[pl:miw:miw08_ardcase_uml:projekt|przebieg prac nad projektem]] |
* szukanie: case, metodol. | |
| |
| |
| |
| |
| |
| |
===== 08.03.18 ===== | |
* wstępna selekcja, sortowanie, kryteria: | |
* wsparcie dla MVC | |
* wykorzystanie więcej niż jednej klasy diagramów, np. beh. + kio | |
* obecność jawnej specyfikacji wymagań | |
* use cases | |
* jeżeli to możliwe (pdf) pliki z przykładami w wiki, we wł. przestrz. nazw | |
| |
| |
====== Projekt ====== | ====== 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]] |
| |
| Gotowe przykłady w UML: |
| * {{:pl:miw:miw08_ardcase_uml:borland.zip|:pl:miw:miw08_ardcase_uml:borland.zip}} |
| * {{:pl:miw:miw08_ardcase_uml:kompletny_prosty_system.zip|:pl:miw:miw08_ardcase_uml:kompletny_prosty_system.zip}} |
| * {{:pl:miw:miw08_ardcase_uml:sparx.zip|:pl:miw:miw08_ardcase_uml:sparx.zip}} |
| * {{:pl:miw:miw08_ardcase_uml:sun_java_-_system_udzielania_pozyczek.zip|:pl:miw:miw08_ardcase_uml:sun_java_-_system_udzielania_pozyczek.zip}} |
| * {{:pl:miw:miw08_ardcase_uml:system_seminariow_dla_studentow.zip|:pl:miw:miw08_ardcase_uml:system_seminariow_dla_studentow.zip}} |
| |
====== Sprawozdanie ====== | ====== 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 ====== | ====== Materiały ====== |
===== Linki do UML i MVC ===== | ===== Linki do UML i MVC ===== |
| |
http://www.pst.informatik.uni-muenchen.de/~kochn/pUML2001-Hen-Koch.pdf | * [[http://www.pst.informatik.uni-muenchen.de/~kochn/pUML2001-Hen-Koch.pdf|ogólnie o modelowaniu webowym]] |
- ogólnie o modelowaniu webowym | * [[http://services.eng.uts.edu.au/~dbl/archive/2003-Low02b.pdf|rozrzerzenie UMLa o diagramy potrzebne do modelowania MVC]] |
http://services.eng.uts.edu.au/~dbl/archive/2003-Low02b.pdf | |
- rozrzerzenie UMLa o diagramy potrzebne do modelowania MVC | |
| |
| |
=== 12 marca 2008 === | |
| |
| ===== ===== |
| |
| === 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: | Uporządkowanie zasobów: |
* [[http://developers.sun.com/jsenterprise/learning/tutorials/jse8/uml_sequence_diagram.html| Sequence 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** | **Piggy Bank System - niestety żaden narazie nie działa - napisałem już maila do IBM** |
*[[http://www.developer.com/design/article.php/2109801|Creating Use Case Diagrams]] | *[[http://www.developer.com/design/article.php/2109801|Creating Use Case Diagrams]] |
*[[http://www.developer.com/design/article.php/2206791|Creating UML Class 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)** | **System płatniczy - wszystkie rodzaje diagramów (Borland)** |
* [[http://dn.codegear.com/article/31863#activity-diagrams| Use cases, Class, Activity i Sequence Diagrams]] | * [[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** | **System płatniczy - niestety nie wszystkie diagramy dotyczą jednego systemu** |
* [[http://www.visual-paradigm.com/VPGallery/diagrams/Activity.html|Activity Diagrams]] | * [[http://www.visual-paradigm.com/VPGallery/diagrams/Activity.html|Activity Diagrams]] |
* [[http://www.visual-paradigm.com/VPGallery/diagrams/Collaboration.html|Communication 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** | **System seminariów dla studentów - jeden z lepiej udokumentowanych** |
* [[http://www.agilemodeling.com/artifacts/sequenceDiagram.htm|Sequence Diagrams]] | * [[http://www.agilemodeling.com/artifacts/sequenceDiagram.htm|Sequence Diagrams]] |
* [[http://www.agilemodeling.com/artifacts/componentDiagram.htm|Component 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 |
| |
| |
* [[http://www.visual-paradigm.com/VPGallery/| Gallery Home - UML narzędzia i przykłady diagramów ]] | * [[http://www.visual-paradigm.com/VPGallery/| Gallery Home - UML narzędzia i przykłady diagramów ]] |
| |
| ===== ===== |
| |
=== 1 marca 2008 === | === 1 marca 2008 === |
* Ciekawe przykłady różnego rodzaju diagramów na podstawie książki http://www.agilemodeling.com/artifacts/ | * [[http://www.agilemodeling.com/artifacts/|Ciekawe przykłady różnego rodzaju diagramów na podstawie książki]] |
* Sparx Systems - UML 2 Tutorial - Activity Diagram http://www.sparxsystems.com/resources/uml2_tutorial/uml2_activitydiagram.html | * [[http://www.sparxsystems.com/resources/uml2_tutorial/uml2_activitydiagram.html|Sparx Systems - UML 2 Tutorial - Activity Diagram]] |
* UML's Sequence Diagram - rozbudowany przykład ze strony IBM http://www.ibm.com/developerworks/rational/library/3101.html | * [[http://www.ibm.com/developerworks/rational/library/3101.html|UML's Sequence Diagram - rozbudowany przykład ze strony IBM]] |
* Use case - świetny przykład http://davors.com/articles/turnstile-system-example-use-cases/ | * [[http://davors.com/articles/turnstile-system-example-use-cases/|Use case - świetny przykład]] |
* Sequence diagram - rejestracja studenta przez www http://www.sequencediagrameditor.com/diagrams/AutomatedRegistrationSystem.htm | * [[http://www.sequencediagrameditor.com/diagrams/AutomatedRegistrationSystem.htm|Sequence diagram - rejestracja studenta przez www ]] |
* Przykłady diagramów sekwencji w jpg-ach http://www.tracemodeler.com/gallery/ | * [[http://www.tracemodeler.com/gallery/|Przykłady diagramów sekwencji w jpg-ach]] |
* rózne diagramy http://portal.etsi.org/mbs/Languages/UML/uml_example.htm | * [[http://portal.etsi.org/mbs/Languages/UML/uml_example.htm|rózne diagramy]] |
* model dynamiczny http://www.objectmentor.com/resources/articles/umlCollaborationDiagrams.pdf | * [[http://www.objectmentor.com/resources/articles/umlCollaborationDiagrams.pdf|model dynamiczny]] |
* Tip: Introduction to UML sequence diagrams http://www.devx.com/ibm/Article/21623 | * [[http://www.devx.com/ibm/Article/21623|Tip: Introduction to UML sequence diagrams]] |
* Ciekawe przykładziki różnych diagramów http://www.visual-paradigm.com/VPGallery/diagrams/State.html | * [[http://www.visual-paradigm.com/VPGallery/diagrams/State.html|Ciekawe przykładziki różnych diagramów]] |
* uml: State Diagram Usability Samples http://uml.netbeans.org/qa/nb55/StateDiagram/Plan_STD_Usability.html | * [[http://uml.netbeans.org/qa/nb55/StateDiagram/Plan_STD_Usability.html|uml: State Diagram Usability Samples]] |
* Structuring Specification of Business Systems with UML http://jeffsutherland.com/oopsla98/pavel.html | * [[http://jeffsutherland.com/oopsla98/pavel.html|Structuring Specification of Business Systems with UML]] |
| |
| |
| |
| |
https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#gjn2008flairs-ardprolog-submitted | * [[https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#gjn2008flairs-ardprolog|opis ARD+ ]] |
- opis ARD+ | * [[https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#ali2008flairs|opis XTT+ ]] |
https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#ali2008flairs-submitted | |
- opis XTT+ | |
| |
| |