Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Системный анализ, проектирование и UML > Анализ пердметной области


Автор: samec 26.3.2007, 07:44
На основе анализа предметной области выявить классы объектов,  связи между ними и построить концептуальную диаграмму классов UML.

Вот предметная область: 
Справочник меломана
Имеются люди – фамилия, имя, дата рождения, пол. Каждый человек является либо певцом, либо поэтом, либо композитором.  Певцы могут обладать голосом (мужчины - бас, баритон, тенор, женщины – сопрано, контральто). Сведения о произведении – наименование, жанр, список поэтов, список композиторов, дата создания. Жанр – джаз, поп, рок (популярная музыка), классическая музыка. Если жанр – классическая музыка, то в произведении указываются требования к голосам исполнителей. Имеется также список записей произведений. Для каждой записи указываются – произведение, список исполнителей, дата исполнения. Программа должна загружать справочник с жесткого диска, править все его данные, сохранять на диск. В процессе работы пользователь программы должен иметь возможность просмотра, как минимум, следующих параметров:
1)Список певцов с возможностью сортировки по фамилии, дате рождения, полу, голосу, количеству произведений, в исполнении которых он участвовал.
2)Список композиторов с возможностью сортировки по фамилии, дате рождения, полу, жанру произведений, наименованию произведений.
3)Список записей заданного жанра с сортировкой по наименованию, дате создания, последней дате записи. Должна быть реализована возможность отбора записей, которые исполнял заданный певец или в списках авторов имеется заданные поэт и/или композитор.
4)Список произведений популярной или классической музыки с возможностью сортировки по дате создания или жанру.

Разработанная мною концептуальная диаграмма классов UML в прикрепленном файле. Правильно ли я её нарисовал? Подскажите... И если что не так, наставьте на путь истинный smile За  ранее благодарен.

Автор: batigoal 29.3.2007, 13:33
А список тоже является самостоятельной сущностью? Я в таких диаграммах коллекции обычно не указываю.

Автор: Maxis 3.4.2007, 18:04
Можно ли в следующей предметной области в качестве актеров выделить устройства холодильника (терморегулятор, мотор, устройство подачи сигналов и т.д.)? Или правильнее будет выделить в качестве актера именно пользователя холодильника и мастера?

Требуется разработать модель ПО встроенного процессора холодильника. Холодильник состоит из нескольких холодильных камер для хранения продуктов. В каждой холодильной камере имеется регулятор температуры, мотор, термометр, индикатор, таймер, датчик открытия двери камеры и устройство для подачи звуковых сигналов.
При помощи терморегулятора устанавливается максимально допустимая температура в данной камере. Мотор предназначен для поддержания низкой температуры. Термометр постоянно измеряет температуру внутри камеры, а индикатор температуры, расположенный на дверце, постоянно высвечивает ее значение... и т.д.

Автор: batigoal 4.4.2007, 08:15
Актер - это пользователь системы, т.е. в данном случае 
Цитата(Maxis @  3.4.2007,  19:04 Найти цитируемый пост)
правильнее будет выделить в качестве актера именно пользователя холодильника и мастера

, и именно от них будут исходить use case'ы.

Автор: ida 2.5.2007, 11:24
samec, мои классы:

Артист (атрибуты - Имя, Дата рождения).
Дочерние - Певец, Композитор, Поэт.
Певец (атрибут - Тембр)
Произведение (атрибуты - Жанр, Название).
Запись (атрибут - Дата исполнения).

Остальные классы в модели лишние.

У вас они появились как результат "подгонки" модели под реализацию, что часто встречается у разработчиков и при небольшом опыте создания моделей.

Запись можно напрямую связать с Артистом, вместо трех связей.
Можно извратиться еще больше и считать Певца, Композитора и Поэта ролями класса, а не отдельными классами - тогда у класса Артист будет связь с самим собой.

Почему Жанр и Тембр не являются отдельными классами - потому что их существование имеет смысл только в контексте Произведения или Певца, соответственно. Следовательно, это атрибуты.

И еще одно замечание.
Если вам задали это задание в качестве курсовой или дипломной работы, то безусловно мой вариант будет отклонен как неправильный - поскольку в ВУЗах требуют нормализованные таблицы в БД. Это иллюстрация разницы между реализацией и анализом.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)