Файл: Применение объектно-ориентированного подхода при проектировании информационной системы).pdf
Добавлен: 24.05.2023
Просмотров: 99
Скачиваний: 2
СОДЕРЖАНИЕ
1. Теоретические основы объектно-ориентированного подхода
1.1 Основные понятия и суть подхода в проектировании ИС
Структура Унифицированного языка моделирования
1.2. Понятия, относящиеся к утилитам UML-моделирования
2. Особенности подхода и CASE-средства для проектирования
2.1. CASE-средства реализации объектно-ориентированного подхода
ВВЕДЕНИЕ
В 70-х и 80-х гг. ХХ в. при разработке информационных систем достаточно широко стала применяться структурная методология анализа, предоставляющая в распоряжение разработчиков строгие формализованные методы описания системы и принимаемых технических решений. Наглядность и строгость средств структурного анализа позволяла разработчикам и будущим пользователям системы с самого начала неформально участвовать в ее создании, обсуждать и закреплять понимание основных технических (проектных) решений. Это способствовало появлению специальных программных средств для создания и сопровождения информационных систем.
Сам же термин «объект» или эквивалентные ему понятия появились практически независимо в различных областях, связанных с компьютерами, в процессе разработки (архитектуры компьютеров, объектно-ориентированных операционных систем, объектно-ориентированных языков программирования, модели «сущность-связь» из теории баз данных и фреймов из систем искусственного интеллекта).
К середине 1990-х годов было разработано множество различных конкурирующих методологий для объектно-ориентированного моделирования и разработки информационных систем, относящихся к первым поставщикам инструментальных средств для автоматизации компьютерных программ. Однако, отсутствие стандартов в обозначениях, несогласованность терминов и руководств по процессам были основными проблемами в то время, что ухудшало эффективность взаимодействий и удлиняло период и сложность освоения предметной области.
Построение модели информационной системы до ее программной разработки или до начала проведения архитектурной реконструкции столь же необходимо, как наличие проектных чертежей перед строительством большого здания. Хорошие модели ИС позволяют наладить плодотворное взаимодействие между заказчиками, пользователями и командой разработчиков. Визуальные модели обеспечивают ясность представления выбранных архитектурных решений и позволяют понять разрабатываемую систему во всей ее полноте. Сложность разрабатываемых систем продолжает увеличиваться, и поэтому возрастает актуальность использования наиболее успешных методов и средств моделирования информационных систем, в то время как старые инструменты могут терять свою актуальность при наличии более достойных альтернатив.
Цель работы – краткий обзор возможностей объектно-ориентированного подхода и выявление наиболее эффективных инструментов для его применения на практике.
Объектом исследования является информационная система, а предметом – объектно-ориентированный подход в разработке проекта информационной системы.
Для достижения поставленной цели необходимо решить следующий ряд задач. Во-первых, рассмотреть основные понятия объектно-ориентированного подхода в разработке информационных систем. Во-вторых, определить возможности инструментов для анализа и проектирования информационных систем. В-третьих, проанализировать функциональные возможности средств для анализа и проектирования информационных систем. И наконец, в целом определить области применения объектно-ориентированного подхода, с учётом его преимуществ и недостатков.
Сам взгляд на критерии выбора средств, приводимый в этой работе, как и предлагаемые мной инструменты, применимы только на текущий момент, поскольку, как я уже указал ранее, до сих пор наблюдается тенденция стремления к технологической сингулярности.
И несмотря на то, что со временем критерии выбора парадигмы, а также сами парадигмы и инструменты, могут претерпевать изменения, в то же время, ценностью данной работы как для самих разработчиков (включая системных аналитиков, программистов, менеджеров проектов и т. д.), является сама модель, предполагающая уместность тех или иных средств с опорой на определённые критерии.
Стоит отметить, что текущая работа, несмотря на детальное исследование средств, наиболее полно отражающих суть объектно-ориентированного подхода, лишь поверхностно обозревает отдельные инструменты, к которым относится ряд интегрированных сред разработки, а также плагинов к CASE-средствам, более близким структурному подходу, поскольку глубокий анализ каждого из указанных инструментов требует проведения отдельных исследований.
Учитывая особенности сферы разработки информационных систем, в частности, динамику развития в области сетевых технологий, то в качестве источников для данного исследования используются как материалы с официальных сайтов самих разработчиков представленных в работе приложений, так и отраслевые публикации как с отечественных, так и зарубежных Интернет-ресурсов, что является преимуществом данного исследования.
1. Теоретические основы объектно-ориентированного подхода
1.1 Основные понятия и суть подхода в проектировании ИС
Объектно-ориентированный подход — это метод анализа и проектирования информационной системы, основанный на её разбиении на набор объектов, соответствующих объектам реального мира, взаимодействующих между собой путем обмена сообщений.
То есть, в отличие от структурного подхода, где система представляется в виде иерархии (дерева) взаимосвязанных функций, то есть, выполняется её функциональная (процедурная, алгоритмическая) декомпозиция системы, в объектно-ориентированном подходе за основу принимается её объектная декомпозиция [1].
Также, если в функционально-ориентированных системах функции и данные хранятся отдельно, то атрибутивные данные (характеристики и свойства), так и поведение (функции и методы) в объекте объединены.
Третье существенное отличие двух подходов заключается в структурной организации внутри модулей системы. В структурном подходе модуль состоит из функций, иерархически связанных между собой отношением композиции (англ. «Part of» – часть-целое), т. е. функция состоит из подфункций, подфункция из под-подфункций и т. д [2]. В объектно-ориентированном подходе иерархия выстраивается с использованием двух отношений: композиции и наследования. При этом в объектно-ориентированном подходе «объект-часть» может включаться сразу в несколько «объектов-целое». Таким образом, модуль в структурном подходе представляется в виде дерева, а в объектно-ориентированном подходе – в виде ориентированного графа, т. е. с помощью более общей структуры [3].
Модель — это абстрактное описание программного обеспечения, которое скрывает информацию о некоторых аспектах с целью представления упрощенного описания остальных. Модель может быть исходным артефактом в разработке, если она фиксирует информацию в форме, пригодной для интерпретаций людьми и обработки инструментами. Модель определяет нотацию и метамодель. Нотация представляет собой совокупность графических элементов, которые применяются в модели и могут быть интерпретированы людьми.
Объект – это абстракция реальной или воображаемой сущности с четко выраженными концептуальными границами, индивидуальностью (идентичностью), состоянием и поведением [4][5].
Абстракция (лат. «abstractio» – отвлечение) – форма познания, основанная на мысленном выделении существенных свойств и связей предмета и отвлечении от других, частных его свойств и связей [6]. При этом «существенное» и «частное» должны рассматриваться с точки зрения решаемой задачи (предметной области). В объектно-ориентированном подходе абстракция – это модель сущности, описывающая ее свойства и поведение.
Примерами реальных (физических, осязаемых) сущностей могут служить поезд, стрелочный перевод или инженер службы пути, а воображаемых – технология проведения капитального ремонта пути или оптимальная траектория движения поезда (режимы и скорость в зависимости от текущего положения поезда на участке).
Индивидуальность – это свойство сущности, с помощью которого ее можно отличить от других. То есть, говоря об объекте «поезд», имеется в виду не обобщенное понятие поезд, как нечто состоящее из локомотивов и вагонов, а конкретный грузовой поезд с номером 1025, весом 4600 т, ведомый электровозом переменного тока ВЛ80Т с серийным номером 027, состоящий из четырехосных полувагонов с конкретными номерами и т. д. В то же время степень абстракции с точки зрения решаемой задачи может быть и более высокой. Например, при выполнении тяговых расчетов к графику движения поездов не требуется информация о серийных номерах локомотивов и вагонов, т. е. нет потребности в отличии друг от друга электровозов ВЛ80Т с серийными номерами 027 и 028.
Класс – это множество однотипных объектов, имеющих общую структуру и поведение, которые концептуально группируются в объектно-ориентированном подходе. Другими словами, класс – это шаблон, на основе которого генерируются (создаются) однотипные объекты. В качестве синонима понятия «объект» часто употребляют понятие «экземпляр класса» [4][5].
Каждый класс и соответственно объект характеризуются строго определенным набором атрибутов и методов. Текущие значения атрибутов четко определяют текущее состояние объекта. Набор методов и их алгоритмическая реализация определяют поведение объекта (класса объектов).
Наследование – принцип, в соответствии с которым знание об общей категории разрешается применять для более узкой. Применительно к классам это означает, что дочерний класс (узкая категория) полностью включает в себя (наследует) все атрибуты и методы, определенные в родительском классе (общей категории). При этом в дочернем классе могут быть определены дополнительные атрибуты и методы. Например, дочерний класс «круг» будет наследовать от родительского класса «геометрическая фигура» все атрибуты (x, у – координаты центра фигуры, color – цвет фона и т. д.) и все методы (draw() – нарисовать фигуру, move(dx, dy) – переместить фигуру и т. д.), а также иметь дополнительный атрибут (r – радиус).
Инкапсуляция (информационная закрытость) – принцип, в соответствии с которым содержание внутреннего устройства элементов системы должно быть скрыто друг от друга. Этот принцип предписывает обмен информацией между объектами системы только в минимально необходимом объеме, ограничение доступа к атрибутам и методам объектов (классов) со стороны других объектов (классов) и полное скрытие алгоритмической реализации методов от других объектов (классов) [7].
Полиморфизм – принцип построения элементов модели так, чтобы они могли принимать различные внешние формы или функциональность (поведение) в зависимости от обстоятельств. Например, методы draw() (нарисовать) или calculateS() (рассчитать площадь) для классов «круг» и «ромб», определенных путем наследования атрибутов и методов родительского класса «фигура», алгоритмически должны быть реализованы по-разному.
Унифицированный процесс (Unified Process, UP) – это процесс разработки информационной системы, который обеспечивает упорядоченный подход к распределению задач и обязанностей в организации-разработчике. Унифицированный процесс охватывает весь жизненный цикл ПО, начиная с определения требований и заканчивая сопровождением, и представляет собой обобщенный каркас (шаблон, скелет), который может быть применен (специализирован) для разработки и сопровождения широкого круга систем. [8][9]
Унифицированный язык моделирования (Unified Model Language, UML) – язык (система обозначений) для определения, визуализации и конструирования моделей системы в виде диаграмм и документов на основе объектно-ориентированного подхода. UML является неотъемлемой частью Унифицированного процесса, хотя Унифицированный процесс и UML разрабатывались совместно.
Для разработки ИС на основе унифицированного языка моделирования (UML) требуется три основных компонента:
- редактор исходного кода;
- редактор UML для атрибутов и методов;
- визуализация структуры UML.
Шаблон – это именованная пара «проблема/решение», содержащая готовое обобщенное решение типичной проблемы. Как правило, шаблон помимо текстового описания содержит также одну или несколько диаграмм UML (например, диаграммы классов, последовательности и/или коммуникации), графически иллюстрирующих состав и структуру классов, а также особенности их взаимодействия при решении поставленной проблемы. Шаблоны разрабатываются опытными профессионалами и являются проверенными, эффективными (порой оптимальными) решениями. Применение шаблонов на стадиях анализа и проектирования может резко сократить затраты и повысить качество разработки ПО [10].
По сути, унифицированный процесс, унифицированный язык моделирования и шаблоны проектирования и являются базовыми составляющими объектно-ориентированного подхода [11].