問38
頻出度★★★
ソフトウェア開発プロセスを“要件定義”, “システム設計”, “プログラミング”, “テスト”の各工程に区切って, この順に進める手法の長所はどれか。
这道题的解析和你的作答记录。
ソフトウェア開発プロセスを“要件定義”, “システム設計”, “プログラミング”, “テスト”の各工程に区切って, この順に進める手法の長所はどれか。
这是瀑布模型的缺点而不是优点。因为要先把前一道工序确定下来再进入下一道工序, 所以一旦进入后面的工序才出现规格变更, 就必须退回到需求定义或设计重做, 产生返工, 费用和工期都会大幅膨胀。能在开发工序的任何时间点都灵活应对规格变更的, 是反复进行短开发周期的敏捷开发等方法的特点。
正解 正确答案是 イ。将工序划分为「需求定义 → 系统设计 → 编程 → 测试」, 完成前一道工序后再进入下一道工序的方法称为瀑布模型。它的特点是像瀑布的水从上往下流那样不回头返工, 每道工序结束时都设有交付物 (需求定义书、设计书、程序、测试报告书等) 和判定是否完成的评审。因此「目前完成到哪道工序」「整体已经完成了多少」在每个节点上都很清楚, 便于掌握开发的进度状况。这正是瀑布模型具有代表性的优点, 也是大规模开发和重视计划的开发采用它的理由。
与实际情况相反。瀑布模型不以回头返工为前提, 因此上游工序 (需求定义、系统设计) 的错误如果拖到下游才修正, 返工的影响会极其巨大。正因如此, 越是上游工序越要认真评审, 在那里投入较多工时把质量做进去。说上游的评审工时少就够了, 并不符合实际。
在瀑布模型中, 用户能看到可以运行的软件是在编程和测试推进之后的开发后期。用户能在开发的早期阶段试用, 是先做出可试用的版本让用户评价的原型模型, 或者每次短迭代都交付可运行软件的敏捷开发的优点, 并不是本题所述方法的优点。