sweter
6.12.2010, 18:49:52
Witam,
od wczoraj uczę się UML'a, no i pomyślałem, że dobrze było by przećwiczyć swoje umiejętności (duże słowo

) w praktyce.
Pomyślałem, że zrobię schematy do systemu blogowego. Oto one:


Proszę o konstruktywne uwagi na temat tego co jest źle, a co dobrze i cierpliwość w stosunku do mojej osoby

Pozdrawiam
Podpowiem Ci tylko, wrzuć to na jakiś normalny hosting obrazków, bo teraz trzeba wejśc "Otwórz obrazek", kliknąć ściągnij i dopiero go widać :/
markonix
6.12.2010, 20:02:13
Coś chyba nie tak z liczebnościami (użytkownik może ocenić wiele postów, ale jest post tylko raz itp.) i groty jak dobrze pamiętam też mają znaczenie.
sazian
9.12.2010, 14:31:50
przypadkami użycia się nie zajmowałem więc nie chce wprowadzać w błąd ale wydaje mi się że tam nie powinno być grotów
co do diagramu klas to dlaczego klasy użytkownik, komentarze i posty dziedziczą po bazie danych

tam raczej powinna być agregacja lub asocjacja
no i na koniec proponowałbym zmienić edytor, paint nie nadaje się zbytnio do UML'a
polecam Dia lub Visual Paradigm
Cysiaczek
9.12.2010, 14:50:54
Nie uważasz, że dział Oceny nie jest adekwatny do treści Twojego posta? Ponieważ nie mamy działu dotyczącego takich rzeczy, przenoszę na PHP.
To, co pokazałeś na obrazki z klasami, nie trzyma się za bardzo kupy. Brakuje stosunków pomiędzy uczestnikami. Od razu jednak widać, że źle zaprojektowałeś system, skoro każdy obiekt operujący na danych musi dziedziczyć po obiekcie BazaDanych.
To tak jakbyś napisał, class Człowiek extends Atom.
Pozdrawiam
Pierwsza moja uwaga dotyczy narzędzia. Diagramów UML nie rysujemy w Paincie, tylko w programach do rysowania diagramów UML. Komercyjne pakiety są dość drogie, ale jest też kilka przyzwoitych narzędzi darmowych:
- Dia (tylko niektóre diagramy)
- UMLet (wyposzczony interfejs, ale o dziwo pracuje się z nim bosko)
Druga moja uwaga dotyczy tego czegoś, co ma przypominać diagram przypadków użycia. Na tym diagramie między przypadkami użycia, a aktorami rysuje się linie komunikacyjne, a nie linie asocjacji z diagramów klas (nie wspominając już o tym, że nie ma tu czegoś takiego, jak liczność). Jak wyglądają linie komunikacyjne? Są to najzwyklejsze w świecie kreski, bez żadnych grotów, strzałek, kropek, punktów, ozdobników i farfocli.
Trzecia moja uwaga dotyczy tego, co diagram przedstawia. Jeśli i użytkownik, i administrator są połączeni z "Rejestracją", oznacza to, że korzystają ni mniej, ni więcej, tylko dokładnie z tego samego formularza. A przecież jeśli admin chce komuś utworzyć konto, raczej nie musi bawić się np. w aktywację. Powinieneś tu wykorzystać zależność między przypadkami użycia o nazwie "<<include>>": bazowy przypadek użycia do rejestracji i odmiany dla gości rejestrujących się samodzielnie oraz dla adminów.
Ponadto musisz pamiętać o używaniu spójnego słownika pojęć. Kim jest użytkownik? Zwykłym, szarym, anonimowym internautą czy osobą posiadającą konto? Jeśli zwykłym internautą, po co ma się rejestrować, kiedy nic się z tym nie wiąże, bo w systemie nie ma aktora reprezentującego osoby zalogowane? Jeśli zaś osobą posiadającą konto, to po co jej dostęp do formularza rejestracji pozwalającego założyć konto?
Przy okazji taka złota uwaga: dobry projektant zrobi dobry system przy pomocy kartki A4 z narysowanymi serduszkami. Natomiast jeśli komuś brakuje podstawowych umiejętności z zakresu ogarniania i projektowania, żadna znajomość UML-a mu nie pomoże. To jest tylko notacja do spisywania pomysłów tak, by je inni zrozumieli, a nie cudowny młotek.
sazian
9.12.2010, 22:13:58
Zyx: masz rację w UMLet interfejs jest naprawdę dziwny

no i oczywiście zapomniałem wymienić ciekawy program umbrello
zarówno umbrello jak i Visual Paradigm potrafią generować kod z naszych diagramów, a co ciekawe VP robi to nawet w drugą stronę(tej opcji jeszcze nie testowałem)
Visual Paradigm jest to program płatny ale jest również jego darmowa wersja a do tego są wersie pod całą wielką trójcę systemów

co prawda nie wiem jakie ma funkcje w wersji darmowej(uczelnia mi "ufundowała" wyższą wersie

) ale jest to narzędzie naprawdę godne uwagi
Czy Umbrello obsługuje UML 2.0? Pamiętam, że właśnie to + nieprzenośność diagramów między aplikacjami mnie od niego odrzucały.
sazian
10.12.2010, 14:33:31
wygląda na to że ciągle nie
zresztą Dia również nie obsługuje 2.0
Ale Dia to samo rysowanie, więc od biedy można sobie jakoś poradzić, choć trzeba nadmienić, że jest to program ogólnego przeznaczenia i UML nie jest tu priorytetem.
sweter
10.12.2010, 19:55:03

Czy teraz jest OK?
Nie, nie jest OK. Masz pod ręką jakieś materiały dot. UML czy na oślep rysujesz? Poczytaj sobie, co robi "<<include>>" oraz jak wyglądają linie komunikacyjne. Pisałem przecież wyraźnie: ŻADNYCH farfocli.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.