КАТЕГОРИИ: Архитектура-(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) |
Затраты 10 страница
При внедрении методики линеек программных продуктов необходимо проявить упорство. На самом деле, оно решает практически все перечисленные выше проблемы. Наиболее эффективно с задачей, как правило, справляется лидер, который (по определению) настойчиво аргументирует преимущества линеек продуктов, преодолевает скептицизм и помогает преодолевать препятствия, возникающие на пути достижения поставленной цели. -РСС 14.4. Варианты архитектуры линеек продуктов Из всех элементов репозитария базовых средств наиболее важной является архитектура. Для того чтобы задуманная линейка программных продуктов оправдала возлагаемые на нее надежды, необходимо разделить ее элементы на две группы: 1) те, которые останутся неизменными у всех членов семейства, и 2) те, которые, как предполагается, будут варьировать. Выражается эта двойственность в программной архитектуре, которая по сути своей является абстракцией, допускающей множественность экземпляров; ее концептуальная ценность во многом обусловливается тем, что она позволяет сосредоточиваться на основах проектного решения, распространяющегося на ряд различных реализаций. Архитектура изначально ориентирована на разделение постоянных и изменяемых элементов. В рамках линейки программных продуктов архитектура выражает неизменяемые аспекты. С другой стороны, архитектура линейки продуктов не ограничивается элементарной дихотомией — она устанавливает набор явно допустимых вариаций. Этим она отличается от традиционной архитектуры, в которой большинство экземпляров зависят от реализации задач (конкретной) системы по качеству и поведению. Таким образом, в обязанности архитектуры входит установление допустимых вариаций и обеспечение встроенных механизмов их реализации. Вариации эти иногда довольно существенны. Программные продукты, участвующие в линейке, существуют параллельно и потенциально различаются по поведению, атрибутам качества, платформе, сети, физической конфигурации, промежуточному программному обеспечению, масштабу и т. д. Архитектор, работающий над линейкой программных продуктов, должен выполнить три задачи: ♦ выявить изменяемые параметры; ♦ обеспечить поддержку изменяемых параметров; ♦ оценить архитектуру на предмет пригодности к построению линейки продуктов. Установление изменяемых параметров Установление параметров изменчивости относится к рутинным операциям. Поскольку вариативность продукта проявляется очень по многих отношениях, возможность выявления точек изменчивости сохраняется на всех этапах процесса разработки. Одни определяются на этапе выявления требований к линейке продуктов, другие — на этапе архитектурного проектирования, третьи — во время реализации. Кроме того, изменяемые параметры иногда выявляются в ходе реализации второго продукта линейки (и всех последующих продуктов). Среди изменяемых параметров, обнаруживаемых в процессе выявления требований, встречаются характеристики, платформы, пользовательские интерфейсы, атрибуты качества и даже целевые рынки. Некоторые из них взаимозависимы. К примеру, пользовательский интерфейс может быть привязан к предполагаемой платформе, которая, в свою очередь, может зависеть от конкретного целевого рынка. Изменяемые параметры, обнаруженные в процессе архитектурного проектирования, можно рассматривать либо как альтернативы для реализации вариаций, установленных во время выявления требований, либо как нормальные проектные вариации (дело в том, что отдельные решения откладываются вплоть до поступления дополнительной информации). В любом случае, употребление термина «изменяемый параметр» вполне обоснованно — в архитектуре действительно есть точки, в которой вариации локализуются. Обеспечение изменяемых параметров Как правило, механизм реализации экземпляров в традиционных вариантах архитектуры сводится к модифицированию кода. В рамках линеек программных продуктов архитектурные средства обеспечения изменчивости отличаются гораздо большим разнообразием. ♦ Включение или пропуск элементов. Соответствующее решение отражается в процедурах конструирования различных продуктов. Кроме того, компиляцию реализации элемента можно проводить условно — в зависимости от некоего параметра, обозначающего его наличие или отсутствие. ♦ Включение разного количества реплицированных элементов. К примеру, для «мощных» вариантов разумно ввести дополнительные серверы — таким образом, их количество следует оставить неопределенным и обозначить как изменяемый параметр. Точное количество серверов в отношении конкретного продукта в таком случае будет устанавливаться файлом сборки. ♦ Отбор версий элементов с единым интерфейсом, но разными характеристиками поведения и атрибутами качества. Операция эта проводится в периоды компиляции, производства или (в некоторых случаях) прогона. В качестве механизмов отбора выступают статические библиотеки, в которых связывание внешних функций производится после периода компиляции, и динамически подключаемые библиотеки, которые, ничем не отличаясь от статических по критерию гибкости, откладывают принятие решений до периода прогона, а при его наступлении исходят из контекста и условий пополнения. Сменить реализацию функций с известными именами и сигнатурами можно путем замены таких библиотек. Посредством перечисленных механизмов на архитектурном уровне проводятся массовые изменения. Допускается введение и других механизмов, направленных на модификацию аспектов конкретных элементов. Под эту категорию, в частности, подпадает механизм редактирования исходного кода. Впрочем, в ней числятся и более изощренные методики. ♦ В объектно-ориентированных системах изменчивость достигается за счет специализации или обобщения конкретных классов. Учитывать возможность написания (по мере необходимости) специализаций для различных продуктов следует еще на этапе составления классов. ♦ Встраивание точек расширения в реализацию элемента. Они помогают безболезненно вводить новые варианты поведения и дополнительную функциональность. ♦ Реализовать изменчивость можно путем введения в элемент, подсистему или в совокупность подсистем параметров периода производства, которые через установку ряда значений позволяют конфигурировать продукт. ♦ Рефлексией называется способность программы управлять данными о себе, своей среде исполнения и состоянии. Рефлексивные программы могут корректировать собственное поведение в зависимости от контекста. ♦ Перегрузка способствует повторному использованию именованной функциональности с различными типами. С одной стороны, она увеличивает объем повторно используемого кода, но с другой — усложняет его и снижает понятность. Само собой разумеется, что документацию (см. главу 9) в рамках линейки продуктов необходимо составлять для всех вариантов архитектуры: для того, что хранится в фонде базовых средств, и для тех, на основе которых выстраиваются конкретные продукты (в последнем случае акцент следует делать на степени изменения по сравнению с архитектурой линейки продуктов). В документации по архитектуре линейки продуктов нужно четко указывать и логически обосновывать (например, определением области действия) все изменяемые параметры. Кроме того, в ней следует описывать процесс конкретизации архитектуры — иначе говоря, расписывать применение изменяемых параметров. Теоретически, каждый параметр изменчивости лучше описывать отдельно, однако на практике далеко не все вариации относятся к числу допустимых. Некоторые из них остаются невостребованными или (что еще хуже) приводят к возникновению ошибок; таким образом, в документации должны быть отражены все варианты связывания вариаций — как правильные, так и неправильные. Документацию архитектуры отдельного проекта можно описать в терминах приращения или связывания изменяемых параметров — например, указать, что архитектура продукта № 16 предполагает введение трех серверов, шестидесяти четырех клиентских рабочих станции, двух баз данных, высокоскоростной версии графического элемента с низким разрешением и нулевого шифрования в генераторе сообщений.
Дата добавления: 2015-04-25; Просмотров: 380; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |