Aleksandr Penskoi

Logo

Associate Professor
at SE&CS Faculty
at ITMO University
Russia


Associate Professor
at HDU-ITMO Joint Institute
China

View My GitHub Profile

5 October 2021

Комментарии к Paul Clements at all. 'Documenting Software Architectures. Views and Beyonds'

by Aleksandr Penskoi

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

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

Prologue: Software Architectures and Documentation (~50 стр.) – пролистать как журнал (пробежаться по всем заголовкам, случайным абзацам и присмотреться к тому, что показалось странным или интересным, посмотреть картинки и таблички). Подробно и детально рассказывает, что такое архитектура, кому и зачем она нужна, критерии качества и правила описания. Вводятся ключевые понятия. Стоит внимательно прочитать:

Part 1 A Collection of Software Architecture Styles (~150 стр.) – долгое, подробное и нудное описание разных архитектурных стилей, которые могут комбинироваться между собой в относительно свободном виде под текущую задачу (как именно – будет позже).

Part 2 Beyond Structure: Completing the Documentation (~95 стр.) – значительно более пространное (по сравнение с частью 1) описание того, что должно содержать описание архитектуры и в каком виде. Как она может принести пользу и понимание читателю.

Part 3 Building the Architecture Documentation (~90 стр.) – пролистать как журнал. Раздел делает попытку дать совет о том, а как, собственно, описать архитектуру используя всё обозначенное выше, что делать и почему.

Epilogue: Using Views and Beyond with Other Approaches (~30 стр.) – данная книга в некотором смысле стоит особняком по отношению к существующим инструментам документирования. В этом разделе делается попытка сопоставить описанное с существующим в области.

Appendix A UML—Unified Modeling Language
Appendix B SysML—Systems Modeling Language
Appendix C AADL—The SAE Architecture Analysis and Design Language

(~40 стр.) Рассматривает конкретные инструменты для документирования архитектуры через призму представлений и архитектурных стилей. Внимательно пролистать.