41412

Объектно-ориентированный анализ и проектирование

Лекция

Информатика, кибернетика и программирование

Введение в объектно-ориентированный анализ и проектирование. Объектно-ориентированный анализ и проектирование Основная идея объектно-ориентированного анализа и проектирования objectoriented nlysis nd design состоит в рассмотрении предметной области и логического решения задачи с точки зрения объектов понятий или сущностей как показано на рис. В процессе объектно-ориентированного анализа основное внимание уделяется определению и описанию объектов или понятий в терминах предметной области.

Русский

2013-10-23

80 KB

39 чел.

ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ

Объектно-ориентированный анализ и проектирование

Лекция N 1 7/09/01

1. Введение в объектно-ориентированный анализ и проектирование

1.1. Что такое анализ и проектирование

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

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

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

1.2. Смыл, вкладываемый термины "анализ" и "проектирование"

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

Рис. 1. Виды деятельности анализа и проектирования существуют в едином непрерывном пространстве

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

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

1.3. Объектно-ориентированный анализ и проектирование

Основная идея объектно-ориентированного анализа и проектирования (object-oriented analysis and design) состоит в рассмотрении предметной области и логического решения задачи с точки зрения объектов (понятий или сущностей), как показано на рис. 2.

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

Рис. 2. Виды деятельности в процессе проектирования

В процессе объектно-ориентированного проектирования определяются логические программные объекты, которые будут реализованы средствами объектно-ориентированного языка программирования. Эти программные объекты включают в себя атрибуты и методы. Например, в библиотечной системе программный объект Book может содержать атрибут title (название) и метод print (печатать) (рис. 3).

Рис. 2. Представление объектов с тачки зрения

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

И наконец в процессе конструирования (construction) или объектно-ориентированною программирования (object-oriented programming) обеспечивается Реализация разработанных компонентов, таких как класс Book на языке C++, Java, Smalltalk или Visual Basic.

1.4. Сравнение объектного и функционально-ориентированный подходы к анализу и проектированию

Программные проекты зачастую достаточно сложны, и их декомпозиция (по принципу "разделяй и властвуй") — это основная стратегия борьбы со сложностью. Она состоит в разбиении проблемы на мелкие управляемые элементы. До появления объектно-ориентированного подхода к анализу и проектированию наиболее популярной методологией декомпозиции являлись структурный анализ и проектирование (structured analysis and design). Этот подход заключается в декомпозиции задачи на функции или процессы, приводящей к созданию иерархии процессов и подпроцессов.

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

Рис. 4. Сравнительный анализ объектно-ориентированной и функционально-ориентированной декомпозиций

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

1.5. Основные концепции, лежащие в основе ООАП

Концептуальной основой объектно-ориентированного подхода является объектная модель. Основными ее элементами являются:

•  абстрагирование (abstraction);

•  инкапсуляция (encapsulation);

модульность (modularity);

•  иерархия (hierarchy).

Кроме основных имеются еще три дополнительных элемента, не являющихся в отличие от основных строго обязательными:

•  типизация (typing);

•  параллелизм (concurrency)',

• устойчивость (persistence).

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

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

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

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

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

Параллелизм - свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой.

Устойчивость - свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и/или в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).

Основные понятия объектно-ориентированного подхода — объект и класс.

Объект определяется как осязаемая реальность (tangible entity) — предмет или явление, имеющие четко определяемое поведение. Объект обладает состоянием, поведением и индивидуальностью; структура и поведение схожих объектов определяют общий для них класс. Термины "экземпляр класса" и "объект" являются эквивалентными. Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими значениями (динамическими) каждого из этих свойств. Поведение характеризует воздействие объекта на другие объекты и наоборот относительно изменения состояния этих объектов и передачи сообщений. Иначе говоря, поведение объекта полностью определяется его действиями. Индивидуальность - это свойства объекта, отличающие его от всех других объектов.

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

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

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

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

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

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

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

В настоящее время для объектно-ориентированного моделирования проблемной области широко используется унифицированный язык моделирования UML (Unified Modeling Language), который разработан группой ведущих компьютерных фирм мира OMG (Object Management Group) [89] и фактически является стандартом по объектно-ориентированным технологиям. Язык UML реализован многими фирмами - производителями программного обеспечения в рамках CASE-технологий, например Rational Rose (Rational), Natural Engineering Workbench (Software AG), ARIS Toolset (IDS prof. Scheer) и др.


 

А также другие работы, которые могут Вас заинтересовать

27378. Общеобразовательные цели обучения математике 19.7 KB
  ФГОС здесь все из книги по фгосам на экзамене будут фгосы доступны так что учить здесь всё не нужно наизусть: В результате изучения курса математики обучающиеся на ступени начального общего образования: научатся использовать начальные математические знания для описания окружающих предметов процессов явлений оценки количественных и пространственных отношений; овладеют основами логического и алгоритмического мышления пространственного воображения и математической речи приобретут необходимые вычислительные навыки; научатся применять...
27379. Этапы формирования представлений о числе 18.8 KB
  5 этап: изучение отрезка ряда натуральных чисел. Так же необходимо в процессе изучения отрезка натуральных чисел отрабатывать прием присчитывания и отсчитывания по одному. Моро А последовательно один за другим рассматриваются отрезки ряда натуральных чисел 12 123 123. Основные приемы: прочтение чисел счет предметов выделение нового для изучаемого числа.
27380. Изучение смысла сложения и вычетания 18.9 KB
  Этот подход легко интерпретируется на уровне предметных действий позволяя тем самым учитывать психологические особенности младших школьников. Например в учебнике М1М в качестве основного средства формирования у детей представлений о смысле действий сложения и вычитания выступают простые текстовые задачи. В основе другого подхода лежит выполнение учащимися предметных действий и их интерпретация в виде графических и символических моделей. Деятельность учащихся сначала сводится к переводу предметных действий на язык математики а затем к...
27381. Действия с величинами 23.83 KB
  Формирование у учащихся представлений о числе и о десятичной системе счисления тесно связано с изучением величин. В начальных классах у учащихся имеются некоторые интуитивные представления о величинах и об их измерении. Измерение заключается в сравнении данной величины с некоторой величиной того же рода принятой за единицу.
27382. ЗУНы для вычисления в пределах 100 (сложение и вычитание) 22.28 KB
  Остальные случаи вычислений над числами большими 100 относятся к письменным вычислениям. Рассмотрим методические особенности формирования умений складывать и вычитать числа в пределах 100 которые нашли отражение в учебниках М1М и М2М Моро. Овладение вычислительными приемами предполагает усвоение: нумерации чисел в пределах 100 разрядного состава двузначного числа табличных случаев сложения вычитания и свойств сложения и вычитания; прибавления числа к сумме вычитания числа из суммы прибавления суммы к числу вычитания...
27383. Алгоритмы: 1. Письменного сложения и вычитания 2. Письменного умножения 3. Письменного деления 20.18 KB
  Письменного деления ЗУНы для сложения и вычитания: Нумерация многозначных чисел Разрядный состав многозначных чисел Десятичный состав числа Навык сложения и вычитания чисел в пределах 20 Знание переместительного и сочетательного закона сложения Как и другие алгоритмы письменного вычисления в и рассматриваются поэтапно: Актуализация ЗУН подготовка к изучению алгоритма подготовка и изучение алгоритма Введение самого алгоритма Усвоение алгоритма Продуктивное повторение новой темы включать новые знания в систему имеющихся Основная...
27384. Функции текстовых задач 17.29 KB
  Любое математическое задание можно рассматривать как задачу выделив в нем условие т. Функции текстовых задач. Ведущие методисты отмечают что решение текстовых задач в начальной школе преследует двойную цель: с одной стороны научить решать текстовые задачи различных видов с другой стороны сами текстовые задачи выступают как средство обучения воспитания и развития школьников.
27385. Математическое развитие младших школьников невозможно без приобщения их к геометрии 19.38 KB
  Эта особенность находит свое выражение и в начальных классах где формирование представлений о геометрических фигурах связано с изучением таких величин как длина и площадь. Основой формирования у детей представлений о геометрических фигурах является способность их к восприятию формы. В развитии представлений о геометрических фигурах учащиеся начальных классов проходят два этапа. Формируя у них целостное представление о геометрических фигурах следует идти от реальных предметов к их моделям геометрическим фигурам и наоборот: от...
27386. Различные подходы к построению урока математики 19.44 KB
  Основные этапы подготовки учителя к уроку математики: общий способ деятельности связанный с планированием урока можно представить в виде следующей последовательности вопросов. Какова функция учебных заданий данного урока обучающая развивающая контролирующая Какие знания умения навыки и приемы умственных действий формируются в процессе их выполнения 5. Какова дидактическая цель данного урока 6.