Файл: Применение объектно–ориентированного подхода при проектировании информационной системы».pdf
Добавлен: 24.04.2023
Просмотров: 274
Скачиваний: 2
СОДЕРЖАНИЕ
1. Подходы к проектированию информационной системы
Структурный подход к проектированию информационной системы
2. Особенности объектно–ориентированного подхода при проектировании информационной системы
2.1 Достоинства и недостатки объектно–ориентированного подхода
2.2 Программные продукты, применяемые в процессе реализации объектно–ориентированного подхода
Как обязательную часть Унифицированного процесса можно выделить UML – язык для определения, визуализации и конструирования моделей системы посредством диаграмм и документов на основе объектно–ориентированного подхода [13].
На стадиях анализа и проектирования будущей информационной системы зачастую применяются так называемые шаблоны (паттерны) проектирования. В данном случае под шаблоном понимается именованная пара «проблема/решение», которая содержит готовое обобщенное решение некоторой типичной проблемы. В большинстве случаев шаблон кроме текстового описания может также включать одну или несколько диаграмм UML (например, диаграммы классов, последовательности и/или коммуникации), которые графически иллюстрируют состав и структуру классов, и, кроме того, особенности их взаимодействия при решении некоторой проблемы. Шаблоны должны быть разработаны опытными профессионалами и являться проверенными, эффективными, оптимальными решениями. Помимо всего прочего, использование шаблонов может многократно уменьшить затраты и повысить качество разработки программного и информационного обеспечения.
Объектно–ориентированный подход основывается на систематическом применении моделей для языково–независимой разработки программной системы, на основе из ее прагматики [13].
В данном случае прагматика представляет собой цель разработки информационной системы, например для обслуживания клиентов туристического агентства, для оптимизации работы библиотеки, для обслуживания спортивных мероприятий и т.п. В постановке такой цели принимают участие предметы и понятия реального мира, которые имеют отношение к разрабатываемой информационной системе. При применении объектно–ориентированного подхода эти предметы и понятия всегда подлежат замене на их модели, иначе говоря, на определенные формальные конструкции, представляющие их в информационной системе.
Модель содержит далеко не все признаки и свойства представляемого ею предмета (понятия), а только те, которые являются существенными для разрабатываемой информационной системы. Таким образом модель выходит «беднее», и, следовательно, проще, чем тот предмет (явление), который она представляет. Но основное преимущество содержится даже не в этом, а в том, что модель является только формальной конструкцией: формальный характер моделей предоставляет возможность определения формальных зависимостей между ними и формальных операций над ними. Это упрощает не только разработку и анализ моделей, но и их реализацию посредством технических и аппаратных средств. В частности, формальный характер моделей предоставляет возможность получения формальной модели разрабатываемой информационной системы как композиции формальных моделей ее составляющих частей [4].
Таким образом, объектно–ориентированный подход обеспечивает адекватные подходы к решению следующих проблем:
- снижение сложности программного обеспечения;
- увеличение надежности программного обеспечения;
- обеспечение возможности модификации отдельных составляющих ПО без изменения остальных его компонентов;
- обеспечение возможности повторного использования отдельных компонентов программного обеспечения.
Регулярное использование объектно–ориентированного подхода предоставляет возможность разработки хорошо структурированных, надежных в эксплуатации и доступно улучшаемых информационных систем. Этим обуславливается современный интерес разработчиков к объектно–ориентированному подходу и объектно–ориентированным языкам программирования [11].
В первой главе работы рассмотрены структурный и объектно–ориентированный подход к проектированию информационной системы. Второй является более наглядным, рассмотрим его подробнее.
2. Особенности объектно–ориентированного подхода при проектировании информационной системы
2.1 Достоинства и недостатки объектно–ориентированного подхода
Основным преимуществом объектно–ориентированного подхода является возможность создавать классы и объекты визуальным способом, иначе говоря – прорисовывать на экране основные элементы, определять цвет, местоположение элементов и т.д. При некотором навыке объекты можно быстро создавать, при этом записывая в методы фрагменты программного кода, определяющие их поведение при наступлении определённых событий. В дальнейшем из визуальных элементов и этих программных фрагментов генерируется общая программа. Этим занимается сама система.
Объектно–ориентированный подход полезен как с методической точки зрения (две разнородные характеристики предметной области – данные и программы – объединяются в объекты), так и с точки зрения техники проектирования и разработки программных систем (вместо двух технически не связанных, но логически переплетенных веток образуется один надёжный ствол) [4].
В отличие от структурного подхода, объектно–ориентированный имеет ряд преимуществ:
- описание системы в виде объектов больше соответствует содержательному смыслу предметной области. Например, при использовании структурного подхода БД должна удовлетворять требованиям нормализации, в соответствии с которыми данные по одному и тому же объекту (сущности из реального мира) могут храниться в нескольких таблицах;
- сущности реального мира, как правило, обладают поведением, что в объектно–ориентированном проектировании отражается с помощью определения методов класса. В структурном подходе данные (атрибуты) и алгоритмы (методы) существуют отдельно друг от друга;
- объединение атрибутов и методов в объекте (классе), а также инкапсуляция позволяют добиться большей внутренней и меньшей внешней связности между компонентами системы. Это облегчает решение проблем:
- адаптации системы к изменению существующих или появлению новых требований;
- сопровождения системы на разных стадиях жизненного цикла;
- повторного использования компонентов [5];
- объектно–ориентированный подход позволяет легче организовать параллельные вычисления, так как каждый объект обладает собственными значениями характеристик (атрибутов) и поведением, за счет чего можно добиться его автономной работы;
- Case–средства, поддерживающие объектно–ориентированный подход, на основе информации об объектах позволяют достичь большей степени автоматизации генерации кода. Case–средства, поддерживающие структурный подход, хорошо справляются с генерацией структур баз данных. Однако следует отметить, что эта структура должна удовлетворять требованиям нормализации. В связи с чем, автоматическая генерация кода (например, экранов или функций обработки данных) возможна лишь в редких случаях.
- объектная декомпозиция дает возможность создавать программные системы меньшего размера путем использования общих механизмов, обеспечивающих необходимую экономию выразительных средств. Использование объектного подхода существенно повышает уровень унификации разработки и пригодность для повторного использования не только программ, но и проектов, что, в конце концов, ведет к созданию среды разработки и переходу к сборочному созданию программного обеспечения. Системы зачастую получаются более компактными, чем их не объектно–ориентированные эквиваленты, что означает не только уменьшение объема программного кода, но и удешевление проекта за счет использования предыдущих разработок;
- объектная декомпозиция уменьшает риск создания сложных систем программного обеспечения, так как она предполагает эволюционный путь развития системы на базе относительно небольших подсистем. Процесс интеграции системы растягивается на все время разработки, а не превращается в единовременное событие;
- объектная модель вполне естественна, поскольку в первую очередь ориентирована на человеческое восприятие мира, а не на компьютерную реализацию;
- объектная модель позволяет в полной мере использовать выразительные возможности объектных и объектно–ориентированных языков программирования [121].
К недостаткам объектно–ориентированного подхода относятся некоторое снижение производительности функционирования ПО и высокие начальные затраты. Объектная декомпозиция существенно отличается от функциональной, поэтому переход на новую технологию связан как с преодолением психологических трудностей, так и дополнительными финансовыми затратами [18].
Безусловно, объектно–ориентированная модель наиболее адекватно отражает реальный мир, представляющий собой совокупность взаимодействующих (посредством обмена сообщениями) объектов. Но на практике в настоящий момент продолжается формирование стандарта языка объектно–ориентированного моделирования UML, и количество CASE–средств, поддерживающих объектно–ориентированный подход, невелико по сравнению с поддерживающими структурный подход.
2.2 Программные продукты, применяемые в процессе реализации объектно–ориентированного подхода
Современными языками объектно–ориентированного программирования являются С++ и Java. С середины 90–х годов многие объектно–ориентированные языки реализуются как системы визуального проектирования, в которых интерфейсная часть программного продукта создается в диалоговом режиме, практически без написания программных операторов. К объектно – ориентированным системам визуального проектирования относятся Visual Basic, Delphi, C++ Builder, Visual C++. Язык VBA (Visual Basic for Applications) – язык приложений Microsoft Office (Excel, Word, Access, Power Point и др).
Подробнее рассмотрим каждую из сред.
C++ – компилируемый, статически типизированный язык программирования общего назначения.
Поддерживает такие парадигмы программирования, как процедурное программирование, объектно–ориентированное программирование, обобщённое программирование. Язык имеет богатую стандартную библиотеку, которая включает в себя распространённые контейнеры и алгоритмы, ввод–вывод, регулярные выражения, поддержку многопоточности и другие возможности. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником – языком C, – наибольшее внимание уделено поддержке объектно–ориентированного и обобщённого программирования [1].
C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр). Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Например, на платформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие. C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.
Синтаксис C++ унаследован от языка C. Одним из принципов разработки было сохранение совместимости с C. Тем не менее, C++ не является в строгом смысле надмножеством C; множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико, но не включает все возможные программы на C [1].
Java – сильно типизированный объектно–ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно транслируются в специальный байт–код, поэтому они могут работать на любой компьютерной архитектуре, с помощью виртуальной Java–машины. Дата официального выпуска – 23 мая 1995 года.
Программы на Java транслируются в байт–код Java, выполняемый виртуальной машиной Java (JVM) – программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.
Достоинством подобного способа выполнения программ является полная независимость байт–кода от операционной системы и оборудования, что позволяет выполнять Java–приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности, в рамках которой исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером), вызывают немедленное прерывание [14].
Часто к недостаткам концепции виртуальной машины относят снижение производительности. Ряд усовершенствований несколько увеличил скорость выполнения программ на Java:
- применение технологии трансляции байт–кода в машинный код непосредственно во время работы программы (JIT–технология) с возможностью сохранения версий класса в машинном коде,
- широкое использование платформенно–ориентированного кода (native–код) в стандартных библиотеках,
- аппаратные средства, обеспечивающие ускоренную обработку байт–кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM) [14].