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

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

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

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

Добавлен: 12.03.2024

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

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

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

Содержание:

Введение

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

Обучению объектно-ориентированному программированию и проектированию посвящены многие работы зарубежных исследователей, таких как Г. Буч, Б. Мэйер, А. Якобсон, Дж. Рамбо, И. Грэхем, М. Фаулер, а также исследования отечественных ученых Г.С. Ивановой, Т.Н. Ничушкина, Е.К. Пугачева, И.А. Бабушкиной и др.

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

Объектом исследования является - Информационная система.

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

Цель исследования - объектно-ориентированный подход при проектировании Информационной системы.

Задачи:

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

- Недостатки объектно-ориентированного подхода.

- Smalltalk и GUI.

- Enterprise-система Redmine.

- Примеры реализации полиморфизма в PHP, UML.

В исследовании будет рассмотрена система веб-приложение Управления проектами Redmine, построена на веб-фреймворке Ruby on Rails в связке с веб сервером. Система позволяет распределять задачи, отправлять сообщения, хранить файлы, задавать временные рамки исполнения задач, контроль версий. Веб-приложение легко интегрируется в существующую информационную систему, например такую как Служба каталогов (Active Directory) Windows, что позволяет обеспечить прозрачный доступ пользователей к веб-приложению, имея существующие учетные записи. Система реализована на языке Ruby, который является объектно-ориентированным языком программирования. При внедрении этой системы, использование UML-диаграмм поможет отразить взаимодействие между пользователями системы Redmine, обеспечить безопасность распределением прав на проекты и задачи, отразить связи уведомлений пользователей системы. Разработанные с помощью языка UML сценарии позволят эффективнее взаимодействовать участникам информационной системы.


Глава 1. Объектно-ориентированный подход, его преимущества и недостатки

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

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

Пример Класса:

Класс (объект) – Человек состоит из Классов (Объектов) - Мужчина и Женщина, у этих объектов есть свойства (признаки) например отличие в строении тела. Объектам Мужчина и Женщина свойственно одинаковое действие (метод, функция), например – ходить, говорить. Но родить другого человека это функция только объекта Женщина, Человек как Класс будет наследовать общие признаки от родительского класса.

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

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

Анализ

Проектирование

Программирование

Тестирование

Сборка


Схема 1. Этапы цикла структурной разработки программного обеспечения

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

  • не для разработки систем, где есть много автономных модулей;
  • обязательно последовательное выполнение всех этапов разработки;
  • несовместимость с эволюционным подходом, который широко внедряем;
  • В настоящее время, а также применение алгоритмических языков четвертого поколения;

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

Элементы объектно-ориентированного подхода:

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

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

Диаграмма классов – система обозначений объектно-ориентированного проектирования, используется для схематичного обозначения взаимоотношений, показать логику проекта системы. Схема 2 показано обозначение класса на диаграмме.


Продукт

Название : string (строка)

Получить название () : string (строка)

ЗадатьНазвание(string название) : void (тип)

Схема 2. Обозначение класса на диаграмме

Ассоциация – смысловая двухсторонняя связь между объектами. Как правило, направленность связи в обе стороны, если явно не указана направленность. Пример схема 3.

Схема 3. Обозначение ассоциации

Мощность связи это количество участников в схеме. На практике типы мощности следующие: один-к-одному, один-ко-многим, многие-ко-многим.

Наследование – Дочерний класс основан на родительском классе. Два класса похожи, но есть некоторые отличия. Эта особенность позволяет создавать подклассы от существующего класса путем наследования атрибутов и / или операций, существующих классов. Если класс наследует только интерфейс тогда это абстрактный класс, если наследует все операции тогда это конкретный класс. На схеме 4 представлено одиночное наследование

Схема 4. Наследование (одиночное)

Также бывает множественное наследование схема 5.

Схема 5. Наследование (множественное)

Имущество имеет разные формы и наследует свойства и операции родительского класса, например можно выполнить операцию Продажа() с имуществом.

Агрегация – это методика создания нового класса из уже существующих классов посредством их включения, когда экземпляры одного класса включают экземпляры другого класса. На схеме показано, что объект «учитель» остается при разрушении объекта «факультет», тогда как факультеты без объекта «университет» погибают.

Схема 6. Обозначение агрегации

Метакласс – это класс, экземпляры которого являются другие классы.

Примеры языков программирования, поддерживающие метаклассы - это RUBY, SmallTalk, Java, и другие.

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


1.2. Преимущества объектно-ориентированного подхода

Программирование или проектирование это сложный процесс. В больших информационных системах или программных продуктах применяя, какой либо метод проектирования, от метода мы ждем, что он облегчит наши усилия и поможет в решении проблем. Уходя от сложностей необходимо абстрагироваться от мелких деталей, в этом приходят на помощь Классы.

  • Компоновка полезных компонентов, простых инструментов в классе позволяют нам уйти от мелких деталей
  • Данные, функции, операции образуют единую сущность.
  • Размещение данных и кода упрощает наглядность программного кода или схемы.
  • Инкапсуляция помогает защитить данные от несанкционированного доступа, а также скрыть от пользователя детали реализации.
  • Облегчает изменения в системе при низких затратах.
  • Возможность повторно использовать компоненты.
  • Расширяемость системы, за счет возможности подключать новые компоненты без изменения в целом.
  • Обработка разнородных данных.
  • Простота конструкции распределенных систем.

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

1.3. Недостатки объектно-ориентированного подхода

Недостатки объектно-ориентированного подхода:

- на разработку больших систем и их использование требуется больше времени, нежели в другом подходе;

- возможность повторного использования, требует изучение больших библиотек классов;

- изучать классы необходимо на практике;

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

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

- код обращения очень велик, в виду чего необходимо использовать несколько методов для его прочтения;

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