Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Объектная модель, объектно-ориентированные программирование, проектирование, анализ

Double x1, mas[5], p1; //здесь объявлены вещественные переменные x1, p1 | Double x; // определяется вещественная переменная x | While (условие) инструкция | Пять признаков сложной системы. | Объясните основные архитектурные особенности ОС Windows XP/Vista | Объясните архитектурные особенности операционной системы Unix. | Проанализируйте структурную схему персонального компьютера, архитектурные свойства и принципы микропроцессоров. | Классифицируйте режимы работы микропроцессора. Объясните организацию оперативной памяти и систему прерываний. | Проанализируйте основные подходы к верстке веб-страниц. | Проанализируйте задачи искусственного интеллекта. |


Читайте также:
  1. A) проанализируйте модели образования слов, прочтите и переведите слова и словосочетания, созданные на их основе.
  2. I. АНАЛИЗ ПСИХИЧЕСКИХ И ПСИХОФИЗИЧЕСКИХ КАЧЕСТВ
  3. I. Ситуационный анализ внутренней деятельности.
  4. II. Выберите ОДНО из заданий. А) Комплексный анализ прозаического текста.
  5. III. Корреляционный анализ 1 страница
  6. III. Корреляционный анализ 2 страница
  7. III. Корреляционный анализ 3 страница

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

Абстрагирование связано с выделением существенных характеристик некоторого объекта, отличающих его от всех других видов объектов. Оно позволяет четко определять концептуальные границы объекта с точки зрения наблюдателя. Абстрагирование фокусирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности от несущественных.

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

Модульность подразумевает разделение программы на фрагменты, которые компилируются по отдельности, но могут устанавливать связи с другими модулями. Модульность позволяет хранить абстракции раздельно. В программировании модули играют роль физических контейнеров, в которые помещаются определения классов и объектов при логическом проектировании системы. В большинстве языков, поддерживающих принцип модульности как самостоятельную концепцию, интерфейс модуля отделен от его реализации. Так в языке C++ модулями являются раздельно компилируемые файлы, когда интерфейсная часть размещается в отдельных файлах с расширением .h (файлы-заголовки), а реализация модуля хранится в файлах с расширением .c. В языке Object Pascal принцип модульности формализован несколько строже, в частности, в нем определен особый синтаксис для интерфейсной части и реализации модуля.

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

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

Теперь остановимся на понятиях объектно-ориентированного программирования, проектирования и анализа.

Объектно-ориентированное программирование (object-oriented programming, OOP) – это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

В этом определении следует обратить внимание на следующие три момента:

1) OOP использует в качестве базовых элементов объекты, а не алгоритмы;

2) каждый объект является экземпляром какого-либо определенного класса;

3) классы организованы иерархически.

Программа будет объектно-ориентированной только при соблюдении всех трех указанных требований.

Если программирование, прежде всего, подразумевает правильное и эффективное использование механизмов конкретных языков программирования, то проектирование основное внимание уделяет правильному и эффективному структурированию сложных систем.

Для объектно-ориентированного проектирования (object-oriented design, OOD) можно дать следующее определение: OOD – это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы.

В этом определении следует обратить внимание на следующие два момента:

1) OOD основывается на объектно-ориентированной декомпозиции;

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

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

Объектно-ориентированный анализ (object-oriented analysis, OOA) направлен на создание моделей реальной действительности на основе объектно-ориентированного подхода.

ООА – это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области.

Соотношения между ООА, OOD и ООР выглядят следующим образом: на результатах ООА формируются модели, на которых основывается OOD. A OOD в свою очередь создает фундамент для окончательной реализации системы с использованием методологии ООР.

Б. Страуструп писал в своих размышлениях о программировании следующим образом: “В идеале вы разрабатываете программу в три этапа. Сначала вы добиваетесь ясного понимания задачи (анализ), затем определяете ключевые концепции, в терминах которых выражается решение задачи (проектирование), и, наконец, воплощаете решение в программе (программирование). Однако детали проблемы и некоторые аспекты решения часто становятся понятными только в процессе написания программы и при попытках заставить ее работать”.

Классы в С++.

Класс представляет собой определяемый пользователем тип данных, который обычно содержит переменные-члены и функции-члены с определенными разделенными правами доступа. Объект является экземпляром класса. Определение класса производиться с использованием ключевого слова class и по своей структуре совпадает с определением агрегатного типа struct. Однако по умолчанию члены класса определяются с закрытыми (private) правами доступа, а потому обращаться к ним разрешается только внутри класса. Например: (ранее мы использовали struct avto {…}, теперь определим соответствующий класс)

class avto { char name [15];

int cend;

double rashod;};

int main()

{…


Дата добавления: 2015-11-14; просмотров: 70 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Роль декомпозиции, абстракции и иерархии при построении сложных систем| Член_класса_2

mybiblioteka.su - 2015-2024 год. (0.008 сек.)