Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Архитектура и проектирование программных систем

Как появляется архитектура. Кто и что влияет иа архитектуру

Любая архитектура является результатом принятия ряда экономических и технических решений [9]. Эти факторы влияния играют свою роль в процессе проектирования, а их конкретная реализация обусловливается средой, в которой архитектура должна работать. Архитектор, которому для проектирования системы отводятся сжатые сроки в реальном времени, принимает одни проектные решения. Тот же архитектор, не стесненный временными рамками, принимает уже другие решения. Еще один ряд решений принимается в ходе разработки системы вне реального времени. Даже если архитектору предъявляют те же требования, предоставляют то же оборудование, программное обеспечение и тот же штат, что и пять лет назад, сегодня, скорее всего, он будет принимать новые решения.

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

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

Желательно, чтобы у системы были такие свойства, как высокая производительность, надежность, готовность, совместимость с различными платформами, умеренное потребление памяти, возможность использования в сети, безопасность, модифицируемость, практичность, способность взаимодействия с другими системами и приемлемое поведение. Именно из этих свойств складывается архитектура. От этих ее свойств зависит, понравится ли система заинтересованным лицам.

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

2. Влияние на архитектуру оказывает компания-разработчик. Воздействие компании-разработчика не исчерпывается доработкой совместно с заказчиком требований, предъявляемых к системе. На архитектуру оказывают влияние структура и характер организации компании-разработчика [9]. Например, если в компании достаточно много программистов, специализирующихся на клиент-серверных технологиях, то весьма вероятно, что руководство компании будет настаивать на разработке клиент-серверной архитектуры.

Факторы влияния, действующие в рамках компании-разработчика, делятся на три группы: краткосрочные экономические, долгосрочные экономические и организационные. Остановимся на краткой характеристике этих факторов.

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

Следуя своим стратегическим задачам, компании делают долгосрочные инвестиции в инфраструктуру. В таком случае предполагаемая система мыслится как одно из средств финансирования и расширения этой инфраструктуры.

Определенное влияние на программную архитектуру оказывает организационная структура компании-разработчика. Л. Басс [9] приводит пример разработки системы моделирования условий полета для ВВС

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

  • 3. Влияние на архитектуру оказывают опыт и привычки архитекторов. Если у архитектора есть опыт применения того или иного архитектурного решения, то, скорее всего, он будет его использовать в последующей работе. С другой стороны, если предыдущие попытки применения того или иного решения были неудачны, архитектора будет трудно убедить использовать это решение вновь. Решения в арсенале архитектора появляются по мере повышения образовательного уровня и накопления опыта использования архитектурных образцов и обращения с системами, которые работали плохо или особенно хорошо. Кроме того, многие архитекторы имеют обыкновение экспериментировать с новыми образцами архитектуры и методиками, о которых они узнают из различных источников.
  • 4. Влияние на архитектуру оказывает техническая база. Подготовка и опыт архитектора, в частности, проявляются в его работе с технической базой. Определенное воздействие на архитектуру оказывают существующие в настоящее время технические средства. Здесь может идти речь как о методах работы, принятых в данной отрасли, так и о приемах программной инженерии, распространенных в профессиональном сообществе, в которое входит архитектор.
  • 5. На архитектуру оказывает влияние ее окружение. Система размещается в некотором окружении, и это окружение оказывает влияние на архитектуру. Окружение определяет границы, в которых должна работать система, а это влияет на архитектуру. Факторы окружения, влияющие на архитектуру, - это миссия бизнеса, которую будет поддерживать архитектура; заинтересованные в системе лица; внутренние (стандарты организации) и внешние (необходимость взаимодействия с внешней системой) технические ограничения.
 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Пред   СОДЕРЖАНИЕ   След >
 

Популярные страницы