Какие этапы включает процесс разработки программного обеспечения?
Разработка программного обеспечения — это управляемый процесс создания, проверки, внедрения и сопровождения программы. В учебной литературе по технологии программирования этот процесс обычно рассматривается не как простое написание кода, а как полный жизненный цикл программного продукта.
Основные этапы
1. Постановка задачи
На этом этапе выясняют, какую проблему должна решать программа, кто будет пользователем, какие ограничения есть по времени, ресурсам, надежности и интерфейсу.
Результат этапа — общее понимание цели системы.
2. Анализ требований
Требования уточняют и фиксируют. Их удобно делить на:
- функциональные: что система должна делать;
- нефункциональные: насколько быстро, безопасно, надежно и удобно она должна работать.
Например, для системы тестирования функциональным требованием будет проверка ответов, а нефункциональным — устойчивость при большом количестве пользователей.
3. Проектирование
Проектирование отвечает на вопрос: как будет устроена программа.
Обычно определяют:
- архитектуру приложения;
- основные модули;
- структуры данных;
- алгоритмы;
- формат хранения данных;
- интерфейсы между частями системы.
На этом этапе важно разделить систему на понятные компоненты, чтобы код было проще развивать.
4. Реализация
Реализация — это написание исходного кода по проекту. Здесь выбирают язык программирования, библиотеки, стиль кодирования, оформляют функции, классы, модули и обработку ошибок.
Хорошая реализация должна быть не только рабочей, но и читаемой: понятные имена, небольшие функции, отсутствие дублирования, ясная структура.
5. Тестирование
Тестирование проверяет, соответствует ли программа требованиям.
Распространенные уровни тестирования:
- модульное — проверка отдельных функций и классов;
- интеграционное — проверка взаимодействия модулей;
- системное — проверка программы целиком;
- приемочное — проверка с точки зрения пользователя или заказчика.
6. Отладка
Если тестирование выявляет ошибки, их локализуют и исправляют. Отладка включает анализ входных данных, состояния переменных, логов и поведения программы.
7. Документирование
Документация нужна пользователям и разработчикам. Она может включать:
- описание требований;
- инструкцию пользователя;
- описание API;
- комментарии к сложным частям кода;
- описание архитектурных решений.
8. Внедрение
Программа устанавливается или публикуется в рабочей среде. Для веб-приложений это может быть деплой на сервер, настройка базы данных, домена, переменных окружения и мониторинга.
9. Сопровождение
После внедрения программа развивается: исправляются ошибки, добавляются функции, обновляются зависимости, улучшается производительность.
Модели процесса разработки
Этапы могут выполняться по-разному. В каскадной модели они идут последовательно. В итеративной и гибкой разработке система создается небольшими версиями: требования уточняются, код дорабатывается, результат регулярно проверяется.
Вывод
разработка ПО включает постановку задачи, анализ требований, проектирование, реализацию, тестирование, отладку, документирование, внедрение и сопровождение. Главная идея — управлять сложностью программы на всех этапах ее жизни.
Источники
- Семакин И.Г. Основы программирования и баз данных. Учебник. - М.: Академия, 2014. - 224 с.
- Симонова Е.В. Структуры данных в C#. Линейные и нелинейные динамические структуры. - Лань, 2018. - 152 с.
- Бертран Мейер. Почувствуй класс. Учимся программировать хорошо с объектами и контрактами. - М.: Национальный Открытый Университет "ИНТУИТ": БИНОМ. Лаборатория знаний, 2011. - 775 с.
- Мэтт Вайсфельд. Объектно-ориентированное мышление. - СПб.: Питер, 2014. - 304 с.
- Ривест Р., Штайн К., Лейзерсон Ч., Кормен Т. Алгоритмы: построение и анализ. - М.: Вильямс, 2007. - 1296 с.
- Стивенс Род. Алгоритмы. Теория и практическое применение. - М.: Эксмо, 2017. - 544 с.
- Рублев В.С. Основы теории алгоритмов. - 2-е издание, исправленное. - М.: Научный мир, 2008. - 128 с.
- Гольдберг Г.Л. Основы алгоритмизации и программирования. - М.: Академия, 2012. - 384 с.
- Лаврищева И.В. Технология программирования. - М.: Горячая линия - Телеком, 2011. - 400 с.
- Сергеев И.С., Сухоруков А.И., Шестаков А.А. Программирование: учебник для вузов. - М.: БИНОМ. Лаборатория знаний, 2013. - 512 с.