Jakie są podstawowe rzeczy, które należy wiedzieć o UML?

18

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?

Hanno Fietz
źródło
1
Bardziej podobał mi się stary tytuł, przynajmniej jego początek: „Co jest najbardziej przydatne 10% UML?” W przeciwnym razie dobra edycja!
Joey Adams
jeśli masz już
wypisaną

Odpowiedzi:

4

Podobały mi się pytania - te same, które zadałem sobie:

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?

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.

rolka
źródło
Ten link do blogu jest fajny.
Hanno Fietz
8

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.

Kevin Cline
źródło
1
+1 za wspomnienie o tej książce, zupełnie o niej zapomniałem, pisząc swoją odpowiedź!
Alexander Galkin
2
Czy możesz dowiedzieć się więcej o swoich doświadczeniach z książką?
Jaki był powód głosowania?
kevin cline,
1
Jedną z pierwszych rzeczy, które zrobiłem, kiedy stałem się liderem zespołu, było kupienie egzemplarzy tej książki dla wszystkich członków mojego zespołu. Dało nam to wspólne słownictwo do omawiania naszych projektów. Niektórzy z młodszych facetów poinformowali również, że pomogło im to lepiej zrozumieć diagramy w różnych wzorach projektowych, które czytali.
TMN
2
@kevincline Zwykle link do Amazon, ponieważ przekształci link w adres URL strony odsyłającej dla Stack Exchange. Jeśli ktoś kliknie i kupi z tego adresu URL, Stack Exchange może zarabiać pieniądze. Znalezienie książki u ulubionego sprzedawcy książek staje się również banalne dzięki tytułowi, autorowi i informacjom ISBN z Amazon.
Thomas Owens
5

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:

  • Diagram przypadków użycia
  • Diagramy klas
  • Diagram aktywności
  • Diagram sekwencyjny

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.

Bez szans
źródło
+1 za diagramy klas , sekwencji i aktywności . Diagramy przypadków użycia w ogóle mnie nie przekonują, poza tym, że stanowią one doskonałe okładki raportów, ponieważ użytkownicy uwielbiają zdjęcia.
Sjoerd
@Sjoerd, dzięki za komentarz. Jak prawidłowo określiłeś, przypadki użycia są lubiane przez użytkowników. Ponadto diagramy przypadków użycia mają wiele wartości. Pozwalają zidentyfikować aktorów (pierwotnych i wtórnych) i pozwalają odkryć „przypadki Cse na poziomie C”. Jego związek z diagramem aktywności i diagramem klas, który buduje spójność w specyfikacji. Pamiętaj, że nie zastępują one szczegółowych reguł biznesowych i pełnej dokumentacji wymagań.
NoChance 26.11.11
Czy możesz dowiedzieć się więcej o swoich doświadczeniach z tymi zasobami? Co z nimi, a nie z innymi, pomogło ci zrozumieć UML?
@MarkTrapp, dziękuję za komentarz i zmiany.
NoChance 27.11.11
2

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:

  1. Przedstawia tabelę przeglądową diagramów UML na pierwszej stronie.
  2. Ta tabela, oprócz krótkiego opisu każdego digramm UML2.0, ma również bardzo przydatną kolumnę „Priorytet uczenia się”, która może pomóc początkującemu w UML w identyfikowaniu najczęściej używanych diagramów UML.
  3. Mimo że zawiera również diagramy renderowane maszynowo, większość diagramów wygląda na rysowane ręcznie (prawdopodobnie rysowane ręcznie). Traktuję to jako znak, że modelowanie można nadal wykonywać tylko za pomocą ołówka i papieru, bez potrzeby zagłębiania się w oprogramowanie do wizualizacji UML na samym początku.
Alexander Galkin
źródło
Czy możesz dowiedzieć się więcej o swoich doświadczeniach z tymi zaleceniami? Co z nimi, a nie z innymi, pomogło ci zrozumieć UML?
1

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

Michael Borgwardt
źródło
Czy możesz dowiedzieć się więcej o swoich doświadczeniach z tą książką? Co z tego, a nie z innych książek, pomogło ci zrozumieć UML?
@Mark Trapp: głównie fakt, że jest mały, dzięki czemu możesz szybko zebrać wszystkie niezbędne rzeczy bez zagubienia się w szczegółach i specjalnych przypadkach.
Michael Borgwardt
0

Składają się na to trzy części:

  1. 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ś.

  2. 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.

  3. 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.

derekerdmann
źródło
0

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 :)

UML_GURU
źródło