Файл: Анализ и оценка средств реализации объектно-ориентированного подхода к проектированию экономической информационной системы (Объектно-ориентированный подход в проектировании информационных систем).pdf
Добавлен: 25.06.2023
Просмотров: 106
Скачиваний: 2
Введение
Проектирование информационных систем (ИС) – логически сложная, трудоемкая и длительная работа, требующая высокой квалификации специалистов. Однако до настоящего времени проектирование ИС нередко выполнялось на интуитивном уровне неформализованными методами, включающими в себя практический опыт, экспертные оценки и дорогостоящие экспериментальные проверки качества функционирования ИС. В последнее время ведущие аналитики отмечают, что большинство проектов выполнятся в режиме «death march», буквально – «смертельный марш» (Эдвард Йордан), т. е. это такой проект, параметры которого отклоняются от нормы на 50%. Освоение и правильное применение методов и средств создания ПО позволят повысить качество ИС, обеспечить управляемость процесса проектировании ИС и увеличить срок ее жизни.
Перечисленные проблемы породили потребность в программно-технологических средствах специального класса – CASE-средствах. Большинство существующих CASE-средств основано на методах структурного или объектно-ориентированного анализа и проектирования.
В данной работе я попытаю дать представление о реализации объектно-ориентированного проектирования экономических информационных систем, концепции объектно-ориентированного проектирования информационных систем, перспективы развития информационных систем.
1.Объектно-ориентированный подход в проектировании информационных систем
Объектно-ориентированнный подход в проектировании, как и функционально-ориентированный, предполагает декомпозицию ИС.[6] Если в функционально-ориентированном подходе декомпозиции подлежали процессы обработки, то в объектно-ориентированном подходе декомпозиции подлежат объекты, которые характеризуются определенной структурой данных. Здесь декомпозиция идет от данных. В объектно-ориентиро-ванном подходе выделяют классы объектов. Каждый класс содержит однородные объекты.[1] Объектам одного класса присуще одинаковое множество методов реагирования на внешние сообщения. Иерархическая декомпозиция системы представляется в виде иерархии классов объектов, а функционирование системы – в виде взаимодействия объектов, обменивающихся сообщениями.
Среди свойств объектов в объектно-ориентированном подходе отметим следующие:
- инкапсуляция, что означает скрытие информации. Смысл этого свойства в том, что состав и структура атрибутов объекта не зависит от сообщений, поступающих извне;[4]
- наследование – это свойство, связанное с выделением иерархических классов объектов, то есть существуют родительские и дочерние классы. Оно проявляется в том, что методы реагирования объекта, предусмотренные родительским классом, автоматически присваивают объектам дочерних классов, то есть родительские классы имеют общие методы, а дочерние – как общие, так и частные;
- полиморфизм – возможность выбора объектом в ответ на получаемые им сообщения какого-либо метода из множества методов в зависимости от того, какое пришло сообщение.[4]
Наличие этих свойств у объекта позволяет в объектно-ориенти-рованном подходе добиться параллельности и автономности разработки отдельных компонент системы, т.е. возможно создание прототипов с дальнейшей интеграцией отдельных прототипов в единую систему и использование итерационного подхода к разработке ИС.[5]
Другое достоинство объектно-ориентированного подхода состоит в упрощении накопления типовых проектных решений с тем, чтобы в дальнейших разработках новых ИС осуществить сбор новой системы из готовых компонент. Эта особенность связана с тем, что классы объектов повторяются в определенной мере при переходе от одной ИС к другой, а для повторяющихся классов уже запрограммированы методы, разработаны и описаны структуры объектов данных.
На стадии анализа предметной области определяются объекты и их классы и осуществляется объектная декомпозиция системы.
На стадии проектирования детализируется объектно-ориентированная модель системы. Разрабатываются структуры данных, методы реагирования объектов, отношения между классами и сценарии взаимодействия объектов.[3]
На стадии программирования осуществляется разработка программного обеспечения по отдельным компонентам, тестирование и сборка. То есть происходит постепенное создание (эволюция) системы.
Модификация системы не требует полного пересмотра проекта, затрагивая лишь соответствующие классы и объекты.[5]
Отличительной чертой модели объектно-ориентированного проектирования является отсутствие строгой последовательности в выполнении стадий как в прямом, так и в обратном направлениях процесса проектирования по отдельным компонентам.[2]
Основное преимущество объектно-ориентированного подхода состоит в упрощении проектирования ИС при наличии типовых проектных решений по отдельным компонентам, а также легкости модификации, поскольку модификация касается лишь отдельных компонент.
Следует отметить, что объектно-ориентированный подход трудно воспринимается пользователями и руководством предприятия и прежде всего предназначен для программистов. Пользователям понятнее функционально-ориентированный подход. Экономическая эффективность применения объектно-ориентированного подхода возрастает по мере приобретения опыта у разработчиков в большей мере, чем при функционально-ориентированном подходе. Можно сказать, что время разработки также снижается.[4]
2.Методы проектирования программных систем
Разграничим понятия «метод» и «методология». Метод - это последовательный процесс создания моделей, которые описывают вполне определенными средствами различные стороны разрабатываемой программной системы.
Методология - это совокупность методов, применяемых в жизненном цикле разработки программного обеспечения и объединенных одним общим философским подходом.[1]
Методы появились как ответ на растущую сложность программных систем. Для первых ЭВМ создавались простые программы. В 60-70-е годы эффективность применения компьютеров резко возросла, цены на них стали падать, а возможности ЭВМ увеличились. Сложность ПО возросла, поэтому в 60-70-е годы было разработано много методов, помогающих справиться с растущей сложностью программ.[4]
Методы разбивают на три группы:
- метод структурного проектирования сверху вниз (оказалось, что структурный подход не работает, если объем программы превышает приблизительно 100000 строк);.
- метод потоков данных (DFD) (структура программной системы строится как преобразование входных потоков в выходные);
- объектно-ориентированное проектирование (OOD).[5]
В основе OOD лежит представление о том, что программную систему необходимо проектировать как совокупность взаимодействующих друг с другом объектов, рассматривая каждый объект как экземпляр определенного класса, причем классы образуют иерархию.
ООD – это метод, логически приводящий нас к объектно-ориентированной декомпозиции. Применяя ООD, мы создаем открытые для изменений программы, построенные из ограниченного числа универсальных блоков (компонентов).
3.Модели объектно-ориентированного проектирования
Важность построения моделей при проектировании сложных систем диктует необходимость наличия нескольких типов моделей.
Несмотря на различия в моделях, методы проектирования моделей имеют что-то общее. Их, в частности, объединяет следующее:
- условные обозначения - язык для описания каждой модели;
- процесс - правила проектирования модели;
- инструменты - средства, которые ускоряют процесс создания моделей, определяют законы их функционирования и помогают выявлять ошибки в процессе разработки.[6]
Объектно-ориентированное проектирование - это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления как логической и физической, так и статической и динамической моделей проектируемой системы.
Объектно-ориентированный анализ направлен на создание моделей, более близких к реальности, с использованием объектно-ориентированного подхода. Это методология, при которой требования к системе формируются на основе понятий классов и объектов, выявленных в предметной области (составляющих словарь предметной области).[3]
Основные предпосылки создания объектно-ориентированного подхода:
- прогресс в области архитектуры ЭВМ (включая системную и аппаратную часть);
- развитие языков программирования, таких как Simula, Smalltalk, CLU, Ada;
- развитие методологии программирования, включая принципы модульности и защиты информации (сокрытия данных)".[4]
Три момента, оказавшие влияние на становление объектного подхода:
- развитие теории баз данных (ER-модели);
- исследования в области искусственного интеллекта (теория фреймов);
достижения философии и теории познания (греки – мир можно рассматривать как в терминах объектов, так и событий; Декарт _люди имеют объектный взгляд на мир; Клир – редукционизм и холизм).
Компоненты объектного подхода
Способ программирования определяется стилем программирования, включающим принципы программирования и языки программирования. Пять основных разновидностей стилей программирования:
С Т И Л Ь |
ВИД АБСТРАКЦИИ |
Процедурно-ориентированный |
Алгоритмы |
Объектно-ориентированный |
Классы и объекты |
Логико-ориентированный |
Цели (наиболее часто выраженные в терминах исчисления предикатов) |
Ориентированный на правила |
Правила "если…- то…" |
Ориентированный на ограничения |
Инвариантные соотношения |
5.Основные элементы объектно-ориентированного стиля
Каждый стиль программирования имеет свою концептуальную основу. Для объектно-ориентированного стиля концептуальная основа состоит в объектном подходе.
Ему соответствуют четыре главных элемента (без любого из них подход не будет ОО) |
и три дополнительных элемента: |
|
|
- Абстрагирование – позволяет сосредоточить внимание на существенных характеристиках объекта с точки зрения наблюдателя (пример кошка для домохозяйки и ветеринара)[6]
Абстракция – это такие существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения дальнейшего рассмотрения и анализа.[1]
Абстракция должна охватить лишь самую суть объекта, не больше, но и не меньше – «принцип наименьшей выразительности»[5]
Выделяют следующие обстракции:
• Абстракция сущности
объекта Объект представляет собой модель некой сущности (описание существенных сторон) предметной области
• Абстракция поведения Объект состоит из обобщенного множества операций, каждая из которых выполняет полезную функцию
•Абстракция в виде виртуальной машины Объект объединяет группы операции, которые либо используются для управления объектом (на более высоком уровне управления), либо сами используют некоторый набор операций более низкого уровня
• Произвольная абстракция Объект включает в себя набор независимых по отношению друг к другу операций
Наиболее интересны абстракции сущностей объектов, так как они соответствуют словарю предметной области.
Объект, использующий ресурсы другого объекта называется клиентом.[1]
Полный набор операций, которые клиент может осуществлять над другим объектом, называется протоколом. Протокол отражает все возможные действия, которыми объект может подвергаться сам и которыми может оказывать влияние на другие объекты.
Понятия операция (Ada), метод (Smalltalk) и функция-элемент (C++ )- фактически обозначают одно и то же и используются как эквивалент.
Все абстракции обладают как статическими, так и динамическими свойствами.
Пример: Объект – файл. Статические свойства : объем требуемой памяти, имя, содержание. Динамические свойства: файл может изменять размеры, имя, содержание.[6]