Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

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

konto usunięte

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
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

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...

konto usunięte

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
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Scenariusze w diagramach UML

Jakub Płachecki:
Ach ten Sparx, wszystko pokręcili... Czy może to jest model pojęciowy?


Obrazek

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.:


Obrazek


(ź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

konto usunięte

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

konto usunięte

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:-)):


Obrazek


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).


Obrazek
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

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
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

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:-)):


Obrazek


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).


Obrazek

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
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Scenariusze w diagramach UML

przy okazji get/set polecam pokrewną dyskusję:
http://www.goldenline.pl/forum/2260642/pozbycie-sie-ge...

konto usunięte

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
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

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

konto usunięte

Temat: Scenariusze w diagramach UML

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ć.
>Jarek Żeliński:
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...
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Scenariusze w diagramach UML

wygrałeś ;)

konto usunięte

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ę.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Scenariusze w diagramach UML

...Jarek Żeliński edytował(a) ten post dnia 01.03.11 o godzinie 19:15

konto usunięte

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 :-)

konto usunięte

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....

konto usunięte

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 :>



Wyślij zaproszenie do