Добавлен: 15.05.2023
Просмотров: 183
Скачиваний: 3
СОДЕРЖАНИЕ
1 СТРОЕНИЕ ОБЪЕКТНО ОРИЕНТИРОВАННОГО ПОДХОДА
1.1. Подходы к анализу и проектированию информационных систем
1.2. Сущность объектно-ориентированного подхода
1.3 Базовые составляющие объектно-ориентированного подхода
2 ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ АНАЛИЗ И ПРОЕКТИРОВАНИЕ ИНФОРМАЦИННЫХ СИСТЕМ.
ВВЕДЕНИЕ
На заре семидесятых годов двадцатого века был отмечен кризис программирования. Было замечено, что масштабные проекты стали выполнятся с существенными задержками или с перерасходом средств на разработку (development). Вместе с этим достаточно большое количество программ не обладали заявленными функциональными возможностями, из-за чего их качество не устраивало конечного пользователя.
Не так давно, никто даже подумать не мог, что настанет момент, когда компьютеры будут решать столько задач, что станут важной частью жизни человека, а также принесут огромную пользу. Но сам по себе компьютер ничто. Чтобы он был полезен, нужно поставить перед ним задачу/условие, и что немаловажно - сделать это нужно правильно. Тут нам окажут помощь различные способы по проектированию программного обеспечения (ПО).
Это дало начало проведению ведущими зарубежными аналитиками большого количества аналитических исследований, но результаты их были неудовлетворительными. К запланированному сроку на тот момент были завершены только 1/10 проектов. Из остальных проектов примерно половина - сданы заказчику с существенным опозданием либо с превышением запланированных расходов. Часто, причинами провалов являлась нечеткая или неполная формулировка требований к программному обеспечению, слабое планирование, недостаточное вовлечение людей в работу над задачами проекта и т.п. В связи с этим, была необходимость в новом подходе к проектированию ПО.
Этим подходом стал объектно–ориентированный подход, который в короткие сроки завоевал большую популярность. Объектно-ориентрованный подход полностью заполняет те недостатки, с которыми ранее сталкивались разработчики ПО.
Согласно вышесказанному, целью курсовой работы является освещение современных методов и средств проектирования, в частности в объектно-ориентированном подходе к проектированию ПО.
1 СТРОЕНИЕ ОБЪЕКТНО ОРИЕНТИРОВАННОГО ПОДХОДА
1.1. Подходы к анализу и проектированию информационных систем
В целом, используется всего два подхода к проектированию информационных систем: структурный и объектно-ориентированный. Эти два подхода отличаются рядом свойств.
Во-первых, отличие этих подходов один от другого состоит в принципах анализа и структурной организации элементов (компонентов, модулей) системы. При использовании структурного подхода выполняется функциональный анализ системы, задачей которого является определение структуры функций системы. Обычно результатом анализа является дерево функций, связи которого определяют взаимодействие функций по параметрам. На верхнем уровне системы размещается вершина, которая соответствует решению глобальной задачи проекта. Далее в ходе анализа по мере детализации (добавления уровней) выполняется разбиение на подфункции с более конкретным наполнением. При объектно-ориентированным подходе предметная область разбивается на набор объектов, соответствующих объектам реального мира, взаимодействующих между собой путем отправки сообщений.
Во-вторых, отличие заключается в объединении в объекте как атрибутивных данных (характеристики, свойства), так и поведения (функции, методы). При структурном подходе в системах функции и данные хранятся отдельно.
В-третьих, отличие двух подходов заключается в структурной организации внутри модулей системы. В структурном подходе модуль состоит из функций, иерархически связанных между собой отношением композиции (англ. part-of – часть-целое), т.е. функция состоит из подфункций, подфункция из под-подфункций и т.д. В объектно-ориентированном подходе иерархия выстраивается с использованием двух отношений: композиции и наследования (англ. is-a – это есть). При этом в объектно-ориентированном подходе «объект-часть» может включаться сразу в несколько «объектов-целое». Таким образом, модуль в структурном подходе представляется в виде дерева, а в объектно-ориентированном подходе – в виде ориентированного графа, т.е. с помощью более общей структуры.
Наиболее популярными методологиями, объектно-ориентированного подхода поддерживающими данный подход, в настоящий момент являются:
- унифицированный процесс (Unified Process, UP);
- экстремальное программирование (eXtreme Programming, XP);
- гибкое моделирование (Agile Modeling, AM).
Базовым средством фиксации (документирования) результатов проектирования систем посредством этих методологий является унифицированный язык моделирования (Unified Modeling Language, UML)."[1]
1.2. Сущность объектно-ориентированного подхода
Термин «объект» или эквивалентные ему понятия появились практически независимо в различных областях, связанных с компьютерами, в процессе разработки:
- архитектуры компьютеров (Burroughs 5000, Plessey 250, IBM System/38, Intel 432);
- объектно-ориентированных операционных систем (Plessey/System 250, Secure UNIX, StarOS, iMax);
- объектно-ориентированных языков программирования (Simula, Smalltalk, Modula);
- теории баз данных (модели «сущность-связь»);
- систем искусственного интеллекта (фреймы).
В процесс создания программ термин «объект» впервые был введен в языке Simula 67 при определении сущностей предметной области.
Объект – это абстракция реальной сущности с четко выраженными концептуальными границами, индивидуальностью, состоянием и поведением.
Абстракция (лат. abstractio – отвлечение) – форма познания, основанная на мысленном выделении существенных свойств и связей предмета и отвлечении от других, частных его свойств и связей. При этом «существенное» и «частное» должны рассматриваться с точки зрения решаемой задачи (предметной области). В объектно-ориентированном подходе абстракция – это модель сущности, описывающая ее свойства и поведение.
Примерами реальных (физических, осязаемых) сущностей могут служить преподаватель, дисциплина или кафедра. Сущности могут быть и воображаемыми, например, порядок разработки учебного плана.
Индивидуальность – это свойство сущности, с помощью которого ее можно отличить от других. Например, объект «преподаватель» в реальности – это мужчина или женщина, определенного роста, веса и возраста. Этот человек в назначенные рабочие дни приходит в один из вузов. С точки зрения проектирования системы абстракция этого типа объектов будет сведена к базовому набору атрибутов: фамилия, имя, отчество, дата рождения, пол. После этого, набор атрибутов зависит от сферы использования проектируемой системы. Например, для бухгалтерии становиться важной наличие информации о должности, на которой работает преподаватель, время приема на работу, так как это определяет стаж, а соответственно размер надбавки за стаж работы, наличие ученой степени и ученого звание, что тоже предполагает начисление соответствующих надбавок. Для учебного отдела интерес представляет список дисциплин и количество часов, которые читает преподаватель.
Для логического группирования однотипных объектов предметной области в объектно-ориентированном подходе используется понятие «класс».
Класс – это совокупность объектов, имеющих общую структуру и поведение. Фактически, класс – это шаблон, на основе которого генерируются однотипные объекты. В качестве синонима понятия «объект» часто употребляют понятие «экземпляр класса».
Каждый класс характеризуются обозначенным набором атрибутов и методов. Текущие значения атрибутов четко определяют текущее состояние объекта. Набор методов и их алгоритмическая реализация определяют поведение класса объектов.
Когда говорят об объектно-ориентированном подходе, то обязательно дают понятие терминам "наследование", "инкапсуляция", "полиморфизм".
Наследование – принцип, в соответствии с которым знание об общей категории разрешается применять для более узкой. Применительно к классам это означает, что порождаемый класс (узкая категория) полностью наследует (включает в себя) все атрибуты и методы, определенные в родительском классе (общей категории). При этом в дочернем классе можно доопределять атрибуты и вводить новые методы. Например, дочерний класс «преподаватель» будет наследовать от родительского класса «сотрудник» все атрибуты, к которым будут отнесены фамилия, имя, отчество, дата рождения, дата приема на работу и все методы (определения возраста по дате рождения, стажа работы по дате приема на работу). При этом данный класс будет иметь обязательно атрибуты "Ученая степень" и "Ученое звание".
Инкапсуляция – принцип, в соответствии с которым внутреннее устройство элементов системы скрывается от других взаимодействующих классов. Еще этот принцип называют "информационная закрытость". Принцип определяет обмен информацией между классами только в минимально необходимом объеме, ограничение доступа к атрибутам и методам объектов (классов) со стороны других объектов (классов) и полное скрытие алгоритмической реализации методов от других объектов (классов).
Полиморфизм – принцип построения определяет возможность принимать различные внешние формы или функциональность (поведение) в зависимости от контекста. Например, методы Paint() (отрисовать) или DefineS() (определить площадь), определенные в родительском классе «фигура», для классов «эллипс» и «прямоугольник» должны быть реализованы по-разному."
Сущность объектно-ориентированного подхода к анализу и проектированию информационных систем заключается в декомпозиции системы на классы, которые соответствуют типам объектов предметной области, и построении из них иерархии в виде ориентированного графа с использованием отношений композиции и наследования.
1.3 Базовые составляющие объектно-ориентированного подхода
Базовыми составляющими объектно-ориентированного подхода являются:
унифицированный процесс;
унифицированный язык моделирования;
шаблоны проектирования.
Унифицированный процесс – это процесс разработки программного обеспечения (ПО), который обеспечивает структуризированный подход к распределению задач и обязанностей в организации, разрабатывающей ПО. Унифицированный процесс охватывает весь жизненный цикл ПО, начиная c определения требований и заканчивая сопровождением. Данный процесс представляет собой шаблонную схему для разработки и сопровождения программ различного назначения.
Унифицированный язык моделирования UML используется для определения, визуализации и конструирования моделей системы в виде диаграмм и документов на основе объектно-ориентированного подхода. Следует отметить, что унифицированный процесс и UML разрабатывались совместно.
На стадиях анализа и проектирования часто используются так называемые шаблоны (паттерны) проектирования.
Шаблон – это пара «проблема/решение», содержащая готовое обобщенное решение типичной проблемы, которой присвоено имя. Обычно, шаблон кроме текстового описания содержит также одну или несколько диаграмм UML (например, диаграммы классов, кооперации и/или последовательности), графически иллюстрирующих состав и структуру классов, а также особенности их взаимодействия при решении поставленной проблемы. Шаблоны разрабатываются опытными профессионалами и являются проверенными, эффективными (порой оптимальными) решениями. Применение шаблонов обеспечивает сокращение затрат и повышение качества разработки ПО.
Подводя итог вышесказанному можно утверждать, что объектно-ориентированный подход имеет ряд преимуществ по сравнению со структурным:
- Описание системы в виде объектов больше соответствует содержательному смыслу предметной области.
- Сущности предметной области, как правило, обладают поведением, что в объектно-ориентированном проектировании отражается с помощью определения методов класса. В структурном подходе данные (атрибуты) и алгоритмы (методы) существуют отдельно друг от друга.
- Объединение атрибутов и методов в объекте (классе), а также инкапсуляция позволяют добиться большей внутренней связности и меньшей связности между компонентами системы.
- Объектно-ориентированный подход позволяет легче организовать параллельные вычисления, так как каждый объект обладает собственными значениями характеристик (атрибутов) и поведением, за счет чего можно добиться автономности обработки атрибутов различных экземпляров класса.
- Case-средства, поддерживающие объектно-ориентированный подход, на основе информации об объектах позволяют достичь большей степени автоматизации генерации кода. Case-средства, поддерживающие структурный подход, хорошо справляются с генерацией структур БД. Однако следует отметить, что эта структура должна удовлетворять требованиям нормализации. В связи с чем автоматическая генерация кода (например, экранов или функций обработки данных) возможна лишь в определенных случаях.