Современные информационные технологии / 3.Программное обеспечение

 

маг.т.н. Неборский С.Н.

Белорусский Государственный Университет Информатики и Радиоэлектроники,  Беларусь

Разработка обучающих программных средств на основе гибких методов

Гибкие методы разработки программных средств (ПС) – это набор сравнительной молодых методов разработки, цель которых – позволить создать ПС в срок, в рамках установленного бюджета, и, самое важное, именно таким, каким его хочет видеть заказчик [1]. Гибкие методы устанавливают первостепенной ценностью непосредственно реализацию требования к ПС. Все остальные активности (написание проектной документации, поддержание моделей архитектуры ПС и т.п.) считаются второстепенными [2]. Два первых постулата манифеста гибких методов гласят [3]:

-         наивысший приоритет отводится удовлетворению заказчика;

-         приветствуется изменение требований.

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

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

Для создания архитектуры обучающих ПС имеет смысл использовать гибкое моделирование. Получаемые модели обладают следующими свойствами [4]:

-         практичность – модели предоставляют практическую ценность;

-         понятность – модели доступны тем, для кого они предназначены, но не обязательно для всех;

-         точность и непротиворечивость;

-         достаточная детальность;

-         простота.

Гибкие методы разработки делают акцент на непосредственно реализации требований к ПС. Для эффективной реализации требований необходим набор определенных принципов и практических приемов. Именно поэтому в данной работе предлагается рассматривать и считаться с идеями экстремального программирования. В основе этого метода лежат следующие четыре принципа [5]:

-         коммуникация – всегда важно общение, в частности между разработчиком и пользователем;

-         простота – разрабатываемое ПС должно быть предельно простым;

-         обратная связь – необходимо предоставить возможность пользователям давать отзывы о ПС как можно раньше, и насколько это возможно часто;

-         требовательность к команде разработчиков, состоящей преимущественно из профессионалов.

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

Согласно разработке, ведомой функциями, функция – это такое требование, реализация которого запланирована и связана с определенной активностью по его реализации. Т.е. функции связывают требования с планированием. Разработка, ведомая функциями, предполагает наличие жестко определенных временных рамок, которые отводятся на реализацию набора функции. Эти временные рамки, набор функций (запланированных к реализации требований), их приоритеты и определяют итерацию в данном методе [2].

Суммируя все вышесказанное, в данной работе предлагается использовать следующие гибкие методы для разработки обучающих ПС:

- гибкое моделирование, что позволяет создать архитектуру ПС;

- экстремальное программирование, что позволяет эффективно разрабатывать ПС;

- разработку, ведомую функциями, что дает управление проектом.

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

 

Литература:

1.     Carmichael A., Haywood D. Better Software Faster, Prentice-Hall, NJ, 2002 – 384pp.

2.     Hunt J. Agile Software Construction – Springer-Verlag London Limited, 2006 – 254pp.

3.     Beck K., Beedle M., Bennekum A., Cockburn A., Cunningham W., Fowler M., Grenning J., Highsmith J., Hunt A., Jeffries R., Kern J., Marick B., Martin R., Mellor S., Schwaber K., Sutherland J., Thomas D. Манифест гибкой разработки [электронный ресурс] / agilemanifesto – 2007. Режим доступа: http://agilemanifesto.org/. – Дата доступа: 27.11.2008.

4.     Ambler S., Jeffries R. Agile Modeling: Effective Practices for Extreme Programming and the Unified Process. Wiley; 1st edition, 2002 – 224pp.

5.     Beck K., Andres Ch. Extreme Programming Explained: Embrace Change - 2 ed., Addison Wesley, 2004 – 224pp.