Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Объектная модель: проектирование структуры и реализация ключевых классов





Лабораторная работа №3.

Цели лабораторной работы:

1. Понятийный анализ предметной области, выявление ключевых информационных сущностей. Предполагается выявить основные классы, описательные атрибуты классов, а также связи между классами исходя из ранее проанализированных и специфицированных требований.

2. Создание статического ракурса модели информационной системы в виде иерархии взаимосвязанных классов. Предполагается спецификация иерархии классов в виде UML-диаграмм.

3. Отображение модели ключевых классов системы в виде программных конструкций на языке С++ и проверка работоспособности реализации при помощи тестовой программы.

Ход лабораторной работы:

1. Выявление кандидатов в классы, описывающие предметную область:

- Выписать часто встречающиеся существительные в описании требований.

- Выделить в отдельный список те из выписанных существительных, которые имеют явное четко очерченное значение количественного или качественного характера – такие существительные являются кандидатами в атрибуты.

- Выделить в отдельный список те из выписанных существительных, которые можно отнести к одной из следующих смысловых групп – такие существительные являются явными кандидатами в классы:

- понятие, концепция;

- предмет;

- событие;

- организация;

- роль;

- местоположение;

- взаимодействие.

- По остальным существительным решение может быть принято позже.

 

2. Метод CRC-карточек:

Для оценки корректности выявления каждого конкретного класса следует дать ответы на следующие вопросы:

 

- Каковы обязанности класса?

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

Если обязанности сформулировать не получается, возможно существительное не является классом.

Если обязанностей несколько, возможно класс слишком большой и его следует разбить на несколько более мелких с 1 четкой обязанностью.

 

- С какими другими классами сотрудничает класс?

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

Если класс не взаимодействует ни с кем, маловероятно, что класс представляет собой объект-сущность. Отсутствие связей вполне допустимо для классов-значений.

 

3. Спецификация структуры классов:

- Используя программу StarUML, создать новую модель, содержащую диаграмму классов

- Добавить пустые классы-заготовки для всех выявленных классов.

- Выявить и специфицировать на диаграмме описательные атрибуты классов:

- Атрибут должен иметь имя и тип данных.

- Рекомендуется всем атрибутам назначить закрытую видимость.

- Тип данных описательного атрибута наиболее часто является элементарным (число, строка, перечисление).

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

- Выявить и обозначить на диаграмме отношения агрегации между классами:

- агрегация – это отношение целое-часть: если нельзя сказать, что объект класса является частью объекта другого класса, то отношение не является агрегацией;

- символ агрегации – ромбик – отображается на стороне объекта-контейнера;

- подвиды агрегации ExclusiveOwns (безраздельное владение) и Owns (владение) обозначаются закрашенным ромбиком, а Has и Member – незакрашенным;

- конкретный вид агрегации можно подчеркнуть при помощи стереотипов (дополнительный текст на соединительных стрелках);

- обязательно указать кратность агрегации (1..1, 1..*, *..*, …);

- допускается отношение циклической агрегации, если один из объектов класса может содержать объекты того же самого класса;

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

- Выявить и обозначить на диаграмме отношения ассоциации между классами:

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

- ассоциация может быть:

- двунаправленной, если оба объекта инициируют взаимодействие друг с другом;

- однонаправленной, если только один из объектов инициирует взаимодействие;

- без направления, если смысл ассоциации акцентируется не на взаимодействии, а на некоторой логической связи;

- обязательно указать кратность ассоциации (1..1, 1..*, *..*, …);

- аналогично агрегациям, допускается циклическая ассоциация, и более чем одна ассоциация между двумя классами, что также следует уточнить именем (где уместно – именами ассоциативных ролей на концах стрелок);

- если между двумя классами существует ассоциация с кратностью *..*, следует задуматься о возможных ассоциативных классах – т.е., вспомогательных классах, моделирующих конкретную пару объектов (типичный признак: конкретная пара объектов имеет характерные атрибуты)

- Выявить и обозначить на диаграмме отношения обобщения между классами:

- правильный случай: можно сказать, что подкласс является подвидом суперкласса;

- правильный случай: объект суперкласса можно заменить объектом подкласса;

- правильный случай: подкласс расширяет обязанности суперкласса;

- неправильный случай: наследование похожих атрибутов без наличия связи между обязанностями классов;

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

 

Date: 2015-12-12; view: 298; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию