Этапы процесса разработки программного обеспечения требуют различной поддержки средств разработки систем:
- управление проектами:
- составление и текущий контроль (мониторинг) проектного плана
- управление ресурсами
- сбор и анализ требований:
- сбор информации: анализ анкет
- моделирование функциональных процессов (бизнес-процессов)
- прототипирование, т.н. создание решения с ограниченной функциональностью и на основе этого получения откликов (обратной связи) от пользователей
- управление требованиями: документирование требований, ссылки, оснащение требований атрибутами (ясность требований, источники требований и т.д.), приоритетность требований, управление версиями требований (связь с заявителем изменения и причины изменения) и т.д.
- инструментальные средства, поддерживающие анализ и сбор требований, должны допускать коллективную работу, в том числе позволять нескольким пользователям изменять требования одновременно, предоставлять возможность определять различные права для разных ролей пользователей (менеджер (руководитель) проекта, аналитик, архитектор, пользователь)
- составление модели данных и словаря, избегая таким образования неоднозначности и проблемы качества данных (включая дублирование)
- автоматическое генерирование документации из существующего, недокументированного кода
- разработка архитектурного дизайна (архитектурное проектирование):
- позволяет визуализировать архитектурное решение, поддерживать выбранную методику и систему обозначений, то есть «язык» составления схем, например, UML
- позволяет описать программные компоненты и их взаимосвязи, интерфейсы
- управление версиями, связь архитектурных решений с требованиями и с запросами на изменения
- создание программного кода, тестирование:
- автоматическое генерирование кода на основе архитектурного проектирования, в том числе экранных форм, отчетов
- отладчик (debugger) кода для пошагового запуска и тестирования
- проведение тестов, в том числе, описание, запуск тестов, анализ и документирование результатов
- комментирование и документирование кода
- управление версиями кода
- управление конфигурациями продукта:
- управление версиями кода.