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

Общий раздел => Примеры => Тема начата: Galogen от 24 Декабря 2007, 21:29:39

Название: Задачка на диаграмму классов (концептуальную)
Отправлено: Galogen от 24 Декабря 2007, 21:29:39
Одна "нехорошая" :) девочка подкинула мне тут задачку.

Составить диаграмму классов управления проектами, используя такое примерно описание:

Компания(такие-то атрибуты) состоит из отделов. В отделе работают работники, один из которых является руководителем отдела. Компания выполняет проекты (время, назначение). За каждый проект отвечает какой-то один отдел. У проекта есть руководитель проекта. Работники участвуют в одном или более проектах, имея одну и более ролей (например, программист, проектировщик).


Более корректная и оригинальная формулировка
Требуется разработать модель системы управления проектами.
Компания состоит из отделов, в которых работают работники. Отдел отвечает за ноль, один или несколько проектов. Компания имеет название, адрес и телефон. Отдел имеет название и руководителя-работника. Проект имеет название и сроки. Каждый служащий характеризуется именем, адресом и участвует в одном или нескольких проектах. Каждый проект имеет руководителя-работника. Работник выполняет в проекте одну или несколько ролей (например, программист, проектировщик).



Какие варианты?
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: Galogen от 25 Декабря 2007, 11:24:56
Мой вариант:

(http://dit.isuct.ru/ivt/foruml2/task.jpg)
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: Galogen от 25 Декабря 2007, 13:27:57
Серега, кончай бузить :)

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

Тренарная связь - ее лучше избегать, можно ли ее считать атомарной в данном случае? И нельзя ли ее декомпозировать.

ну насчет 2 могет быть
насчет 3 возможно - возобладал здравый смысл, + запись о том что один из работкников отдела и является его руководителем

4 крыша у тебя не едет - она у меня едет :(

С точки зрения ER класс ассоциации будет фактически таблицей связью с дополнительными атрибутами: работник проект роль (вся коллекция уникальная)
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: Galogen от 25 Декабря 2007, 13:47:31
Вот еще прочтение

(http://dit.isuct.ru/ivt/foruml2/var2.jpg)
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: Galogen от 25 Декабря 2007, 14:04:53
Опять 25.
Сережа, расслабся. Скажи я Солнце, большое горячее солнце. У меня теплые уши и мне очень хорошо :)

По сути я же запостил свой вариант самый первый, в надежде, что никто еще не посмотрел задачку.

Так коррекция введена, работаем по ее оригинальной форме.

Мне интересно не само решение, а то что этих решений не может быть ровно 1, что их будет много, поскольку либо не хватает ограничений на выборку одного, либо просто конечная цель может решаться разными путями

Я не против тренарных ассоциаций, и они тут вполне уместны.

Не очень понимаю твою аргументацию по поводу невозможности использовать тут класс ассоциации

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

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

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

Это хорошо! Это есть некое доказательство качества исходной формулировки, согласен?
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: Denis Beskov от 26 Декабря 2007, 01:34:41
Эд, для разработки модели системы концептуальной модели структуры предметной области маловато. Так цель достигнута или нет?
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: Galogen от 26 Декабря 2007, 08:33:59
Ден, цель пока не достигнута.

Предложено всего два варианта по сути, более того вариант от Сергея построен на примерном описание, а не оригинальном. За что он меня отругал :)

Интересно понять, чего собственно не хватает? Какие вопросы у аналитика требований могут возникнуть к такому описанию?

Например, у меня возникают такие:
1. Не означает ли тот факт, что руководитель отдела, отвественного за тот или иной проект, и есть руководитель проекта?
2. Руководитель  проекта назначается из работников компании или это может быть сторонний человек?
3. Какая информация о роли должна моделироваться. Например, я вообще бы сделал роль атрибутом в некоторой сущности Назначение (Проект, Работник, Роль), а Роль сделал бы перечислением.
4. Могут ли отделы состоять из подразделений?

Ну и наконец, какие навыки должна проверить задача в данной формулировке?
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: Galogen от 26 Декабря 2007, 09:32:19
В прочем, давайте расставим точки над i.

Задача чисто учебная. Полная ее формулировка такова:
Требуется разработать модель системы управления проектами.
Компания состоит из отделов, в которых работают работники. Отдел отвечает за ноль, один или несколько проектов. Компания имеет название, адрес и телефон. Отдел имеет название и руководителя-работника. Проект имеет название и сроки. Каждый служащий характеризуется именем, адресом и участвует в одном или нескольких проектах. Каждый проект имеет руководителя-работника. Работник выполняет в проекте одну или несколько ролей (например, программист, проектировщик).
Нарисовать концептуальную модель – диаграмму классов (class diagram), иллюстрирующую состав системы управления проектами.

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

Если поставить вопрос так: достаточно ли этих сведений для реализации единственно верного решения? То ответ ясен - не достаточно

Если поставить вопрос: возможны ли разные реализации концептуальной модели на базе существующей формулировки - ответ да возможны.

Что имеет смысл изменить в формулировке (добавить, убрать) чтобы добиться по возможности единственного решения
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: dimaxz от 09 Июля 2010, 17:03:19
вот бы в диаграмме все это увидеть, былобы счастье
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: Galogen от 11 Июля 2010, 23:22:05
вот бы в диаграмме все это увидеть, былобы счастье
Диаграмму свою восстановил, чужие нет- автору удалил свое сообщение
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: dimaxz от 19 Декабря 2010, 01:32:15
я  почему то думал что отдел состоит из работников (отношение композиция)
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: Galogen от 19 Декабря 2010, 10:23:08
я  почему то думал что отдел состоит из работников (отношение композиция)
отношение композиция - это отношение часть-целое, причем указывающее, что часть не может существовать без целого в принципе.

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

отношение композиции слишком жестко, в лучшем случае тут возможна агрегация. так или иначе на концептуальном уровне я оставил более гибкое решение для передачи связи - ассоциацию
Название: Re: Задачка на диаграмму классов (концептуальную)
Отправлено: dimaxz от 20 Декабря 2010, 15:08:39
ясно :)