Файл: ПРИМЕНЕНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА ПРИ ПРОЕКТИРОВАНИИ ИНФОРМАЦИОННОЙ СИСТЕМЫ (Глава 1 Анализ подходов к проектированию информационной системы).pdf
Добавлен: 30.06.2023
Просмотров: 53
Скачиваний: 14
СОДЕРЖАНИЕ
Глава 1. Анализ подходов к проектированию информационной системы
1.1 Структурный подход к проектированию информационной системы
1.2 Процессный подход к проектированию информационной системы
Глава 2. Объектно-ориентированный подход при проектировании информационной системы
2.1 Сущность объектно-ориентированного подхода
2.2 Основные понятия объектно-ориентированного подхода
2.3 Преимущества и недостатки применения объектно-ориентированного подхода
2.4 Примеры программных продуктов, применяемых для реализации объектно-ориентированного подхода
Объектно-ориентированная технология проектирования ИС включает в себя следующие компоненты:
- технологию конструирования концептуальной объектно-ориентированной модели предметной области;
- инструментальные средства спецификации проектных решений;
- библиотеки типовых компонентов модели предметной области;
- типовые проектные решения для ряда функциональных областей.
В основу объектно-ориентированной технологии проектирования ИС положены разработка, анализ и спецификация концептуальной объектно-ориентированной модели предметной области.
Концептуальная объектно-ориентированная модель предметной области является основой проекта и реализации системы и обеспечивает:
- необходимый уровень формализации описания проектных решений;
- высокий уровень абстрагирования, типизации и параметризации проектных решений;
- компактность описания;
- удобство сопровождения готовой системы.
Отличительными чертами предлагаемой методологии являются следующие:
- наличие единого методологически обоснованного ядра, обеспечивающего открытость технологии для модификации, расширения и создания новых моделей представления проектных решений;
- наличие единого формального аппарата анализа проектных решений для используемых моделей представления;
Отличительными чертами предлагаемой технологии являются:
- совместное рассмотрение информационных, материальных и финансовых потоков;
- первичная и вторичная классификация объектов предметной области с обязательным указанием оснований классификации;
- наличие конструктивных методик декомпозиции и агрегирования компонентов проекта, использующих результаты классификации;
- наличие формальных методов оценки связности и сцепления компонентов проекта;
- использование функциональной модели данных с атрибутами — функциями доступа и атрибутами — категориями в качестве основы концептуальной модели данных.
При всем разнообразии моделей предметных областей концептуального уровня отсутствуют такие модели, которые бы позволяли в полной мере использовать знания по классификации элементов предметной области для описания свойств ее элементов, и в то же время, сохраняли преимущества традиционных функционального и информационного подходов, основанных на модели данных. «Чистый» объектный подход уже на ранних стадиях требует представлять данные о классификации в виде диаграмм классов. Это слишком жесткое требование. Выделение иерархии классов требует проведения объемного и тонкого анализа различных аспектов взаимосвязей объектов предметной области. В рамках самого объектного подхода подобных методик нет. С другой стороны, попытки совместить чистый объектный подход с традиционными подходами оказываются неудачными, так как последние рассматриваются не как обоснование решений объектного подхода, а как средство моделирования последнего.
2.2 Основные понятия объектно-ориентированного подхода
Объектно-ориентированный подход (ООП) к проектированию информационной системы применяет объектную декомпозицию. При этом структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы при этом обладает своим собственным поведением, которое моделирует поведение объекта реального мира.
Концептуальной основой объектно-ориентированного подхода является объектная модель. Среди ее основных понятий как основные можно выделить понятия объекты и атрибуты, целое и часть, классы и экземпляры.
Объект можно определить как осязаемую реальность – предмет или явление, которое имеет четко определяемое поведение. Объект обладает такими характеристиками, как состояние, поведение, индивидуальность; структура и поведение схожих объектов определяют общий для них класс. Термины «экземпляр класса» и «объект» можно назвать эквивалентными. Состояние объекта можно охарактеризовать перечнем всех возможных свойств данного объекта и текущими значениями каждого из этих свойств. Поведение также определяет воздействие объекта на другие объекты и, наоборот, с точки зрения изменения состояния этих объектов и передачи сообщений. Другими словами, поведение объекта полностью можно определить его действиями.
Некоторое воздействие одного объекта на другой с целью вызвать соответствующую реакцию называется операцией. Как правило, в объектных и объектно-ориентированных языках операции, которые выполняются над данным объектом, понимаются методами и представляют собой составную часть определения класса.
Класс – это некоторое множество объектов, которые связаны общностью структуры и поведения. Класс инкапсулирует (объединяет) в себе данные (атрибуты) и поведение (операции). Любой объект представляет собой экземпляр класса.
Среди основных базовых составляющих объектно-ориентированного подхода можно выделить основные:
-
- унифицированный процесс;
- унифицированный язык моделирования;
- шаблоны проектирования.
Унифицированный процесс представляет собой процесс разработки программного обеспечения, обеспечивающий упорядоченный подход к распределению задач и обязанностей в организации-разработчике. Унифицированный процесс охватывает весь жизненный цикл программного обеспечения, включая определение требований и сопровождение, и является обобщенным каркасом, который может быть применен (специализирован) для разработки и сопровождения широкого круга систем.
Как обязательную часть Унифицированного процесса можно выделить UML – язык для определения, визуализации и конструирования моделей системы посредством диаграмм и документов на основе объектно-ориентированного подхода.
На стадиях анализа и проектирования будущей информационной системы зачастую применяются так называемые шаблоны (паттерны) проектирования. В данном случае под шаблоном понимается именованная пара «проблема/решение», которая содержит готовое обобщенное решение некоторой типичной проблемы. В большинстве случаев шаблон кроме текстового описания может также включать одну или несколько диаграмм UML (например, диаграммы классов, последовательности и/или коммуникации), которые графически иллюстрируют состав и структуру классов, и, кроме того, особенности их взаимодействия при решении некоторой проблемы. Шаблоны должны быть разработаны опытными профессионалами и являться проверенными, эффективными, оптимальными решениями. Помимо всего прочего, использование шаблонов может многократно уменьшить затраты и повысить качество разработки программного и информационного обеспечения.
Объектно-ориентированный подход основывается на систематическом применении моделей для языково-независимой разработки программной системы, на основе из ее прагматики.
В данном случае прагматика представляет собой цель разработки информационной системы, например для обслуживания клиентов туристического агентства, для оптимизации работы библиотеки, для обслуживания спортивных мероприятий и т.п. В постановке такой цели принимают участие предметы и понятия реального мира, которые имеют отношение к разрабатываемой информационной системе. При применении объектно-ориентированного подхода эти предметы и понятия всегда подлежат замене на их модели, иначе говоря, на определенные формальные конструкции, представляющие их в информационной системе.
Модель содержит далеко не все признаки и свойства представляемого ею предмета (понятия), а только те, которые являются существенными для разрабатываемой информационной системы. Таким образом модель выходит «беднее», и, следовательно, проще, чем тот предмет (явление), который она представляет. Но основное преимущество содержится даже не в этом, а в том, что модель является только формальной конструкцией: формальный характер моделей предоставляет возможность определения формальных зависимостей между ними и формальных операций над ними. Это упрощает не только разработку и анализ моделей, но и их реализацию посредством технических и аппаратных средств. В частности, формальный характер моделей предоставляет возможность получения формальной модели разрабатываемой информационной системы как композиции формальных моделей ее составляющих частей.
Таким образом, объектно-ориентированный подход обеспечивает адекватные подходы к решению следующих проблем:
- снижение сложности программного обеспечения;
- увеличение надежности программного обеспечения;
- обеспечение возможности модификации отдельных составляющих ПО без изменения остальных его компонентов;
- обеспечение возможности повторного использования отдельных компонентов программного обеспечения.
Регулярное использование объектно-ориентированного подхода предоставляет возможность разработки хорошо структурированных, надежных в эксплуатации и доступно улучшаемых информационных систем. Этим обуславливается современный интерес разработчиков к объектно-ориентированному подходу и объектно-ориентированным языкам программирования.
2.3 Преимущества и недостатки применения объектно-ориентированного подхода
Основным преимуществом объектно-ориентированного подхода является возможность создавать классы и объекты визуальным способом, иначе говоря – прорисовывать на экране основные элементы, определять цвет, местоположение элементов и т.д. При некотором навыке объекты можно быстро создавать, при этом записывая в методы фрагменты программного кода, определяющие их поведение при наступлении определённых событий. В дальнейшем из визуальных элементов и этих программных фрагментов генерируется общая программа. Этим занимается сама система.
Объектно-ориентированный подход полезен как с методической точки зрения (две разнородные характеристики предметной области – данные и программы – объединяются в объекты), так и с точки зрения техники проектирования и разработки программных систем (вместо двух технически не связанных, но логически переплетенных веток образуется один надёжный ствол).
В отличие от структурного подхода, объектно-ориентированный имеет ряд преимуществ:
- описание системы в виде объектов больше соответствует содержательному смыслу предметной области. Например, при использовании структурного подхода БД должна удовлетворять требованиям нормализации, в соответствии с которыми данные по одному и тому же объекту (сущности из реального мира) могут храниться в нескольких таблицах;
- сущности реального мира, как правило, обладают поведением, что в объектно-ориентированном проектировании отражается с помощью определения методов класса. В структурном подходе данные (атрибуты) и алгоритмы (методы) существуют отдельно друг от друга;
- объединение атрибутов и методов в объекте (классе), а также инкапсуляция позволяют добиться большей внутренней и меньшей внешней связности между компонентами системы. Это облегчает решение проблем:
- адаптации системы к изменению существующих или появлению новых требований;
- сопровождения системы на разных стадиях жизненного цикла;
- повторного использования компонентов;
- объектно-ориентированный подход позволяет легче организовать параллельные вычисления, так как каждый объект обладает собственными значениями характеристик (атрибутов) и поведением, за счет чего можно добиться его автономной работы;
- Case-средства, поддерживающие объектно-ориентированный подход, на основе информации об объектах позволяют достичь большей степени автоматизации генерации кода. Case-средства, поддерживающие структурный подход, хорошо справляются с генерацией структур баз данных. Однако следует отметить, что эта структура должна удовлетворять требованиям нормализации. В связи с чем, автоматическая генерация кода (например, экранов или функций обработки данных) возможна лишь в редких случаях.
- объектная декомпозиция дает возможность создавать программные системы меньшего размера путем использования общих механизмов, обеспечивающих необходимую экономию выразительных средств. Использование объектного подхода существенно повышает уровень унификации разработки и пригодность для повторного использования не только программ, но и проектов, что, в конце концов, ведет к созданию среды разработки и переходу к сборочному созданию программного обеспечения. Системы зачастую получаются более компактными, чем их не объектно-ориентированные эквиваленты, что означает не только уменьшение объема программного кода, но и удешевление проекта за счет использования предыдущих разработок;
- объектная декомпозиция уменьшает риск создания сложных систем программного обеспечения, так как она предполагает эволюционный путь развития системы на базе относительно небольших подсистем. Процесс интеграции системы растягивается на все время разработки, а не превращается в единовременное событие;
- объектная модель вполне естественна, поскольку в первую очередь ориентирована на человеческое восприятие мира, а не на компьютерную реализацию;
- объектная модель позволяет в полной мере использовать выразительные возможности объектных и объектно-ориентированных языков программирования.
К недостаткам объектно-ориентированного подхода относятся некоторое снижение производительности функционирования ПО и высокие начальные затраты. Объектная декомпозиция существенно отличается от функциональной, поэтому переход на новую технологию связан как с преодолением психологических трудностей, так и дополнительными финансовыми затратами.
Безусловно, объектно-ориентированная модель наиболее адекватно отражает реальный мир, представляющий собой совокупность взаимодействующих (посредством обмена сообщениями) объектов. Но на практике в настоящий момент продолжается формирование стандарта языка объектно-ориентированного моделирования UML, и количество CASE-средств, поддерживающих объектно-ориентированный подход, невелико по сравнению с поддерживающими структурный подход. Кроме того, диаграммы, отражающие специфику объектного подхода (диаграммы классов и т.п.), гораздо менее наглядны и плохо понимаемы непрофессионалами. Поэтому одна из главных целей внедрения CASE-технологии, а именно, снабжение всех участников проекта (в том числе и заказчика) общим языком "для передачи понимания", обеспечивается на сегодняшний день только структурными методами.
2.4 Примеры программных продуктов, применяемых для реализации объектно-ориентированного подхода
Современными языками объектно-ориентированного программирования являются С++ и Java. С середины 90-х годов многие объектно–ориентированные языки реализуются как системы визуального проектирования, в которых интерфейсная часть программного продукта создается в диалоговом режиме, практически без написания программных операторов. К объектно – ориентированным системам визуального проектирования относятся Visual Basic, Delphi, C++ Builder, Visual C++. Язык VBA (Visual Basic for Applications) – язык приложений Microsoft Office (Excel, Word, Access, Power Point и др).
Подробнее рассмотрим каждую из сред.
C++ — компилируемый, статически типизированный язык программирования общего назначения.
Поддерживает такие парадигмы программирования, как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование. Язык имеет богатую стандартную библиотеку, которая включает в себя распространённые контейнеры и алгоритмы, ввод-вывод, регулярные выражения, поддержку многопоточности и другие возможности. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком C, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.