double arrow

Разрабатывайте итеративно


Проблемы в процессе разработки программного обеспечения

Организация процесса разработки ПО

Лекция 12

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

• Неточное понимание требований конечных пользователей

• Неспособность работы в условиях меняющихся требований

• Разрабатываемый продукт состоит из несовместимых модулей

• Программное обеспечение трудно поддерживать или расширять

• Позднее обнаружение существенных изъянов проекта

• Плохое качество программного обеспечения

• Неприемлемая производительность

• Каждый сотрудник занимается чем-то своим, причем непонятно, кто, когда, где и зачем что-либо меняет

• Ненадежный процесс создания-выпуска ПО

Большинство неудач происходит вследствие сочетания следующих основных причин.

• Неумелое управление специальными требованиями

• Неопределенная и неточная связь

• "Хрупкая" архитектура

• Чрезмерная сложность

• Необнаруженные противоречия в требованиях, проектах и реализациях




• Недостаточное тестирование

• Субъективная оценка состояния проекта

• Неспособность справиться с реализовавшимся риском

• Неуправляемое распространение изменений

• Недостаточная автоматизация

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

Советы по органи­зации производственных процессов можно сформулировать следующим образом.

1. Разрабатывайте итеративно

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

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

4. Используйте визуальное моделирование

5. Осуществляйте проверку качества

6. Следите за изменениями

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

Основной проблемой этого подхода является рост риска со временем; так что устранять ошибки предыдущих этапов становится слишком дорого.

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

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

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



2. Описанный подход способствует установлению обратной связи с пользовате­лем в целях выяснения истинных требований к системе.

3. Группа разработчиков сосредотачивается на особо важных вопросах проекта, а не на тех, которые только отвлекают внимание команды от действительно опасных моментов.

4. Непрерывное итеративное тестирование позволяет объективно оценить со­стояние проекта.

5. Противоречия в требованиях, проектах и реализациях выявляются раньше.

6. Нагрузка команды (особенно команды тестирования) возрастает по мере раз­вития проекта.

7. Команда может обучаться и вследствие этого непрерывно улучшать процесс.

8. На протяжении всего жизненного цикла проекта его организаторы могут полу­чать реальное представление о текущем состоянии проекта.







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