Обзор действий. Что такое процесс разработки программного обеспечения. Подход "не мудрствуя лукаво"

Страницы работы

Содержание работы

Глава 5.Обзор действий

Что такое разработка программ - искусство или наука? Ответ, конечно, зависит от того, с кем говорить. Но есть одна вещь, с которой согласится каждый: программное обеспечение становится все больше по объему и сложности, все более трудоемко в разработке и все тяжелее в управлении.

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

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

Что такое процесс разработки программного обеспечения

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

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

Обзор распространенных методов разработки программного обеспечения

Существует множество подходов к разработке программного обеспечения. Некоторые наиболее распространенные и популярные из них рассматриваются в следующих разделах.

Подход "не мудрствуя лукаво"

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

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

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

Оказывается, даже в наше время масса разработчиков программ все еще придерживается этого подхода! Возможно, это влияние спешки, вызванной малыми сроками поставки в эпоху Internet, или просто свидетельство того, что индустрия программного обеспечения еще не вышла из колыбели. Так или иначе, это явление вполне реально.

Каскадный процесс

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

Итерационный процесс

Похожие материалы

Информация о работе