Файл: Применение объектно-ориентированного подхода при проектировании информационной системы(Теоретические основы объектно-ориентированного подхода).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.04.2023

Просмотров: 186

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

Мы живем в действительно необычное время. Ведь еще совсем недавно наши родители не могли даже мечтать о том, что когда-нибудь наступит время, когда компьютер станет неотъемлемой частью нашей жизни и действительно начнет приносить большую пользу. Он станет генератором идей и их воплощением, откроет новые горизонты в познании человечества. Но компьютер, несмотря ни на что, без человека из себя ничего не представляет, если не говорить об автоматизированных процессах, но даже в этом случае человек приложил свою руку. Именно поэтому так важно донести мысли человека до машины, в чем и помогают нам различные методы по разработке программного обеспечения.

Проектирование экономических информационных систем (ЭИС) - это объемная, логически нагруженная и трудоемкая работа, требующая привлечения высококвалифицированных специалистов. В США в начале 70-х годов произошел программный кризис, который выразился в следующих проблемах: крупные проекты выполнялись с сильным отставанием от графика или превышением сметных затрат. На выходе получали продукт, не обладающий необходимым функционалом и с довольно низкой производительностью, а качество разработанного программного обеспечения совершенно не удовлетворяло потребительскую аудиторию.

В последние годы, ведущими зарубежными аналитиками были проведены аналитические исследования и обзоры, которые, показали не очень обнадеживающие результаты. Так, в 1995 году Standish-Group провели анализ работ 364 американских корпораций и результатов более 23 тысяч проектов, которые были связанны с разработкой программного обеспечения, и пришла к следующим, не утешительным выводам: Из общего числа, лишь 16% проектов были выполнены вовремя, 52,7% - с большим опозданием, а расходы в разы превысили запланированный на разработку бюджет.

Причины данных сбоев были выявлены следующие: неполные и размытые требования к программному обеспечению, недостаточное участие пользователя в проекте, плохое планирование и т.д. Относительно всего вышеперечисленного, очень выгодно на данном фоне выглядит объектно-ориентированный подход к разработке программного обеспечения, он не только позволяет устранить эти недостатки, но и ряд других, а так же имеет достаточно богатый набор визуальных средств.

На этом фоне, выгодно отличается объектно-ориентированный подход к проектированию ПО. Он устраняет эти и другие недостатки, он обладает богатым набором изобразительных средств. Вот почему, целью моей курсовой работы является раскрытие современных методов и средств проектирования, в частности в объектно-ориентированном подходе к проектированию ИС.


В ходе выполнения работы рассмотренны следующие задачи:

  • рассмотрение сущности и преимуществ объектно-ориентированного подхода;
  • анализ предметной области;
  • применение объектно-ориентированного подхода при проектировании ИС.

1. Теоретические основы объектно-ориентированного подхода

1.1. Сущность объектно-ориентированного подхода

Наиболее популярны два подхода (парадигмы) к анализу и проектированию информационных систем: структурный и объектно-ориентированный.

Первое отличие этих подходов друг от друга заключается в принципах декомпозиции и структурной организации элементов (компонентов, модулей) системы. Согласно этим принципам система представляет собой структуру, состоящую из четко выраженных модулей, связанных между собой определенными отношениями.

При использовании структурного подхода (первый вид декомпозиции) выполняется функциональная (процедурная, алгоритмическая) декомпозиция системы, т. е. она представляется в виде иерархии (дерева) взаимосвязанных функций. На высшем уровне система представляется единым целым с наивысшей степенью абстракции и по мере детализации (добавления уровней) разбивается на функциональные компоненты с более конкретным содержанием.

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

Вторым отличием является объединение в объекте как атрибутивных данных (характеристики, свойства), так и поведения (функции, методы). В функционально-ориентированных системах функции и данные хранятся (существуют) отдельно.

Третье отличие двух подходов заключается в структурной организации внутри модулей системы. В структурном подходе модуль состоит из функций, иерархически связанных между собой отношением композиции (англ. part-of – часть-целое), т. е. функция состоит из подфункций, подфункция из подподфункций и т.д. В объектно-ориентированном подходе иерархия выстраивается с использованием двух отношений: композиции и наследования (англ. is-a – это есть). При этом в объектно-ориентированном подходе «объект-часть» может включаться сразу в несколько «объектов-целое».


Таким образом, модуль в структурном подходе представляется в виде дерева, а в объектно-ориентированном подходе – в виде ориентированного графа, т. е. с помощью более общей структуры.

Наиболее популярными методологиями, поддерживающими объектно-ориентированный подход, в настоящий момент являются:

  • унифицированный процесс (Unified Process, UP);
  • экстремальное программирование (eXtreme Programming, XP);
  • гибкое моделирование (Agile Modeling, AM).

Базовым средством фиксации (документирования) результатов проектирования систем посредством этих методологий является унифицированный язык моделирования (Unified Modeling Language, UML).

Термин «объект» или эквивалентные ему понятия появились практически независимо в различных областях, связанных с компьютерами, в процессе разработки:

  • архитектуры компьютеров (Burroughs 5000, Plessey 250, IBM System/38, Intel 432);
  • объектно-ориентированных операционных систем (Plessey/System 250, Secure UNIX, StarOS, iMax);
  • объектно-ориентированных языков программирования (Simula, Smalltalk, Modula);
  • теории баз данных (модели «сущность-связь»);
  • систем искусственного интеллекта (фреймы).

При разработке программного обеспечения термин «объект» впервые был введен в языке Simula 67 для моделирования сущностей предметной области.

Согласно [6, с.23–25] объект – это абстракция реальной или воображаемой сущности с четко выраженными концептуальными границами, индивидуальностью (идентичностью), состоянием и поведением.

Абстракция (лат. Abstractio-ссылка) - это форма познания, основанная на мысленном отождествлении существенных свойств и отношений объекта и на абстрагировании от других, частных свойств и отношений [5, с. 63]. При этом “существенное” и “частное” следует рассматривать с точки зрения решаемой проблемы (предметной области). В объектно-ориентированном подходе абстракция-это модель сущности, описывающая ее свойства и поведение.

Примерами реальных (физических, материальных) объектов могут быть поезд, стрелочный перевод или инженер по ремонту пути, а также воображаемая технология ремонта пути или оптимальная траектория движения поезда (режимы и скорость движения в зависимости от текущего положения поезда на маршруте). Раздел).

Индивидуальность-это свойство существа, по которому вы можете отличить его от других. То есть, когда я говорю об объекте "производственная линия", я имею в виду не обобщенное понятие, как состоящего из конвеера, АСУ и прочих составляющих, а конкретную производственную линию N 15 для печатных плат.


Степень абстракции задачи может быть и выше. Объектно-ориентированный подход использует понятие "класс" для концептуальной группировки объектов одного типа.

Класс-это совокупность объектов с общей структурой и поведением [7, С. 39]. Таким образом, класс-это шаблон, из которого генерируются (создаются) аналогичные объекты. Термин "экземпляр класса "часто используется как синоним слова"объект".

Каждый класс и объект, соответственно, характеризуется строго определенным набором атрибутов и методов. Текущие атрибуты четко определяют текущее состояние объекта. Совокупность методов и их алгоритмическая реализация определяют поведение объекта (класса объектов).

Принципы проектирования информационных систем в полной мере применимы к объектно-ориентированным системам. Но если мы говорим об объектно-ориентированном подходе, то это прежде всего наследование, инкапсуляция и полиморфизм. Эти механизмы и принципы проектирования более естественно и полно реализуются в объектно-ориентированном подходе, чем в структурном.

Наследование-это принцип, согласно которому знание общей категории может быть применено к более узкой категории. Для классов это означает, что дочерний класс (узкая категория) полностью включает (наследует) все атрибуты и методы, определенные в родительском классе (общая категория). Однако для дочернего элемента можно определить дополнительные атрибуты и методы.

Например, дочерний класс «круг» будет наследовать от родительского класса «геометрическая фигура» все атрибуты (x, у – координаты центра фигуры, color – цвет фона и т. д.) и все методы (draw() – нарисовать фигуру, move(dx, dy) – переместить фигуру и т. д.), а также иметь дополнительный атрибут (r – радиус).

Инкапсуляция-конфиденциальность информации - принцип, согласно которому содержимое внутренней структуры элементов системы должно быть скрыто друг от друга. Этот принцип предписывает обмен информацией между объектами системы только в минимально необходимом количестве, ограничивая доступ к атрибутам и методам объектов (классов) от других объектов (классов) и полностью скрывая алгоритмическую реализацию методов от других объектов (классов).

Полиморфизм - это принцип построения элементов модели таким образом, чтобы они могли принимать различные внешние формы или функции (поведение) в зависимости от обстоятельств. Например, методы draw () или calculateS () для классов круга и ромба, которые определены путем наследования атрибутов и методов родительского класса фигур, должны быть реализованы по-другому.


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

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

  • единый процесс;
  • единый язык моделирования;
  • шаблоны проектирования.

Единый процесс-это процесс разработки программного обеспечения, обеспечивающий дисциплинированный подход к распределению задач и обязанностей в организациях [5, С. 67], данный процесс охватывает весь жизненный цикл определения требований вплоть до универсальной структуры (шаблона, каркаса), которая использует специализированную структуру для разработки и поддержки широкого спектра приложений.

Неотъемлемой частью единого процесса является UML (нотационная система) для определения, визуализации и построения моделей системы в виде диаграмм и документов на основе объектно-ориентированного подхода [3, с. 58].

Предпосылки возникновения языка моделирования UML были выявлены в связи с бурным развитием объектно-ориентированных языков программирования (Simula 67, Smalltalk, Objective C, C++ и др.) Во второй половине XX века. В результате постоянно возрастающей сложности программных продуктов возникает необходимость учитывать все больше особенностей языков и средств разработки при анализе, формулировании требований и разработке программных приложений. Например, за короткий период с 1989 по 1994 год количество объектно-ориентированных инструментов выросло с десятка до более чем пятидесяти. Однако многим разработчикам было трудно найти язык моделирования, который отвечал бы их потребностям. В результате появилось новое поколение методов разработки, среди которых особую популярность приобрел метод Бутча, созданный компанией Jacobson Object-Oriented Software Engineering (OOSE) и разработанный компанией Rambo Object Modeling Technique (OMT). Помимо них существовали и другие завершенные технологии, такие как термоядерный синтез, Шлаер-Меллор и Коад-Юдон, но все они имели не только преимущества, но и существенные недостатки.

Следует отметить, что унифицированный процесс и UML разрабатываются совместно.

На этапах анализа и проектирования часто используются так называемые шаблоны проектирования. Паттерн-это именованная пара проблема / решение, содержащая полное общее решение типичной задачи [4].

В дополнение к текстовому описанию шаблон обычно содержит одну или несколько диаграмм UML (таких как диаграммы классов, диаграммы взаимодействия и / или диаграммы последовательностей), которые графически иллюстрируют композицию и то, как они взаимодействуют для решения проблемы.