Форум Сообщества Аналитиков
Общий раздел => Примеры => Тема начата: Galogen от 24 Декабря 2007, 21:29:39
-
Одна "нехорошая" :) девочка подкинула мне тут задачку.
Составить диаграмму классов управления проектами, используя такое примерно описание:
Компания(такие-то атрибуты) состоит из отделов. В отделе работают работники, один из которых является руководителем отдела. Компания выполняет проекты (время, назначение). За каждый проект отвечает какой-то один отдел. У проекта есть руководитель проекта. Работники участвуют в одном или более проектах, имея одну и более ролей (например, программист, проектировщик).
Более корректная и оригинальная формулировка
Требуется разработать модель системы управления проектами.
Компания состоит из отделов, в которых работают работники. Отдел отвечает за ноль, один или несколько проектов. Компания имеет название, адрес и телефон. Отдел имеет название и руководителя-работника. Проект имеет название и сроки. Каждый служащий характеризуется именем, адресом и участвует в одном или нескольких проектах. Каждый проект имеет руководителя-работника. Работник выполняет в проекте одну или несколько ролей (например, программист, проектировщик).
Какие варианты?
-
Мой вариант:
(http://dit.isuct.ru/ivt/foruml2/task.jpg)
-
Серега, кончай бузить :)
Я просто вчера без деталей описал задачку по памяти, сегодня поместил исходный вариант, можно от него отталкиваться.
Тренарная связь - ее лучше избегать, можно ли ее считать атомарной в данном случае? И нельзя ли ее декомпозировать.
ну насчет 2 могет быть
насчет 3 возможно - возобладал здравый смысл, + запись о том что один из работкников отдела и является его руководителем
4 крыша у тебя не едет - она у меня едет :(
С точки зрения ER класс ассоциации будет фактически таблицей связью с дополнительными атрибутами: работник проект роль (вся коллекция уникальная)
-
Вот еще прочтение
(http://dit.isuct.ru/ivt/foruml2/var2.jpg)
-
Опять 25.
Сережа, расслабся. Скажи я Солнце, большое горячее солнце. У меня теплые уши и мне очень хорошо :)
По сути я же запостил свой вариант самый первый, в надежде, что никто еще не посмотрел задачку.
Так коррекция введена, работаем по ее оригинальной форме.
Мне интересно не само решение, а то что этих решений не может быть ровно 1, что их будет много, поскольку либо не хватает ограничений на выборку одного, либо просто конечная цель может решаться разными путями
Я не против тренарных ассоциаций, и они тут вполне уместны.
Не очень понимаю твою аргументацию по поводу невозможности использовать тут класс ассоциации
в одном проекте работают много работников
один работник может работать над разными проектами имея конкретную роль. налицо атрибут свзяи - роль, т.е. класс ассоциации.
естественно можно представить и как тренарная ассоциация, однако ее реализация явно сложнее, чем класс ассоциации, и к тому же, что она отображает, чего не отображает класс ассоциации? Ты про бинарность, ну хорошо, чем плохо, чего будет не так?
далее согласен что ничего не известно о возможности работника принадлежать сразу многим отделам. Если это неизвестно, аналитик может трактовать вариативно, верно, т.е. создавать еще варианты
Это хорошо! Это есть некое доказательство качества исходной формулировки, согласен?
-
Эд, для разработки модели системы концептуальной модели структуры предметной области маловато. Так цель достигнута или нет?
-
Ден, цель пока не достигнута.
Предложено всего два варианта по сути, более того вариант от Сергея построен на примерном описание, а не оригинальном. За что он меня отругал :)
Интересно понять, чего собственно не хватает? Какие вопросы у аналитика требований могут возникнуть к такому описанию?
Например, у меня возникают такие:
1. Не означает ли тот факт, что руководитель отдела, отвественного за тот или иной проект, и есть руководитель проекта?
2. Руководитель проекта назначается из работников компании или это может быть сторонний человек?
3. Какая информация о роли должна моделироваться. Например, я вообще бы сделал роль атрибутом в некоторой сущности Назначение (Проект, Работник, Роль), а Роль сделал бы перечислением.
4. Могут ли отделы состоять из подразделений?
Ну и наконец, какие навыки должна проверить задача в данной формулировке?
-
В прочем, давайте расставим точки над i.
Задача чисто учебная. Полная ее формулировка такова:
Требуется разработать модель системы управления проектами.
Компания состоит из отделов, в которых работают работники. Отдел отвечает за ноль, один или несколько проектов. Компания имеет название, адрес и телефон. Отдел имеет название и руководителя-работника. Проект имеет название и сроки. Каждый служащий характеризуется именем, адресом и участвует в одном или нескольких проектах. Каждый проект имеет руководителя-работника. Работник выполняет в проекте одну или несколько ролей (например, программист, проектировщик).
Нарисовать концептуальную модель – диаграмму классов (class diagram), иллюстрирующую состав системы управления проектами.
Т.е. по сути реализовать концептуальную модель. Как мы помним назначение концептуальной модели - предоставить словарь предметной области. В данном случае предметная область ограничена описанием набора объектов-классов и возможных связей между ними.
Если поставить вопрос так: достаточно ли этих сведений для реализации единственно верного решения? То ответ ясен - не достаточно
Если поставить вопрос: возможны ли разные реализации концептуальной модели на базе существующей формулировки - ответ да возможны.
Что имеет смысл изменить в формулировке (добавить, убрать) чтобы добиться по возможности единственного решения
-
вот бы в диаграмме все это увидеть, былобы счастье
-
вот бы в диаграмме все это увидеть, былобы счастье
Диаграмму свою восстановил, чужие нет- автору удалил свое сообщение
-
я почему то думал что отдел состоит из работников (отношение композиция)
-
я почему то думал что отдел состоит из работников (отношение композиция)
отношение композиция - это отношение часть-целое, причем указывающее, что часть не может существовать без целого в принципе.
вообще отношение композиции здесь может быть, однако в задаче нет каких-то правил, типа, при приеме на работу человек принимается в один и только в один отдел.
отношение композиции слишком жестко, в лучшем случае тут возможна агрегация. так или иначе на концептуальном уровне я оставил более гибкое решение для передачи связи - ассоциацию
-
ясно :)