Что нового во втором издании
Наши задачи с момента первого издания не изменились, однако с того времени в рассматриваемой области появились новые разработки и новое понимание основ программной архитектуры. Новшества из первой категории отражены через новые конкретные примеры, а из второй — через введение новых глав и уточнение старых. Определенное влияние на новый вариант текста оказали те книги, над которыми нам довелось работать в промежутке между появлением двух изданий: «Документирование программной архитектуры» (Documenting Software Architectures), «Оценка программной архитектуры: методы и примеры» (Evaluating Software Architectures: Methods and Case Studies) и «Линейки программных продуктов: теория и практика» (Software Product Lines: Principles and Practice). Эти Работы, равно как и другие выполненные нами в последнее время технические и исследовательские задачи, наложили на содержание второго издания весьма ощутимый отпечаток. В нем, в частности, отражены все основные результаты разработок в сферах анализа, проектирования, реконструкции и документирования программной архитектуры, полученные с момента выхода первого издания. Анализ архитектуры к настоящему моменту превратился в обширную область знаний с профессиональными методами; с учетом этого обстоятельства в третьей части книги мы ввели новую главу о методе анализа компромиссных архитектурных решений (Architecture Tradeoff Analysis Method, ATAMSM). Многие промышленные предприятия уже приняли АТАМ в качестве стандартной методики оценки программной архитектуры. Область архитектурного проектирования со времени выхода первого издания также подверглась значительным изменениям. В различных главах настоящей работы рассматриваются принципы фиксации требований по качеству, концепции их выполнения посредством малых и крупномасштабных архитектурных решений (тактик и образцов, соответственно) и метод проектирования, отражающий способы их выполнения. Требованиям по качеству, методам их удовлетворения и атрибутному методу проектирования (Attribute Driven Design Method, ADD) посвящены три новых главы. Основной методикой фиксации недокументированной архитектуры является ее реконструкция, или обратная разработка. Она используется в рамках конструкторских и аналитических проектов и учитывается при принятии решения о выборе того или иного основания для реконструкции систем. В первом издании мы ограничились упоминанием о наборе инструментов Dali и кратким изложением вариантов его применения в контексте обратной разработки; теперь этой теме отведена отдельная глава. В самое последнее время значительное развитие получила еще одна область — документирование программной архитектуры. В момент публикации первого издания унифицированный язык моделирования (Unified Modeling Language, UML) только начинал набирать обороты. Теперь, когда он полностью утвердился в своем качестве, в книге появилось множество новых диаграмм. Что еще важнее, решения о фиксации информации для архитектуры уже не ограничиваются простым выбором нотации. Документированию архитектуры во втором издании посвящена целая глава. Сведения об эффективном производстве различных систем на основе единой архитектуры представлены в полностью переработанной главе о линейках программных продуктов. Особое внимание в ней уделяется связке архитектуры с производственными задачами предприятий — ведь линейки продуктов (основанные на программной архитектуре) способны на порядок снизить издержки, повысить качество и ускорить вывод продуктов на рынок. В современных экономических условиях на первый план выходят технологии конструирования распределенных и веб-систем. Эта тенденция отражена в обновленной главе о Всемирной паутине; примеры, взятые из веб-систем, мы приводим в главах о методе АТАМ и о построении систем на основе компонентов; старый конкретный пример с использованием обобщенной архитектуры построения брокеров объектных запросов (Common Object Request Broker Architecture, CORBA) заменен новым, построенным на основе системы корпоративных JavaBeans (Enterprise JavaBeans, EJB); кроме того, появился дополнительный конкретный пример беспроводной системы EJB — она предназначена для специалистов по обслуживанию, оснащенных переносными компьютерами. Наконец, одна из новых глав посвящена относительно детальному рассмотрению финансовых аспектов программной архитектуры. В ней мы описываем новый метод анализа стоимости и эффективности (Cost Benefit Analysis Method, СВАМ) — с его помощью при принятии архитектурных решений учитываются не только вышеозначенные технические, но и экономические критерии. Аналогично первому изданию, объединяющей идеей в настоящей книге является архитектурно-экономический цикл (Architecture Business Cycle, ABC). Все конкретные примеры, таким образом, характеризуются с позиции задач обеспечения качества, определивших конструкции соответствующих систем, и реализованных архитектурой принципов их решения. Работая над вторым изданием, мы, как и в прошлый раз, прекрасно отдавали себе отчет в том, что основную аудиторию настоящей книги составляют специалисты-практики. Исходя из этого, основное внимание было сосредоточено на материале, неоднократно нашедшем применение в промышленности, а также на перспективных, с нашей точки зрения, разработках. Очень хочется надеяться, что от чтения второго издания вы получите не меньше удовольствия, чем мы получили от его написания!
|