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

621 views
562 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
621
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Лекция №3 Ключевые концепции архитектуры программного обеспечения Дмитрий Безуглый
  2. 2. Лекция №7 Ключевые концепции архитектуры программного обеспечения  Основные определения в Архитектуре  Описание архитектуры  Ключевые принципы  Пример фреймворка описания архитектуры 2 Содержание
  3. 3. Лекция №3 Ключевые концепции архитектуры программного обеспечения Что такое архитектура ПО ?  Все программные системы обладают архитектурой  Даже если :  Она не документирована  Никто ее не понимает  Рядом нет ни одного архитектора 3
  4. 4. Лекция №3 Ключевые концепции архитектуры программного обеспечения Описание архитектуры 4 Определение 1: Описание архитектуры это набор материалов, которые документируют архитектуру таким образом , чтобы заинтересованные лица могли понять данное описание и определить каким образом архитектура и будущая система удовлетворяет их интерес.
  5. 5. Лекция №3 Ключевые концепции архитектуры программного обеспечения Описание архитектуры 5 Определение 2: Описание архитектуры это набор материалов, которые описывают уже принятые ключевые решения, и мотивы побудившие их принять , таким образом, чтобы ЛПР могли принять решение в случае необходимости ее изменения.
  6. 6. Лекция №3 Ключевые концепции архитектуры программного обеспечения 6
  7. 7. Лекция №3 Ключевые концепции архитектуры программного обеспечения Описание архитектуры это способ валидации нашего понимания 7
  8. 8. Лекция №3 Ключевые концепции архитектуры программного обеспечения Качества эффективного описания. 8  Корректность  Корректно представляет интересы и потребности заинтересованных лиц  Корректно определяет архитектуру которая соответствует этим потребностям  Достаточность  Достаточно деталей для получения ответа на важные вопросы об архитектуре  Достаточно деталей для проектирования и имплементации системы  Краткость  Должно быть сфокусировано на важных элементах
  9. 9. Лекция №3 Ключевые концепции архитектуры программного обеспечения ОБСУЖДЕНИЕ : ОПИСАНИЕ АРХИТЕКТУРЫ 21.03.2014 9
  10. 10. Лекция №3 Ключевые концепции архитектуры программного обеспечения Сделайте как надо ! 10  Это документ , большой и серьезный  В нем обязательно есть общая функциональная схема  «Несколько» линий и квадратиков  Добавим пару слов  «Единая электронная нервная система предприятия»
  11. 11. Лекция №3 Ключевые концепции архитектуры программного обеспечения Пример как не нужно делать  Facebook Architecture  http://www.slideshare.net/adityaagarwal/qcon 11
  12. 12. Лекция №3 Ключевые концепции архитектуры программного обеспечения АРХИЕТКТУРА 12
  13. 13. Лекция №3 Ключевые концепции архитектуры программного обеспечения Определение архитектуры 13 Архитектура ПО Software architecture заключается в наборе значительных решений об организации ПО  Выборе структурных элементов и их интерфейсов  Задании поведения системы , через определение взаимодействие этих элементов  Композиции этих структурных и динамических элементов в большие подсистемы  Архитектурном стиле который направляет организацию ПО From Unified Process (Jacobson, Booch, Rumbaugh)
  14. 14. Лекция №3 Ключевые концепции архитектуры программного обеспечения Определение архитектуры ISO/IEC/IEEE 42010:2011  Архитектуру системы «составляет все основополагающее в системе, рассматриваемой в ее связях с внешней средой»:  составные части (элементы) системы;  порядок сборки или взаимосвязей между системными элементами;  принципы организации или дизайна системы;  принципы управления эволюцией системы на стадиях ЖЦ (в том числе стадиях разработки).
  15. 15. Лекция №3 Ключевые концепции архитектуры программного обеспечения Что такое архитектура ПО ? 15 "Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled." – Eoin Woods
  16. 16. Лекция №3 Ключевые концепции архитектуры программного обеспечения Архитектурное решение и его обоснование 16
  17. 17. Лекция №3 Ключевые концепции архитектуры программного обеспечения Точки зрения и перспективы (Eoin Woods) 17 Система Архитектурный элемент Взаимосвязь Состоит из Архитектура Обладает Архитектурное описание Может иметь Описывает архитектуру дляЗаинтересованные лица Удовлетворяет потребности Связывает Проекция (View) Состоит из Точка зрения (Viewpoint) Соответствует Перспектива (perspective) УточняетсяУдовлетворяет Вопрос / Интерес Имеет Удовлетворяет
  18. 18. Лекция №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
  19. 19. Лекция №3 Ключевые концепции архитектуры программного обеспечения Проекция (View) Определение 19 Проекция (view) это представление одного или более структурных аспектов архитектуры которое иллюстрирует удовлетворение архитектурой одного или более интереса одного или более заинтересованных лиц. Лекция №7 Ключевые концепции архитектуры программного обеспечения
  20. 20. Лекция №3 Ключевые концепции архитектуры программного обеспечения Точки зрения ( viewpoints) 20 Определение: Точка зрения (viewpoint) это набор паттернов, шаблонов и соглашений по формированию одного типа проекции(view). Она определяет заинтересованных лиц чьи интересы она отражает и правила , принципы и виды моделей для формирования соответствующих проекций.
  21. 21. Лекция №3 Ключевые концепции архитектуры программного обеспечения Архитектурный фреймворк ISO 42010 21 MODAF, TOGAF, Kruchten’s 4+1 View Model, RM-ODP ..
  22. 22. Лекция №3 Ключевые концепции архитектуры программного обеспечения RUP – 4+1 22
  23. 23. Лекция №3 Ключевые концепции архитектуры программного обеспечения Примеры точек зрения (viewpoints) Архитектура прикладных систем 25 Функциональная (Functional Viewpoint) Информационная (Information Viewpoint) Конкуренция (Concurrency Viewpoint) Разработка (Development Viewpoint) Внедрение (Deployment Viewpoint) Эксплуатация (Operational Viewpoint)
  24. 24. Лекция №3 Ключевые концепции архитектуры программного обеспечения Архитектурные перспективы 26  Несмотря на то что совокупность всех проекций (view) системы описывает систему полностью , каждая из проекций является достаточно независимой.  Кроме того, большая часть атрибутов качества системы проявляются и влияют на несколько проекций.  Определение: Перспектива (perspective) это совокупность действий, приемов и руководств которые используются для представления реализации конкретного набора атрибутов качества которые требуют рассмотрения в нескольких архитектурных проекциях.
  25. 25. Лекция №3 Ключевые концепции архитектуры программного обеспечения Контекст Context 27 Описывает отношения, зависимости и взаимодействия между системой и ее окружением (людьми, системами и внешними организациями, с которыми она взаимодействует). Context
  26. 26. Лекция №3 Ключевые концепции архитектуры программного обеспечения Контекст Вопросы  Объем системы (Scope) и обязанности  Идентификация внешних объектов, используемых услугах и данных  Идентификация и обязанности внешних интерфейсов  Другие внешние взаимозависимости  Влияние системы на окружающую среду  Общая полнота, последовательность и согласованность 28
  27. 27. Лекция №3 Ключевые концепции архитектуры программного обеспечения Функциональная (Functional Viewpoint) 29  Описание функциональных элементов системы, их обязанности, интерфейсы и основные взаимодействия.  Функциональный взгляд является основой большинства описаний архитектуры и часто является первой частью описания, которую заинтересованные стороны пытаются читать.  Она направляет и формирует другие структуры системы, такие как структура информации, конкуренция и так далее. Functional
  28. 28. Лекция №3 Ключевые концепции архитектуры программного обеспечения Функциональная точка зрения Описание . (Functional Viewpoint) 30 Вопросы  функциональные возможности  внешние интерфейсы  внутренняя структура  функциональная философию дизайна Проблемы  плохо определены е интерфейсы  плохо распределенные обязанности  инфраструктура моделируется как функциональные элементы  перегруженный вид  диаграммы без определения элементов  Неправильный уровень детализации  «Бог» элементов  Слишком много зависимостей
  29. 29. Лекция №3 Ключевые концепции архитектуры программного обеспечения Информационная точка зрения (Information Viewpoint) 31  Описывает способ хранения, обработки , управления и распространения информации.  Конечная цель практически любого компьютера является работа с информацией, и эта точка зрения разрабатывет полное, но высокоуровневое представление статической структуры данных и информационных потоков.  Целью данного анализа является ответ на ключевые вопросы по содержанию, структуре, собственности, задержка, ссылок и переноса данных.
  30. 30. Лекция №3 Ключевые концепции архитектуры программного обеспечения Информационная точка зрения (Information Viewpoint). Вопросы 32  Структура информации  Цель и использования информации  Владение информацией  Идентификаторы и отображение  Волатильность семантики информации  Модели хранения информации  Информационный поток  Информационная целостность  Информации о качестве  Своевременность, задержки и возраст информации  Архивирование и долговременное хранение информации
  31. 31. Лекция №3 Ключевые концепции архитектуры программного обеспечения Информационная точка зрения (Information Viewpoint). Ч 3 33 Модели  Статические модели информационной структуры  Модели информационного потока  Модели жизненного цикла информации  Информационные модели владения  Анализ информации о качестве  Модели метаданных  Модели объема данных Проблемы  Несовместимость представлений  Неизбежное обновление из нескольких источников  Сложность интерфейса  Перегруженные центральные базы данных  Рассогласованность распределенных баз данных  Низкое качество информации  Чрезмерную задержку информации  Некорректные модели объема
  32. 32. Лекция №3 Ключевые концепции архитектуры программного обеспечения Конкуренция (Concurrency Viewpoint) 34 Описывает структуру параллелизма системы, отображение функциональных элементов в параллельные элементы, четко идентифицировать части системы, которые могут выполняться одновременно, и показывает, как это координируется и контролируется
  33. 33. Лекция №3 Ключевые концепции архитектуры программного обеспечения Разработка (Development Viewpoint) 35  Описывает архитектуру, которая поддерживает процесс разработки программного обеспечения.  Рассматривает аспекты архитектуры для заинтересованных сторон, участвующих в разработке, тестировании, обслуживании и совершенствовании системы.
  34. 34. Лекция №3 Ключевые концепции архитектуры программного обеспечения Внедрение (Deployment Viewpoint) 36  Описывает среды, в которых будет развернута система, в том числе охватывает зависимости системы в среде выполнения.  Эта точка зрения отражает  аппаратную среду, (прежде всего узлы обработки, сетевых соединений, а также объектов дискового пространства требуется)  технических требований окружающей среды для каждого элемента  а отображение элементов программного обеспечения в среду выполнения, которая будет выполнять их
  35. 35. Лекция №3 Ключевые концепции архитектуры программного обеспечения Эксплуатация (Operational Viewpoint) 37  Описывает, как система будет работать, администрироваться, и поддерживаться, когда она работает в своей производственной среде.  Для всех, кроме простейших систем, установка, управление и эксплуатация системы является важной задачей, которая должна быть продумана и спланирована во время разработки.  Целью операциональной точки зрения является определение общесистемных стратегий для решения оперативных вопросов заинтересованных сторон системы.
  36. 36. Лекция №3 Ключевые концепции архитектуры программного обеспечения Рекомендованная литература 38 Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives
  37. 37. Лекция №3 Ключевые концепции архитектуры программного обеспечения 39 http://www.slideshare.net/supercoban/ss-10348215
  38. 38. Лекция №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 ArchitectureSpecialisations Foundation (5-Pillars) Enterprise Architecture 1st – ALL architects should have the SAME foundation 2nd – Architects should specialise
  39. 39. Лекция №3 Ключевые концепции архитектуры программного обеспечения Итоги: Самое важное         41 http://www.slideshare.net/supercoban/ss-10348215
  40. 40. Спасибо за внимание Безуглый Дмитрий bdl@system-approach.ru
  41. 41. Лекция №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

×