Как показывает опыт, методики разработки программного обеспечения очень часто влияют на эффективность самой разработки, особенно в тех случаях, когда ведется масштабная работа с привлечением множества разносторонних специалистов. Качественно подобранный метод разработки способен урегулировать взаимоотношения и ответственность между разными специалистами и дать контроль над всем процессом разработки заинтересованному лицу.
Современные методы разработки программного обеспечения очень разнообразны в своей реализации. Есть как строго регламентированные классические методы, так и смешанные между собой индивидуальные методики. Каждая отдельная разработка требует поиска собственного метода, чтобы он согласовывался с условиями и требованиями к разрабатываемому ПО.
Методики разработки программного обеспечения
При выборе методики разработки программного обеспечения нужно опираться на цели, условия и требования к будущему проекту. Основные цели любого проекта можно сформулировать так:
обеспечение требуемой функциональности разрабатываемой программы;
простота в эксплуатации и поддержке будущего продукта;
соблюдение должных мер безопасности и сохранности данных пользователей продукта;
должная производительность и скорость обработки запросов клиентов;
масштабируемость будущего проекта;
и др.
Хорошая производительность будущей программы — это одно из самых важных требований к современным системам. А достижение хорошей производительности сложных систем возможно только при качественном их проектировании еще на начальной стадии и при удачном выборе метода их разработки.
Проектирование будущего программного обеспечения подразумевает поиск рационального решения, которое обеспечит должную функциональность ПО при использовании доступных средств и технологий разработки. А методики разработки программного обеспечения призваны помочь достичь всего, что было изначально спроектировано.
Какие бывают методики разработки ПО
Методики разработки ПО — это, своего рода, этапы жизненного цикла конечного продукта, через которые должен пройти весь процесс разработки. Методики разработки ПО были заимствованы из инженерной области и адаптированы под программирование, поэтому раньше они строго регламентировались:
в России — ГОСТом и ISO;
в Европе — ISO;
в США — CMM (Capability Maturity Model).
В настоящее время методики сильно видоизменились и перемешались между собой, поэтому, помимо классических методик, есть очень много индивидуальных. На индивидуальных нет смысла останавливаться, так как они в основном используются в отдельных компаниях или при разработке отдельных продуктов. А вот классические методики разработки программного обеспечения можно привести в пример, потому что они до сих пор не теряют своей актуальности:
Поэтапная каскадная методика разработки ПО. Подразумевает разработку продукта определенными этапами. При этой методологии следующий этап не начинается, пока не будет закончен предыдущий. Сами этапы продумываются еще на фазе проектирования с учетом требований к программе и времени на ее разработку. Готовый продукт получается только в конце разработки.
«Водоворот». Когда в «каскадную методику» внедряют промежуточный контроль после каждого этапа, то получается совсем другой метод разработки — «водоворот». В этом случае после завершения каждого этапа подготавливается отчет о проделанной работе, а также проводится разбор проделанного программирования. Если, к примеру, будет найдена ошибка на очередном контроле, то проект отправится на доработку на этап ниже, но при этом он также переходит и на новый этап, где продолжается его разработка. В таком случае есть вероятность, что некоторые этапы растягиваются на все время разработки и не оканчиваются в свое время. Рабочий продукт появляется только при завершении всех этапов.
Спиральная методика. Подразумевает быстрый и продуманный старт с четкой и выверенной стратегией. Отдельный «виток спирали» — это реализация новой версии продукта или его отдельного компонента, который «нанизывают» на имеющуюся основу. На каждом «витке» работы происходит уточнение требований и целей проекта, а также узнается, есть ли изменения в характеристиках будущего продукта. Каждый отдельный виток — это работающий, но недоработанный до конца продукт или компонент.
Экстремальное программирование. Данная методика подразумевает интенсивную разработку всего продукта сразу отдельными программистами или небольшими командами. Активная разработка, общение, обратная связь с заказчиком, кураж — это то, что определяет эту методику.
Заключение
Методики разработки программного обеспечения часто применяются в масштабных разработках, когда нужно структурировать и контролировать работу. В более мелких проектах, когда продукт разрабатывается одним-двумя разработчиками, все происходит намного проще.
Нельзя так сразу сказать: вот эта методика вам подойдет, а вот эта — нет. Нельзя говорить об эффективности или неэффективности отдельных методик, потому что тут многое зависит от требований вашего проекта. Мы уже несколько раз писали, что они часто пересекаются и смешиваются и редко когда можно найти четкие границы отдельно взятой методики.
Так и вам в вашей разработке, скорее всего, придется попробовать несколько разных методов, возможно, даже смешать их, чтобы привести собственный проект к успеху.
Другое