
PETROV / INFOSYSTEMS. How to Measure Software Architecture [1.01]
.pdf

РАЗРЕШИТЕ ПРЕДСТАВИТЬСЯ
АЛЕКСЕЙ ПЕТРОВ
тренер и консультант, эксперт-практик в области анализа и моделирования бизнес-процессов, системного анализа, архитектуры ПО, проектирования средств и методов взаимодействия и БД
2013:
докладчик конференций Stratoplan TECH & BUSINESS Summit
(поток «Проектирование и анализ») и DEV Labs C++
2012 — наст. вр.:
преподаватель совместного проекта Mail.Ru Group и НИУ МГТУ им. Н.Э. Баумана
2012:
участник запуска этапа работ по внедрению системы анализа оперативных данных на базе SAP BusinessObjects
2011:
автор серии курсов по моделированию бизнес-процессов, БД и постановке внутренней разработки
2005 — 2011:
участник более 10 проектов внедрения корпоративных ИС, моделирования бизнес-процессов и ИТ-аудита организаций
2

МЕТОДИЧЕСКИЕ И ОРГАНИЗАЦИОННЫЕ ПОЛОЖЕНИЯ
Цели семинара
1 |
Семинар посвящен вопросам качественной и количественной |
|
оценки архитектуры программных систем в целях установления ее |
||
|
||
|
качества, оптимизации процессов разработки архитектуры и |
|
|
устранения «технического долга» проектов разработки таких систем |
|
Предварительная подготовка |
2 |
Владение основными элементами одного из рабочих языков |
тренинга (C++, Java); |
|
|
знакомство с проблематикой и каноническими шаблонами |
|
объектно-ориентированного проектирования (GoF, GRASP). |
|
Перспективы |
3 |
Семинар является вводным и готовит к прохождению тренинга |
|
«Управление качеством объектно-ориентированной архитектуры и |
программного кода»
НА ВРЕМЯ ПРОВЕДЕНИЯ СЕМИНАРА, ПОЖАЛУЙСТА, ПЕРЕВЕДИТЕ ЛИЧНУЮ ТЕХНИКУ И СРЕДСТВА СВЯЗИ В БЕЗЗВУЧНЫЙ РЕЖИМ. СПАСИБО!
3

О ЧЕМ ПОЙДЕТ РЕЧЬ?
|
Архитектура информационной системы |
|
Из чего складывается архитектура ИС и что делает ее разработку |
1 |
болезненной процедурой? |
|
Архитектура «в малом» и архитектура «в большом» |
|
Почему архитектура — не документ? |
«Технический долг»: от причины до 2 устранения
«Технический налог»
Статический анализ и рефакторинг программной архитектуры и исходного кода
3 |
Модели и атрибуты качества программной архитектуры |
|
|
|
Метрики объектно-ориентированной архитектуры и их взаимосвязь |
|
с атрибутами качества |
4

Договоримся о терминах Архитектура и ее описание
Место и роль архитектурного описания в инженерии ПО
Почему архитектура — не документ?
Архитектура «в большом» и «в малом»
Отдельные метрики ОО-архитектуры
5

ДОГОВОРИМСЯ О ТЕРМИНАХ: АРХИТЕКТУРА
|
ANSI/IEEE 1471-2000 |
"Architecture is the fundamental organization of a system |
|
embodied in its components, their relationships to each other, |
|
|
and to the environment, and the principles guiding its design and |
|
evolution" |
|
UML 1.5 |
|
"[Architecture is] the organizational structure and associated |
behavior of a system. An architecture can be recursively |
|
decomposed into parts that interact through interfaces, |
|
|
relationships that connect parts, and constraints for assembling |
|
parts. Parts that interact through interfaces include classes, |
|
components and subsystems" |
|
Martin Fowler et al. Patterns of Enterprise |
|
Application Architecture (Addison Wesley, 2002) |
"… if you find that something is easier to change than you once |
|
|
thought, then it's no longer architectural. In the end architecture boils |
|
down to the important stuff—whatever that is" |
6

МИФЫ И РЕАЛЬНОСТЬ: АРХИТЕКТУРА И ЕЕ ОПИСАНИЕ
Архитектура системы
|
Основополагающие принципы организации — «все |
|
1 |
важное о системе, рассматриваемой в ее связях с |
|
внешней средой» [ISO/IEC/IEEE 42010:2011] |
||
|
||
|
e.g. Составные элементы системы, порядок сборки |
|
|
(взаимосвязей), принципы организации (дизайна) |
|
|
Архитектурное описание |
|
2 |
Результат деятельности архитектора, отражение |
|
архитектуры системы, основа создания подсистем |
||
|
Может отсутствовать / существовать в нескольких |
|
|
вариантах |
|
Цель проектирования архитектуры |
3 |
Синтез решения, удовлетворяющего требованиям |
|
к системе |
7

МЕСТО И РОЛЬ АРХИТЕКТУРНОГО ОПИСАНИЯ В СОВРЕМЕННОЙ ИНЖЕНЕРИИ ПО
Заинтересованная |
|
|
|
|
Архитектурное |
||
сторона |
|
|
|
|
описание (AD) |
||
|
|
|
|
|
|
|
|
|
1..* |
|
|
|
|
|
0..* |
|
проявляет интерес к ▼ |
|
|
|
отражает ▼ |
||
|
1..* |
|
|
|
|
|
1..* |
|
|
|
|
обладает ► |
|
|
|
Система |
|
|
|
Архитектура |
|||
|
|
|
|
||||
0..* |
|
|
0..* |
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
0..* |
|
|
|
|
|
|
|
расположена в ▼ |
|
|
|
|
|
|
|
1 |
|
|
Заинтересованные стороны, их интересы, |
|||
|
|
|
|
группы и методы описаний, виды моделей, |
|||
|
|
|
|
||||
Внешняя среда |
|
модели архитектуры, архитектурные решения и |
|||||
|
|
обоснования объединяются понятием |
|||||
|
|
|
|
||||
|
|
|
|
|
элемент AD (англ. AD element). |
||
|
|
|
|
|
8

ПОЧЕМУ АРХИТЕКТУРА — НЕ ДОКУМЕНТ?
Архитектура |
≠ |
Архитектурное |
|
||
системы |
|
описание |
Независимо от архитектурного подхода:
«4 + 1», RM-ODP, TOGAF и др.
Независимо от методологии разработки:
DDD, TDD, Scrum и др.
9

ХАРАКТЕРИСТИКИ ПРОГРАММНОЙ СИСТЕМЫ С ИЗВЕСТНОЙ АРХИТЕКТУРОЙ
Границы
и точки расширения
Внешние
(«пользовательские»)
внутренние
(«архитектурные»)
атрибуты
качества
Бизнесметафора
OLAP vs. OLTP Data vs.
Processes
Выбранная метафора (стиль) определяет качественные и количественные показатели архитектуры
Архитектурная
метафора
с метриками дизайна
Components vs. Services
Sync. vs. Async
10