• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

UML - Kilka pytań

Object Storage Arubacloud
0 głosów
795 wizyt
pytanie zadane 21 marca 2016 w Offtop przez Patryk Krajewski Nałogowiec (26,170 p.)
Witam, uczyłem się ostatnio UML i mam do was kilka pytań:

1. Czy przy rozpoczęciu kodowania gry można cofać się do projektowania w UML?
2. Czy jeśli zaprojektuję grę w UML to mogę brać się za pisanie jej czy coś jeszcze mam zrobić?
3. Czy są jakieś strony z zadaniami do UML?
4. Od jakiego diagramu zaczynać projektowanie i jakie po kolei robić?
5. Czy diagramy robić w języku Polskim czy Angielskim.
6. Obecnie mam ArgoUML na kali linux. Zostać przy tym programie czy znacie lepszy i darmowy.

 

P.S: Nie wiedziałem jaką kategorie wybrać.

3 odpowiedzi

+2 głosów
odpowiedź 22 marca 2016 przez event15 Szeryf (93,790 p.)
wybrane 20 kwietnia 2016 przez Patryk Krajewski
 
Najlepsza

A ja nie rozumiem, czemu taki nacisk na uml? To tylko technika projektowania. W zależności od tego, co będziesz robić są jeszcze chociażby mockupy - do projektowania interfejsów graficznych.

Dobra, widzę, że wiesz iż projektowanie jest ważne. Nie wiesz tylko pewnie dlaczego i w jaki sposób łączyć to z programowaniem.

Jeśli naprawdę interesujesz się tym zagadnieniem, powinieneś rozpocząć od czegoś takiego jak Use Case i User Stories.

Use Case czyli przypadki użycia - różne elementy twojego programu w różny sposób będą używane. Powinieneś już na początku przynajmniej część z tych rzeczy znać.

User Stories - to coś podobnego do powyższego, ale to są historyjki użytkownika, które opisują zachowanie użytkownika w czasie korzystania z aplikacji.

W sumie w zakresie tych dwóch pojęć kryje się ocean innych. Czemu? Najpierw musisz utworzyć wspólny język dla wszystkich komponentów. Musisz się zastanowić, czy lepiej nazwać encję User, czy może Account, czy może Customer. A może w różnych miejscach sa potrzebne różne nazwy? Jeśli tak to potrzbujesz zarówno encji User, jak i np Account - i są one od siebie niezależne bo występują w różnych kontekstach.

W tym znajduje się także takie pojęcie jak event storming, czyli całe planowanie zdarzeń występujących w aplikacji.

Mega skrócony opis:

  • opisz dziedzinę za pomocą rzeczowników i czasowników. To będzie wynikać z use cases i user stories. Po prostu wyciągasz z nich te elementy.
  • rozdziel je na dwie grupy
  • zrób event storming
  • teraz opiszę część tego co nie skumasz jeszcze: podziel te wszystkie elementy na encje i value-objects. Encje mają swoją tożsamość i można je zidentyfikować - są unikalne.
  • Następnie wśród encji wybierasz te, które mogą być agregatami a z nich wybierasz te, które mogą być korzeniami agregatów.
  • Później planujesz tworzenie fabryk
  • dzielisz aplikację na moduły/pakiety
  • projektujesz dalej...

I tak to nie jest wszystko. Generalnie jeśli samo projektowanie aplikacji Cię interesuje to polecam Eric Evans - Domain-Driven Design.

Jest kilka "ale". Jest to książka trudna w odbiorze nawet dla osoby doskonale znającej paradygmaty obiektowe. Nie ma tam zbyt wiele kodu i czytając, nudzisz się. Dopiero po jakimś czasie doceniasz wiedzę z niej. Po drugie, jest to książka dotycząca wytwarzania oprogramowania generalnie - nie gier. Gry w nieco inny sposób się tworzy, ponieważ to nieco inna gałąź programowania. Chociaż - to moje osobiste zdanie - świat byłby piękniejszy, gdyby programiści c++ potrafili wzorce przynajmniej tak dobrze, jak potrafią prawić godzinami o wyższości ++i nad i++.

Jeśli chodzi o projektowanie:
http://cocoders.com/cocoders-flow-specyfikacja-i-projektowanie-domeny-poprzez-przyklady/
http://bottega.com.pl/artykuly-i-prezentacje
http://helion.pl/ksiazki/domain-driven-design-zapanuj-nad-zlozonym-systemem-informatycznym-eric-evans,domdri.htm
http://helion.pl/ksiazki/tdd-sztuka-tworzenia-dobrego-kodu-kent-beck,tddszt.htm
http://helion.pl/ksiazki/testy-jednostkowe-swiat-niezawodnych-aplikacji-wydanie-ii-roy-osherove,tesjed.htm
http://helion.pl/ksiazki/zwinne-wytwarzanie-oprogramowania-najlepsze-zasady-wzorce-i-praktyki-robert-c-martin,zwiwyo.htm
 

A już w ogóle generalnie, to zainwestuj w którekolwiek z tych pozycji:

https://php-kurs.gitbooks.io/phpkurs/content/bibliografia.html Szczególnie, gdy jest mowa o refaktoryzacji, domain driven design, models, tdd, bdd, design patterns czy wzorcach.

komentarz 22 marca 2016 przez Patryk Krajewski Nałogowiec (26,170 p.)
Zapomniałem dodać, że programuję w C++. Czy ten skrócony opis będzie taki sam?
komentarz 22 marca 2016 przez event15 Szeryf (93,790 p.)
A co ma język do projektowania? Projektujesz w takim języku jakim ci najwygodniej. To, że piszesz w C++ to ci tylko nieco utrudnia pewne sprawy.
komentarz 22 marca 2016 przez Patryk Krajewski Nałogowiec (26,170 p.)
Ok. Dziękuje za odpowiedź.
+1 głos
odpowiedź 21 marca 2016 przez damian.zdunek.201 Obywatel (1,420 p.)

Poruszyłeś ciekawy temat, chętnie popiszę o nim :) Postaram się odpowiedzieć na Twoje pytania, aczkolwiek zaznaczam, że są to moje subiektywne opinie na ten temat.

  1. Możesz zawsze tworzyć diagramy UML, nawet jak już masz napisany kod. Istnieją nawet narzędzia (nie używałem nigdy, tylko o nich słyszałem), które są w stanie przerobić kod na diagram UML.
  2. To zależy już od Twojego podejścia oraz zapewne tego, jak wielki projekt tworzysz. UML to dobra rzecz, jeśli chodzi o uniwersalne przedstawienie architektury/działania programu. Wiadomym jest, że samo projektowanie stosuje się chętniej przy większych projektach. Jeżeli piszesz niewielki program sam, możesz uznać, iż używanie UMLa jest zbędne. Warto oszacować, czy zrobienie wielu diagramów przyniesie korzyści, a nie będzie tylko niepotrzebną stratą czasu. Osobiście bardzo lubię projektować aplikację zanim zacznę pisać kod. Z osobistego doświadczenia widzę, że czas pozornie stracony na tworzenie diagramów, tak naprawdę zwraca się, gdy przechodzę do implementacji. Dla mnie pisanie kodu dla dobrze przemyślanego projektu to czysta przyjemność. Jednak tak jak wspomniałem wcześniej - warto zastanowić się jak bardzo pomocne będą diagramy. Taka uproszczona zasada: im większy zespół i większy projekt, tym bardziej opłacalne jest projektowanie aplikacji ;)
  3. Tego nie wiem, jeśli są, to mogłaby to być ciekawa rzecz.
  4. Osobiście zaczynam od diagramu przypadków użycia, pomaga łatwo zauważyć jak wiele funkcji oczekujemy od aplikacji. Opcjonalnie tworzę diagramy sekwencji - jeżeli uznam, że warto poświęcić na nie czas. Ostatecznie powstaje diagram klas - dosyć uproszczony, nie uwzględniam każdej metody i pola klasy. Ważniejsze, dla mnie, jest ogólne pokazanie zależności między obiektami ;) Zaznaczam też, że jest to moje indywidualne podejście, które stosowałem przy niewielkich projektach, dla zespołów max 4 osobowych. Nie zdziwię się, jeżeli osoby profesjonalnie zajmujące się projektowaniem robią to zupełnie inaczej. Ten punkt bardzo zależy od sytuacji.
  5. Jeżeli masz pewność, że będą musiały je czytać tylko osoby posługujące się polskim, to nic nie stanie się, jeżeli będą po polsku. Chociaż osobiście jestem zwolennikiem używania angielskiego w kodzie lub diagramach. Nigdy nie wiadomo z kim uda nam się nawiązać współpracę, wtedy szansę na zrozumienie naszego projektu ma większa grupa osób. Ewentualnie podszkolimy język :D
  6. Nie znam programu, którego używasz. Sam zainstalowałem ten program na Windowsa: https://wiki.gnome.org/Apps/Dia/ Jest całkiem przyzwoity jak na darmową aplikację i dla moich niewielkich projektów się sprawdza. Jeśli zechcesz - wypróbuj go, a sam ocenisz, czy jest lepszy, czy też gorszy.

Łał trochę się rozpisałem. Mam nadzieję, że uda Ci się wyciągnąć coś wartościowego z mojego wywodu :)

Pozdrawiam!

komentarz 21 marca 2016 przez Dash Nałogowiec (29,650 p.)
Ja korzystam z WhiteStarUML, toporny ale działa dobrze i wspiera atualne standardy.
komentarz 21 marca 2016 przez Patryk Krajewski Nałogowiec (26,170 p.)
Dziękuję bardzo za odpowiedź. Widzę, że dobrze się na tym znasz. Mam do ciebie jeszcze 2 pytania:

Jak wygląda te projektowanie w zespole? Jedna osoba robi diagram, a później go kodujecie?

Teraz może trohcę pytanie odbiegające od tematu, ale przy tworzeniu gry co się na początku robi kod, dzwięk czy grafikę?
komentarz 21 marca 2016 przez Patryk Krajewski Nałogowiec (26,170 p.)
@Dash a znasz może jakiś na linuxa który "wspiera aktualne standardy"
komentarz 21 marca 2016 przez Dash Nałogowiec (29,650 p.)
Niestety, aktualnie pracuję na windowsie, a w standardach chodziło mi o normę UML 3.0 i takie bajery jak generowanie kodu z diagramu, diagramu z naglówków etc. Większość programów już to obsługuje. Wiem że na BSD jest Umbrello, kolega korzysta, na linuxa też powienien być. Sam jednak nie wiem jak działa.
komentarz 22 marca 2016 przez event15 Szeryf (93,790 p.)

Istnieją nawet narzędzia (nie używałem nigdy, tylko o nich słyszałem), które są w stanie przerobić kod na diagram UML.

Nie jest to w 100% ten uml co się widzi w książkach, ale pokazuje większą część tego, co się chce zobaczyć.

–2 głosów
odpowiedź 22 marca 2016 przez ReksetoDev Gaduła (4,530 p.)
Ja mam UML mojej pierwszej gry , zrobiony w paintcie ;) rozpisz wszystkie klasy i podpisuj je po angielsku najlepiej z krotkim opisem klasy

Podobne pytania

0 głosów
1 odpowiedź 258 wizyt
pytanie zadane 24 października 2019 w Rozwój zawodowy, nauka, praca przez Moras Obywatel (1,620 p.)
+1 głos
2 odpowiedzi 168 wizyt
pytanie zadane 9 lipca 2023 w Inne języki przez Bart3on Użytkownik (620 p.)
0 głosów
0 odpowiedzi 159 wizyt
pytanie zadane 2 września 2022 w Inne języki przez Beginner555 Obywatel (1,760 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...