Создание архитектуры
Во всех конкретных примерах мы делали упор на требования по качеству, предъявляемые к конструируемой системе, применяемые архитектором тактики и их архитектурные проявления. При этом процесс перехода от формулировки требований по качеству к архитектурно-проектному решению не может обойтись без проведения подробнейших исследований. Как бы то ни было, а процесс проектирования в его сегодняшнем варианте — это скорее искусство, чем наука, а потому его академическое уточнение обещает дать полезные результаты. Усовершенствовать процесс проектирования помогут ответы на ряд вопросов. ♦ Можно ли считать перечни сценариев реализации атрибутов качества и так- тик завершенными? Мы представили подобные перечни для шести атрибутов качества. Практически во всех случаях их следует дополнять новыми тактиками и сценариями. Кроме того, есть и другие атрибуты качества, которым также соответствуют определенные сценарии и тактики. В частности, не менее важными, чем рассмотренные атрибуты, представляются способность к взаимодействию и легкость построения. ♦ Каким образом выполнено сцепление сценариев и тактик? Сцепление в изложенном материале производится на уровне атрибутов. Иначе говоря, сценарий генерируется согласно таблице генерации для конкретного атрибута — скажем, производительности. Затем проводится анализ тактик, и из них отбираются те, которые с наибольшей вероятностью обеспечат достижение желаемого результата. Несомненно, существуют более совершенные механизмы. Рассмотрим для примера сценарий реализации производительности из примера с открывателем гаражной двери из главы 7 — «При обнаружении препятствия остановка движения двери должна быть выполнена в пределах 0,1 с». Стоит лишь задать несколько вопросов, и проблему отбора тактик можно будет решить более углубленно. Возможны ли обнаружение препятствия и остановка двери за 0,1 с в случае, если остальные элементы системы бездействуют? Если окажется, что такой возможности нет, к алгоритму обнаружения препятствия следует применить тактику «повышение вычислительной эффективности». Если ответ будет положительным, имеет смысл сформулировать ряд вопросов о состязательности. Ответы на них помогут выбрать планировщика. Если в результате исследований удастся оформить системный метод сцепления сценариев и возможных тактик, это будет большой успех. ♦ Можно ли прогнозировать результаты применения той или иной тактики? В сообществе программных инженеров есть свой Святой Грааль, который они активно ищут, — речь идет о возможности прогнозирования атрибутов качества системы до ее фактического конструирования. Один из методов решения этой задачи предполагает прогнозирование воздействия тактик. Применение тактик обусловливается (формальными и неформальными) аналитическими моделями различных атрибутов. У некоторых результаты вполне предсказуемы. К примеру, одна из тактик реализации модифицируемость предусматривает ведение управляемого конечным пользователем конфигурационного файла. С точки зрения модифицируемости результатом применения этой тактики является сокращение продолжительности изменения и размещения элемента конфигурации. Если первоначально она равна длительности размещения (в случае, если модификацию проводит разработчик), то в конце приближается к нулю (в худшем случае, становится равной продолжительности перезагрузки системы). Это — предсказуемый результат. Разработка подобных методик прогнозирования (равно как и углубление знаний о параметрах, для которых формулируются прогнозы) способна значительно приблизить перспективу создания систем с предсказуемыми атрибутами качества. ♦ Каким образом тактики сочетаются в рамках образцов? В примере с гаражной дверью мы выбрали тактики, а затем они чудесным образом соединились в образце. Здесь, опять же, требуется системный метод сочетания тактик, обеспечивающий прогнозируемость реакций атрибутов качества. Поскольку каждая тактика связана с предсказуемым изменением по части определенного атрибута качества, в рамках образцов можно подбирать компромиссные сочетания этих атрибутов. Вопрос о представлении и сочетании таких прогнозов при объединении тактик в образцы остается открытым. ♦ Какие инструментальные средства упрощают проведение процесса проектирования? По нашему мнению, стандартные блоки со временем будут увеличиваться, выражая более серьезную функциональность и более многочисленные атрибуты качества. Как эта тенденция повлияет на техническую базу? Можно ли будет, к примеру, встраивать тактики и их группировки в составе образцов в экспертные системы-помощники при автоматизации проектирования? ♦ Можно ли «вплетать» тактики в системы? Аспектно-ориентированная разработка программных средств направлена на разработку методов и инструментов реализации так называемых «пересекающихся» требований. Пересекающееся требование применимо сразу к нескольким объектам. К примеру, требование о диагностируемости автомобиля распространяется на все его узлы и, таким образом, пересекает требования, предъявляемые к ним по отдельности. Источниками пересекающихся требований выступают атрибуты качества, а методами реализации конкретных реакций — тактики. Правомерно ли причислять тактики к пересекающимся требованиям и подойдут ли для их удовлетворения методы и средства, разработанные сообществом аспектно-ориентированного программирования?
|