UML (Unified Modeling Language, унифицированный язык моделирования) — это язык для визуализации, документирования и проектирования программных систем.
Этот язык помогает разработчикам, аналитикам и другим участникам команды наглядно представлять и обсуждать сложные системы. С его помощью можно разрабатывать архитектуру приложений, определять взаимодействия между компонентами и моделировать поведение системы.
В этой статье мы расскажем про UML и зачем его нужно знать. В следующем материале мы приведем пошаговое руководство для первых шагов в UML.
Зачем нужно знать UML
Сам создатель UML Гради Буч считает, что этот язык предназначен прежде всего для визуализации размышлений, упрощения рассуждений о том, какой будет будущая система.
“В те времена (начало 1990-х) компьютеры были намного дороже, чем зарплаты программистов. Существовало понятие “машинное время” и поэтому было нелишним немного подумать: применить методы структурного анализа (смотрим на систему в целом и потом детализируем) и алгоритмической декомпозиции (разбиение сложной задачи или системы на более мелкие и управляемые части)”, — рассказал он в подкасте The Pragmatic Engineer.
Буч вместе с другими известными инженерами — Айваром Якобсоном и Джеймсом Рамбо разработал UML, чтобы помочь командам работать над большими софтверными проектами — чтобы они могли легче понимать друг друга. Этот язык позволяет аналитикам и разработчикам лучше понимать друг друга. На диаграммах можно показать не только структуру объектов, но и их взаимодействие. Это сокращает недоразумения и ошибки на этапе разработки.
Также UML помогает навести порядок в требованиях и идеях, превратив их в чёткую визуальную модель. Так специалист в бизнес и системном анализе Дилара Валитова считает, что гораздо проще вести конспекты именно картинками, визуально:
“Начните с диаграммы прецедентов (визуализирует поведение разных участников системы). Уже во время интервью с заказчиком вы можете конспектировать, что он хочет получить от системы именно в диаграмме. На ней вы можете изобразить прецеденты (примеры использования системы в определенной ситуации) зарисовать его слова: “Я хочу чтобы система делала то-то и то-то”.
Чёткая модель позволяет быстрее перейти к разработке, минуя долгие обсуждения деталей. Важно подчеркнуть, что далеко не все компании регулярно используют именно UML-диаграммы, но визуализация намного облегчает командную работу, особенно если в компании несколько аналитиков. Они могут работать над разными модулями программы и визуализация позволит им легче синхронизировать свою деятельность.
Как создают софт в DAR: бизнес- и системный анализ
Сам Гради Буч оценивал популярность диаграмм в 20-30 процентов рынка в период расцвета (конец 1990-х — начало 2000-х). К слову, UML использовался в проектировании софта для самого большого телескопа в космосе James Webb, запущенного на орбиту в 2021 году, что было “чертовски круто”, по словам прославленного программиста.
Кому пригодится знание UML
- Бизнес-аналитикам. UML помогает собирать и визуализировать требования, передавая их разработчикам в понятной форме.
- Системным аналитикам. Диаграммы используются для проектирования архитектуры и определения взаимодействий между компонентами системы.
- Программистам. Понимание UML облегчает работу с техническими требованиями и проектами.
- Тестировщикам. На основании диаграмм можно разрабатывать тест-кейсы и планировать сценарии тестирования.
Сейчас компьютерные ресурсы гораздо дешевле, чем во времена создания UML. Это позволяет разработчикам меньше вникать в детали, работать более абстрактно. Гради Буч предсказывает, что сама разработка и дальше будет упрощаться. Так, если первые программисты были вынуждены знать детали работы компьютера, писать код на перфокартах, то затем появился ассемблер — “переводчик” слов в бинарный код, далее начали развиваться более сложные языки программирования. Следующим шагом стала разработка с помощью готовых фреймворков (шаблонов кода) и нейросетей.
“Но всегда будет оставаться класс программного обеспечения, которое является новым, уникальным, открывающим новые горизонты. Его разработка все еще будет требовать архитектурного мышления. Такими проблемами озадачены в частности разработчики в Amazon и Microsoft”, — говорит он.
В следующем материале мы расскажем с чего начать изучение UML и приведем практические примеры.