double arrow

Понятия ООП в применении к моделированию


Любая объектная модель базируется на понятии объекта как совокупности данных, к которым привязаны некоторые процедуры их обработки (методы). При этом каждое данное из этой совокупности также, в свою очередь, может являться объектом (понятие агрегации) (см. рис. 2.2). Если в процедурной модели процедуры манипулируют пассивно хранящимися данными, то в объектной сами данные – объекты – взаимодействуют между собой. Множество похожих объектов с одним и тем же набором свойств и методов образует класс, который, собственно, и является минимальным блоком программы, аналогом процедуры.

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




Наследование классов
Агрегация объектов

Рис. 2.2. Понятия объектно-ориентированного подхода

В таблице 2.1 перечисленные выше понятия рассматриваются подробнее, причём акцент делается на их применение в моделировании.

Таблица 2.1

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

Суть ООП состоит в следующем: 1. Программа представляет собой совокупность объектов, объединяющих данные и методы их обработки. 1.1. Смысл объекта (поведение) отделён от его реализации (структуры) за счёт того, что методы могут не содержать кода, а данные имеют определённую область видимости. 1.2. Данные объектов (поля) также могут быть объектами. 2. Каждый объект относится к определённому типу (классу), т.е. является его экземпляром. 3. Тип (класс) может наследовать часть данных и методов от других типов (классов), то есть быть их подтипом. Примечание к пункту 1.2: в одном и том же поле могут храниться объекты определённого типа и всех его подтипов. Суть объектно-ориентированной  модели состоит в следующем: 1. Модель представляет собой совокупность элементов, объединяющих параметры модели и методы их расчёта. 1.1. Смысл элемента (набор параметров и основные методы их обработки) отделён от его реализации (от вспомогательных данных и методов). 1.2. Данные элементов (параметры, ссылки на соседние элементы и т.д.) также могут быть объектами. 2. Каждый элемент относится к определённому типу (классу), и вычислительные алгоритмы обычно разделены на несколько методов разных классов. 3. Тип (класс) может наследовать часть данных и методов от других типов (классов), причём данные и аргументы методов могут быть не только определённого типа, но и всех его подтипов
ООП имеет следующие преимущества  перед другими подходами: 1) компактность программ, уменьшающая их стоимость и время их разработки; 2) возможность повторного использования классов, программ и проектов; 3) эффективное разделение работы между дизайнерами и программистами; 4) быстрая адаптация программ к изменяющимся задачам и требованиям; 5) уменьшение риска разработки сложных программ за счёт интеграции и тестирования их компонентов на протяжении всего времени разработки, а не на последнем её этапе. 6) ориентация на человеческое восприятие мира, позволяющая программировать даже без понимания деталей работы компьютера. Объектно-ориентированные модели имеют следующие преимущества перед процедурно-ориентированными: 1) компактность модели; 2) возможность повторного использования частей модели; 3) эффективное разделение работы над численными методами, содержанием и наглядным представлением модели; 4) быстрая адаптация модели к изменению структуры и численных методов; 5) уменьшение риска разработки сложных моделей за счёт интеграции и тестирования их частей на протяжении всего времени разработки, а не на последнем её этапе; 6) ориентация на предметную область модели, позволяющая моделировать без глубокого знания численных методов и, возможно, без умения программировать










Сейчас читают про: