Stefan Sienicki

Stefan Sienicki sprzedawca, Apac

Temat: EA czy to jest możliwe? Use case do diagramu klas

Witam

Mam takie pytanie.
Mam diagramy przypadków użycia i chciałbym jeśli to możliwe z automatu wygenerować na ich podstawie diagramy klas w raz z metodami. Czyli diagram = klasa, use case = metoda tej klasy.
Czy coś takiego jest możliwe? I jak to zrobić. Próbowałem ale chyba mnie ten EA przerasta.
Będę wdzięczny za jakąś podpowiedź.
A może jest możliwe wykonanie czegoś takiego przy pomocy innego programu w oparciu o projekt z EA (w końcu z EA można wyeksportować do xml, xmi)?
Jarosław Żeliński

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

Temat: EA czy to jest możliwe? Use case do diagramu klas

Mam diagramy przypadków użycia i chciałbym jeśli to możliwe z automatu wygenerować na ich podstawie diagramy klas w raz z metodami. Czyli diagram = klasa, use case = metoda tej klasy.
Czy coś takiego jest możliwe? I jak to zrobić. Próbowałem ale chyba mnie ten EA przerasta.

a jakim cudem miało by być przełożenie use case = metoda?

po pierwsze klasy mają operacje, metody to realizacje operacji
po drugie przekształcenie "diagram use case" = klasa a "use case" = operacja to raczej kuriozalna konstrukcja, przecząca kompletnie analizie obiektowej...

żeby nie było, że to jakieś moje widzimisię, przytoczę "proces" projektowania klasyka gatunku:
http://www.objectsbydesign.com/books/larman_process.html

nie dziwię się, że narzędzia CASE nie maja takiej "opcji"
Stefan Sienicki

Stefan Sienicki sprzedawca, Apac

Temat: EA czy to jest możliwe? Use case do diagramu klas

Tak, oczywiście ja to rozumiem i nie chodzi mi o ostateczne wygenerowanie diagramy klas. Chodzi mi raczej o pewne przyspieszenie pracy. Być może nie wyraziłem się dość jasno.
Może wytłumaczę o co mi chodzi na podstawie przykładu.
Powiedzmy mam diagram przypadków użycia dla usera, aktor user czyli diagram przypadków użycia usera. W projekcie klas można założyć że wystąpi klasa user. Czyli już mam takie prymitywne przełozenie diagram przypadków użycia usera na klasę user. W diagramie przypadków użycia mogę mieć przypadek "logowanie" czyli mogę przyjąć, że w klasie User będę miał metodę logowanie. O takie przełożenie mi chodzi. Aby na podstawie wybranych przypadków użycia wygenerować taki roboczy szkielet klas i metod. Oczywiście zdaję sobie sprawę że takie coś nie daje mi ostatecznych klas i metod w nich zawartych. Wymaga to oczywiście dalszej pracy. Ale tak sobie pomyślałem, że jak mam sporo diagramów przypadków użycia z sporą ilością owych przypadków to w sumie jakby to z automatu dało się przełożyć na klasy i ich metody to zaoszczędził bym sporo czasu.
Mam nadzieję, że teraz nie nakręciłem zbytnio:) I oczywiście jeszcze raz podkreślam, że nie chodzi mi o takie przełożenie jeden do jeden. To w oczywisty sposób jest niemożliwe.
Z drugiej strony tak sobie myślę, że skoro EA jest narzędziem wspomagającym i przyspieszającym projektowanie aplikacji to takie ułatwienia i skróty chyba są możliwe. Niestety ciągle mam wrażenie wdrażając się w to narzędzie, że pracuję tak jak z kartką papieru tylko mi notatki nie giną i dzieje się to na kompie. A chyba nie taka to ma być filozofia. Czy używając takie narzędzie nie naturalnym jest, że jeden etap projektu powinien ułatwiać i przyspieszać pracę nad kolejnymi? A chyba nie pomylę się wiele jak powiem, że od use case się zaczyna a diagramy klas robi się później. Czy się mylę?
Jarosław Żeliński

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

Temat: EA czy to jest możliwe? Use case do diagramu klas

to co opisałeś robiły niektóre systemu typu "rapid system development" (może wtedy nie koniecznie generowane były z diagramów UML a z treści projektowanych ekranów) jednak dawno się od tego odeszło bo powstawały ta metoda najgorsze projekty.

Po pierwsze raczej nie ma jasnego przełożenia Use Case -> Klasa, bo jedna klasa fasadowa może obsługiwać kilka UC powiązanych kontekstowo.

Jednym z gorszych pomysłów jest mapowanie user (aktor) -> klasa (raczej mamy rolę i realizującą ją osobę czyli jej dane, tych może być wiele, role mogą się nakładać zależnie od kontekstu).

Operacja Logowanie w klasie User to chyba najgorszy pomysł jaki spotkałem... Użytkownik uzyskuje jakieś uprawnienia i jest "logowany" do systemu (inna klasa sprawdza czy para login i hasło jest dopuszczana), czyli są mu dawane jakieś uprawnienia. Operacja logowania jest totalnie poza domeną biznesową a osoba logująca się jest w wręcz jej centralną postacią.

Jeżeli ma "sporo przypadków użycia i aktorów" to znaczy, że tracisz panowanie nad projektem, lekarstwem absolutnie nie taka automatyzacja a raczej porządna "analiza i projektowanie".

Narzędzia CASE zdejmują z analityka i projektanta jedynie jak największą część żmudnej a mało twórczej pracy, to nie jest sztuczna inteligencja.

Filozofii szukaj raczej w meta modelach, wzorcach projektowych, paradygmacie obiektowym... wybacz ale sposób projektowania jaki opisałeś jest chyba najgorszy z możliwych...

Zanim się złapiesz za UML proponuje literaturę z analizy i projektowania obiektowego, bo z tego co piszesz chyba ten etap pominąłeś... Z UML jest jak językiem obcym: nie ma sensu uczenie się cyrylicy jeżeli nie potrafisz wyrażać myśli po rosyjsku...

liczę, że nie pogniewasz się za powyższe :)
Stefan Sienicki

Stefan Sienicki sprzedawca, Apac

Temat: EA czy to jest możliwe? Use case do diagramu klas

Na pewno za nic się nie pogniewam:) Wręcz przeciwnie.
Co do projektowania to oczywiście rozumiem co do mnie piszesz i trudno się z tym nie zgodzić.
Mam jednak wrażenie, że znaczenie może tu mieć skala projektu o którym ja pisze. Nie jest to jakiś wielki system. Jest to prosta aplikacja webowa w php. Myślę, że to w jakiś sposób usprawiedliwia pewne uproszczenia i skróty. Czy się mylę? W takim wypadku część (oczywiście nie wszystkie) przypadki użycia odpowiadają metodzie w klasie. I tylko w tych wypadkach chodzi mi o skrócenie sobie pracy. Mam świadomość, że i tak dużą część w diagramie klas będę musiał zrobić własną głową a nie automatem. A może błędem moim jest w ogóle fakt, ze do prostej aplikacji webowej męczę UML'a? Ale z drugiej strony wiem jak się kończą nawet takie projekty pisane z marszu więc zakupiłem EA w nadziei, że sobie ułatwię pracę.
Czyli reasumując Twoim zdaniem w tym akurat przypadku nic sobie nie ułatwię i nie przyspieszę?
A tak przy okazji jako, że widzę, iż mam do czynienia z człowiekiem który zna się na rzeczy zapytam Cię o jeszcze jedną rzecz. Czy w takim prostym projekcie webowym ograniczenie się do modelu danych (diagram ERD), diagramów przypadków użycia, diagramów aktywności i diagramów klas to całkowity skandal jeśli chodzi o projekt? Oczywiście nie ma znaczenia, że i tak ja to będę implementował a projekt w sumie służy mi do przedstawienia koncepcji innym ludziom (nie programistom) oraz do tego abym o niczym nie zapomniał na etapie implementacji. Chciałbym aby to miało jak najbardziej ręce i nogi.
Dzięki Ci za poświęcony czas i cierpliwość:)
Jarosław Żeliński

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

Temat: EA czy to jest możliwe? Use case do diagramu klas

Stefan Sienicki:
Mam jednak wrażenie, że znaczenie może tu mieć skala projektu o którym ja pisze. Nie jest to jakiś wielki system. Jest to prosta aplikacja webowa w php. Myślę, że to w jakiś sposób usprawiedliwia pewne uproszczenia i skróty. Czy się mylę?

znaczenie ma nie wielkość projektu a cykl jego życia, jeżeli projektujesz efemerydę, wywalisz ją do kosza po kwartale używania np. aplikacja obsługująca jedną kampanię promocyjną, potrzebne są potem tylko dane, program który je zbierał leci do kosza.

Jeżeli jednak piszesz coś co ma przed sobą kilka lat to jedno jest pewne: pojawią się nowe wymagania o których dziś nie masz bladego pojęcia... taka aplikacja musi być majstersztykiem bo poprawianie czegoś niepoprawialnego jest kosztowne...

wielka efemeryda wymaga mniej pracy analityczno-projektowej niż malutka aplikacja na kilka lat...

W takim wypadku część (oczywiście nie wszystkie) przypadki użycia odpowiadają metodzie w klasie. I tylko w tych wypadkach chodzi mi o skrócenie sobie pracy.

technologia implementacji (PHP, java, .NET) nijak się ma do projektowana części domenowej...
Mam świadomość, że i tak dużą część w diagramie klas będę musiał zrobić własną głową a nie automatem. A może błędem moim jest w ogóle fakt, ze do prostej aplikacji webowej męczę UML'a?

jeżeli jest to coś prostego co ogarniasz w głowie i jest to jakaś efemeryda to zapewne najlepiej od razu kodować... i tylko wtedy... ;)

Ale z drugiej strony wiem jak się kończą nawet takie projekty pisane z marszu więc zakupiłem EA w nadziei, że sobie ułatwię pracę.

Jak nabierzesz wprawy to nawet proste programy najpierw będziesz szybko rysował, szukanie pomysłu z pomocą diagramów jest nawet kilkanaście razy szybsze niż tworzenie kodowych prototypów... po drugie ostateczny diagram jest dobrą dokumentacją, po kilku miesiącach (bywa, że latach) poznanie diagramu da Ci szybciej wiedzę o aplikacji niż ślęczenie nad kodem...

Czyli reasumując Twoim zdaniem w tym akurat przypadku nic sobie nie ułatwię i nie przyspieszę?

automatem UC -> klasa nie sądzę :)
A tak przy okazji jako, że widzę, iż mam do czynienia z człowiekiem który zna się na rzeczy zapytam Cię o jeszcze jedną rzecz. Czy w takim prostym projekcie webowym ograniczenie się do modelu danych (diagram ERD), diagramów przypadków użycia, diagramów aktywności i diagramów klas to całkowity skandal jeśli chodzi o projekt?

albo projektujesz i tworzysz program funkcyjny (strukturalny) czyli masz model danych przetwarzanych i listę ich przekształceń albo robisz to metodami obiektowymi, mieszanie tego raczej zaszkodzi niż pomoże.

Jeżeli dane i modele ERD to raczej diagramy DFD a nie UC/klasy.

mieszanie "paradygmatów" czyli podejść w jednym projekcie to właśnie "ale nie skandal" a kłopoty :) (no skandal też ;)))
Oczywiście nie ma znaczenia, że i tak ja to będę implementował a projekt w sumie służy mi do przedstawienia koncepcji innym ludziom (nie programistom) oraz do tego abym o niczym nie zapomniał na etapie implementacji.

i to są kluczowe powody by projektować "obrazkowo" przez kodowaniem :)
Chciałbym aby to miało jak najbardziej ręce i nogi.
Dzięki Ci za poświęcony czas i cierpliwość:)

na początek gorąco polecam tę książkę ;)
http://helion.pl/ksiazki/analiza-i-projektowanie-obiek...

Craig Larman, później ...;)

może to Ci też troszkę pomoże:
http://it-consulting.pl/autoinstalator/wordpress/2012/...Jarek Żeliński edytował(a) ten post dnia 04.03.12 o godzinie 19:19

konto usunięte

Temat: EA czy to jest możliwe? Use case do diagramu klas

Witam

Mam takie pytanie.
Mam diagramy przypadków użycia i chciałbym jeśli to możliwe z automatu wygenerować na ich podstawie diagramy klas w raz z metodami. Czyli diagram = klasa, use case = metoda tej klasy.
Czy coś takiego jest możliwe?

Nie.
Równie dobrze można próbować napełnić basen szklanką wody.
I jak to zrobić. Próbowałem ale chyba mnie ten EA przerasta.
Będę wdzięczny za jakąś podpowiedź.
A może jest możliwe wykonanie czegoś takiego przy pomocy innego programu w oparciu o projekt z EA (w końcu z EA można wyeksportować do xml, xmi)?

Nie, nie, nie. To nie jest kwestia wielkości szklanki ani materiału z jakiego została wykonana :)

Następna dyskusja:

Use Case dla monitoringu




Wyślij zaproszenie do