Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Что нового во втором издании




Заключение

Влияние коммерческих компонентов

Архитектура в рамках жизненногоцикла

Создание архитектуры

Снова архитектурно-экономическийцикл

Дополнительная литература

Заключение

Пример приложения ASEILM

Компонентное проектирование как поиск

Архитектурное несоответствие

Воздействие компонентов наархитектуру

Дискуссионные вопросы

Дополнительная литература

Заключение

Механизм реализации атрибутов качества в архитектуре Luther

Глава 18. Конструирование систем из коробочных компонентов

Методики исправления интерфейсных несоответствий

Методики обнаружения интерфейсных несоответствий

Методики предотвращения интерфейсных несоответствий

Ансамбль Miva Empressa

Ансамбль Java-сервлетов

Глава 19. Будущее программной архитектуры

Сокращения

Библиография

Алфавитный указатель

 


Предисловие

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

Накопленный опыт проектирования и анализа крупных и сложных, преимущественно программных, систем привел нас к выводу о том, что, в конечном итоге, конструкцию системы, ее успех или провал обусловливают коммерция и организация. Системы конструируются согласно реальным (или предполагаемым, как это происходит в случае с готовыми продуктами) требованиям компаний. Именно они определяют такие характеристики системы, как производительность, готовность, защита, совместимость с другими системами, а также способность приспосабливаться к разного рода изменениям в течение своей жизни. Желание удовлетворить эти цели за счет соответствующих свойств программного продукта навязывает программным архитекторам определенные конструктивные решения.

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

♦ Желание наладить внутри компании быстрый и беспрепятственный обмен документами, сведя централизованное управление к минимуму, привело к внедрению программной архитектуры Всемирной паутины.

♦ Высочайшие требования по безопасности при управлении воздушным движением привели одну из компаний к осознанию необходимости построения системы с архитектурой, ориентированной на достижение сверхготовности.

♦ Распределение подсистем пилотажного тренажера среди удаленных разработчиков обусловило создание архитектуры, ориентированной на постепенную интеграцию этих подсистем.

♦ Потребность в организации одновременных поставок многочисленных продуктов побудила (скорее даже заставила) одну из компаний внедрить

архитектуру, позволившую структурировать ряд сложных, связанных между собой программных систем в виде единой линейки продуктов.

♦ Необходимость в стандартизации архитектурных методик, применяемых в различных организациях, с одной стороны, и признанных сообществом в целом — с другой, определила появление таких инфраструктур, как J2EE и EJB.

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

С другой стороны, все вышеперечисленные факторы иногда испытывают обратное влияние программных архитектур, и мы намерены показать, как это происходит. Если отдельный продукт или набор продуктов оказывается успешным, то другие продукты начинают строиться по его образу и подобию. Эта мысль прекрасно иллюстрируется конкретным примером программного обеспечения, на котором основывается Всемирная паутина. До ее появления сетевым технологиям и доступности данных уделялось значительно меньше внимания, а вопросы защиты информации беспокоили лишь отдельные организации — в основном финансовые институты и правительственные учреждения.

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

По нашему мнению, во всем, что касается качества, сроков и стоимости, программная архитектура предоставляет максимальную отдачу на вложенный капитал. Архитектура появляется на ранней стадии жизненного цикла продукта, и от ее качества зависит результат всех последующих этапов: разработки системы, интеграции, тестирования и модификации. Непродуманная архитектура дискредитирует сам остов системы; мелких исправлений в такой ситуации недостаточно — приходится все переделывать. В сравнении с другими операциями разработки анализ архитектуры довольно дешев. Итак, эффективность вложений в разработку архитектуры обусловливается, во-первых, существенными нисходящими последствиями принятия архитектурных решений, а во-вторых, относительной экономичностью проверки и наладки архитектуры.

Кроме того, нам кажется, что наилучшие возможности по многократному применению появляются именно в архитектурном контексте. Ведь артефакты, предполагающие повторное использование, не ограничиваются компонентами. Благодаря многократному применению архитектуры создаются семейства систем, а те, в свою очередь, обусловливают появление новых организационных структур и возможностей ведения бизнеса.

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

Помимо конкретных примеров в книге предлагается ряд методик проектирования, производства и оценки программной архитектуры. Мы рассмотрим принципы интерпретации требований по качеству в контексте архитектуры, а также приемы построения вариантов архитектуры, отвечающих этим требованиям. Методы представления и реконструкции архитектуры мы намерены оценивать как средства описания архитектуры и проверки ее на правильность. Поговорим мы и о принципах анализа и оценки адекватности архитектуры относительно поставленных перед ней целей. Все эти принципы взяты из нашего собственного опыта работы с различными программными системами, а также из аналогичного опыта наших коллег по Институту программной инженерии. Некоторые из этих систем, насчитывающих миллионы строк кода, разрабатывались большими группами программистов на протяжении нескольких лет.

Обсуждаемые в книге экономические вопросы (в частности, влияние архитектуры на конкурентоспособность компаний и срок вывода семейства продуктов на рынок) представлены без особых изысков и специального жаргона. Как- никак, мы разработчики программ, а не экономисты. Посему технические разделы раскрываются значительно глубже. В них мы стараемся отразить последние достижения в области программной архитектуры, акцентировать внимание на «точках» практической реализации исследовательских усилий. Экстраполяции теоретических основ на конкретные задачи служат многочисленные примеры. Для того чтобы осознать их ценность, требуется довольно серьезная подготовка в компьютерных науках, разработке программных средств или в смежных сферах. С другой стороны, мы постарались выстроить изложение конкретных примеров таким образом, чтобы избавить читателя от излишних тонкостей соответствующих прикладных областей. Так, для того чтобы сделать некоторые выводы из примеров, связанных с системой управления воздушным движением и моделированием условий полета, совершенно не обязательно быть летчиком.

Наши задачи с момента первого издания не изменились, однако с того времени в рассматриваемой области появились новые разработки и новое понимание основ программной архитектуры. Новшества из первой категории отражены через новые конкретные примеры, а из второй — через введение новых глав и уточнение старых. Определенное влияние на новый вариант текста оказали те книги, над которыми нам довелось работать в промежутке между появлением двух изданий: «Документирование программной архитектуры» (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). Все конкретные примеры, таким образом, характеризуются с позиции задач обеспечения качества, определивших конструкции соответствующих систем, и реализованных архитектурой принципов их решения.

Работая над вторым изданием, мы, как и в прошлый раз, прекрасно отдавали себе отчет в том, что основную аудиторию настоящей книги составляют специалисты-практики. Исходя из этого, основное внимание было сосредоточено на материале, неоднократно нашедшем применение в промышленности, а также на перспективных, с нашей точки зрения, разработках.

Очень хочется надеяться, что от чтения второго издания вы получите не меньше удовольствия, чем мы получили от его написания!




Поделиться с друзьями:


Дата добавления: 2015-04-25; Просмотров: 408; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.