Które diagramy UML są nadal szeroko stosowane? [Zamknięte]

19

Uczę inżynierii oprogramowania na poziomie licencjackim i mam pytanie do praktyków UML.

Większość podręczników do inżynierii oprogramowania podejmuje poważne wysiłki, aby omówić diagramy UML. Ale z drugiej strony od wielu absolwentów słyszałem, że UML nie jest już używany w okopach.

Jakie diagramy UML są nadal szeroko stosowane w praktyce zawodowej i dlaczego? Czy istnieją diagramy, które nie są już używane i dlaczego?

Uwaga: Aby uniknąć debat i dyskusji opartych na opiniach, proszę zilustrować swoją odpowiedź faktycznymi i obiektywnymi elementami (jeśli to możliwe, weryfikowalne) lub neutralnymi spostrzeżeniami na temat osobistych doświadczeń

DYZ
źródło
10
Nie wiemy Nie przeprowadzamy ankiet, aby dowiedzieć się czegoś takiego.
Robert Harvey
3
Twoje pytanie opiera się głównie na opiniach. Często używam UML, ale można znaleźć wiele osób, które odpowiadają „UML nie żyje”.
qwerty_so
1
softwareengineering.stackexchange.com/q/305031/40065 to bardzo powiązane pytanie (prawie zduplikowane, ale sformułowane bardzo odmiennie)
Basile Starynkevitch
1
Ale może UML nie jest już często używany (w prawdziwym życiu)? To był mój cel! Zatem odpowiedź na twoje pytanie brzmiałaby: brak .
Basile Starynkevitch
1
Kiedy UML był młody, Martin Fowler napisał książkę destylowaną UML , która stała się referencją dla wielu programistów. Kilka lat później Martin napisał krótkie praktyczne uwagi dotyczące aplikacji UmlAsSketch , UmlAsNotes , UnwantedModelingLanguage .
Nick Alexeev

Odpowiedzi:

15

Z wielu diagramów zaproponowanych przez UML, diagramy klas i diagramy sekwencji są nadal szeroko stosowane, z pewnością po nich są diagramy stanów:

  • można je łatwo wykorzystać na białych tablicach do opracowania i przedyskutowania projektu przed wskoczeniem do kodu
  • pozwalają bardzo szybko przekazać przegląd, którego sam kod nie daje tak łatwo, i nie ma realnego substytutu.

Myślę, że przypadek użycia w prawdziwym życiu jest wykorzystywany w sposób bardziej okazjonalny. W dużych projektach, z kilkoma setkami przypadków użycia, rysowanie schematów jest bolesne i nie zapewnia większych korzyści w porównaniu z tabelaryczną formą. BPMN do projektowania procesów, mapowania historii użytkowników lub rozkładu tabelarycznego zdarzeń w stylu Cockburn są znacznie częściej używane. Dlaczego ? Ponieważ łatwiej je udostępniać użytkownikom biznesowym, aby efektywnie opracować wymagania.

Jestem pewien, że są to miejsca, w których UML jest nadal intensywnie i systematycznie używany. Nie wyobrażam sobie, że oprogramowanie lotnicze lub systemy kontroli elektrowni jądrowych są produkowane bez pełnego zestawu dokumentacji UML. Ale wierzę, że to bardziej wyjątek niż reguła.

Czując się w księgarniach, czuję się potwierdzony w tym oświadczeniu. Kilka lat temu można było znaleźć wiele książek o UML 2.0. W dzisiejszych czasach, jeśli szukasz UML 2.5, wybór jest raczej ograniczony. Gorzej: wielu autorów nawet nie stara się zrewidować swoich poprzednich książek, aby były na bieżąco (przykład: fajne wprowadzenie Fowlera „ destylowane UML ”, które wciąż pochodzi z 2003 roku z UML 2.0 i to samo dla „Elementów Amblera ” stylu UML 2.0 „!).

Nie sądzę, że ta tendencja spadkowa ulegnie zmianie, biorąc pod uwagę uogólnienie zwinności i jej promocję „oprogramowania roboczego nad obszerną dokumentacją”.

Na koniec bardzo prowokująco twierdzę, że metody modelowania wydają się zgodne ze schematem darwinistycznym: przetrwają tylko najodpowiedniejsze techniki tworzenia diagramów, te, które zapewniają wyraźną przewagę nad nieformalnymi podejściami (np. Ilustracja serwetek) i szczegółowy kod (np. po co rysować diagram aktywności A1, skoro odpowiedni kod mógłby zmieścić się na arkuszu A4?) ;-)

Christophe
źródło
Zobacz także agilemodeling.com
xmojmr
4
„po co rysować diagram aktywności A1, kiedy odpowiedni kod może zmieścić się na arkuszu A4?” Doskonały.
nbubis
Z własnego doświadczenia wynika, że ​​w niektórych firmach modelowanie jest stratą czasu, tylko kodowanie ...
Walfrat
@Christophe Co to jest „ilustracja serwetkowa”?
rugk
@rugk Miałem na myśli uproszczone nieformalne diagramy, które rysujesz podczas omawiania projektu w porze lunchu ( wiem, że to zły nawyk ) na papierowej serwetce lub obrusie, które wszyscy rozumieją i które czasami zabierasz do biura, kiedy zdajesz sobie sprawę, że to faktycznie rozwiązało twój problem.
Christophe
7

Z drugiej strony, od wielu absolwentów słyszałem, że UML nie jest już używany w okopach.

Wszystkie są stosowane w praktyce. Ale nie wszyscy ich używają. Niektórzy ludzie całkowicie unikają projektowania i skaczą prosto do kodowania. Nie możesz polegać na niepotwierdzonych dowodach, aby wiedzieć, co robi „wszyscy”.

Narzędzia takie jak UML działają najlepiej, jeśli używasz ich, gdy dodają wartości ; na przykład

  • dla większych projektów
  • dla skomplikowanych części projektu
  • gdy projekt wymaga wkładu wielu osób

Tworzenie ich tylko w celu ich wykonania (lub ponieważ proces mówi, że musisz) nie jest produktywne. Najlepszą praktyką jest wybiórcze podejście do tego, co naszkicujesz i jakiego rodzaju używasz. Używaj UML, kiedy i gdzie to pomaga ... i obejmuje to wybieranie rodzajów używanych diagramów UML.

Ponadto ... UML został zaprojektowany przede wszystkim jako narzędzie do projektowania. Obecnie nie jest tak skuteczny jak narzędzie dokumentacji. Typowe środowiska IDE pomagają wizualizować wiele aspektów, jeśli podstawowa struktura kodu jest w locie. Jest to często lepsze niż poleganie na diagramach UML, które mogły stać się nieaktualne / niedokładne.

Stephen C.
źródło
3

UML jest nadal używany w okopach. Ale, jak zawsze, ludzie używają jego podzbioru. Który podzestaw podlega danym problemom.

UML występuje w wielu wersjach. Ale, jak zawsze, ludzie używają jej symboli nieformalnie i nieregularnie.

UML to sposób, w jaki rozumiemy wiele książek o wzorach. Jest to także jeden ze sposobów komunikowania się na tablicy. Nie ma go. Ale nigdy nie będzie tak formalnie używany jak kod.

Zamiast produkować uczniów, którzy mogą poprawić dowolny diagram UML, aby był zgodny z UML w wersji 2.5 lub cokolwiek najnowszego, produkuj uczniów, którzy mogą zrozumieć, co diagram próbuje komunikować, nawet jeśli nie jest w pełni zgodny z określoną wersją UML, ponieważ to jak UML jest używany w okopach. Występuje w dziwnych lokalnych dialektach, zmieszanych z innymi systemami, a czasem tworzymy własne symbole.

Naucz ich, że można pytać, co to znaczy. Nie ucz ich poprawiania innych, którzy łamią wymyślone reguły. Próbujemy się tutaj komunikować.

Najlepszym sposobem, w jaki widziałem uml, jest pozwolenie nowemu programistowi pokazać nam swój plan rozwiązania problemu. Szybko pokazał nam części systemu, które zaniedbały lub o których nie wiedziały, że istnieją.

Pracowałem również w miejscach, które wymagały UML, nawet jeśli nie były potrzebne. Zawsze używaliśmy tego samego wzoru, więc była to tylko formalność. Doszliśmy do tego stopnia, że ​​po prostu dodaliśmy nowe nazwy do starych schematów. Nie zachęcaj do tego rodzaju użytkowania.

Ale myślę, że wszyscy wiemy, że istnieje różnica między normalną strzałką a otwartą głową. Dobrze?

candied_orange
źródło
0

Będę konkretny zgodnie z moim doświadczeniem: - Schemat wdrażania - Schemat sekwencji - Schemat klasy Te trzy są najczęściej używane w każdym projekcie, zapewniają rzeczywistą wartość komunikacyjną z zespołem na różnych poziomach.

cesarggf
źródło