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

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

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

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

Добавлен: 28.06.2023

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

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

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

ВВЕДЕНИЕ

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

В этой работе будет рассмотрена наиболее востребованное направление в этой области знаний - объектно-ориентированное проектирование. Эта востребованность, вместе с широким охватом отмеченной области знаний, являются причиной выбора автором данной темы.

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

Цель курсовой работы состоит в раскрытии сущности этой технологии проектирования. Для достижения этой цели необходимо решить задачу рассмотрения предпосылок возникновения этой технологии, а также задачи рассмотрения теоретических и практических особенностей присущих этой технологии. Задача рассмотрения практических особенностей применения данной технологии будет решаться рассмотрением конкретных средств проектирования и программирования объектно-ориентированных систем.

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

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

В книге [8] приводится обширный сравнительный анализ языков программирования, рассматривается вопрос универсальности объектно-ориентированной методологии.


В книге [3] рассматриваются основные принципы объектно-ориентированного анализа и проектирования на основе унифицированного языка моделирования UML 2.0.

В книгах [2], [4], [5], [6] и [9], на конкретных средствах и технологиях разработки, рассматриваются вопросы проектирования и программирования информационных систем.

1. История возникновения объектно-ориентированного подхода

Программирование, как отрасль технической деятельности, возникло с появлением вычислительных машин и длительный период времени находилось в зачаточном состоянии. Это связано с тем, что этот период был более посвящен вопросам вычислительных архитектур, поиску концептуальных архитектурных решений. С появлением фон-неймановской вычислительной архитектуры, программирование эволюционировало от переключения тумблеров на панели компьютера к применению машинных команд, хранящихся в памяти компьютера. Затем появился язык ассемблера - язык мнемонических описаний машинных команд. Следующий шаг в этом процессе - появление языка программирования высокого уровня Fortran (см. рис. 1) [8, с.27].

Рисунок 1. Первый язык высокого уровня Fortran

С появлением этого языка в научном мире начались дискуссии относительно процедурности, модульности, структурности языков программирования. В 1960-х годах компания IBM предпринимает попытку разработки беспрецедентной, по сложности, программы - операционной системы для машин серии IBM/360. В результате этой разработки выявилось множество недостатков языка Fortran и в самой дисциплине программирования. Научный мир стоял перед фактом: технологии программирования не позволяют разрабатывать достаточно сложные системы. Это был кризис программирования 60-х годов [8, с.64]. Выход из этого кризиса наметился в работах Вирта (Niklaus Wirth), Хоара (Charles Antony Richard Hoare), Дейкстры (Edsger Wybe Dijkstra) и других ученых, с появлением дисциплины структурного программирования [8, с.65]. Эта дисциплина подразумевает использование, при написании программы, ограниченного набора типовых управляющих структур. Таким образом, программа представляет собой композицию этих структур [8, с.67]. Всего определили восемь управляющих структур: цепочка, ветвление (if-then-else), условное ветвление (if-then), многозначное ветвление (case), цикл с постусловием (repeat-until), цикл с предусловием (while), обобщенный цикл (loop) и цикл с параметром (for). На рисунке 2 показаны основные типовые структуры, где прямоугольником обозначены функциональные блоки, а ромбом - блоки проверки условия.


Рисунок 2. Основные типовые управляющие структуры

Впоследствии, итальянскими математиками Бём (Corrado Böhm) и Якопини (Giuseppe Jacopini) была доказана теорема структурирования о достаточности двух управляющих структур (цепочка и цикл с предусловием) для представления любого алгоритма [8, с.71]. Таким образом, под структурное программирование была подведена прочная математическая база. Но, несмотря на это, все возрастающая сложность разрабатываемых программ, требовала дальнейшего обобщения вычислительных команд и элементов, для того чтобы упорядочит код, привнести ясность в его сложную структуру. Эти поиски привели к появлению языка программирования SIMULA-67, в котором были впервые заложены идеи объектно-ориентированного подхода в программировании [7, с.452]. Язык SIMULA-67 во многом опередил свое время. Основное назначение языка - решение задач имитационного моделирования. Ввиду этих двух факторов язык не получил широкого распространения [8, с.106]. Интерес к языку возник в 1980-х годах с появлением его последователя - полностью объектно-ориентированного языка Smalltalk 80 [7, с.452]. В этом языке программа представляется не как последовательность инструкций, а как совокупность иерархически связанных между собой объектов, обладающих определенными свойствами и обменивающихся с друг другом посредством механизма сообщений [7, с.461]. Успех использования этого языка был ошеломляющим. Разработчики структурных языков стали вводить объектно-ориентированные механизмы в свои языки. Возникла особая, объектная парадигма мышления, объектная идеология [7, с.480]. Впоследствии, на базе объектно-ориентированных языков, возникли средства объектно-ориентированного проектирования [1, с.72]

Рассмотрим эти теоретические вопросы.

2. Теория объектно-ориентированной методологии проектирования

Выделяют два уровня объектно-ориентированной разработки информационной системы: уровень проектирования, который сводится к эффективному структурированию системы [1, с.72] и уровень программирования, сводящийся к правильному использованию объектно-ориентированных механизмов конкретного языка программирования [8, с.107]. Эти два уровня органически связаны между собой и оперируют общими понятиями.


2.1. Основные понятия

Центральное понятие объектного подхода - объект. Объект - это объединение данных и действий, производимых над этими данными в единое целое [2, с.34]. Данные объекта определяют его текущее состояние. Действия объектов определяют его поведение и являются особыми функциями, называемыми методами объекта. Методы могут менять данные состояния объекта и предоставлять эти данные другим объектам. Состояния и действия объектов задаются при описании класса. Класс - это тип объектов, а объект, таким образом, - экземпляр класса. Расширение типов осуществляется за счет механизма наследования. Дочерний класс наследует свойства и методы родительского класса. Таким образом, в средствах проектирования и программирования имеет место быть иерархия классов. Реализация класса скрыта от его пользователей механизмом инкапсуляции. За счет этого механизма ограничен доступ к его внутренними переменным и функциям. Доступ к ним возможен только посредством определенного интерфейса: совокупности свойств и методов. То есть здесь делается акцент на то, что пользователям объекта не нужно знать его внутреннюю реализацию, срабатывает так называемый принцип черного ящика. Способность разнотипных, но имеющих общего предка, объектов по-разному реагировать на одно и то же сообщение обеспечивается механизмом полиморфизма [8, с.112]. За счет этого

механизма объекты наследники переопределяют поведение предков.

Учитывая вышеизложенное можно выделить следующие характерные особенности объектно-ориентированного подхода:

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

Рисунок 3. Структура объектно-ориентированной системы

Благодаря этим особенностям объектно-ориентированного подхода выработался особый, унифицированный процесс проектирования систем.


2.2. Унифицированный процесс

Процесс проектирования информационных систем унифицирован и осуществляется, чаще всего, средствами языка UML (от англ. Унифицированный Язык Моделирования). Этот язык предоставляет пользователю определенную графическую нотацию с помощью которой строятся специальные диаграммы (см. рис. 4). Эти диаграммы подразделяются на две большие группы: структурные диаграммы и диаграммы поведения [1, с.179]. Диаграммы первого типа отображают элементы из которых состоит система. Диаграммы поведения отображают процессы которые протекают в проектируемой системе.

Рисунок 4. Диаграммы UML

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

На первом этапе строится диаграмма вариантов использования (Use-case-diagram). Эта диаграмма является наиболее популярным средством анализа требований [3, с.34]. Основными элементами этой диаграммы являются актеры, варианты использования и отношения. Актер - это роль, которую выполняет пользователь или элемент системы. Вариант использования - это единица взаимодействия актера и системы. Отношения описывают характер взаимосвязи актеров и вариантами использования, актеров с актерами и вариантов использовании друг с другом. Возможны следующие отношения: включение (когда один вариант использования инициирует в процессе использования другой), расширения (когда один вариант использования является дополнением другого), реализация (когда один вариант использования является реализацией другого). На рисунке 5 показан пример этой диаграммы для упрощенного проекта интернет - магазина.

Рисунок 5. Диаграмма вариантов использования для интернет - магазина

Далее строится диаграмма последовательностей, являющаяся уточнением последовательности действий выполнения конкретного варианта использования [3, с.36]. На этой диаграмме, помимо описанных выше элементов, прямоугольниками обозначаются классы с которыми взаимодействует актер. Стрелки на диаграмме означают сообщения. Чаще всего эти сообщения являются вызовами методов. Пример диаграммы показан на рисунке 6.

Рисунок 6. Диаграмма последовательностей для интерент-магазина