Я аспирант, изучающий информатику, и у меня мало опыта в создании ПО или услуг в реальной промышленности. Таким образом, я знаю только идеальный процесс, когда программное обеспечение или услуги эволюционируют поверхностно, что входит в класс Software Engineering.Общий процесс разработки программного обеспечения/обслуживания (например, эволюционирует ПО от версии 1.0 до версии 2.0)
Итак, я задаюсь вопросом о РЕАЛЬНОМ процессе, который произошел во время разработки программного обеспечения.
Например, предположим, что успешный SW версии 1.3, и менеджеры решили разработать версию 2.0 с некоторыми новыми удивительными функциями. Затем, каков общий процесс, как правило, команда разработчиков? Как правило, требования-> архитектура-> подробный дизайн-> код? Или начать копирование кода версии 1.3 и найти повторно используемые части? Интересно, как компания разрабатывает следующую крупную версию своего успешного ПО.
Спасибо за ваши ответы, заблаговременно. Я буду продолжать рассматривать эту тему, поэтому, если вы хотите уточнить мой вопрос, пожалуйста, спросите об этом. Я пересмотрю свой вопрос.
Очень благодарен за подробный ответ! Он содержит много вещей, чтобы научить меня. В частности, ваши последние три момента очень значимы для меня, потому что на самом деле я изучаю процесс «обслуживания» SW. Я всегда и по-прежнему верю, что «архитектура программного обеспечения» может улучшить работу по обслуживанию, особенно имея уже тысячи файлов кода, но я обнаружил, что многие академические исследования по архитектуре и обслуживанию SW были далеки от отрасли. – byron1st
Я согласен с вами в том, что хорошая архитектура OO является виновником ремонтопригодности, и именно здесь вы можете сказать «хорошо» от «плохого» разработчика. Просто хорошая архитектура, как правило, развивается во время фазы кодирования, а не записывается вверх ... –