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

×


Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Андрей Сенченко

Страницы: « 1 2 3 4 5 6 »
31
Загрузил пример.
Есть много, очень много таблиц некоей ERP-системы :))). Часть из них нужно затащить на модель - показать в документации связи.
По типам данных они не подходят ни под одно из классических понятий Oracle, SQL и прочее.
Но для целей описания это и не нужно, меня устроит VARCHAR + длина.
Выгрузить структуру таблицы в Excel  - могу.

Далее - скрин.
Создал объект "Таблица" на диаграмме классов. Открыт "columns"
А дальше пока только копипаст. Трудоемко, скучно, чревато ошибками.

Хочу малую автоматизацию

32
Её и поставил на триальный период.
Интересная штука.
Заглянул в вебинары - там есть пример как втянуть в модель список требований из excel.
Попробовал тем же методом втянуть список таблиц - всё получилось.
А вот как втянуть структуру (columns с именами, типами и размерами полей) - не нашел. Хотя по идее ничего сложного тут нет (с точки зрегия самого Спаркса). Тот же импорт объектов, но не в пакет, а в класс.

33
Примеры / Re: Помогите новичку
« : 27 Сентября 2015, 07:39:17 »
Вопрос именно в хорошем или плохом стиле моделирования

34
Примеры / Re: Помогите новичку
« : 27 Сентября 2015, 07:36:39 »
Вопрос в том, может ли  существовать эта схема без  merge. Ведь final все-равно заканчивает всю деятельность.  Как я понимаю., можно поставить и на каждую из ветвей по своему activity final.

Я уже ответил Вам. Может. С точки зрения нотации ошибки нет.
Ни в одном из рассмотренных нами вариантов.

Вот пожалуйста скрин в скрепке - все они валидируются без ошибок.

35
Примеры / Re: Помогите новичку
« : 26 Сентября 2015, 17:02:05 »
Хороший пример ведь :))) Вы просто в его суть не вникли.

Переведите хотя бы это:
illustrating two concurrent flows racing to complete
А лучше - весь абзац.

А потом вернитесь к написанному мной.
После прохода развилки FORK жизнь идет в ОБОИХ потоках. И не важно, что в одном из них есть целая пачка DECISION/MERGE - важно, что все они сводятся и идут к финишу одним потоком - тем же самым, который родился на FORK.
Почему нет JOIN - потому что это логическое "И" или "И по условию".
Если поставить JOIN перед финишем - тот, кто придет раньше, будет вынужден ДОЖДАТЬСЯ второго, после чего ВМЕСТЕ идти к финишу.

Здесь же выживет только один. Второй должен быть убит на том месте, где его застигнет финиш первого.

ПыСы
Последняя фраза - шутка.
Схема не содержит явных указаний что делать со вторым процессом по завершении первого.
Выше anton morozov уже сказал, что при передаче такой схемы в разработку её придется снабдить текстовым комментарием. Тут я согласен.

А вот с этим:
Иными словами join/fork используется для потоков (flow), а decision/merge для путей потока (path)

Не согласен :))) Термин "path" применяется в нотации для других целей.

36
Примеры / Re: Помогите новичку
« : 26 Сентября 2015, 16:10:17 »
Когда в разных учебниках написано по-разному - я стараюсь найти и прочитать первоисточник.
В данном случае найти его не сложно. Это стандарт OMG http://www.omg.org/spec/UML/2.4.1/

Страница 400, рисунок 12.106

In the example below, either one or both of the behaviors, Buy Item or Make Item could have been invoked. As each
completes, control is passed to Ship Item. That is, if only one of Buy Item or Make Item completes, then Ship Item is
invoked only once; if both complete, Ship Item is invoked twice.

Промежуточный вывод.

Развилка Decision / Merge разбивает поток на 2 независимых пути.
Схождение на Merge не ожидает поступления всех разведенных потоков (в отличии от Join, который ждёт или всех потоков данных или части данных + команды от потока управления), а пропускает дальше первого добежавшего.
Таким образом, в Вашем примере с выходом без Merge на Final формальных ошибок нет. В любом случае после Decision вида (IF/ELSE ) гарантированно останется жить только один из потоков. Второго ждать не надо.

Однако.

Ваш вопрос - о программной реализации. И здесь о чем поговорить.
1. Как аналитик программиста, Вы фактически заставили меня использовать явный или неявный GOTO. Вы вышибли меня из основного потока программы в две процедуры обработки IF/ELSE и не сказали где вернуться обратно в основной поток, заказав сразу идти на выход, причем на ОДИН. Значит если писать код добуквенно - я буду ВЫНУЖДЕН встроить выход в один из потоков, а из второго прыгать на него прямым переходом, явным или неявным (за второе хоть не засмеют). Для простенькой программы, где в параллельных потоках выполняется по 1 действию - это не критично. Но такая радость бывает только на контрольной по информатике в 6 классе. Для и получить за такую контрольную можно только "3".
2. Вы не дали мне как программисту сообщить Вам (или пользователю, или тестировщику ... ) причину выхода. В общем это не совсем комильфо. Если Вы навсегда развели потоки - дайте им отдельные выходы. Это позволит встроить в процедуру завершения программы сообщение, лог или что-то ещё.

Уже вывод.
Правило хорошего тона. Порвал потоки на логическом "или" - сведи их обратно на том же "или", или заверши раздельно.

PS
Использование Правил хорошего тона в реальной жизни обязательным не является.

ПППС

Давайте напишу на свободном языке программный код по Вашей схеме

Начать
Инициировать условие
ЕСЛИ условие ВЫПОЛНЕНО
  Делать раз
  Поставить метку 1
  завершить процесс
ИНАЧЕ
  Делать два
  Перейти на метку 1


...
На этом всё.
По Вашей схеме - выхода из IF/ELSE нет. Выход из программы - в одной из веток

37
Может сталкивался кто ?
Буду признателен за ссылку.
Есть порядка 30 таблиц, структуру которых нужно затянуть в модель. Руками все поля набирать - свихнусь.

Импорт объектов верхнего уровня - есть. Отлично работает.
А колонки таблиц как подтянуть - не могу найти.

38
Мотивация очень проста.
Я хочу  знать возможности и инструментарий смежных со своей отраслей народного хозяйства.
Чтобы не соскребать с ушей лапшу вида "невозможно" на месте "не умеем" или "не хотим"
Ну и понимать нормировки рабочего времени

Лучший на мой взгляд способ - сделать что-то самому.
А для этого лучше брать не вымышленные модели, а реальные задачи.

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

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

В скрепке - на скорую руку набросанная BPM схема в Bizagi


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

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

В общем я тут по дороге почитал EAUserGuide12, нашел работу с бизнес-правилами.
Также нашел, что они есть только в ultimate версии.

40
Коллеги, доброго времени суток.
В результате плодотворной договорной работы с собственной жабой купил я себе на премию EA 12 Corporate ed., ибо интересно.
Не было заботы....   
Напомню суть топика.
Неторопливо изучаю UML посредством перевода имеющейся проектной документации в единый стандарт. Выхода на генерацию программного кода не планирую и вряд ли до этого вообще дойду. Максимальная цель - сопровождаемое документирование проекта.

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

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

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

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

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

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

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

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

41
741 уникальное значение если быть точным.
DISTINCT t_package.Package_ID не работает ?

42
и что примечательно ЕА8 !!! ЕА9!!! работают на ура!!!

С тем же количеством package ?

43
Для всех / Re: сессионный аналитик
« : 15 Сентября 2015, 15:26:46 »
Загадка однако.

Ну не могу я найти компанию "СОИ", занимающуюся разработкой ПО в Питере. Или это не в Питере было ?
Ну и ладно. Главное, обед увлекательно прошёл.

44
Теме очень много лет
http://stackoverflow.com/questions/400255/how-to-put-more-than-1000-values-into-an-oracle-in-clause
Взял первую попавшуюся ссылку. Обратите внимание:
asked 6 years ago
viewed 118853 times

Если этот in на системном уровне - только писать багрепорт разработчикам (ИМХО)

45
IDEF ARIS BPMN и пр. / Re: BPMN - Материалы по BPMN
« : 15 Сентября 2015, 11:00:48 »
Примеры применения нотации на официальном сайте. Без переводамеук.
http://www.omg.org/spec/BPMN/20100601/10-06-02.pdf

Книга на русском
Моделирование бизнес-процессов в нотации BPMN 2.0 [Текст] : монография, научно-практическое издание / И. Г. Федоров. - М. : МЭСИ , 2013. - 264 с. - ISBN 978-5-7764-0772-7
Найти в продаже подлинник не удалось. Видел только в форме обрезанного "ознакомительного" PDF-ника на сайте МЭСИ:
http://www.mesi.ru/upload/iblock/a4d/978-5-7764-0772-7__%20-%20%20%20BPMN%202.0_.pdf

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

Хрестоматийный пример - ниже.
2 вполне серьезных софтины, очень трепетно относящиеся к нотации, успешно проходят валидацию схемы в аттаче:





Однако если эта схема попадет в руки к программисту и он так и напишет - при любом падении канала связи мы начнём получать массу процессов, зависших на этапе "жду получения письма" без возможности безаварийного сброса.
И на уровне программной реализации подобная схема передачи данных (пустое ожидание события "получена информация из внешней системы") будет вызывать этот баг всегда. То есть с точки зрения здравого смысла - схема не валидна и валидна быть не может в принципе.

Тут еще на ходу...

Нарылась ссылочка на некоторые паттерны
https://www.webursitet.ru/public/%D0%9E%D0%B4%D0%B8%D0%BD%D0%BD%D0%B0%D0%B4%D1%86%D0%B0%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D1%85%20%D1%84%D0%B8%D1%88%D0%B5%D0%BA%20BPMN-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F.pdf

Страницы: « 1 2 3 4 5 6 »