Самоучитель UML, 2 издание (Рубрика Architecture)
Иногда я все-таки очищаю свои книжные полки от старых книг, обычно этот момент наступает, когда у меня не остается места для новых книг. Именно с такой целью я снял книгу Александра Леоненкова 2006 года издания, в которой он рассказывал про UML 1.5. Эта книга была пересказом стандарта на русский язык в вольной форме. С тех пор стандарт убежал до версии 2.5.1, которая вышла в декабре 2017 года, но проблема с языком гораздо глубже ... В этом посте я немного расскажу и про книгу и про свое отношение к языку UML.
Около 20 лет назад я только начинал свою профессиональную карьеру как программист. Я учился на третьем курсе Физтеха и уже начал получать какие-то деньги за написание кода. Я писал код и до этого, он был так себе, а еще я делал это бесплатно. Но когда я понял, что это теперь моя профессия, то я решил подойти к делу серьезно и подучить теорию (||это мой стандартный подход к изучению чего-то нового||). Забавно, что на свой первый личный компьютер я заработал на стройке Nix, где работал на летних каникулах первого курса. Личный компьютер позволил мне проще погружаться в мир разработки, а опыт работы на стройке помог понять, что лучше работать головой, а не руками. Но вернемся к изучению теории. В университете мы учили C++ и ассемблер (||признаюсь, ассемблер прошел мимо меня||). На работе надо было писать на html, js, css, php, а еще знать немного linux:) Ну а для себя я решил разобраться с архитектурой и проектированием систем. Так я стал счастливым обладателем нескольких книг по UML, а также книги "Совершенный код" Макконнела, про которую я уже писал. Одной из книжек по UML был именно этот самоучитель Леоненкова, который был хоть и нудноват, но зато неплохо и на русском рассказывал про унифицированный язык моделирования UML. Книга состояла из трех частей:
- Основы UML
- Диаграммы концептуального, логического и физического моделирования
- Анализ и проектирование с использованием UML и IBM Rational Rose 2002
В основах UML автор рассказывал про процедурное программирование, потом объектно-ориентированное программирование, а потом переходил к объектно-ориентированному анализу и проектированию. Причем все это сопровождалось историческим анализом и объяснением как разные методологии разных людей потом оказались сшиты в унифицированный язык моделирования. Про это рекомендую посмотрть подкаст с Гради Бучем, создателем языка, про который я рассказывал раньше. Потом автор погружался в рассказ о моделях реального мира, метамоделях из UML, а после переходил к основным типам диаграмм, про которые я расскажу отдельно в следующем посте. После диаграмм автор рассказывает про использование IBM Rational Rose 2002, которая как раз является делом рук Гради Буча и его компании Rational, которую когда-то выкупил IBM. Гради про это интересно рассказывает в упомянутом выше подкасте.
В общем, эта книга когда-то помогла мне структурировать понимание того, как можно декомпозировать систему на части и размышлять о них отдельно - это аналитическая часть проектирования. И только потомя научился не просто разбирать системы на произвольные части, но и собирать что-то осмысленное обратно. А постепенно мне стало ясно, как размышлять про эмерджентные свойства системы, которые удовлетворяют как функциональным, так и нефункциональным требованиям к системе. Но это уже история для другого поста.
P.S. В текущий момент эта книга просто раритет. Читать ее никакого смысла уже нет:) Но вот изучить виды моделей из UML может быть полезно, поэтому дальше я расскажу про них
#DistributedSystems #Architecture #Software #Engineering #SystemDesign