|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
Для небольших проектов в понятной для команды разработчиков предметной области хорошо подходит следующая последовательность созадния артефактов: 1. В ходе "предпроекта" созадем и, по возможности, утверждаем с заказчиком список Use Case'ов, описывая таким образом scope проекта. 2. Начинаем писать UC Model (BUC Model не пишем аж вовсе), Supplementary Specification и глоссарий. - При этом держим в голове существующие ограничения и функционал платформы (редко ж совсем с нуля софт создается). - При этом ряд очевидных с самого начала архитектурных решений закладывается прямо в UC Model (например, если мы понимаем, что документ ездит по маршрутам, то описываем перемещения документа в терминах маршрутов и узлов на них, а не в терминах, скажем, статусов). - Устанавливаем приоритеты по списку Case'ов - понимаем в какой последовательности их нужно описывать. - Формат Use Case'ов можно и нужно подгонять под особенности проекта 3. Когда понимаем, что текстовой документ стало читать сложно - рисуем UML-картинки. Таким образом, чтобы они ОБЛЕГЧАЛИ понимание текстовой UC Model. Будет хорошо, конечно, если они будут полностью соответствовать UML нотации, но это не критично. Как мне кажется, автор ветки уж очень сильно увлекся процессом моделирования ради моделирования. Рисование картиночек и внедрение всякого софта для их рисования не может заменить работы грамотного бизнес-аналитика, умеющего грамотно общаться с клиентом и создавать проектные артефакты, понятные как клиенту, так и девелоперам. Извините, что так сумбурно... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 01:51 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
mcureenab Прецедент, в частности "Редактирование клиента" не может одновременно быть расширением и включением. А можно ссылку на источник, а то вроде об этом читал тоже, но не могу вспомнить где. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 16:32 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
соглашусь со следующими высказываниями авторБоюсь что только сообщением в форуме все тонкости работы с юзкейсами невозможно описать. Рекомендую почитать соответствующую литературу, например книгу А. Коберна это относится и к сложностям и к ссылке на Коберна. и с этим авторДетальные алгоритмы имеет смысл писать на алгоритмическом языке, как правило на целевом языке программирования. UML слеует использовать для МОДЕЛИРОВАНИЯ сложного алгоритма, т.е. для описания основных действий и переходов, так чтобы суть работы остовалась понятной, и в то же время не погрязнуть в подробностях модель помогает понять суть, а не нюансы. Если вы всё-таки пытаетесь построить модельно-управляемую фабрику по производству ПО, попробуйте почитать книгу Лармана. Только читайте вместе с программистами. Найдёте много полезного и по моделированию в UML и по переходу от модели к коду. Изучение первоисточников и их интерпретация на практике имееют один минус - требуется время для наработки опыта. Хотите ускорить процесс? Напишите в личку, обсудим. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 09:01 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
paul310Для небольших проектов в понятной для команды разработчиков предметной области хорошо подходит следующая последовательность созадния артефактов: 1. В ходе "предпроекта" созадем и, по возможности, утверждаем с заказчиком список Use Case'ов, описывая таким образом scope проекта. Конечно вопрос в том, что считать небольшим проектом. А вообще для обозначения scope гораздо проще создать контекстную диаграмму, чем прорабатывать спецификации юзкейсов. Документ Vision как раз включает в себя описание scope, и кроме всего прочего основные фичи. 2. Начинаем писать UC Model (BUC Model не пишем аж вовсе), Supplementary Specification и глоссарий. - При этом держим в голове существующие ограничения и функционал платформы (редко ж совсем с нуля софт создается). Не понятно зачем их деражать в голове, когда специально для этого есть слоты в Vision и собственно в самой Supplementary Specification? - При этом ряд очевидных с самого начала архитектурных решений закладывается прямо в UC Model (например, если мы понимаем, что документ ездит по маршрутам, то описываем перемещения документа в терминах маршрутов и узлов на них, а не в терминах, скажем, статусов). Очень наглядно маршруты и изменения статусов показываются на UML 1.5 Activity диаграмме с object flow. И где тут "архитектурное решение" я не уловил ... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 12:21 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
bas mcureenab Прецедент, в частности "Редактирование клиента" не может одновременно быть расширением и включением. А можно ссылку на источник, а то вроде об этом читал тоже, но не могу вспомнить где. Точно не помню название. Вроде "Введение в Rational Unified Process". Конкретно такого ограничения я не видел, но могу сделать вывод о его наличии. Рассмотрим, например, прецедент "Приготовление чая". 1. Подогреть воду. 2. Насыпать чай в чайник. 3. Залить кипятком. Акторов и систему я не указал. Теперь расширим прецедент "Понтами" и получим сценарий "Приготовление чая с понтами". 1.а Заказать музыку 1. Подогреть воду. 2.а Прогреть чайник. 2. Насыпать чай в чайник. 3. Залить кипятком. 3.а Быстро слить воду 4.а Залить кипятком Расширение "Понты" заключается в добавлении к обычному сценарию дополнительных действий: 1.а Заказать музыку 2.а Прогреть чайник. 3.а Быстро слить воду. 4.а Залить кипятком. И акторов - DJ. Очевидно, что повторно использовать совокупность этих действий отдельно от основного сценария невозможно. Прецедент "Приготовление чая" может существовать без "Понтов", но "Понты" без чая нет. Если мы выделим "Заливание кипятком" в отдельный включаемый прецедент, то сможем многократно использовать его как для приготовления чая, так и растворимого кофе или лапши. Включить Понты в приготовление растворимого кофе или лапши нельзя. Если приготовление чая рассматривать как некую процедуру, то это будет процедура с параметром "с понтами" и с ветками, для вызова действий из расширяющего прецедента "Понты" при условии, что "с понтами" = TRUE. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 14:26 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
mcureenab Если мы выделим "Заливание кипятком" в отдельный включаемый прецедент, то сможем многократно использовать его как для приготовления чая, так и растворимого кофе или лапши. А теперь еще добавим ВИ "Заливание молоком" и ВИ "Приготовление Каши". Представим, что каша готовится только на молоке, а кофе может быть как черным так и с молоком. и Получаем, что ВИ "Заливание молоком" есть включение в ВИ "Приготовление каши" и расширением в ВИ "Приготовление кофе". Что то упустил? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 15:21 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
bas mcureenab Если мы выделим "Заливание кипятком" в отдельный включаемый прецедент, то сможем многократно использовать его как для приготовления чая, так и растворимого кофе или лапши. А теперь еще добавим ВИ "Заливание молоком" и ВИ "Приготовление Каши". Представим, что каша готовится только на молоке, а кофе может быть как черным так и с молоком. и Получаем, что ВИ "Заливание молоком" есть включение в ВИ "Приготовление каши" и расширением в ВИ "Приготовление кофе". Что то упустил? Вот пример странных включений. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2006, 03:09 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
mcureenab Вот пример странных включений. К сообщению приложен файл. Размер - 22Kb Да, такие UC, действительно, могут оказаться странными. Попробуйте интерпретировать расширение и включение UC следующим образом. Думаю, это упростит понимание: * включение - это подставновка инкапсулированного UC (сценария, процесса) вместо шага в другой UC. * расширение - это специализация UC. Заметьте не отдельного шага, а всего UC. Специализация сценария, примерно в таком же понимании, как специализация класса, только применительно к UC (сценарию, процессу). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2006, 10:25 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
mcureenabВот пример странных включений. К сообщению приложен файл. Размер - 22Kb И ещё, к тому же рисунку. В примере, вопрос 1 мне не кажется странным. Очевидно, что E включает B, который уточняет поведение A. Что касается вопроса 2, то в нём некорректно определён C. Он специализирует сразу 2 UC: А и D. В жизни трудно придумать такой пример поведения. Но, даже если задаться такой целью и придумать, я бы не стал использовать UC в таком виде. Я упростил бы UC. Это приведёт к тому, что включающий UC будет однозначно понимать, какой другой UC он включает. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2006, 10:33 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
asafreeЧто касается вопроса 2, то в нём некорректно определён C. Он специализирует сразу 2 UC: А и D. В жизни трудно придумать такой пример поведения. Формально ошибки нет. То что такая конструкция редко встречается не даёт повода говорить, что C неправильный. asafreeНо, даже если задаться такой целью и придумать, я бы не стал использовать UC в таком виде. Я упростил бы UC. Это приведёт к тому, что включающий UC будет однозначно понимать, какой другой UC он включает. Согласен. Упростить можно. Однако, со временем кто то другой может воспользоваться прецедентом C, чтобы расширить им какой то свой D. В результате мы получим то, что изображено на диаграмме. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2006, 01:46 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
mcureenabСогласен. Упростить можно. Однако, со временем кто то другой может воспользоваться прецедентом C, чтобы расширить им какой то свой D. В результате мы получим то, что изображено на диаграмме. Видимо, я неточно выразил то, что хотел. На мой взгляд такая ситуация бессмыслена. В неформальном варианте. Получается, что я имею некоторый кейс, который специализирует сразу два других по сути (типу) кейса? Кейсы на диаграмме это аналоги классов, это типы кейсов (процессов, ВИ, прецендентов, сценариев, как угодно). Попробуйте придумать инстанции кейса C, который уточняет сразу два других кейса A и D. Мне кажется, это трудно придумать. Я интерпретирую "расширение" примерно так: C является таким же кейсом, что и A, но у него есть вот такое особенное поведение, т.е. C достигает тех же целей, что и A. Трудно сделать так, чтобы C достигал также и цели D. В чём я ошибаюсь? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 08:10 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
mcureenabВот пример странных включений. И что?? Это ответ на мой вопрос?? asafreeЯ интерпретирую "расширение" примерно так: C является таким же кейсом, что и A, но у него есть вот такое особенное поведение, т.е. C достигает тех же целей, что и A. Трудно сделать так, чтобы C достигал также и цели D. В чём я ошибаюсь? А Вы не путаете это с Generalize Relationship. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 10:53 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
asafree mcureenabСогласен. Упростить можно. Однако, со временем кто то другой может воспользоваться прецедентом C, чтобы расширить им какой то свой D. В результате мы получим то, что изображено на диаграмме. Видимо, я неточно выразил то, что хотел. На мой взгляд такая ситуация бессмыслена. В неформальном варианте. Получается, что я имею некоторый кейс, который специализирует сразу два других по сути (типу) кейса? Кейсы на диаграмме это аналоги классов, это типы кейсов (процессов, ВИ, прецендентов, сценариев, как угодно). Попробуйте придумать инстанции кейса C, который уточняет сразу два других кейса A и D. Мне кажется, это трудно придумать. Я интерпретирую "расширение" примерно так: C является таким же кейсом, что и A, но у него есть вот такое особенное поведение, т.е. C достигает тех же целей, что и A. Трудно сделать так, чтобы C достигал также и цели D. В чём я ошибаюсь? Расширение это не уточнение, а инкрементное дополнение. Без расшиения базовый прецедент будет не менее точным. Наприер поход в кино или на Эверест разные прецеденты, однако, если оба мероприятия происходят по предварительному согласованию с принимающей стороной, оба прецедена можно расширить переговорами. Переговоры заключаются в том, что мы бронируем место и время, получаем код заказа, а когда прибываем на место сообщаем этот код и выкупаем бронь. Что касается обобщения и специализации, то это третий вариант зависимости ВИ. Например все переговоры проходят примерно одинаково и имеют единую цель, но переговоры можно проводить по телефону, e-mail, факсами, телеграфом и т.д.. В этом отношении абстрактный ВИ "Переговоры" можно уточнить или специализировать в зависимости от вида связи. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 11:18 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
bas mcureenabВот пример странных включений. И что?? Это ответ на мой вопрос?? Скажем так, это иллюстрация ситуаций, где включение расширения приводит к неоднозначному пониманию модели. Ещё можно припомнить, что зависимости не танзитивны (а включение и расширение это именно виды зависимостей), т.е. включение B не означает включение A и тем более C. Это станет понятным, если случай 1 преобразовать в случай 2, т.е. с помощью B расширить какой то другой прецедент G. Тогда все наши соглашения относительно случая 1 потеряют смысл. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 11:34 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
mcureenabВот пример странных включений. Если я не ошибаюсь, то "includingUC" <--- "includedUC" "extedingUC" ---> "extendedUC" И для того, чтобы Е включало А(В) надо направить связь расширения от А к В (а не наоборот) и соответсвенно другие связи расширения так же. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 11:57 |
|
Разработка ИС, UML, Rose, Use-cases and требования
|
|||
---|---|---|---|
#18+
_внимательный mcureenabВот пример странных включений. Если я не ошибаюсь, то "includingUC" <--- "includedUC" "extedingUC" ---> "extendedUC" И для того, чтобы Е включало А(В) надо направить связь расширения от А к В (а не наоборот) и соответсвенно другие связи расширения так же. Надо, но это полностью изменит суть диаграммы. На диаграмме показано, что при данном расширении (считаем, что оно корректно), включение читается неоднозначно. Включение это зависимость включающего ВИ от включаемого. Т.е. E зависит от B, а не наоборот, как программа зависит от подпограммы, но не наоборот. Расширение это зависимость расширения от базового ВИ. Базовый ВИ не зависит от расширения, зато расшиение долно быть полностью согласовано с базой, чтобы добавить к ней новое поведение. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 12:13 |
|
|
start [/forum/topic.php?fid=33&msg=33832867&tid=1549348]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
135ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 259ms |
0 / 0 |