≪
≫

Предисловие

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

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

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

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

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

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

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

Данная монография является вторым изданием, переработанным и дополненным.

 
Посмотреть оригинал