Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие-ООП - копия.doc
Скачиваний:
20
Добавлен:
17.08.2019
Размер:
907.78 Кб
Скачать

2.4Вопросы по теме

  1. Определение класса. Синтаксис объявления класса.

  2. Дать определение понятию элемент класса.

  3. Определение конструктора, его виды и назначение.

  4. Особенность использования «друзей класса».

  5. Дать определение производного класса.

  6. Схема изменения атрибутов доступа при наследовании.

  7. Варианты проведения наследования.

  8. Возникновение неоднозначности и способы ее устранения.

  9. Назначение и способы использования перегрузки операций.

  10. Дать определение виртуальной элемент-функции.

  11. Назначение абстрактных классов.

  12. Использование шаблонов классов и функций.

3Объектно-ориентированное проектирование. Лекция №12

3.1Концепция объектно-ориентированного проектирования

"Ключ к искусному проектированию можно подобрать, если непосредственно моделировать некоторые аспекты "окружающей действительности", то есть "поймать" понятия из данной прикладной области в виде классов, представить зависимости между классами формальным образом, например, в виде наследования, и проделывать это повторно на разных уровнях абстракции"[2].

Понятия не существуют изолированно, а находятся во взаимосвязи друг с другом, поэтому, и классы разрабатываемой системы должны проектироваться не изолированно, а совместно в виде одной единицы проектирования. Введем термин компонента в качестве единицы проектирования: "Обычно разрабатывается сразу множество взаимосвязанных классов. Такое множество часто называют библиотекой классов, или компонентой"[2].

Что выбрать в качестве компонент, классов-понятий и каковы основные принципы проектирования программ в информационных системах в экономике и управлении? Можно предложить следующую концепцию проектирования.

Информационная система в экономике и управлении, реализованная в виде комплекса информационных рабочих мест управленческого персонала предприятия, решает ряд взаимосвязанных задач с получением документов, позволяющих выполнять функции управления: планирование, учет, контроль и регулирование. В качестве компонент можно выбрать информационные рабочие места управленческого персонала, информационные подсистемы управления различного уровня.

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

Разработка компоненты включает следующие этапы:

  • проектирование структуры компоненты, включающее проектирование структурной схемы программы, представляющей собой иерархию классов компоненты, и интерфейсов классов;

  • программирование компоненты.

Этап проектирования структуры компоненты представляет собой итерационный процесс и включает следующие подэтапы:

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

  • определение состава классов: в качестве элементов-данных взять реквизиты документа, в качестве элементов-функций - набор операций (задач) по обработке документа;

  • составление начальной иерархии классов: выявить взаимозависимость документов и спроектировать структурную схему компоненты, используя наследование и полиморфизм. Структурная схема компоненты может быть представлена ориентированным графом без петель, где узлами являются классы, а дугами - направления наследования. Простое наследование соответствует иерархической декомпозиции понятий. Множественное наследование соответствует решению функциональной задачи, когда из нескольких документов образуется новый документ.

  • реорганизация иерархии классов, основанная на принципах декомпозиции и локализации: выделить общие элементы нескольких классов в новый базовый класс, разделить класс на несколько новых.

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

"Постарайтесь запомнить, что цель проектирования заключается в том, чтобы построить не перегруженную ненужными подробностями модель системы, у которой, тем не менее, имеется соответствующее число уровней абстракции. Сохранять равновесие между простотой и общностью - непростая задача"[3].

Этапы разработки программ задач методом объектно-ориентированного программирования рассмотрим на примере системы учета выполнения работ.