Chcę, aby moje bazgroły na temat projektu i zachowania programu były bardziej usprawnione i miały wspólny język z innymi programistami.
Patrzyłem na UML i w zasadzie wydaje się, że tego szukam, ale wydaje się, że to przesada. Informacje, które znalazłem w Internecie, również wydają się bardzo rozdęte i akademickie.
Jak rozumieć UML w prostym języku angielskim, na tyle, aby móc wyjaśnić go moim kolegom? Jakie są zasoby kanoniczne do zrozumienia UML na poziomie gruntu?
Odpowiedzi:
Podobały mi się pytania - te same, które zadałem sobie:
Oto, co znalazłem:
Na dobry początek: moim wyborem będzie Fowler UML Distilled . To tak naprawdę destylacja podstaw, jak już wspomniano: definicje, przykłady, porady, kiedy należy użyć określonego typu diagramu. Jest to również dobre odniesienie , jeśli chcesz skupić się na określonej części UML bez czytania książki od deski do deski.
Bardziej szczegółowe, ale w języku angielskim wprowadzenie: UML 2 for Dummies zrobił dla moich kolegów i dla mnie. Nie tylko wprowadza UML, jego składnię i zastosowania, ale zawiera wiele porad na temat dobrych praktyk programowania i projektowania.
Sporadycznie występują różnice między dwiema książkami dotyczące tego, jaka składnia należy do której wersji standardu UML. Są to jednak drobne i zdecydowanie nie niezbędne do używania diagramów UML do komunikowania pomysłów projektowych. (Na przykład: czy UML 2 dopuszcza dyskretne krotności, tj. Pokazując, że pewna właściwość może mieć dokładnie X, Y lub Z obiektów, a nie tylko zero, jeden, wiele lub więcej niż X, powiedzmy; kiedy nazwiska uczestników powinny być podkreślone. ..)
Dla całkowicie nieakademickiego i mniej męczącego wstępu: ten blog zawiera artykuły na temat różnych fragmentów UML: http://blog.diadraw.com/category/uml/
Nie jest to podręcznik, więc jest daleki od wyczerpania, ale wykorzystuje także nietekstowe opowieści i przykłady, do których można się odnieść. Kilka dostępnych postów koncentruje się na wizualnym wprowadzaniu pojęć UML, dzięki czemu można całkowicie pominąć czytanie tekstu.
źródło
Naprawdę podobało mi się UML Distilled Martina Fowlera . Krótkie i słodkie, i więcej niż odpowiednie do dyskusji na tablicy. Zdobądź kilka kopii i przekaż je drużynie.
źródło
Same diagramy nie zawsze są pomocne. Na przykład diagram przypadku użycia nie może szczegółowo przekazać reguł biznesowych. Diagram klas może być bardzo przydatny, ponieważ możesz wygenerować z niego kod klasy i biblioteki DLL.
Uważam te diagramy za najbardziej przydatne:
Jest tak wiele przydatnych zasobów, ale sprawdź je:
Edycja-1 w odpowiedzi na komentarz Marka.
Chociaż nie używam tych zasobów na co dzień, służą one jako szybkie odniesienie do składni UML. Powyższe zasoby zostały wybrane, ponieważ zapewniają szybką i dość kompleksową reprezentację diagramów UML. Pokazuje typowe diagramy i pomaga nowemu użytkownikowi UML szybko dostrzec różnicę między nimi. Pierwszy zasób, wideo, zawiera szczegółowe informacje na temat przypadku użycia i jego związku z innymi diagramami. Powyższe zasoby nie powinny być wystarczające dla każdego, kto chce nauczyć się UML lub OOD, zdaję sobie sprawę, że nauka takich tematów nie była zamierzona w pierwotnym pytaniu.
źródło
Jeśli jesteś zadowolony z zaledwie 10% , nie powinieneś próbować uczyć się z książki UML. Lepiej raczej przeczytaj dobrą książkę na temat analizy obiektowej lub wzorców projektowych - te książki zapewniają 10%, którego szukasz.
Jeśli jednak szukasz samouczka dla UML, poleciłbym tę stronę , a zwłaszcza ten esej na temat diagramów UML (To nie jest reklama, ja osobiście nie mam żadnego związku z tą witryną). Po prostu przeglądaj diagramy i spójrz na nie: są one w większości samoobjaśniające i możesz łatwo zrozumieć, co przedstawiają, pod warunkiem, że wiesz o OOP i ogólnie projektowaniu i architekturze programu.
Dlaczego miałbym polecać dokładnie tę stronę? (zapytany w komentarzu)
Jest kilka powodów, dla których podobało mi się to bardziej niż inne:
źródło
Dokumentacja kieszonkowa UML 2.0 firmy O'Reilly jest nieco bardziej szczegółowa, ale prawdopodobnie najlepszy wybór, ponieważ jest wystarczająco mały, aby szybko znaleźć to, czego potrzebujesz, ale nadal zawiera wyjaśnienia, gdy ich potrzebujesz. I jest aktualny, co nie ma miejsca w przypadku „ściągów UML” lub kart referencyjnych, które znalazłem w Internecie - najczęściej opisują UML 1.x
źródło
Składają się na to trzy części:
Uzyskaj formalne odniesienie do UML
Za każdym razem, gdy uczysz się nowego „języka”, uzyskaj informacje, które możesz wyciągnąć i używać w dowolnym momencie, niezależnie od tego, czy jest to książka, czy zasób online. UML Distilled jest mały, ma świetne wyjaśnienia i mnóstwo jasnych diagramów. Nawet jeśli nie korzystasz ze wszystkich funkcji, zawsze możesz wrócić i spojrzeć na „właściwy” sposób wyrażenia czegoś.
Użyj UML do modelowania rzeczy
Teraz, gdy masz już referencję, zacznij go używać do modelowania niektórych małych istniejących systemów lub systemów, z których zaczynasz korzystać. Prawdopodobnie będziesz chciał trzymać się Diagramów Klasowych, Sekwencyjnych i Diagramów Stanowych w większości sytuacji. Jeśli jest coś, czego nie jesteś pewien, idź do referencji i sprawdź „prawidłowe” użycie - jeśli to nie pomoże, wypróbuj Googling lub zapytaj o Przepełnienie stosu. Podobnie jak programowanie, praktyka jest kluczem.
Użyj trochę UML w prawdziwych projektach
Kiedy zaczniesz używać UML ze swoim zespołem, pamiętaj, że jest to tylko narzędzie do zrozumienia systemu, który zbudowałeś lub zbudujesz. Nadal powinieneś sprawdzać swoje referencje podczas tworzenia diagramów, ale skup się na przekazywaniu informacji, nie ściśle przestrzegając zasad.
Pomyśl o swoich lekcjach pisania w szkole średniej. Twój nauczyciel prawdopodobnie uznał za grzech główny rozpocząć zdania od „i”, „ale” lub „lub”. Gdy pisałeś więcej i zyskiwałeś większą kontrolę nad językiem angielskim, nauczyłeś się, jak naginać reguły, aby uzyskać większy efekt - przeszedłeś od właściwego podejścia do tego, które przekazuje to, co chcesz powiedzieć najlepiej. UML powinien być stosowany w branży dokładnie w ten sam sposób.
źródło
Powiedziałbym, że jeśli znasz język UML, wówczas wszystkie diagramy przedstawiają różne widoki twojej aplikacji. Dostępnych jest wiele książek.
Jeśli nie znasz UML, najłatwiej jest utworzyć tylko diagramy klas / sekwencji, które zostały odwrócone od istniejącego kodu. Wystarczy odwrócić istniejący kod do UML i dodać własne notatki w diagramach klas / sekwencji. Diagramy klas dają statyczny widok aplikacji, diagram sekwencji opisuje przepływy metod, a tym samym zachowanie aplikacji. UML Praca wykonana i nie ma pomyłki :)
źródło