Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_proektirovanie_2012.docx
Скачиваний:
57
Добавлен:
16.03.2015
Размер:
2.03 Mб
Скачать

1. Методология объектно-ориентированного программирования (ооп). Понятие класса и объекта. Общие принципы

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

Алгоритм – это точная предписанная последовательность действий по решению задач.

Процедура – запись алгоритма в целом или части алгоритма на формальном языке.

Проблема reuse – проблема накопления кучи программ. Повторное использование программных компонентов.

К концу 80-х годов начался складываться объектно-ориентированный подход.

Декомпозиция привела к понятию модуля

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

Структурное программирование (без GO TO)

Модульность хорошо сочетается со структурностью.

Simula – один из первых языков, использующих понятия класса и объекта.

Класс – это некоторая абстракция совокупности объектов, имеющая общие свойства и обладающая одинаковым поведением.

Фундаментальными понятиями ООП являются понятия класса и объекта.

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

Объект – частный пример (экземпляр/instance), который обладает таким же поведением, как и класс, но частными значениями свойств.

Основные принципы ООП:

  1. Наследование – передача данных от класса к объекту. Это облегчает решение проблемы повторного использования

  2. Инкапсуляция – сокрытие деталей внутренней реализации и устройства классов от внешних для него объектов

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

Методы ООП начали применятся в конце 80-ых и в процессе проектирования АС.

Введение классов и объектов облегчает проблему reuse: если программа поддерживает класс, то поддержит и объект.

Иерархическое построение классов. Классификация приводит к четкой поддержке классов между собой.

Было введено понятие бизнес процесса – некий процесс целенаправленного типа, в котором участвует 1 или множество объектов. Начало объектно-ориентированного (ОО) подхода в проектировании положил. Бадд, который ввел CRC-карточки (component responsibility collabоrator). Предметная область подвергалась анализу и для нее составлялись CRC-библиотеки.

Классификатор (dassifier) - любое обобщение объектов, приводящих к определенному понятию. Самый общий классификатор – класс.

Классы делятся на: пользователей, отношений, компонентов и т.д.

Выделение компонентов является искусством системного аналитика. Развитие ООПроектирования привело к появлению понятий архитектура и платформа.

Архитектура системы - состав и способы организации составных частей между собой (программных и аппаратных)

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

Международная группа PMG (Project Management Group) публикует стандарты в области ООП. В 2001 г. PMG сформулировала концепцию MDA (Model Driven Architecture) – “архитектура, управляемая моделью”. Согласно этой концепции проектируемая система может быть описана с точки зрения функциональных требований моделью общего вида, которая называется metamodel.

PIM-модель (Platform Independent Model) – модель, независимая от платформы.