double arrow

Пользуйтесь модульными архитектурами

Управляйте требованиями

Сложность управления требованиями программных систем состо­ит в их динамичности. В процессе развития проекта они могут измениться. Более того, определение действительных требований системы — не­обходимых для достижения экономических и технических целей системы — является непрерывным процессом. Целиком определить системные требования до начала процесса разработки можно только для тривиальных систем. Действительно, при ви­доизменениях новой или модернизированной системы меняется и понимание поль­зователем требований к ней.

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

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

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

Системная архитектура включает решения относительно

• организации программной системы;

• выбора структурных элементов и их интерфейсов при формировании системы;

• поведения этих структурных элементов, обусловленного их совместной работой;

• формирования из структурных элементов и линий их поведения постепенно укрупняющихся подсистем;

• архитектурного стиля, направляющего структуру, состоящую из элементов и их интерфейсов, а также их совместной работы и объединения.

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

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

Важным подходом к архитектуре программного обеспечения является модульная разработка (component-based development— CBD), позволяющая повторно использо­вать или настраивать компоненты из множества коммерчески доступных источников. Модель компонентных объектов (component object model - СОМ) корпорации Micro­soft, архитектура CORBA (Common Object Request Broker Architecture) группы Object Management Group и Enterprise JavaBeans (EJB) от компании Sun Microsystems — вот примеры распространенных и широко поддерживаемых платформ, на которых мо­жет использоваться модульная архитектура. Компоненты де­лают возможным повторное использование в значительных масштабах, позволяют системам складываться из существующих частей, готовых частей от сторонних про­изводителей и нескольких новых, которые относятся к определенным областям и объединяют остальные части.

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

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

1. Модули способствуют эластичности архитектуры.

2. При внесении изменений модульная структура позволяет явно разделить обя­занности между элементами системы.

3. Благодаря стандартизованным конструкциям (таким, как СОМ+, CORBA и EJB) и коммерчески доступным компонентам возможно повторное использование системы.

4. На основе модулей естественным образом организовывается управление кон­фигурацией.

5. Средства визуального моделирования автоматизируют модульную разработку.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: