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

×


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

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


Сообщения - Galogen

Страницы: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 »
1021
А применять в каком случае? Описать подробно  разработчику или  учесть для себя что есть действия?
Также важен вопрос о доступности всех операций всем. Или например, частично (редактировать может только тот-то).
Если много проверок, ограничений и сложные действия , то лучше CRUD описать по отдельности каждое действие пользователя.
И как сказано на  BeamTeam универсального решения нет.
В типовом случае типа работы со справочником: ввод, изменение и уадление данных по такой-то теме.

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

Поскольку у меня нет большой практике реальных проектов ведомых по use cases, а в учебных эту проблему решаем путем простой декомпозиции, то и есть непонятки использования

1022
"Обновить данные читателя" а добавление, удаление, чтение описать в альтернативных сценариях(если оно нужно).
Перерегистрация = "Обновить данные читателя"
Не совсем понял вашу мысль, уважаемый.

1023
Я своим студентам настойчиво рекомендую писать «Обновить» вместо «Изменить», т.к. это лучше показывает цель — обеспечить актуальность информации. Т.е. результативный Update вместо функционального Edit.
Денис, а в каком месте обновить вместо изменить? в названии всего ВИ или и в его частях?

1024
Попыталась по рекомендации Galogen задать автомат для объекта Заявка (см. вложение). Что то меня в нем смущает. В правильном ли направлении я двигаюсь?
И неслучайно.

У вас события и состояния перемешаны.

Пример: Принято от заявителя - это событие, а состояние в котором она будет висеть Ожидает регистрации, т.е.

Заявитель создает заявку и жмет кнопку SUBMIT типа я разместил свою заявку, генерирую событие Приянто от заявителя с переводом в состояние Ожидает регистарции.

Для того, чтобы понять это
1. задайте, те параметры которые у вас определяют состояние. Совокупность этих параметров одна для конкретного автомата. Статус - не очень хороший параметр, поскольку его значение и есть состояние,
2 для каждого вашего состояния - их ведь немного, задайте значения этих параметров

Далее
Поступает из внешней системы сообщение с результатом обработки и заявка из В работе переходит в Исполнено - это кажется нормальным, но
почему из Исполнено по тому же самому событию (как оно вообще возникнет в этом случае) переход в Ожидает выдаче, а еще дальше по тому же событию + еще иному в Закрыта - это не понятно

1025
Хочу обновить эту тему.

Поскольку все равно до конца не укладывается как правильно и корректно применять подход к написанию CRUD ВИ, стоит ли связываться.
Есть паттерн, описанный в названной в данной теме книге  Gunnar Övergaard, Karin Palmkvist - "Use-Cases Patterns and Blueprints", глава 20. CRUD.

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

Имя:  Изменить записи о читателях
ID: 1
Краткое описание:  Вариант использования описывает операции с   
регистрационным       
списком
Действующие лица: Библиотекарь
Предусловие: -
Постусловие: Записи читателя изменятся в соответствие с выполненным
действием

Основной поток:

•   Система запрашивает требуемое действие
•   Библиотекарь выбирает действие, после чего выполняется один из подчиненных потоков (Добавить/Удалить/Изменить/Перерегистрация читателя)

ID: 1.1 Добавить читателя

•   Система запрашивает фамилию, имя и отчество читателя
•   Библиотекарь вводит запрашиваемые данные
•   Система создает новую запись о читателе в регистрационном списке
•   Система возвращает номер читательского билета зарегистрированного читателя

ID: 1.2 Удалить читателя

•   Система запрашивает номер читательского билета
•   Библиотекарь вводит номер
•   Система ищет читателя в регистрационном списке, после чего удаляет записи, ему соответствующие

ID: 1.3 Изменить данные читателя

•   Система запрашивает номер читательского билета
•   Библиотекарь вводит номер
•   Система ищет читателя в регистрационном списке, после чего запрашивает новые данные
•   Библиотекарь вводит новые данные о пользователе
•   Система сохраняет изменения

ID: 1.4 Перерегистрация читателя

•   Система запрашивает номер читательского билета
•   Библиотекарь вводит номер
•   Система ищет читателя в регистрационном списке, после чего обновляет его дату регистрации

Альтернативный поток событий

ID: 1.5 Читатель не найден
         Если обнаруживается, что введенный номер читательского билета не соответствует ни одному читателю, то система выдаст сообщение об ошибке и предложит ввести номер заново либо отменить действие. При отмене выполнение варианта использования завершается   

1026
Связь в итоге получается Dependency? Проводите ее и указываете этот стереотип вручную?
Да нет, связь там нарисована для красоты и смысла. И да проводится чисто вручную

Т.е. на одной диаграмме показан класс и инстанциорованный от него объект. Зависимость ничего не меняет в функциональности инструмента.

1027
Спасибо, по виду полная жесть, но буду пытаться )
Да ну- чего проще:) Никакой жести.
Берешь класс из проектного обозревателя и тащишь его на диаграмму (объектную) и там кидаешь как instance. Затем Advance -> Set Run State
Набьешь руку - будешь деньги брать :)

Цитировать
А если у родительского класса есть атрибуты, значениями которых являются объекты другого класса, то можно ли до них будет дотянуться из дочернего объекта?
Та разница то в чем? Все равно руками вбивать будешь.

Цитировать
Пример: человек живет в городе, есть куча людей и куча городов, у класса Человек заводим атрибут Город и связываем его с классом Город. Соотв-но, надо чтобы каждый конкретный человек был связан с конкретным городом. Как это можно реализовать?
Не у класса Человек будет атрибут Город типа Город, связывать будешь класс Человек и класс Город, а не атрибут - связь - это и есть атрибут

Счас нарисую

Не забывай между классами - ассоциация
между объектами - связь - она не кратна

И то что ты делаешь - это иллюстрация ДК, т.е. диаграмма объектов

1028
Марина все проще и сложнее.

1. http://www.uml2.ru/forum/index.php?topic=312.msg30830#msg30830
2. Не надо включать отображение унаследованных атрибутов и так отобразяться

1029
Вот как описывают подсистему расчет зарплаты в сомой 1С. Хотел эту схему представить в UML2
И?

1030
А как было бы всем проще, если бы, невыёживаясь, сначала построили таблицу переходов по состояниям: )
Так я девушке это предлагал. Но ...

1031
Результатом заявки может быть талон, приказ, мотивированный отказ поэтому он рассматривается как отдельный объект, а не как отдельный атрибут заявки. При этом жизненный цикл заявки (набор его состояний) будет зависеть от того, какое состояние имеет результат обработки.
Все это РАЗНЫЕ объекты. КАк состояние талона (и какие они могут быть?) влияет на состояние заявки?
Цитировать
Как это отражается на диаграмме состояний?
это и есть само состояние - фиксированный набор значений атрибутов и связей объекта

Цитировать
Говорит ли это о том, что в этом случае для объекта Заявка должны быть разработаны две диаграммы состояний? Одна для статусов Черновик... Зарегистрирована... и вторая со статусами Просрочена, Не просрочена?
Это зависит от целей моделирования и специфицирования. Но я не вижу оснований для противопоставления одной группы состояний другой.

Цитировать
Для того, чтобы отразить начальное состояние для отсчета срока обработки заявки. Т.е. есть правило, что заявка должна быть обработана в течение 10 дней. Отсчет срока начинается после того, как она будет зарегистрирована. Здесь я ввожу подсостояние "Не просрочена". Если это не верно, то прошу подсказать как надо?
Момент регистрации заявки  и есть момент начала срока ее исполнения. КАк только возникает таймаут - 10 дней, зарегистрированная заявка, но не исполненная попадает в положение просрочена
Цитировать
Она продолжает выполняться. Однако исполнителю сыпятся уведомления о необходимости ее обработать.
Ну и что.
смотрите Запланирована - (бла бла) - Выполняется -- прошло 10 дней) - Просрочена (слать нотификацию пока ...) - Выполнена
Или Запланирована - (прошло 10 дней) -  Просрочена (слать нотификацию пока ...) - Выполнена
или Запланирована - (прошло 10 дней) -  Просрочена (слать нотификацию пока ...) - Отменена
чем плохо?




1032
1. Показать как изменяется состояние "Заявки" в зависимости от изменения состояния "Результата обработки заявки" 
А почему результат обработки заявки рассматривается как отдельный объект?

Цитировать
2. Показать подсостояния для Заявки: "Непросрочена" и "Просрочена" при условии того, что состояние "Непросрочена" возникает после состояния заявки "Зарегистрирована", а статус "Просрочена" будет возникать только по событию истечения установленного срока обработки заявки при этом состояние Заявки "Закрыта" должна зафиксировать статус "Непросрочена" в случае если Заявка перешла в состояние "Закрыта" и при этом срок обработки заявки не истек.
Состояние - это набор значений и связей объекта (набор значений атрибутов иными словами). Пусть у вашей заявки есть атрибут Статус = каким то статусам, и вдруг есть еще флаг = логический. Ясно, что сочетание этих значений и определяет отдельное состояние.

Но заявку можно рассматривать по-разному.
Скажем если для заявки важны
Не просрочена
и Просрочена - то мы имеем два состояния. Нахождение в 1 начинается при создании заявки и прохождению по ее ЖЦ, пока не возникнет событие времени after(установленный срок). При наступлении этого событие каждая заявка из состояния Не просрочена перейдет в Просрочена с каким то важным результатом

Правда не понятно зачем нужно состояние Не просрочена, достаточно иметь состояние Просрочена.
Однако вопрос - а что у вас происходит с просроченной заявкой? Она продолжает выполняться?

1033
Мне кажется, это больше походит на диаграмму деятельности.
Кроме того  тут явные ошибки, что еще за зависимости в диаграмме автоматов?
Состояние какого объекта модулируются?

Как-то не очень понятно Статусы заявки и результатов. Имхо
Отдельно Заявка
Отдельно Результат

Также есть и другие синтаксические ошибки, на переходах, что указано?

Т.е. я бы разделил эти две диаграммы автоматов.
Тщательно продумал состояния и события переходов из одного состояния в другое

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

Ну и матчасть http://uml3.ru/library/uml_for_developers/05.Behaviour_modeling.pdf

1034
Ситуация такая, происходит регистрация плановых начислений и удержаний.
Эти самые плановые начисления и удержания могут регестрироваться 7-мью   различными документами. Причем не обязательно формировать их все сразу, если будет сформирован хотябы один это уже будет считаться, что плановые начисления и удержания зарегистрированы. Вот и возникает вопрос, как же тогда сложившуюся ситуацию изобразить на диаграмме активности?
Немного стало яснее. Мне кажется, использование распараллеливания здесь не допустимо. Мне кажется и использование асинхронного OR в IDEF3 не будет правильным. По сути тут идут два процесса: начисление и удержание. Они могут быть выполнены различными документами, что вы представляете как 7 разных действий или деятельностей, а действительно ли они разные эти действия?

Вот в BPMN есть такой ad hoc процесс, мне кажется, это отражает вашу особенность наилучшим образом, но как простым способ изобразить в ДД - не знаю.

Скажите, пожалуйста, каким образом возникает потребность использования одного из 7 документов или нескольких для определения назначений и удержаний?

1035
Присоединюсь к Виктору, что вы хотите промоделировать - не совсем ясно, что у вас изображено

Страницы: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 »