Prosze o pomoc w nastepujacej sprawie:
czy rozróżniając między typami relacji poszerzania <<extend>> i
zawierania <<include>> mogę stosować kryterium "czasami - zawsze"?
np. mając przypadki (jedź pociągiem) i (kup bilet)
stosuję <<include>>, bo jadąc pociągiem zawsze kupuję bilet.
z kolei (jedź pociągiem) i (jedź autobusem) będą połaczone
relacją <<extend>>, bo tylko niekiedy dojedzam do dworca
miejskim autobusem (czasem chodze pieszo).
Czy "czasami - zawsze" jest wystarczającym kryterium?
bardzo dziekuje i pozdrawiam serd.
--
A S
jak dla mnie to tak, ale muszą to być powiązane logicznie przypadki
użycia :)
Pomijając twój dość zawiły opis... Niestety zauważyłem, że są dwie "szkoły":
a) zgodnie ze specyfikacją UML "include" służy do wskazywania elementów,
które zawsze wystąpią, a "extend" elementów opcjonalnych. I tak chyba
najczęściej się tego używa. Ale nie zawsze.
b) Zgodnie z książką "Applying UML and Patterns" czy książkami R. Martin'a
stereotyp "extend' jest w większości przypadków zbędny i nieporęczny. Służy
od do rozszerzania przypadków użycia bez ingerencji w jego główną treść,
czyli w przypadku, gdy mamy cały use case napisany i nie chcemy go zmieniać,
to w sekcji extends dopisuje się dodatkowe przypadki użycia i punkty
rozszerzenia. Generalnie można się bez tego obyć, ponieważ "include" TEŻ
może być warunkowy, zależnie jak będzie opisany w tekście use case'a.
I tu taka uwaga, diagram to tylko diagram, uwagę trzeba zwrócić głównie na
tekst przypadków użycia (use case).
IMHO extend jest poręczny, bo ładnie wygląda na diagramie, ale w tekście use
case'a lepiej się czyta include'y.
Andrew
Rozumiem, bardzo dziekuje.
--
A S