Бизнес весна 2014 лекция 3

41
Лекция №3 Ключевые концепции архитектуры программного обеспечения Дмитрий Безуглый

Upload: technopark

Post on 10-Nov-2014

648 views

Category:

Education


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции

архитектуры программного обеспечения

Дмитрий Безуглый

Page 2: Бизнес весна 2014 лекция 3

Лекция №7 Ключевые концепции архитектуры программного обеспечения

Основные определения в Архитектуре

Описание архитектуры

Ключевые принципы

Пример фреймворка описания архитектуры

2

Содержание

Page 3: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Что такое архитектура ПО ?

Все программные системы обладают архитектурой

Даже если :

Она не документирована

Никто ее не понимает

Рядом нет ни одного архитектора

3

Page 4: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Описание архитектуры

4

Определение 1:

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

Page 5: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Описание архитектуры

5

Определение 2:

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

Page 6: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения 6

Page 7: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Описание архитектуры

это способ валидации

нашего понимания

7

Page 8: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Качества эффективного описания.

8

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

Корректно представляет интересы и потребности заинтересованных лиц

Корректно определяет архитектуру которая соответствует этим потребностям

Достаточность

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

Достаточно деталей для проектирования и имплементации системы

Краткость

Должно быть сфокусировано на важных элементах

Page 9: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

ОБСУЖДЕНИЕ : ОПИСАНИЕ АРХИТЕКТУРЫ

21.03.2014 9

Page 10: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Сделайте как надо !

10

Это документ , большой и серьезный

В нем обязательно есть общая функциональная схема «Несколько» линий и квадратиков

Добавим пару слов «Единая электронная нервная

система предприятия»

Page 11: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Пример как не нужно делать

Facebook Architecture

http://www.slideshare.net/adityaagarwal/qcon

11

Page 12: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

АРХИЕТКТУРА

12

Page 13: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Определение архитектуры

13

Архитектура ПО Software architecture заключается в наборе значительных решений об организации ПО

Выборе структурных элементов и их интерфейсов

Задании поведения системы , через определение взаимодействие этих элементов

Композиции этих структурных и динамических элементов в большие подсистемы

Архитектурном стиле который направляет организацию ПО

From Unified Process (Jacobson, Booch, Rumbaugh)

Page 14: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Определение архитектуры ISO/IEC/IEEE 42010:2011

Архитектуру системы «составляет все основополагающее в системе, рассматриваемой в ее связях с внешней средой»:

составные части (элементы) системы;

порядок сборки или взаимосвязей между системными элементами;

принципы организации или дизайна системы;

принципы управления эволюцией системы на стадиях ЖЦ (в том числе стадиях разработки).

Page 15: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Что такое архитектура ПО ?

15

"Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled."

– Eoin Woods

Page 16: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Архитектурное решение и его обоснование

16

Page 17: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Точки зрения и перспективы (Eoin Woods)

17

Система

Архитектурный элемент

Взаимосвязь

Состоит из

Архитектура Обладает

Архитектурное описание

Может иметь Описывает архитектуру для Заинтересованные

лица

Удовлетворяет потребности

Связывает

Проекция (View)

Состоит из

Точка зрения (Viewpoint)

Соответствует

Перспектива (perspective)

Уточняется Удовлетворяет

Вопрос / Интерес

Имеет

Удовлетворяет

Page 18: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Основной принцип (Principle)

Не возможно отразить функциональные характеристики и все свойства сложной системы в одной целостной модели, понятной и одинаково ценной для всех заинтересованных сторон.

It is not possible to capture the functional features and quality properties of a complex system in a single comprehensible model that is understandable by and of value to all stakeholders.

18

Page 19: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Проекция (View) Определение

19

Проекция (view) это представление одного или более структурных аспектов архитектуры которое иллюстрирует удовлетворение архитектурой одного или более интереса одного или более заинтересованных лиц.

Лекция №7 Ключевые концепции архитектуры программного обеспечения

Page 20: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Точки зрения ( viewpoints)

20

Определение: Точка зрения (viewpoint) это набор паттернов, шаблонов и соглашений по формированию одного типа проекции(view).

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

Page 21: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Архитектурный фреймворк ISO 42010

21

MODAF, TOGAF, Kruchten’s 4+1 View Model, RM-ODP ..

Page 22: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

RUP – 4+1

22

Page 23: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Примеры точек зрения (viewpoints) Архитектура прикладных систем

25

Функциональная (Functional Viewpoint)

Информационная (Information Viewpoint)

Конкуренция (Concurrency Viewpoint)

Разработка (Development Viewpoint)

Внедрение (Deployment Viewpoint)

Эксплуатация (Operational Viewpoint)

Page 24: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Архитектурные перспективы

26

Несмотря на то что совокупность всех проекций (view) системы описывает систему полностью , каждая из проекций является достаточно независимой.

Кроме того, большая часть атрибутов качества системы проявляются и влияют на несколько проекций.

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

Page 25: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Контекст Context

27

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

Context

Page 26: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Контекст Вопросы

Объем системы (Scope) и обязанности

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

Идентификация и обязанности внешних интерфейсов

Другие внешние взаимозависимости

Влияние системы на окружающую среду

Общая полнота, последовательность и согласованность

28

Page 27: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Функциональная (Functional Viewpoint)

29

Описание функциональных элементов системы, их обязанности, интерфейсы и основные взаимодействия.

Функциональный взгляд является основой большинства описаний архитектуры и часто является первой частью описания, которую заинтересованные стороны пытаются читать.

Она направляет и формирует другие структуры системы, такие как структура информации, конкуренция и так далее.

Functional

Page 28: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Функциональная точка зрения Описание . (Functional Viewpoint)

30

Вопросы

функциональные возможности

внешние интерфейсы

внутренняя структура

функциональная философию дизайна

Проблемы

плохо определены е интерфейсы

плохо распределенные обязанности

инфраструктура моделируется как функциональные элементы

перегруженный вид

диаграммы без определения элементов

Неправильный уровень детализации

«Бог» элементов

Слишком много зависимостей

Page 29: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Информационная точка зрения (Information Viewpoint)

31

Описывает способ хранения, обработки , управления и распространения информации.

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

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

Page 30: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Информационная точка зрения (Information Viewpoint). Вопросы

32

Структура информации

Цель и использования информации

Владение информацией

Идентификаторы и отображение

Волатильность семантики информации

Модели хранения информации

Информационный поток

Информационная целостность

Информации о качестве

Своевременность, задержки и возраст информации

Архивирование и долговременное хранение информации

Page 31: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Информационная точка зрения (Information Viewpoint). Ч 3

33

Модели

Статические модели информационной структуры

Модели информационного потока

Модели жизненного цикла информации

Информационные модели владения

Анализ информации о качестве

Модели метаданных

Модели объема данных

Проблемы

Несовместимость представлений

Неизбежное обновление из нескольких источников

Сложность интерфейса

Перегруженные центральные базы данных

Рассогласованность распределенных баз данных

Низкое качество информации

Чрезмерную задержку информации

Некорректные модели объема

Page 32: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Конкуренция (Concurrency Viewpoint)

34

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

Page 33: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Разработка (Development Viewpoint)

35

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

Рассматривает аспекты архитектуры для заинтересованных сторон, участвующих в разработке, тестировании, обслуживании и совершенствовании системы.

Page 34: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Внедрение (Deployment Viewpoint)

36

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

Эта точка зрения отражает

аппаратную среду, (прежде всего узлы обработки, сетевых соединений, а также объектов дискового пространства требуется)

технических требований окружающей среды для каждого элемента

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

Page 35: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Эксплуатация (Operational Viewpoint)

37

Описывает, как система будет работать, администрироваться, и поддерживаться, когда она работает в своей производственной среде.

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

Целью операциональной точки зрения является определение общесистемных стратегий для решения оперативных вопросов заинтересованных сторон системы.

Page 36: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Рекомендованная литература

38

Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

Page 37: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения 39 http://www.slideshare.net/supercoban/ss-10348215

Page 38: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

IASA’s Skills Matrix

40

Foundation Body of Knowledge

Human Dynamics

Design

Quality Attributes

IT Environment

Business Technology Strategy

Software Architecture

Infrastructure Architecture

Information Architecture

Business Architecture Specialisations

Foundation (5-Pillars)

Enterprise Architecture

1st – ALL architects should have the

SAME foundation

2nd – Architects should specialise

Page 39: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Итоги: Самое важное

41

http://www.slideshare.net/supercoban/ss-10348215

Page 40: Бизнес весна 2014 лекция 3

Спасибо за внимание

Безуглый Дмитрий

[email protected]

Page 41: Бизнес весна 2014 лекция 3

Лекция №3 Ключевые концепции архитектуры программного обеспечения

Дополнительные материалы

43

Facebook Architecture

http://www.slideshare.net/adityaagarwal/qcon

Google

http://www.slideshare.net/chenhsiu/designs-lessons-and-advice-from-building-large-distributed-systems

Designing a DSL for Information Systems Architecture

http://www.slideshare.net/eoinwoods/domain-specific-languages-for-information-systems-architecture-presentation

• www.iasaglobal.org