Студопедия

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

КАТЕГОРИИ:

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






Топологии объектных и объектно-ориентированных языков






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

В сфере объектно-ориентированного программирования есть некоторая путаница в терминологии. На пример класс от которого есть наследники может называться базовый, супер, предок класс. Класс, который является наследником может называться саб, унаследованный. Функция часть некоторого класса может называться метод, обобщённая (Clos), виртуальная функция, функция член, функция элемент.

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

· Объектно-ориентированные (с++\ java\Smalltalk)

· Объектные (Ada)

· Объектно-ориентированное проектирование (ООПр \ OOD) – методология проектирования, которая соединяет процесс объектной декомпозиции, а также приёмы представления логической и физической, статической и динамической моделей проектируемой системы.

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

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

Составные части объектного подхода:

Стиль программирования или парадигма – это способ построения программ, основанный на определённых принципах программирования, а также выбор языка, который делает понятными программы написанными в этом стиле.

Выделяют пять стилей (парадигм) программирования:

1. Процедурно-ориентированный (ключевая абстракция – алгоритм)

2. Объектно-ориентированный (классы и объекты)

3. Логико-ориентированный (цели выраженные в терминах и числениях предикатов)

4. Стиль ориентированный на правилах (правило формата «если – то»)

5. Стиль ориентированный на ограничения (инвариантные соотношения)

Каждый стиль имеет свои преимущества для определённый сферы автоматизации. На пример: для сложных вычислений – процедурно-ориентированный, для баз знаний и экспортных систем – «на правилах», объектно-ориентированный стиль – приемлем, для широкого круга задач и он может выступать фундаментом для других стилей.

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

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

· Инкапсуляция – первая трактовка инкапсуляции подразумевала объединения в рамках одного класса и данных и функций по обработке этих данных. В настоящее время инкапсуляция — это процесс отделения друг от друга элементов объекта, определяющих его устройство.

Интерфейс – отражает внешние поведение объекта, описывает абстракцию поведения объекта.

Реализация – описывает представление этой абстракции и внутренние механизмы достижения желания поведения.

 

· Модульность – это свойство системы, которая была разложена на внутренние сильно связанные, но слабо связанные между собой модули. В ОО подходе, понятие модуль трансформируется (это не набор подпрограмм, который может совместно использоваться, а один или несколько классов, которые храниться в файлах исходных кодов и в которых явно выделена интерфейсная часть и реализация).

· Иерархия – упорядочивания абстракций и расположение их по уровню.

· Типизация – это способ защитится от использования объекта одного класса, вместо другого. Понятие типа взято из теории абстрактных типов данных (в ООП тип и класс это синонимы). Выделяют сильную (строгая) и слабую типизацию. Отсутствие строго контроля типа может приводит к необъяснимым сбоям программы.

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

o 1) у нас есть 1 процессор и несколько потоков управления. Процессор имитирует параллельное выполнение. Каждый процесс получает квант времени.

o 2)Несколько процессор и они могут реально распараллелить вычисление. Причем они могут распараллелить единственный поток управления. В этом случае возникают нетривиальные задачи разделения вычислений, блокировок и т.д. ОО подход в состоянии описать такие процессы, представить модели с помощью диаграмм, так как декомпозирует систему на действующую абстракцию

· Сохраняемость – это способность объекта перемещается из своего первоначального адресного пространства и существовать во времени иногда переживая породивший его процесс. Любой программный объект создаётся в памяти и существует во времени. Спектр сохраняемости объектов охватывает следующее:

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал