Jarek
Żeliński
Analityk biznesowy,
systemowy,
projektant aplikacji
(i fo...
Temat: Scenariusze w diagramach UML
Jakub Płachecki:
A fakt, że UML jest zdefiniowany przy użyciu samego UMLa, jest w moim odczuciu jedną z największych jego zalet i oznaką wręcz wirtuozostwa jego twórców. To jest po prostu piękne :-)
jest to także zmorą: każdy kto ma nawet małe kłopoty z interpretacją diagramów klas ma duże kłopoty z rozumieniem dokumentacji UML.
zainteresowanym różnicami zastosowaniami diagramów klas polecam na początek to:
http://www.agilemodeling.com/style/classDiagram.htm
http://en.wikipedia.org/wiki/Class_diagram
co ciekawe Miscrosoft także rekomenduje UML od pewnego czasu i nawet tworzy tutoriale dla analityków w tym różne zastosowania diagramów klas:
http://msdn.microsoft.com/en-us/library/dd409376.aspx
miłej lektury
P.S.
Żeby nie było że tylko ja coś wymyśla w kwestii testowania modeli i scenariuszy, jedna ze stosowanych metod analizy opartej na modelach:
http://psobczuk.kis.p.lodz.pl/pio.docJarek Żeliński edytował(a) ten post dnia 28.02.11 o godzinie 13:08
Jakub
Płachecki
Analityk Systemowy i
Biznesowy
Temat: Scenariusze w diagramach UML
Jakub Płachecki: (...) metamodelem (czyli modelem, który opisuje jakiś inny model)Jarek Żeliński:
nie, metamodel to modelu modelu...
no to sobie pogadaliśmy :-)
Jarek Żeliński:
ok, jaki wg. Ciebie związek istnieje pomiędzy nazwiskiem pracownika a osobą > wystawiającą fakturę?
Klasa "Wystawiający fakturę" to może być rola "Pracownika", zależnie od kontekstu. Klasa "Pracownik" może mieć atrybut "Nazwisko" (chyba że chcemy zejść "niżej" i przedstawić pracownika jako osobę, która ma jakieś dodatkowe cechy tworzące z niej pracownika, wówczas "nazwisko" będzie atrybutem osoby).
Jeśli chodzi o liczności -
Pracownik 1..* __________ 0..1 Wystawiający fakturę
występuje w roli >
Ale to tylko jeden z możliwych zapisów, zależy co chcemy pokazać. Możemy też przyjąć, że "wystawiający fakturę" jest specjalizacją "pracownika" (dziedziczy po nim). Albo też "wystawiającego fakturę" możemy potraktować jako instancję klasy "rola" (będącej atrybutem pracownika).
Nie ma tu jednej dobrej odpowiedzi - wszystko zależy od tego, co chcemy (lub musimy) pokazać.Jakub Płachecki edytował(a) ten post dnia 28.02.11 o godzinie 20:59
Jarek
Żeliński
Analityk biznesowy,
systemowy,
projektant aplikacji
(i fo...
Temat: Scenariusze w diagramach UML
Jakub Płachecki:Jarek Żeliński:
ok, jaki wg. Ciebie związek istnieje pomiędzy nazwiskiem pracownika a osobą > wystawiającą fakturę?
Klasa "Wystawiający fakturę" to może być rola "Pracownika", zależnie od kontekstu. Klasa "Pracownik" może mieć atrybut "Nazwisko" (chyba że chcemy zejść "niżej" i przedstawić pracownika jako osobę, która ma jakieś dodatkowe cechy tworzące z niej pracownika, wówczas "nazwisko" będzie atrybutem osoby).
Wystawiający fakturę to także tylko dane (atrybuty imię i nazwisko) klasy FakturaVAT.
Jeśli chodzi o liczności -
Pracownik 1..* __________ 0..1 Wystawiający fakturę
występuje w roli >
liczności są cechą modeli pojęciowych...
Ale to tylko jeden z możliwych zapisów, zależy co chcemy pokazać. Możemy też przyjąć, że "wystawiający fakturę" jest specjalizacją "pracownika" (dziedziczy po nim). Albo też "wystawiającego fakturę" możemy potraktować jako instancję klasy "rola" (będącej atrybutem pracownika).
Nie ma tu jednej dobrej odpowiedzi - wszystko zależy od tego, co chcemy (lub musimy) pokazać.
jednej nie ma ale łatwo się zorientować po tym co piszesz czy myślisz o modelu pojęciowym czy modelu dziedziny...
prezent dla innych dyskutantów (poszperałem): Bereza-Jarociński, Szomański, Inżynieria Oprogramowania, rozdział 8.1. - bardzo ładnie opisana różnica pomiędzy tępym rzemiosłem a nauką, pierwsze usiłuje dokumentować "wszystkie" przypadki użycia druga testuje dziedzinę (nie model pojęciowy! który opisujesz powyżej) i tylko kilka przypadków użycia do weryfikacji, w nieco innej formie opisuje to także Fowler w Analysis Patterns.
Reprezentujemy bardzo różne podejście, dalsze ścieranie się nie ma sensu...
Jakub
Płachecki
Analityk Systemowy i
Biznesowy
Temat: Scenariusze w diagramach UML
Ścieranie się? Hm, ja troszkę inaczej do tego podchodzę :-) Każde źródło, osoba czy rozmowa, z której można coś wynieść, warta jest poświęconego czasu. Może i mamy bardzo różne podejście - nie mniej jednak dla mnie możliwość poznania Twojego jest cenna. Tak samo każdego innego, o ile oczywiście ma jakiekolwiek uzasadnienie. W końcu istnieje coś takiego jak uczenie się na błędach. W tym cudzych ;-)Pozdrawiam :-)
PS.
[autor]Jarek Żeliński:[/uml]
liczności są cechą modeli pojęciowych...
Ach ten Sparx, wszystko pokręcili... Czy może to jest model pojęciowy?
http://www.sparxsystems.com/images/screenshots/uml2_tu...Jakub Płachecki edytował(a) ten post dnia 28.02.11 o godzinie 23:07
Jarek
Żeliński
Analityk biznesowy,
systemowy,
projektant aplikacji
(i fo...
Temat: Scenariusze w diagramach UML
Jakub Płachecki:
Ach ten Sparx, wszystko pokręcili... Czy może to jest model pojęciowy?
to jeden z paskudniejszych modeli jakie widziałem, jakieś coś w postaci diagramu klas nafaszerowanego getterami i setterami baz żadnych innych metod, klasyczny przykład anemicznego modelu, w zasadzie jakaś pseudoobiektowa atrapa relacyjnego modelu. To jakaś namiastka modelu pojęciowego (na modelach pojęciowych raczej nie umieszcza się operacji). Jeżeli to jakiś przykład do naśladowania to dobrze, że taka nauka mnie ominęła... Mój kolega programista nazywa to koszmarem EJB.
Dobry model dziedziny (wykonawczy, wzorzec MVC) składa się z agregatów modelujących obiekty biznesowe i zależności między nimi (obiekt modelujący reguły biznesowe i wiedzę o zarządzaniu innymi obiektami to także element dziedziny) i klasy zarządzające, tu np.:

(źr. http://www.typo3-media.com/blog/mvc-news-example.html)
fragment fajnego modelu (jakaś mała namiastka): mamy klasę artykuł (agregat, typowy wzorzec rodem z DDD) , odpowiada ona za składowanie artykułów, artykuł powiązany jest z kategorią, zawiera także obiekty używane do komentowania i pobierania, mały fragment czegoś większego. Repozytorium zawiera metody pozwalające na operowanie obiektami artykuł, to także miejsce na ewentualne reguły biznesowe.
jak masz czas to polecam np.:
http://www.infoq.com/presentations/strategic-design-evans
w ogóle InfoQ to świetny serwis i grupa ludzi...
w kwestii samouczków wole jednak to:
http://www.visual-paradigm.com/product/vpuml/tutorials...
P.S.
zastanawiałeś się jak to coś (diagram Sparx) zadziała? Jak do tego czegoś stworzyć np. diagram sekwencji? Czy ten diagram przedstawia coś co obsłuży choć jeden przypadek użycia? Bo faktycznie taki nie da się przetestować, inaczej: on nic nie robi więc testy oblał.Jarek Żeliński edytował(a) ten post dnia 01.03.11 o godzinie 06:32
Jakub
Płachecki
Analityk Systemowy i
Biznesowy
Temat: Scenariusze w diagramach UML
Jarek Żeliński:
P.S.
zastanawiałeś się jak to coś (diagram Sparx) zadziała? Jak do tego czegoś stworzyć np. diagram sekwencji? Czy ten diagram przedstawia coś co obsłuży choć jeden przypadek użycia? Bo faktycznie taki nie da się przetestować, inaczej: on nic nie robi więc testy oblał.
A takie PU nie będą obsłużone?
PU1 Wyszukaj kontakt
PU2 Dodaj kontakt do ksiązki adresów
PU3 Wyświetl informacje o kontakcie
Napisanie diagramów sekwencji (a przynajmniej ich części) dla tych PU, bazując na tym diagramie klas, nie byłoby raczej zbyt trudne...
Poza tym diagram ten powstał na potrzeby zobrazowania związków agregacji i kompozycji - nie jest to kompletny model, który ma faktycznie coś zrobić.
Link:
http://sparxsystems.com/resources/uml2_tutorial/uml2_c...Jakub Płachecki edytował(a) ten post dnia 01.03.11 o godzinie 08:51
Jakub
Płachecki
Analityk Systemowy i
Biznesowy
Temat: Scenariusze w diagramach UML
Jarek Żeliński:
w kwestii samouczków wole jednak to:
http://www.visual-paradigm.com/product/vpuml/tutorials...
Chciałbym zauważyć, że korzystając z załączonego przez Ciebie linka można się dowiedzieć czegoś ciekawego (co tak jakby przeczy temu, co mówiłeś wcześniej:-)):

Mamy model domenowy utworzony z wykorzystaniem diagramu klas, w którym nie dość, że są liczności, to jeszcze jakby brakuje związków o typie "zależność", czy "użycie", asocjacje jednak jak najbardziej występują ;-)
Dopiero tutaj pojawia się zależność (między klasami należącymi do dwóch różnych części MVC - OrderController jako C, Order jako część modelu).

Jarek
Żeliński
Analityk biznesowy,
systemowy,
projektant aplikacji
(i fo...
Temat: Scenariusze w diagramach UML
Jakub Płachecki:
A takie PU nie będą obsłużone?
PU1 Wyszukaj kontakt
PU2 Dodaj kontakt do ksiązki adresów
PU3 Wyświetl informacje o kontakcie
znaczy się, ze te przypadki wykonają owe set/get?
Napisanie diagramów sekwencji (a przynajmniej ich części) dla tych PU, bazując na tym diagramie klas, nie byłoby raczej zbyt trudne...
ooo, to poprosze skleić z tych klas taka sekwencję, chętnie popatrze jak get/set prowadzą dialog... po drugie kto (jaka klasa) przyjmnie ów komunikat:
PU1 Wyszukaj kontakt
PU2 Dodaj kontakt do ksiązki adresów
PU3 Wyświetl informacje o kontakcie
bo niegdzie nie widze takich metod ani klasy która by odebrała ode mnie takie życzenia
Poza tym diagram ten powstał na potrzeby zobrazowania związków agregacji i kompozycji - nie jest to kompletny model, który ma faktycznie coś zrobić.
to po co powstał? no chyba, ze to kulawy model pojęciowy (o czym wspomnaiłem).
Link:
http://sparxsystems.com/resources/uml2_tutorial/uml2_c...
na prawdę nie rozumiem, którą wypowiedź maiły ilustrować powyższe szkolne martwe przykłady
Jarek
Żeliński
Analityk biznesowy,
systemowy,
projektant aplikacji
(i fo...
Temat: Scenariusze w diagramach UML
Jakub Płachecki:
Chciałbym zauważyć, że korzystając z załączonego przez Ciebie linka można się dowiedzieć czegoś ciekawego (co tak jakby przeczy temu, co mówiłeś wcześniej:-)):
to tylko fragment modelu dziedziny...
Dopiero tutaj pojawia się zależność (między klasami należącymi do dwóch różnych części MVC - OrderController jako C, Order jako część modelu).
orderControler to także obekt modelu dziedziny: zawiera dziedzinowe reguły biznesowe i to właśnie jest "pełniejszy" model dziedziny. (polecam na początek http://pl.wikipedia.org/wiki/MVC: Model zawiera obekty dziedzinowe i logike biznesową!). klasa OrderController obsłuży przyapdek użycia NoweZamówienie (ma taka metodę!) a nie klasa Order.
Nie zapominaj, że to nieco uproszczone modele bo chodzi o pokazanie zasad a nie 100% projektu.
Sugeruję skupić się raczej na tym podamym przeze mnie przykładzie:
http://www.typo3-media.com/blog/mvc-news-example.htmlJarek Żeliński edytował(a) ten post dnia 01.03.11 o godzinie 09:17
Jarek
Żeliński
Analityk biznesowy,
systemowy,
projektant aplikacji
(i fo...
Temat: Scenariusze w diagramach UML
przy okazji get/set polecam pokrewną dyskusję:http://www.goldenline.pl/forum/2260642/pozbycie-sie-ge...
Jakub
Płachecki
Analityk Systemowy i
Biznesowy
Temat: Scenariusze w diagramach UML
Jarek Żeliński:
to tylko fragment modelu dziedziny...
Ciekawe, że model dziedziny (aż dziw bierze, że przyznałeś iż jest to model dziedziny, skoro są w nim głównie asocjacje i występują liczności :-)) pochodzący z tutoriala VP potrafisz potraktować jako fragmentaryczny, a od przytoczonego przeze mnie przykładu (i mimo określenia, że służy on zobrazowaniu określonych związków - agregacji i kompozycji) wymagasz, by nie był on jedynie fragmentem. Przy takim podejściu do zagadnienia nie będę nawet próbował dalej z Tobą dyskutować, z jak mniemam wiadomych względów.Jakub Płachecki edytował(a) ten post dnia 01.03.11 o godzinie 12:09
Jarek
Żeliński
Analityk biznesowy,
systemowy,
projektant aplikacji
(i fo...
Temat: Scenariusze w diagramach UML
Jakub Płachecki:
Jarek Żeliński:
to tylko fragment modelu dziedziny...
Ciekawe, że model dziedziny (aż dziw bierze, że przyznałeś iż jest to model dziedziny, skoro są w nim głównie asocjacje i występują liczności :-)) pochodzący z tutoriala VP potrafisz potraktować jako fragmentaryczny, a od przytoczonego przeze mnie przykładu (i mimo określenia, że służy on zobrazowaniu określonych związków - agregacji i kompozycji) wymagasz, by nie był on jedynie fragmentem. Przy takim podejściu do zagadnienia nie będę nawet próbował dalej z Tobą dyskutować, z jak mniemam wiadomych względów.
mój przykład zawierał coś czego nie zawierał Twój: klasę sterująca gromadząca reguły biznesowe, przykrząc ze stron Sprax'a to sieczka nafaszerowana get/set... po drugie celowo podkreśliłem że dobrym przykładem jest nie ten ze stron VP (tam był raczej proces tworzenia modelu), nie używam EA i nie żałuje, po drugie mój VP to tylko narzędzie pracy a nie wszystko co wiem i potrafię...
ja także nie będę dalej dyskutował, niestety ze względów Tobie jednak chyba nie wiadomych, skupmy się na swojej pracy, oceniają nasi klienci a nie my sami... tu także...
EOT
P.S.
Rozumiem, że nie zobaczymy diagramu sekwencji dla przykładu Sparx'a.... ani jakieś wskazanego przypadku użycia na bazie tego modelu...Jarek Żeliński edytował(a) ten post dnia 01.03.11 o godzinie 13:29
Jakub
Płachecki
Analityk Systemowy i
Biznesowy
Temat: Scenariusze w diagramach UML
>Jarek Żeliński:Jakub Płachecki:
Poza tym diagram ten powstał na potrzeby zobrazowania związków agregacji i kompozycji - nie jest to kompletny model, który ma faktycznie coś zrobić.
to po co powstał? no chyba, ze to kulawy model pojęciowy (o czym wspomnaiłem).
Jak tu rozmawiać? Czytasz tylko co trzecie zdanie? :-)
Piszę, po co powstał, a Ty zaraz potem pytasz dokładnie o to samo. Taka jest cała rozmowa z Tobą.
Żartowniś :-)
W ogóle zaczynam myśleć, że mówię (piszę) po chińsku :-)
EOT
Roger that! :-)
Jarek Żeliński:
w kwestii samouczków wole jednak to:
http://visual-paradigm.com/product/vpuml/tutorials...
Parę godzin później...
Jarek Żeliński:
(...) dobrym przykładem jest nie ten ze stron VP
I tak cały czas... Jakaś schizofrenia, czy co? :-)
Daj już spokój Jarek...
Jarek
Żeliński
Analityk biznesowy,
systemowy,
projektant aplikacji
(i fo...
Temat: Scenariusze w diagramach UML
wygrałeś ;)
Grzegorz
Kukawski
IT Architekt,
analityk, kierownik,
programista
Temat: Scenariusze w diagramach UML
Wszedłem po dłuższej przewie i się zastanawiam. W jaki sposób ten wątek ewoluował ze scenariuszy na model dziedziny, a obecnie skupia się na dwóch analitykach, którzy próbują udowodnić, który z nich ma dł... EghEH, który z nich ma rację.
Jarek
Żeliński
Analityk biznesowy,
systemowy,
projektant aplikacji
(i fo...
Temat: Scenariusze w diagramach UML
...Jarek Żeliński edytował(a) ten post dnia 01.03.11 o godzinie 19:15
Jakub
Płachecki
Analityk Systemowy i
Biznesowy
Temat: Scenariusze w diagramach UML
Grzegorz Kukawski:
Wszedłem po dłuższej przewie i się zastanawiam. W jaki sposób ten wątek ewoluował ze scenariuszy na model dziedziny, a obecnie skupia się na dwóch analitykach, którzy próbują udowodnić, który z nich ma dł... EghEH, który z nich ma rację.
Hehehehe, niezłe podsumowanie :-)
Jakub
Wojt
Projektant systemów
IT, Team Leader,
Programista .NET C#
Temat: Scenariusze w diagramach UML
Żeby nie było że tylko ja coś wymyśla w kwestii testowania modeli i scenariuszy, jedna ze stosowanych metod analizy opartej na modelach:
http://psobczuk.kis.p.lodz.pl/pio.doc[edited]Jarek Żeliński
... :/
chyba wolę czytać o "Procesie przekształcania wybranych zasobów z wykorzystaniem określonych mechanizmów w określone produkty końcowe." niż o "Realizacji przypadku użycia w fazie analizy" ...
ew:
Klasach analizy,
Analizie zachowania na diagramach interakcji,
Fazie analizy a wymaganiach niefunkcjonalnych....
Jakub
Wojt
Projektant systemów
IT, Team Leader,
Programista .NET C#
Temat: Scenariusze w diagramach UML
Grzegorz Kukawski:
Wszedłem po dłuższej przewie i się zastanawiam. W jaki sposób ten wątek ewoluował ze scenariuszy na model dziedziny,
w zasadzie jedno i drugie to to samo.
a obecnie skupia się na dwóch analitykach, którzy próbują udowodnić, który z nich ma dł... EghEH, który z nich ma rację.
myślę, że ten z dł... EghEH; większym... doświadczeniem :>

