Форум Сообщества Аналитиков

Дисциплины => Обучение => Тема начата: Андрей Сенченко от 23 Апреля 2015, 09:41:35

Название: Требуется вводный пинок в моделирование на UML.
Отправлено: Андрей Сенченко от 23 Апреля 2015, 09:41:35
Добрый день.

Имеется цель.
Есть жгучее желание привести в нормальный человеческий вид груду вордовско-экселевских спецификаций на систему, оставленных в разное время разными авторами (в том числе и мной) в разных формах и стилях.
Параллельно планируется плотно посмотреть собственно UML. Не до уровня сертификации OMG, но до уровня относительно свободного владения.
** Возможно я лукавлю и целью является именно "плотно посмотреть UML", благо под рукой гора подходящих кейсов. Но я уже убедил себя в обратном  ;D


Ресурсы.
Работа будет делаться по собственной инициативе в свободное время - это накладывает ограничения и на бюджет (Книги, ПО и курсы - из собственного кармана) и на сроки. На данный момент есть 2-3 часа в день, врядли больше, а растягивать удовольствие на полгода желания никакого.

Опыт.
До недавнего времени напрямую в UML моделировать ничего не доводилось, максимум - небольшая диаграмма классов в Visio для небольшой же интеграции. Также встречал общие описания нотации с минимальными примерами в литературе. Это всё.
Для рабочих же целей использовались EPC и BPMN в зависимости от требований к детализации для согласования с пользователями + те же спецификации в Ворде для разработчиков.
** Здесь предлагаю не халиварить - если всё работает и всех устраивает - "ничего не меняй"  :)

Взяты книги:
-- Рамбо, Блаха "UML 2.0 Объектно-ориентированное моделирование и разработка"
Временно отложена - библии нужно смотреть уже при плотной работе, а не при освоении.
-- Буч,Рамбо,Якобсон "Язык UML руководство пользователя"
Прочитаны первые 5 глав и также есть желание отложить:
- Неудачный перевод, в книге почти не оставлено ссылок на родные английские термины, для работы в не русифицированном ПО их приводится переводить обратно и оставлять заметки на полях, а затем смотреть как и где это реализовано.
- Очень растянута и многократно пережевывается теоретическая часть. Слово "блоки" бесит уже к 60-й странице.
- Слабые примеры, строить тестовую модель параллельно с чтением очень сложно.

Средство моделирования.
Предварительно выбран Star UML. Просто потому, что имеет легкую бесплатную и недорогую платную версии. Для освоения - в самый раз, а о покупке монстров типа Rational речи пока не идет. Ломать ничего не собираюсь, триальные версии - под вопросом.

Что ищется.
Фактически нужен вводный практикум - небольшая задача, хотя бы классический "заказ поставщику" с хорошо разобранными (что делаем и почему) шагами создания модели - диаграмм, связей и прочего, после выполнения которой уже можно осознанно строить собственную модель,  параллельно сверяясь с литературой. На практике этот метод нравится больше всего.
Идеально - в виде электронной или бумажной книги.
Допустимо - в форме видеокурса.
Возможно - очные курсы небольшой продолжительности.
Бюджет, повторю, есть, но ограниченный. Потому что личный.

Буду благодарен за содержательные ответы.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Григорий Печенкин от 23 Апреля 2015, 11:48:34
Из книг лучше порекомендую Мартина Фаулера. Есть в электронном виде: http://www.books.ru/books/uml-osnovy-3-e-izdanie-fail-pdf-595320/?show=1

Он выделяет три уровня моделирования на UML (или "режима применения UML"):
- Эскизы
- Проектирование
- Программирование

Для новичков сложность обычно в том, что авторы книг сразу берутся описывать модели на уровне программирования. Хотя аналитику в большинстве случаев это не нужно.


И... вау! Они реанимировали StarUML! А мы его уже было похоронили... Я только не понял, бесплатная версия - это то, что у них называется V1?
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Андрей Сенченко от 23 Апреля 2015, 12:15:51
greesha

Спасибо за ссылку, ушел покупать :)

И ...
И... вау! Они реанимировали StarUML! А мы его уже было похоронили... Я только не понял, бесплатная версия - это то, что у них называется V1?

Да, бесплатная версия - "V1". По ней даже нарыл студенческий курс и русскую документацию.

Насчет реанимации - это я не в курсе :) Но ничего страшного - меня зомби не смущают, доводилось работать на очень разном ПО, хелпы например на Serna пишутся, хотя и сайта разработчика уже нет.
Гораздо больше на данный момент ценно, что полная версия понятна по интерфейсу и весит всего 70$. Если пообвыкнусь за  триальный период - и купить не жалко. Понятное дело, что например Sparx выглядит куда мощнее и даже (через пень правда но ..) держит привычный BPMN. Но и денег на Corporate-версию (а ниже - нет смысла, ибо если уж брать, то хотя бы с моделированием GUI) нужно будет уже у шефа просить, сам не потяну наверное. А триала всего 30 дней.

Короче, я безусловно с удовольствием приму советы по выбору ПО, но на данный момент мне вполне комфортно.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Григорий Печенкин от 23 Апреля 2015, 12:50:49
Насчет реанимации - это я не в курсе :) Но ничего страшного - меня зомби не смущают, доводилось работать на очень разном ПО.
Гораздо больше на данный момент ценно, что полная версия понятна по интерфейсу и весит всего 70$. Если пообвыкнусь за  триальный период - и купить не жалко. Понятное дело, что SPARX например выглядит куда мощнее и даже (через пень правда но ..) держит привычный BPMN. Но и денег на Corporate-версию (а ниже - нет смысла, ибо если уж брать, то хотя бы с моделированием GUI) нужно будет уже у шефа просить, сам не потяну наверное. А триала всего 30 дней.


У меня до сих пор стоит старая версию StarUML. Но при работе с ней возникают некоторые неприятные глюки, и нужно либо с ними смириться, либо переходить на другой инструмент.

StarUML пытается в процессе рисования диаграмм создавать единую модель требований, связывающую их между собой. С моей точки зрения, это в большинстве случаев не нужно. Это однозначно не нужно и даже вредно на уровне эскизов.


Если вы до сих пор использовали eEPC и BPMN, то вы, наверное, описывали в первую очередь бизнес-процессы? Тогда UML, может быть, разочарует. Он хоть и унифицированный, но в нём нет элементов, специфичных именно для бизнес-процессов. Ну, то есть, найти в нём при желании можно всё, но представление будет не таким удобным и наглядным, как при использовании специально "заточенных" на бизнес-процессы нотаций.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Андрей Сенченко от 23 Апреля 2015, 13:24:39
Если вы до сих пор использовали eEPC и BPMN, то вы, наверное, описывали в первую очередь бизнес-процессы? Тогда UML, может быть, разочарует. Он хоть и унифицированный, но в нём нет элементов, специфичных именно для бизнес-процессов. Ну, то есть, найти в нём при желании можно всё, но представление будет не таким удобным и наглядным, как при использовании специально "заточенных" на бизнес-процессы нотаций.

Надеюсь, не разочарует.
Каждой задаче - свой инструмент. А задач довольно много и разноплановых, приходится заниматься всем - от согласования процессов для крупных разработок и кейсов для мелких, через постановку задач программистам и до физического тестирования и поддержки.

Для описания процессов и согласования их с пользователями - действительно в данный момент применяются EPC и BPMN (второй еще и для прогонов моделей, но это отдельная тема, и судя по всему, не особо местная). Они действительно имеют нужный набор привычных пользователям артефактов.
Хотя например Use Case - диаграммы я бы возможно попробовал применять (не зря же Вигерс с Кокберном прочитаны), да и насчет  Activiti - диаграмм можно подумать.

Но ...
У меня сейчас завал именно в документировании конечных спецификаций на ПО. Выложить безусловно не могу (под подпиской), однако, полагаю, Вам и не нужно на живых примерах объяснять что получается когда средствами Ворда (пусть и с любовно вылизанными и уже визуально привычными всем стилями) описывается внутри одного документа несколько таблиц, запросов, пользовательских интерфейсов, связей между ними, а затем идут еще и XSD-схемы для внешней интеграции ... Документ то остается и разработчики по нему пишут, но перечитывать и поддерживать такое становится .... минимум неудобно.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Galogen от 23 Апреля 2015, 18:01:26
Попробуйте modelio
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Galogen от 23 Апреля 2015, 18:02:08
А еще у Visual Paradigm есть комьюнити эдишн
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Galogen от 23 Апреля 2015, 18:05:02
Есть такая книга Джозефа Шмуллера "Освой UML за 24-часа". Мне она нравится. Также могу порекомендовать курса Виктора Малышко http://sp.cs.msu.ru/ooap/
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Андрей Сенченко от 23 Апреля 2015, 20:29:37
Galogen

Есть такая книга Джозефа Шмуллера "Освой UML за 24-часа". Мне она нравится. Также могу порекомендовать курса Виктора Малышко http://sp.cs.msu.ru/ooap/

Отлично, спасибо.
Книгу нашел, на первое время хватит. С моделлерами позднее буду разбираться в зависимости от итоговых, не сформулированных пока что потребностей.

С вопросами, я так понимаю, здесь не возбраняется появляться ? 2 ответа за день - реально хорошая статистика для специализированного форума, живущего с 20** какого-то года.


Благодарю за помощь.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Galogen от 23 Апреля 2015, 21:25:29
С вопросами, я так понимаю, здесь не возбраняется появляться ?
Всегда готовы помочь, если сможем.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Андрей Сенченко от 06 Мая 2015, 23:47:56
Ок.
Коллеги, я правильно (с ужасом) понимаю, что ни в одном моделлере нет возможности обозначить связь "поле к полю" ?

Допустим.
Есть 2 таблицы - шапки и строки заказов.
Есть интерфейс - тупая XSD на их базе (другие источники не берем). Имена полей XSD диктуются соглашением по EDI и в корень не соответствуют именам полей таблиц.

Обозначить что откуда берем (минимум 5 полей из шапки и 7 полей из строк) таки надо. Причем однозначных связей нет, на некоторых - дополнительные условия.
... не получается сделать мнемонически понятным.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Denis Beskov от 07 Мая 2015, 01:45:25
Андрей, ну почему, я вам такое в любом векторном редакторе нарисую, хоть в Google Draw.

В целом интересно, какого эффекта вы хотите добиться, отображая детали маппинга одной структуры данных на другую именно на диаграмме, а не в таблице?

Если прям совсем хочется рекомендую поискать по словам Data Mapping Diagram.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Denis Beskov от 07 Мая 2015, 01:48:39
Если я правильно понял, то можно имитировать такие связи через квази-внешние ключи в каком-нибудь дизайнере схем данных, начиная с MS Access.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Андрей Сенченко от 07 Мая 2015, 09:23:41
Андрей, ну почему, я вам такое в любом векторном редакторе нарисую, хоть в Google Draw.

В целом интересно, какого эффекта вы хотите добиться, отображая детали маппинга одной структуры данных на другую именно на диаграмме, а не в таблице?

Если прям совсем хочется рекомендую поискать по словам Data Mapping Diagram.

Денис,
я повторю написанное выше.

Есть желание подредактировать проектную документацию в целях приведения её к единому стилю оформления.
То есть некий шаблон ФС на внедрении безусловно был, но именно шаблон, а не жесткое Соглашение. Поэтому сколько людей - столько и творческих личностей.  Диаграммы процессов одного уровня например - в чем угодно: BPMN, EPC, простая блочная, фотография флипчарта ...
Как следствие - читать, а уж тем более сопровождать эту документацию дальше - неудобно. Отнимает время.

Ок.
Для большинства моих задач Диаграмм Классов и Последовательностей судя по всему будет достаточно.
Возможно переведу зоопарк нотаций моделей процессов к одному типу. Да хоть на Диаграммы деятельности заменю, заодно потренируюсь с этим типом.
В пределах того, что реализовано внутри ERP - больше и не нужно.

Но есть процессы, завязанные на внешнюю интеграцию.
Пример:
Продажа товара.
Касса бьет чек
Покупатель предъявляет бонусную карту
Касса отправляет запрос в процессинговый центр
Процессинговый центр отвечает списанием и (или) накоплением бонусов
Покупатель оплачивает остаток
Касса закрывает чек.
Данные уходят на сервера - кассовый, ERP, BI.

Возврат товара
Подробностей не будет, также как и описания ряда сопутствующих процессов. Повторю, я серьезно отношусь к подписке о неразглашении, а там есть ряд любопытных выстраданных и вылизанных ноу-хау.
Да и не суть.
Суть в том, что нам нужно отсторнировать бонусные операции: начисленное - отнять, потраченное - вернуть.
Для этого существует некий набор ключевой информации.
2 сквозных процесса (возврат и продажа, подготовку данных не трогаем). Минимум 4 (на самом деле - больше) системы, часть которых находится во внешнем мире с внешними разработчиками.
А нам нужно гарантированно протащить ключи через все эти системы, причем часть этих ключей - должны быть во всех системах, часть - избыточны в других системах, а часть - просто не должны попадать никуда кроме обмена 1 к 1.

Повторю, карта связей - тяжелая. И желательно чтобы все разработчики всех систем могли посмотреть весь DataFlow, а не только свой интерфейс. Тогда и только тогда возникнет понимание. А когда программист понимает что он делает - качество измеримо повышается.

..
Этот процесс - не единичен. Есть еще несколько весьма развесистых клюкв.
Последовательность вордовских таблиц не спасает, так как вся связь остается только в 1 голове - голове автора, остальные ее теряют очень быстро, как показывает практика.
Ну в общем в данный момент это действительно решено через Схему Данных в Акцессе. Но неудобно это, хотелось получить возможность работы в одной среде.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Thinkler от 07 Мая 2015, 09:42:48
Речь о подобном?
http://www.sparxsystems.com/enterprise_architect_user_guide/12.0/modeling_basics/connect_to_element_feature.html
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Андрей Сенченко от 07 Мая 2015, 10:09:01
Речь о подобном?
http://www.sparxsystems.com/enterprise_architect_user_guide/12.0/modeling_basics/connect_to_element_feature.html

Да, спасибо.

Я выше упоминал, что смотрел триальную версию Спаркса, кое-что порадовало, но он для меня чуть дороговат. Бюджет - личный на данный момент, а по текущему курсу он тянет на 12 тысяч за corporate edition + что-то около 22 тысяч за курс в "Интерфейсе" (либо нужен внятный мануал, Tutorial на сайте не особо впечатлил).

Не то, чтобы не потяну, но ... думаю пока что короче.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Андрей Сенченко от 16 Сентября 2015, 21:33:47
Коллеги, доброго времени суток.
В результате плодотворной договорной работы с собственной жабой купил я себе на премию EA 12 Corporate ed., ибо интересно.
Не было заботы....   
Напомню суть топика.
Неторопливо изучаю UML посредством перевода имеющейся проектной документации в единый стандарт. Выхода на генерацию программного кода не планирую и вряд ли до этого вообще дойду. Максимальная цель - сопровождаемое документирование проекта.

Короче …
После недолгого самодовольного хрюканья на тему проявившихся возможностей, появились и вопросы. Как ни странно, не совсем по UML. Ну или совсем не по UML. Возможно, перееду с этими вопросами в топик "Спаркса", по пока что побуду здесь.
Нужна рекомендация опытных товарищей.

Имеем …
Есть набор состояний системы.
Есть скрипты, вызывающие переходы состояний.
Есть реперные точки, означающие, что переход завершен успешно.
Есть выходы по успеху и сбою.
С этим всё понятно, нужные виды диаграмм UML выбраны, изучены, мышкой поюзаны, в программе валидированы и даже в пробной документации распечатаны. Красота.
Есть набор готовых классификаторов – системы, таблицы, пользователи, роли …  потихонечку завел.

Теперь о том, во что въехать не могу.
Есть набор статических и динамических настроек, от которых собственно и зависит - успешен ли переход из одного состояния в другое. Список этот непрерывно расширяется.

Для простоты - избитый кейс. Заказ через интернет.

Есть:
- Покупатель
- Оператор
- Сайт
- ERP
- Склад
- Транспортная компания

Покупатель утверждает заказ на сайте.
Сайт передает утвержденный заказ в ERP
Оператор связывается с покупателем .. пошли вилки "Заказ подтвержден / нет"
Оператор подтверждает заказ на сайте.
Сайт передает подтвержденный заказ в ERP
ERP меняет статус и отправляет заказ на сбоку на склад
…..
Склад передает собранный заказ Транспортной компании
.....
Покупатель получает товар от Транспортной компании ... пошли вилки кейса на брак/не брак, отказы по размеру ….
....
Покупатель может изменить или отменить заказ на сайте. ОП !!!! Нельзя изменить заказ в статусе "Передан в ТК" - он уже уехал.

Да короче ничего тут нового никем не изобретено.
Набор статусов заказа естественно есть. Матрица допустимых переходов статуса (см. «ОП») - тоже.

Собственно, вопросы.
1.   По нотации UML вообще.
Не выходит сходу применить какой-то объект (артефакт) для отображения хранилища подобных настроечных таблиц. Не хватает ни опыта, ни фантазии. В BPMN (простите за сравнение) для этого ставится связь с внешней БД и на ее атрибутах всё оформляется. После чего отлично попадает в распечатки документации. В UML же (для данного кейса, я так понимаю, используем Диаграмму Состояний, точнее набор этих диаграмм под каждый юз-кейс), судя по прочитанной литературе, подобные вещи просто выносятся в описания связей. В этом случае я упираюсь в сопровождение созданных моделей. При вводе каждого нового настроечного параметра или статуса нужно будет пересматривать и актуализировать ВСЕ схемы. Это война и всех вешать сразу.
2.   По Спарксу конкретно
Как-то глаза еще разбегаются во все стороны и приходится себя одергивать от попыток построить диаграмму Ганта или написать таки за ночь очередной Тетрис или Прогноз Погоды для Андроид.
При этом найти собственно вариант хранилища упомянутых настроек (фактически, системный реестр или MAIN.INI всей модели) чтобы бросать на него ссылки с диаграмм не получается.
Буду признателен за подсказку.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Galogen от 16 Сентября 2015, 23:00:23
Очень большая задача, для глубокого мотивированного погружения. Если бы Вы их разделили на более мелкие и обособленные и описание -вопрос для каждой сформулировали отдельно, было бы 100 крат лучше.

Если честно я задачу не понял, но что едва понял, скорее всего может решаться множеством способов, но лучший из них (возможно задачу то я не понял, лишь как-то интуитивно допетрил) возможно создание UML профиля (смотрим в сторону MDG технологии). Либо это тегированные значения.

Я бы мог поучаствовать в эксперименте. Обладатель ЕА с 2008 (или даже 2007) года. Особенно если бы Вы прислали бы свой проект, ну или просто выложили его в общей шаре на гугль диске или яндексдиске или энифинг элз.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: ida - брэнд с 14-летней историей от 17 Сентября 2015, 01:10:44
Привет. Мы хотим дворец. Но бюджет у нас только на гараж.
Звучит примерно так ))

Если предметно: Enterprise Architect либо MagicDraw, uml 2.0. ОО моделирование и разработка (http://www.uml2.ru/forum/index.php?topic=96.0)

Все остальное либо тяжелое, либо поверхностное, либо неудобное.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Андрей Сенченко от 17 Сентября 2015, 09:39:16
Если честно я задачу не понял, но что едва понял, скорее всего может решаться множеством способов, но лучший из них (возможно задачу то я не понял, лишь как-то интуитивно допетрил) возможно создание UML профиля (смотрим в сторону MDG технологии). Либо это тегированные значения.

Ну да.
Правильный вопрос содержит 90% ответа.

В скрепке - на скорую руку набросанная BPM схема в Bizagi
(http://www.uml2.ru/forum/index.php?action=dlattach;topic=6372.0;attach=5049;image)

На объекте "Хранилище данных" введен расширенный атрибут типа "Таблица".
В этой таблице лежат собственно правила, на которые опирается задача "Проверить возможность изменения" для выдачи "Да" или "Нет" на гейт "Разрешено ?"
Таблица полностью соответствует реальной настроечной таблице приложения.

Чем всё это мне полезно.
Реальные настройки хранятся не только в боевой базе, но и на модели. В явном виде. И могут быть использованы в разных схемах.
В случае добавления новых правил в эту таблицу - они сразу будут доступны для всех схем. Нужно будет только перепечатать документацию при необходимости. А если все остальные атрибуты модели заполнены - то и для прогона.
Ну и поиск связанных процессов упрощается. В плане "Где аукнется изменение".

В общем я тут по дороге почитал EAUserGuide12, нашел работу с бизнес-правилами.
Также нашел, что они есть только в ultimate версии.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Андрей Сенченко от 17 Сентября 2015, 10:45:49
Мотивация очень проста.
Я хочу  знать возможности и инструментарий смежных со своей отраслей народного хозяйства.
Чтобы не соскребать с ушей лапшу вида "невозможно" на месте "не умеем" или "не хотим"
Ну и понимать нормировки рабочего времени

Лучший на мой взгляд способ - сделать что-то самому.
А для этого лучше брать не вымышленные модели, а реальные задачи.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: ida - брэнд с 14-летней историей от 17 Сентября 2015, 12:51:04
Я хочу  знать возможности и инструментарий смежных со своей отраслей народного хозяйства.
Чтобы не соскребать с ушей лапшу вида "невозможно" на месте "не умеем" или "не хотим"
Ну и понимать нормировки рабочего времени
Это все в нашей отрасли хотят )))
Невротическая потребность в контроле за всем и вся - следствие недоверия к миру, а недоверие к миру - следствие недоверия к себе. Поэтому неврот пожизненно разбирается в избранной области и ему все время кажется, что он еще не все знает или чего-то недопонял - и очень много говорит на эту тему))
Куда как приятнее работать с психопатами и истериками.
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: Galogen от 17 Сентября 2015, 22:08:00
Андрей, ЕА поддерживает BPMN.Если Вы об этом, Вы вполне можете транслировать подобие туда. Изучив возможности инструмента в этом аспекте.

Если же Вы пытаетесь, то, что возможно в BPMN переложить на UML, то скорее всего Вас постигнет разочарование. НО ... внимание, я все равно не догоняю, что нужно.

Почему Вы полагаете, что БП Вам помогут?
Название: Re: Требуется вводный пинок в моделирование на UML.
Отправлено: anton morozov от 18 Сентября 2015, 18:27:58
2 Андрей Сенченко
У меня мало опыта, но может Object Constraint Language (OCL) поможет ?
Констрейны в модели можно собирать в отдельный отчет, что и будет вашим MAIN.INI