31
Объектно-Ориентированный Анализ и Дизайн Copyright © Мухортов В. В., Няньчук-Татарский Н. А., 2001-2005 Copyright © ООО «Интекс», 2003-2005

Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

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

Copyright © Мухортов В. В., Няньчук-Татарский Н. А., 2001-2005

Copyright © ООО «Интекс», 2003-2005

Page 2: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Контакты

Мигинский Денис Сергеевич

[email protected]

http://ccfit.nsu.ru/~shadow/OOAD

Page 3: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Цели курса

Получить навык работы в формальном процессе разработки: пройти полный путь от постановки задачи, через анализ и проектирование, до реализации программной системы

Выработать понимание целей и принципов проектирования программных систем

Научиться применять стандартные приемы и решения в проектировании

Page 4: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Анализ требований и системный анализ

UML – унифицированный язык моделирования

Проектная модель, модель реализации и размещения

Принципы и метрики проектирования

Образцы проектирования

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

Программа курса:

Page 5: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

«Идеальный архитектор должен быть писателем, математиком, знать историю, быть знатоком философии, понимать музыку, обладать знаниями в области медицины, юриспруденции и астрономии»

Витрувий, 25 г до н.э.

“Работа архитектора это серии суб-оптимальных решений, сделанных под давлением в обстановке неуверенности и нехватки информации”.

Rational Unified Process

Ожидаемый результат

Архитектор / System Architect

Page 6: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Задача: автоматизация физ. эксперимента

Пропускная способность

Отказоустойчивость

Корректность

Соответствие требованиям эксперимента

Высокая скорость обработки данных

Большой объем хранимых данных

~ 10-100 Мб/сек

~ 100-1000 Тб

Page 7: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Задача: автоматизация предприятия

О т д е л к о н т р о л я

О т д е л к а д р о в

О т д е л п р о д а ж

П р о и з в о д с т в е н н ы й

о т д е л

С к л а д с к о й у ч е т

Н И С$

M IC R O S O F T C O R P O R A T IO N

Ф и н а н с о в ы й о т д е л

О т д е л д о с т а в к и

А д м и н и с т р а ц и я

О т д е л с н а б ж е н и я

П л а н о в ы й о т д е л

К л и е н т

Высокая композиционная сложность

Наличие большого количества ролей и разветвляющихся процессов

Необходимость интеграции с существующими системами

Постоянно изменяющиеся требования связанные с развитием организации и оптимизацией процессов

Интеграция решений задач

Финансовых

АСУ

Планирования

Управления персоналом

Page 8: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

«Самолет представляет собой совокупность вещей, каждая из которых по отдельности стремится упасть на землю, но вместе, во взаимодействии, они преодолевают эту тенденцию»

Современным ИС присущи как функциональная так и композиционная сложность.

Основными способами преодоления сложности являются моделирование и декомпозиция

Page 9: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Современные парадигмы программирования

Структурное

Функциональное (аппликативное)

Логическое/недетерминированное

Объектно-ориентированное

Аспектно-ориентированное

Метапрограммирование

Page 10: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Объектно-ориентированный подход: основные положения

Модель системы состоит из взаимодействующих объектов

Каждый объект обладает:

Поведением

Состоянием

Индивидуальностью

Схожие объекты объединяются в классы

Page 11: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Объектно-ориентированный подход: основные положения

Абстракция

Инкапсуляция

Иерархия

Модульность

Полиморфизм

Page 12: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Объектно-ориентированный подход (доп. положения)

Типизация

Параллелизм

Сохраняемость

Page 13: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Отношения между классами

Зависимость Dependency Ассоциация Association Агрегация Aggregation Композиция Composition Генерализация Generalization Реализация Realization

Page 14: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Dependency

Отношение зависимости

Обладает ролью и множественностью Server зависит от Query, так как использует этот класс в

качестве параметра метода

Server также зависит от ResultSet, поскольку возвращает значение этого типа

Page 15: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Association

Ассоциация - отношение взаимодействия

Обладает 2-мя ролями

Роль обладает множественностью (1, n, *, 0..n, 1..n, 1..*)

Пример: сотрудник может занимать несколько должностей, на

одной должности находится не более одного сотрудника

Position Employee

0..11..n

+person+position

0..11..n

Page 16: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Association

Ассоциация может иметь выделенное направление

Должность связана базовым тарифом оплаты

Тариф оплаты никак не связан с конкретной должностью

BasicRatePosition

11

-rate

Page 17: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Aggregation

Агрегация – отношение часть-целое

Magazine Article

1..*1..*1..* 1..*

+articles

Page 18: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Composition

Композиция – частный случай агрегации

Жизненный цикл частей и целого совпадают

Отделы не существуют без компании

Часть принадлежит только одному целому

Company Department

0..*1 0..*

+departments+company

1

Page 19: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Generalization

Генерализация (наследование, обобщение) –отношение частное-общее Отдел кадров – частный случай отдела

HR Department

EmployeeDepartment

n1

+employee

n1

Page 20: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Realization

Реализация – отношение выполнения соглашения Треугольник и квадрат реализуют алгоритм вращения,

специфицированный абстрактной сущностью «Фигура»

Page 21: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Процесс разработки ПО

Design and programming are human activities. Forget it – and all is lost.

B. Stroustrup, 1991

Page 22: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Методологии разработки ПО

OMT - Object Modeling Technique (Rumbaugh)

RDD - Responsibility Driven Design (Beck, Cunningham, Wirfs-Brock)

Objectory (Rational Software)

Crystal (Cockburn)

RUP (Booch, Rumbaugh, Jacobson)

XP (Beck, Cunningham, Martin, Fowler, Cockburn)

Page 23: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Составные части процесса разработки ПО

Может быть эффективен при наличии общих концепций и единой методологии лежащей в основе всех

составляющих процесса.

Анализ требований и предметной области

Системный анализ

Проектирование и реализация

Сопровождение и развитие

Page 24: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Анализ требований и предметной области

Уточнение и формализация предметной области

Определение рамок задачи

Формализация требований, анализ их непротиворечивости, полноты и выполнимости

Оценка трудозатрат и рисков

Page 25: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Системный анализ

Определение общей логики работы системы

Выбор технических средств

Планирование работ

(Исследования, прототипирование, …)

Page 26: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Проектирование и реализация

Создание программной системы (кода) удовлетворяющей требованиям

Адаптация к дальнейшему развитию (гибкость, расширяемость, адаптивность и т.д.)

Page 27: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Сопровождение и развитие

Повышение качества системы

Расширение функциональности

Создание технологической базы для других продуктов

Page 28: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Способы описания программных систем

CRC-карты (Class-Responsibilities-Collaborators)

UML (Unified Modeling Language)

Page 29: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

CRC-карты

Класс

Student

Ответственность

Учиться

Сдать экзамены

Коллаборанты

Teacher

Page 30: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Unified Modeling Language

Язык моделирования

Определяет нотацию и ее семантику

Не является языком программирования, но имеет встроенный язык программирования для задания поведения и ограничений

Обладает возможностью к расширению стандартной семантики

Page 31: Объектно Ориентированный Анализ и Дизайнshadow/OOAD/pps/01-Intro.pdfПринципы и метрики ... подход: основные положения

Case-средства для UML

ChangeVision Astah (Jude)

IBM Rational Rose

IBM Rational Architect/Modeler

Visual Architect (Sparx Systems)

MetaMill

ArgoUML (Tigris)

Poseidon (Metaware)