ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
‹#›
Часть 1
ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
‹#›
Часть 2
‹#›
ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
 Архитектура
 Модель качества
 Характеристики и подхарктеристики
модели качества продукта
 Сценарии атрибутов качества...
• Архитектура ПО Software architecture заключается в
наборе значительных решений об организации ПО
– Выборе структурных эл...
ЛЕКЦИЯ №7 Ключевые
концепции архитектуры
программного обеспечения.
"Software architecture is the set of design
decisions w...
• Все программные системы обладают
архитектурой
• Даже если :
– Она не документирована
– Никто ее не понимает
– Рядом нет ...
Определение 1:
Описание архитектуры это набор материалов, которые
документируют архитектуру таким образом , чтобы
заинтере...
Определение 2:
Описание архитектуры это набор материалов, которые
описывают уже принятые ключевые решения, и мотивы
побуди...
• Корректность
– Корректно представляет интересы и потребности заинтересованных
лиц
– Корректно определяет архитектуру кот...
ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
‹#›
Facebook Architecture
http://www.slideshare.net/adi...
• Это документ , большой
и серьезный
• В нем обязательно есть
общая функциональная
схема
– «Несколько» линий и
квадратиков...
• Не возможно отразить функциональные
характеристики и все свойства сложной
системы в одной целостной модели,
понятной и о...
ЛЕКЦИЯ №7 Ключевые
концепции архитектуры
программного
Система
Архитектурный
элемент
Взаимосвязь
Состоит из
Архитектура
Обл...
IEEE 1471-2000
• Проекция (view) это представление одного или более
структурных аспектов архитектуры которое
иллюстрирует удовлетворение ...
• Определение: Точка зрения (viewpoint) это
набор паттернов, шаблонов и
соглашений по формированию одного
типа проекции(vi...
• Software Systems
Architecture : Working
With Stakeholders Using
Viewpoints and
Perspectives
ЛЕКЦИЯ №7 Ключевые концепции...
ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
‹#›
Функциональная (Functional Viewpoint)
Информационная (Information Viewpoint)
Конкуренция (Concurrency Viewpoint)
Разработк...
• Несмотря на то что совокупность всех проекций (view) системы
описывает систему полностью , каждая из проекций является
д...
• Описывает отношения, зависимости и
взаимодействия между системой и ее
окружением (людьми, системами и внешними
организац...
• Объем системы и обязанности
• Идентификация внешних объектов, используемых
услугах и данных
• Идентификация и обязанност...
• Описание функциональных элементов системы, их
обязанности, интерфейсы и основные взаимодействия.
• Функциональный взгляд...
• Вопросы
– функциональные
возможности
– внешние интерфейсы
– внутренняя структура
– функциональная
философию дизайна
• Пр...
• Описывает способ хранения, обработки ,
управления и распространения информации.
• Конечная цель практически любого
компь...
– Структура информации
– Цель и использования
информации
– владение информацией
– идентификаторы и
отображение
– Волатильн...
• Модели
– статические модели
информационной структуры
– Модели информационного
потока
– модели жизненного цикла
информаци...
• Описывает структуру параллелизма
системы, отображение функциональных
элементов в параллельные элементы, четко
идентифици...
• Описывает архитектуру, которая
поддерживает процесс разработки
программного обеспечения.
• Рассматривает аспекты архитек...
• Описывает среды, в которых будет развернута
система, в том числе охватывает зависимости
системы в среде выполнения.
• Эт...
• Описывает, как система будет работать,
администрироваться, и поддерживаться, когда она
работает в своей производственной...
• Software Systems
Architecture : Working
With Stakeholders Using
Viewpoints and
Perspectives
ЛЕКЦИЯ №7 Ключевые концепции...
• Facebook Architecture
– http://www.slideshare.net/adityaagarwal/qcon
• Google
– http://www.slideshare.net/chenhsiu/desig...
•
•
•
•
•
•
•
•
ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
‹#›
Часть 1
ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
‹#›
Часть 2
‹#›
ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
Безуглый Дмитрий
bdl@system-approach.ru
ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
‹#›
ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
‹#›
http://www.slideshare.net/supercoban/ss-10348215
ЛЕКЦИЯ №7 Ключевые концепции
архитектуры программного обеспечения.
‹#›
http://www.slideshare.net/supercoban/ss-10348215
Foundation Body of Knowledge
Human Dynamics
Design
Quality Attributes
IT Environment
Business Technology Strategy
Software...
Scope (Ballpark) view
Owners View (Enterprise Model)
Designers View (System Model)
Builder’s View (Technology Model)
Out o...
Бизнес и системный анализ весна 2013 лекция 7
Бизнес и системный анализ весна 2013 лекция 7
Upcoming SlideShare
Loading in …5
×

Бизнес и системный анализ весна 2013 лекция 7

335 views
296 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
335
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Бизнес и системный анализ весна 2013 лекция 7

  1. 1. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  2. 2. Часть 1 ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  3. 3. Часть 2 ‹#› ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.
  4. 4.  Архитектура  Модель качества  Характеристики и подхарктеристики модели качества продукта  Сценарии атрибутов качества  Профиль качества продукта ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 4
  5. 5. • Архитектура ПО Software architecture заключается в наборе значительных решений об организации ПО – Выборе структурных элементов и их интерфейсов – Задании поведения системы , через определение взаимодействие этих элементов – Композиции этих структурных и динамических элементов в большие подсистемы – Архитектурном стиле который направляет организацию ПО From Unified Process (Jacobson, Booch, Rumbaugh) ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 5
  6. 6. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. "Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled." – Eoin Woods 6
  7. 7. • Все программные системы обладают архитектурой • Даже если : – Она не документирована – Никто ее не понимает – Рядом нет ни одного архитектора ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 7
  8. 8. Определение 1: Описание архитектуры это набор материалов, которые документируют архитектуру таким образом , чтобы заинтересованные лица могли понять данное описание и определить каким образом архитектура и будущая система удовлетворяет их интерес. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 8
  9. 9. Определение 2: Описание архитектуры это набор материалов, которые описывают уже принятые ключевые решения, и мотивы побудившие их принять , таким образом, чтобы ЛПР могли принять решение в случае необходимости ее изменения. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 9
  10. 10. • Корректность – Корректно представляет интересы и потребности заинтересованных лиц – Корректно определяет архитектуру которая соответствует этим потребностям • Достаточность – Достаточно деталей для получения ответа на важные вопросы об архитектуре – Достаточно деталей для проектирования и имплементации системы • Краткость – Должно быть сфокусировано на важных элементах ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 10
  11. 11. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#› Facebook Architecture http://www.slideshare.net/adityaagarwal /qcon
  12. 12. • Это документ , большой и серьезный • В нем обязательно есть общая функциональная схема – «Несколько» линий и квадратиков • Добавим пару слов – «Единая электронная нервная система предприятия» ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 12
  13. 13. • Не возможно отразить функциональные характеристики и все свойства сложной системы в одной целостной модели, понятной и одинаково ценной для всех заинтересованных сторон. • 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. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  14. 14. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного Система Архитектурный элемент Взаимосвязь Состоит из Архитектура Обладает Архитектурное описание Может иметь Описывает архитектуру для Заинтересованные лица Удовлетворяет потребности Связывает Проекция (View) Состоит из Точка зрения (Viewpoint) Соответствует Перспектива (perspective) УточняетсяУдовлетворяет Вопрос / Интерес Имеет Удовлетворяет 14
  15. 15. IEEE 1471-2000
  16. 16. • Проекция (view) это представление одного или более структурных аспектов архитектуры которое иллюстрирует удовлетворение архитектурой одного или более интереса одного или более заинтересованных лиц. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 16
  17. 17. • Определение: Точка зрения (viewpoint) это набор паттернов, шаблонов и соглашений по формированию одного типа проекции(view). • Она определяет заинтересованных лиц чьи интересы она отражает и правила , принципы и виды моделей для формирования соответствующих проекций. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 17
  18. 18. • Software Systems Architecture : Working With Stakeholders Using Viewpoints and Perspectives ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 19
  19. 19. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  20. 20. Функциональная (Functional Viewpoint) Информационная (Information Viewpoint) Конкуренция (Concurrency Viewpoint) Разработка (Development Viewpoint) Внедрение (Deployment Viewpoint) Эксплуатация (Operational Viewpoint) ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 21
  21. 21. • Несмотря на то что совокупность всех проекций (view) системы описывает систему полностью , каждая из проекций является достаточно независимой. • Кроме того, большая часть атрибутов качества системы проявляются и влияют на несколько проекций. • Определение: Перспектива (perspective) это совокупность действий, приемов и руководств которые используются для представления реализации конкретного набора атрибутов качества которые требуют рассмотрения в нескольких архитектурных проекциях. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 22
  22. 22. • Описывает отношения, зависимости и взаимодействия между системой и ее окружением (людьми, системами и внешними организациями, с которыми она взаимодействует). ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#› Context
  23. 23. • Объем системы и обязанности • Идентификация внешних объектов, используемых услугах и данных • Идентификация и обязанности внешних интерфейсов • Другие внешние взаимозависимости • Влияние системы на окружающую среду • Общая полнота, последовательность и согласованность ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  24. 24. • Описание функциональных элементов системы, их обязанности, интерфейсы и основные взаимодействия. • Функциональный взгляд является основой большинства описаний архитектуры и часто является первой частью описания, которую заинтересованные стороны пытаются читать. • Она направляет и формирует другие структуры системы, такие как структура информации, конкуренция и так далее. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#› Functional
  25. 25. • Вопросы – функциональные возможности – внешние интерфейсы – внутренняя структура – функциональная философию дизайна • Проблемы – плохо определены е интерфейсы – плохо распределенные обязанности – инфраструктура моделируется как функциональные элементы – перегруженный вид – диаграммы без определения элементов – Неправильный уровень детализации – «Бог» элементов – Слишком много зависимостей ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  26. 26. • Описывает способ хранения, обработки , управления и распространения информации. • Конечная цель практически любого компьютера является работа с информацией, и эта точка зрения разрабатывет полное, но высокоуровневое представление статической структуры данных и информационных потоков. • Целью данного анализа является ответ на ключевые вопросы по содержанию, структуре, собственности, задержка, ссылок и переноса данных. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  27. 27. – Структура информации – Цель и использования информации – владение информацией – идентификаторы и отображение – Волатильность семантики информации – модели хранения информации – информационный поток – Информационная целостность – информации о качестве – своевременность, задержки и возраст информации – архивирование и долговременное храненияе информации ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  28. 28. • Модели – статические модели информационной структуры – Модели информационного потока – модели жизненного цикла информации – информационные модели владения – анализ информации о качестве – модели метаданных – Модели объема данных • Проблемы – Несовместимость представлений – Неизбежное обновление из нескольких источников – сложность интерфейса – перегруженные центральные базы данных – Рассогласованность распределенных баз данных – низкое качество информации – чрезмерную задержку информации – Некорректные модели объема ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  29. 29. • Описывает структуру параллелизма системы, отображение функциональных элементов в параллельные элементы, четко идентифицировать части системы, которые могут выполняться одновременно, и показывает, как это координируется и контролируется ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  30. 30. • Описывает архитектуру, которая поддерживает процесс разработки программного обеспечения. • Рассматривает аспекты архитектуры для заинтересованных сторон, участвующих в разработке, тестировании, обслуживании и совершенствовании системы. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  31. 31. • Описывает среды, в которых будет развернута система, в том числе охватывает зависимости системы в среде выполнения. • Эта точка зрения отражает – аппаратную среду, (прежде всего узлы обработки, сетевых соединений, а также объектов дискового пространства требуется), – технических требований окружающей среды для каждого элемента, – а отображение элементов программного обеспечения в среду выполнения, которая будет выполнять их. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  32. 32. • Описывает, как система будет работать, администрироваться, и поддерживаться, когда она работает в своей производственной среде. • Для всех, кроме простейших систем, установка, управление и эксплуатация системы является важной задачей, которая должна быть продумана и спланирована во время разработки. • Целью операциональной точки зрения является определение общесистемных стратегий для решения оперативных вопросов заинтересованных сторон системы и определить их решение. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  33. 33. • Software Systems Architecture : Working With Stakeholders Using Viewpoints and Perspectives ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. 34
  34. 34. • 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 ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  35. 35. • • • • • • • • ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  36. 36. Часть 1 ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  37. 37. Часть 2 ‹#› ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.
  38. 38. Безуглый Дмитрий bdl@system-approach.ru ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#›
  39. 39. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#› http://www.slideshare.net/supercoban/ss-10348215
  40. 40. ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения. ‹#› http://www.slideshare.net/supercoban/ss-10348215
  41. 41. Foundation Body of Knowledge Human Dynamics Design Quality Attributes IT Environment Business Technology Strategy Software Architecture Infrastructure Architecture Information Architecture Business ArchitectureSpecialisations Foundation (5-Pillars) Enterprise Architecture 42 1st – ALL architects should have the SAME foundation 2nd – Architects should specialise
  42. 42. Scope (Ballpark) view Owners View (Enterprise Model) Designers View (System Model) Builder’s View (Technology Model) Out of Context View (Detailed Model) Operational View (Functioning) Data (What) Function (How) Network (Where) People (Who) Time (When) Motivation (Why)

×