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ń
Odpowiedzi:
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:
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?) ;-)
źródło
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
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.
źródło
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?
źródło
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.
źródło