Файл: Анализ и оценка средств реализации объектно-ориентированного подхода к проектированию экономической информационной системы (Объектно-ориентированный подход в проектировании информационных систем).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]

Основные предпосылки создания объектно-ориентированного подхода:

  1. прогресс в области архитектуры ЭВМ (включая системную и аппаратную часть);
  2. развитие языков программирования, таких как Simula, Smalltalk, CLU, Ada;
  3. развитие методологии программирования, включая принципы модульности и защиты информации (сокрытия данных)".[4]

Три момента, оказавшие влияние на становление объектного подхода:

  • развитие теории баз данных (ER-модели);
  • исследования в области искусственного интеллекта (теория фреймов);

достижения философии и теории познания (греки – мир можно рассматривать как в терминах объектов, так и событий; Декарт _люди имеют объектный взгляд на мир; Клир – редукционизм и холизм).

Компоненты объектного подхода

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

С Т И Л Ь

ВИД АБСТРАКЦИИ

Процедурно-ориентированный

Алгоритмы

Объектно-ориентированный

Классы и объекты

Логико-ориентированный

Цели (наиболее часто выраженные в терминах исчисления предикатов)

Ориентированный на правила

Правила "если…- то…"

Ориентированный на ограничения

Инвариантные соотношения


5.Основные элементы объектно-ориентированного стиля

Каждый стиль программирования имеет свою концептуальную основу. Для объектно-ориентированного стиля концептуальная основа состоит в объектном подходе.

Ему соответствуют четыре главных элемента

(без любого из них подход не будет ОО)

и три дополнительных элемента:

  • абстрагирование;
  • ограничение доступа;
  • модульность;
  • иерархия
  • типизация;
  • параллелизм;
  • сохраняемость
  • Абстрагирование – позволяет сосредоточить внимание на существенных характеристиках объекта с точки зрения наблюдателя (пример кошка для домохозяйки и ветеринара)[6]

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

Абстракция должна охватить лишь самую суть объекта, не больше, но и не меньше – «принцип наименьшей выразительности»[5]

Выделяют следующие обстракции:

• Абстракция сущности

объекта Объект представляет собой модель некой сущности (описание существенных сторон) предметной области

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

•Абстракция в виде виртуальной машины Объект объединяет группы операции, которые либо используются для управления объектом (на более высоком уровне управления), либо сами используют некоторый набор операций более низкого уровня

• Произвольная абстракция Объект включает в себя набор независимых по отношению друг к другу операций

Наиболее интересны абстракции сущностей объектов, так как они соответствуют словарю предметной области.

Объект, использующий ресурсы другого объекта называется клиентом.[1]

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

Понятия операция (Ada), метод (Smalltalk) и функция-элемент (C++ )- фактически обозначают одно и то же и используются как эквивалент.

Все абстракции обладают как статическими, так и динамическими свойствами.

Пример: Объект – файл. Статические свойства : объем требуемой памяти, имя, содержание. Динамические свойства: файл может изменять размеры, имя, содержание.[6]