| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Системный анализ, проектирование и UML > Анализ пердметной области |
| Автор: samec 26.3.2007, 07:44 |
| На основе анализа предметной области выявить классы объектов, связи между ними и построить концептуальную диаграмму классов UML. Вот предметная область: Справочник меломана Имеются люди – фамилия, имя, дата рождения, пол. Каждый человек является либо певцом, либо поэтом, либо композитором. Певцы могут обладать голосом (мужчины - бас, баритон, тенор, женщины – сопрано, контральто). Сведения о произведении – наименование, жанр, список поэтов, список композиторов, дата создания. Жанр – джаз, поп, рок (популярная музыка), классическая музыка. Если жанр – классическая музыка, то в произведении указываются требования к голосам исполнителей. Имеется также список записей произведений. Для каждой записи указываются – произведение, список исполнителей, дата исполнения. Программа должна загружать справочник с жесткого диска, править все его данные, сохранять на диск. В процессе работы пользователь программы должен иметь возможность просмотра, как минимум, следующих параметров: 1)Список певцов с возможностью сортировки по фамилии, дате рождения, полу, голосу, количеству произведений, в исполнении которых он участвовал. 2)Список композиторов с возможностью сортировки по фамилии, дате рождения, полу, жанру произведений, наименованию произведений. 3)Список записей заданного жанра с сортировкой по наименованию, дате создания, последней дате записи. Должна быть реализована возможность отбора записей, которые исполнял заданный певец или в списках авторов имеется заданные поэт и/или композитор. 4)Список произведений популярной или классической музыки с возможностью сортировки по дате создания или жанру. Разработанная мною концептуальная диаграмма классов UML в прикрепленном файле. Правильно ли я её нарисовал? Подскажите... И если что не так, наставьте на путь истинный |
| Автор: batigoal 29.3.2007, 13:33 |
| А список тоже является самостоятельной сущностью? Я в таких диаграммах коллекции обычно не указываю. |
| Автор: Maxis 3.4.2007, 18:04 |
| Можно ли в следующей предметной области в качестве актеров выделить устройства холодильника (терморегулятор, мотор, устройство подачи сигналов и т.д.)? Или правильнее будет выделить в качестве актера именно пользователя холодильника и мастера? Требуется разработать модель ПО встроенного процессора холодильника. Холодильник состоит из нескольких холодильных камер для хранения продуктов. В каждой холодильной камере имеется регулятор температуры, мотор, термометр, индикатор, таймер, датчик открытия двери камеры и устройство для подачи звуковых сигналов. При помощи терморегулятора устанавливается максимально допустимая температура в данной камере. Мотор предназначен для поддержания низкой температуры. Термометр постоянно измеряет температуру внутри камеры, а индикатор температуры, расположенный на дверце, постоянно высвечивает ее значение... и т.д. |
| Автор: ida 2.5.2007, 11:24 |
| samec, мои классы: Артист (атрибуты - Имя, Дата рождения). Дочерние - Певец, Композитор, Поэт. Певец (атрибут - Тембр) Произведение (атрибуты - Жанр, Название). Запись (атрибут - Дата исполнения). Остальные классы в модели лишние. У вас они появились как результат "подгонки" модели под реализацию, что часто встречается у разработчиков и при небольшом опыте создания моделей. Запись можно напрямую связать с Артистом, вместо трех связей. Можно извратиться еще больше и считать Певца, Композитора и Поэта ролями класса, а не отдельными классами - тогда у класса Артист будет связь с самим собой. Почему Жанр и Тембр не являются отдельными классами - потому что их существование имеет смысл только в контексте Произведения или Певца, соответственно. Следовательно, это атрибуты. И еще одно замечание. Если вам задали это задание в качестве курсовой или дипломной работы, то безусловно мой вариант будет отклонен как неправильный - поскольку в ВУЗах требуют нормализованные таблицы в БД. Это иллюстрация разницы между реализацией и анализом. |