Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (средства работы с ООП).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 26.06.2023

Просмотров: 238

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

-спецификации классов, объектов, атрибутов и операций

-заготовки текстов программ;

-модель разрабатываемой программной системы.

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

Тексты программ являются заготовками для дальнейшей работы программистов. Они формируются в рабочем каталоге в виде файлов типов .h (заголовки, содержащие описания классов) и .cpp (заготовки программ для методов). Система включает в программные файлы собственные комментарии, которые начинаются с последовательности символов //##.

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

Для организации групповой работы в Rational Rose возможно разбиение модели на управляемые подмодели. Каждая из них независимо хранится на диске или загружается в модель. В качестве подмодели может выступать категория классов или подсистема.

Для управляемой подмодели предусмотрены следующие операции:

- загрузка подмодели в память;

- выгрузка подмодели из памяти;

- сохранение подмодели на диске в виде отдельного файла;

- установка защиты от модификации;

- замена подмодели в памяти на новую.

Наиболее продуктивно групповая работа организуется при интеграции Rational Rose со специальными средствами управления конфигурацией и контроля версий . В таком случае защита от модификации устанавливается на все управляемые подмодели, исключая выделенные конкретному разработчику. Признак защиты от записи устанавливается для файлов, которые содержат подмодели, поэтому при считывании "чужих" подмоделей защита их от модификации сохраняется и случайные воздействия окажутся невозможными.

Rational Rose функционирует на разных платформах ( таких, как IBM PC (в среде Windows), Sun SPARC stations (UNIX, Solaris, SunOS), Hewlett-Packard (HP UX), IBM RS/6000 (AIX)).[8]

3.2 Принципы объектного подхода

Главными понятиями ООП являются объект и класс:

-Объект – являет собой определенную сущность, которая соответствует значимому предмету или явлению предметной области и характеризуется классом, состоянием и поведением. Для взаимодействующих между собой объектов можно создать различные модели, характеризующие статическую структуру, динамическое поведение и развертывание в действии. Объект — это предмет или явление, имеющее четко определенное поведение и обладающие состоянием, поведением и индивидуальностью. Структура и поведение схожих объектов определяют общий для них класс.


- Класс – это большое количество объектов, которые связаны общностью структуры и поведения. Основными понятиями объектно-ориентированного подхода являются объект и класс.[11]

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

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

Диаграмма - это графическое представление множества элементов. Очень часто она изображается в виде связного графа с вершинами (сущностями) и ребрами (отношениями) и представляет собой некоторую проекцию системы.[3]

Концептуальной основой ООП является объектная модель, которая строится с учетом следующих принципов:

- абстрагирование;

-инкапсуляция;

- модульность;

- иерархия;

- типизация;

-параллелизм;

- устойчивость.[10]

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

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


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

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

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

Иерархия - ранжированная (упорядоченная) система абстракций. Главными видами иерархических структур, применительно к сложным системам, являются структура классов и структура объектов .

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

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

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


Объектно-ориентированные языки программирования могут быть: строго типизированными, нестрого типизированными и совсем не типизированными, а это позволяет говорить о типизации, как о второстепенном элементе. Строго типизированные языки - это языки, в которых все выражения проводят проверку на соответствие типов. Различают статическую типизацию (раннее связывание) и динамическую типизацию (позднее связывание). Разделение имеет отношение ко времени, когда имена связывают с типами: статическая - во время компиляции; динамическая - во время исполнения программы.

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

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

Сохраняемость или устойчивость - это свойство объекта существовать во времени и/или пространстве, вне зависимости от процессов, которые порождают данный объект. Выделяют следующие виды объектов, которые обладают различной степенью, сохраняемости или устойчивости:

- Промежуточные результаты вычисления выражений.

- Локальные переменные вызова процедур.

- Собственные переменные (глобальные).

- Данные, которые сохраняются между вызовами основной программы.

- Данные , которые остаются без изменений в различных версиях программы.

- Данные, которые переживают создавшую их программу.

Обычно языки программирования реализовывают первые три уровня, а последние три связываются с технологией базы данных.[4]

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


Во-первых ,объектная модель позволяет в полной мере использовать выразительные возможности объектных и объектно-ориентированных языков программирования Опыт показал, что при использовании таких языков, как Smalltalk, Object Pascal, C++, CLOS и Ada вне объектной модели, их наиболее сильные стороны либо игнорируются, либо применяются неправильно.

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

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

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

Ну и в пятых, объектная модель ориентирована на человеческое восприятие мира, или, по словам Робсона, «многие люди, не имеющие понятия о том, как работает компьютер, находят вполне естественным объектно-ориентированный подход к системам» Возможность применения объектного подхода доказана для задач самого разного характера.

К явным недостаткам объектно-ориентированного подхода относятся высокие начальные затраты. Этот подход не дает немедленной отдачи. Эффект от его применения сказывается после разработки двух–трех проектов и накопления повторно используемых компонентов. Диаграммы, отражающие специфику объектного подхода, менее наглядны.[3]

Заключение

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