Файл: Применение объектно-ориентированного подхода при проектировании информационной системы.pdf
Добавлен: 28.03.2023
Просмотров: 395
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. Теоретические основы объектно-ориентированного подхода.
Параграф-1.1 Сущность объектно-ориентированного подхода.
Параграф-1.2 Преимущества и недостатки объектно-ориентированного подхода.
Глава 2. Анализ деятельности предприятия.
Параграф-2.1. Обоснование необходимости проектирование ИС.
Глава 3. Реализация объектно-ориентированного подхода при проектировании ИС
Введение
От структур и подпрограмм к объектам.
Целями структурного программирования являлись структуризация данных и
декомпозиция кода. Объединение данных в структуры позволяло, с одной стороны, более
естественно описывать сущности реального мира, имеющие самые разнотипные наборы
атрибутов. А, с другой стороны, делало процесс разработки программ более простым,
поскольку однородные данные были сгруппированы в одном месте и под одним общим
именем.
Декомпозиция кода заключалась в разделении исходного кода программы на
отдельные подпрограммы. Подпрограммы снижали количество возможных связей между
отдельными операторами (локализация кода) и, кроме того, позволяли устанавливать
необходимую область видимости для переменных, используемых в подпрограммах
(локализация данных). Локализация кода не позволяла произвольно переходить от одного
оператора в одной подпрограмме к любому оператору в другой подпрограмме. Вызов
подпрограммы приводил к передаче управления только в определенную точку входа, хотя
некоторые языки допускали более одной точки входа в подпрограмму.
Такое решение не только повышало надежность программ, но и позволяло
многократно использовать одни и те же подпрограммы в различных программах. Как
следствие, стали появляться библиотеки подпрограмм, как самостоятельные программные
продукты. Часть библиотек поставлялась вместе с компиляторами с языков
программирования и операционными системами, другая часть распространялась свободно
или на коммерческой основе. Применение библиотек существенно ускоряло процесс
разработки программного обеспечения, так как подпрограммы, применяемые
многократно, требовалось отлаживать только единожды.
Локализация данных имела ничуть не меньшее значение, чем локализация кода. Три
вида данных в подпрограмме:
Локальные данные подпрограммы, которые автоматически создавались при ее
вызове и уничтожались при возврате из подпрограммы;
Локальные данные, сохраняемые между несколькими вызовами одной
подпрограммы;
Глобальные данные, доступные нескольким или всем подпрограммам, и доступ
к которым осуществлялся прямо из подпрограммы;
Фактические параметры, передаваемые подпрограммам, замещающие
объявленные формальные параметры.
Глобальные данные применялись в основном для организации связей между
подпрограммами, но они существенно ограничивали гибкость подпрограмм.
Действительно, если подпрограмма работала с какими-то глобальными данными, то эти
данные должны были совпадать по имени, типу во всех программах, которые
использовали данную подпрограмму.
В отличие от этого, локальные данные, наоборот, позволяли подпрограмме быть
независимой от программ, использующих ее. Но они не обеспечивали передачу данных
между различными подпрограммами. Для передачи данных или ссылок на них
использовался механизм формальных/фактических параметров. При описании
подпрограммы объявляются формальные параметры, которые она принимает при вызове.
Когда реально происходит вызов подпрограммы, на место формальных параметров
подставляются фактические параметры того же типа
Глава 1. Теоретические основы объектно-ориентированного подхода.
Объектно-ориентированный подход основан на систематическом использовании моделей для языково-независимой разработки программной системы, на основе из ее прагматики.
Последний термин нуждается в пояснении. Прагматика определяется целью разработки программной системы: для обслуживания клиентов банка, для управления работой аэропорта, для обслуживания чемпионата мира по футболу и т.п. В формулировке цели участвуют предметы и понятия реального мира, имеющие отношение к разрабатываемой программной системе. При объектно-ориентированном подходе эти предметы и понятия заменяются их моделями, т.е. определенными формальными конструкциями, представляющими их в программной системе
Рис. 1-Семантика
Модель содержит не все признаки и свойства представляемого ею предмета (понятия), а только те, которые существенны для разрабатываемой программной системы. Тем самым модель "беднее", а, следовательно, проще представляемого ею предмета (понятия). Но главное даже не в этом, а в том, что модель есть формальная конструкция: формальный характер моделей позволяет определить формальные зависимости между ними и формальные операции над ними. Это упрощает как разработку и изучение (анализ) моделей, так и их реализацию на компьютере. В частности, формальный характер моделей позволяет получить формальную модель разрабатываемой программной системы как композицию формальных моделей ее компонентов.
Таким образом, объектно-ориентированный подход помогает справиться с такими сложными проблемами, как
уменьшение сложности программного обеспечения;
повышение надежности программного обеспечения;
обеспечение возможности модификации отдельных компонентов программного обеспечения без изменения остальных его компонентов;
обеспечение возможности повторного использования отдельных компонентов программного обеспечения.
Систематическое применение объектно-ориентированного подхода позволяет разрабатывать хорошо структурированные, надежные в эксплуатации, достаточно просто модифицируемые программные системы. Этим объясняется интерес программистов к объектно-ориентированному подходу и объектно-ориентированным языкам программирования. Объектно-ориентированный подход является одним из наиболее интенсивно развивающихся направлений теоретического и прикладного программирования.
Цель данного курса лекций - введение в объектно-ориентированный подход к разработке и реализации прикладных программных систем. Я попытаюсь убедить вас в целесообразности и плодотворности систематического применения объектно-ориентированного подхода на всех этапах жизненного цикла прикладной программной системы, начиная с анализа требований к программной системе и ее предварительного проектирования, и кончая ее реализацией, тестированием и последующим сопровождением.
Рис.2- Жизненный цикл программной системы
Параграф-1.1 Сущность объектно-ориентированного подхода.
Как было уже отмечено, принципиальное различие между структурным и объектно-ориентированным подходами заключается в способе декомпозиции системы. Объектно-ориентированный подход использует объектную декомпозицию, при этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира.
Понятие «объект» впервые было использовано около 30 лет назад в технических средствах при попытках отойти от традиционной архитектуры фон Неймана и преодолеть барьер между высоким уровнем программных абстракций и низким уровнем абстрагирования на уровне компьютеров. С объектно-ориентированной архитектурой также тесно связаны объектно-ориентированные операционные системы. Однако наиболее значительный вклад в объектный подход был внесен объектными и объектно-ориентированными языками программирования:
На объектный подход оказали влияние также развивавшиеся достаточно независимо методы моделирования баз данных, в особенности подход «сущность – связь».
Концептуальной основой объектно-ориентированного подхода является объектная модель. Основными ее элементами являются:
1-абстрагирование (abstraction)
2-инкапсуляция (encapsulation)
3-модульность (modularity)
4-иерархия (hierarchy)
Кроме основных имеются еще три дополнительных элемента, не являющихся в отличие от основных строго обязательными:
5-типизация (typing)
6-параллелизм (concurrency)
7-устойчивость (persistence).
1-Абстрагирование – это выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и, таким образом, четко определяют его концептуальные границы относительно дальнейшего рассмотрения и анализа. Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности его поведения от деталей их реализации. Выбор правильного набора абстракций для заданной предметной области представляет собой главную задачу объектно-ориентированного проектирования.
2-Инкапсуляция – это процесс отделения друг от друга отдельных элементов объекта, определяющих его устройство и поведение. Инкапсуляция служит для того, чтобы изолировать интерфейс объекта, отражающий его внешнее поведение, от внутренней реализации объекта. Объектный подход предполагает, что собственные ресурсы, которыми могут манипулировать только методы самого класса, скрыты от внешней среды. Абстрагирование и инкапсуляция являются взаимодополняющими операциями: абстрагирование фокусирует внимание на внешних особенностях объекта, а инкапсуляция (или, иначе, ограничение доступа) не позволяет объектам-пользователям различать внутреннее устройство объекта.
3-Модульность – это свойство системы, связанное с возможностью ее декомпозиции на ряд внутренне связных, но слабо связанных между собой модулей. Инкапсуляция и модульность создают барьеры между абстракциями.
4-Иерархия – это ранжирование или упорядочение системы абстракций, расположение их по уровням. Основными видами иерархических структур применительно к сложным системам являются структура классов (иерархия по номенклатуре) и структура объектов (иерархия по составу). Примерами иерархии классов являются простое и множественное наследование (один класс использует структурную или функциональную часть соответственно одного класса или нескольких других классов), а примером иерархии объектов являются агрегация.
Три дополнительных элемента
5-Типизация – это ограничение, накладываемое на класс объектов и препятствующее взаимозаменяемости различных классов (или сильно сужающее ее возможность). Типизация позволяет защититься от использования объектов одного класса вместо объектов другого или, по крайней мере, управлять таким использованием.
6-Параллелизм – свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой.
7-Устойчивость – свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и (или) в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).
Основные понятия объектно-ориентированного подхода: объект и класс.
Объект определяется как осязаемая реальность (tangible entity) – предмет или явление, имеющие четко определяемое поведение. Объект обладает состоянием, поведением и индивидуальностью. Структура и поведение схожих объектов определяют общий для них класс. Термины «экземпляр класса» и «объект» являются эквивалентными. Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими значениями (динамическими) каждого из этих свойств. Поведение характеризует воздействие объекта на другие объекты и, наоборот, относительно изменения состояния этих объектов и передачи сообщений. Иначе говоря, поведение объекта полностью определяется его действиями. Индивидуальность – это свойства объекта, отличающие его от всех других объектов.
Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называется операцией. Как правило, в объектных и объектно-ориентированных языках операции, выполняемые над данным объектом, называются методами и являются составной частью определения класса.
Класс – это множество объектов, связанных общностью структуры и поведения. Любой объект является экземпляром класса. Определение классов и объектов – одна из самых сложных задач объектно-ориентированного проектирования.
Следующую группу важных понятий объектного подхода составляют наследование и полиморфизм. Понятие полиморфизма может быть интерпретировано, как способность класса принадлежать более чем одному типу Наследование означает построение новых классов на основе существующих с возможностью добавления или переопределения данных и методов.