図は開発するソフトウェアの動作ロジックを検討し,その結果を文書化した流れ図の一部である。このような作業を実施するのはソフトウェア開発のどの段階か。 - 判定「IN ≧ 1」 - No → 「“エラー”と表示」(以下省略) - Yes → 判定「IN ≧ 4 AND IN ≦ 9」へ - Yes → 「“上半期”と表示」(以下省略) - No → 判定「IN ≦ 12」へ - Yes → 「“下半期”と表示」(以下省略) - No → 「“エラー”と表示」(以下省略)
平成22年度 春期 ITパスポート試験 問50
这道题的解析和你的作答记录。
問 50
错误ア
系统体系结构设计是这样一个阶段:把系统需求分配给硬件、软件还是人工作业来实现,并确定子系统的划分、硬件构成、网络构成等整个系统的框架。它处理的是构成要素如何配置这一层面,不会一直细化到单个程序内部的判定条件和处理顺序。图中那样的分支细节不会出现在这个阶段的交付物里。
错误イ
系统需求定义是这样一个阶段:以用户在业务上的要求为基础,把待开发系统应当具备的功能、性能、可靠性、约束条件等,作为「要实现什么」整理出来。此时还不确定实现手段,它处于开发过程的最上游。图展示的是「如何处理」这一实现步骤,因此不是需求定义的交付物。
- ウ
正解 正确答案是 ウ 的「软件详细设计」。图中的流程图针对输入值 IN,依次排列了「IN ≧ 1」「IN ≧ 4 AND IN ≦ 9」「IN ≦ 12」这几个判定,并且把每个判定的 Yes / No 分别通向哪一种显示(“错误”“上半年”“下半年”)全部确定下来,没有任何遗漏。也就是说,它把「把表示月份的输入值分派到上半年、下半年或错误」这一程序内部的处理步骤(算法、分支条件、处理顺序)细化到可以直接编码的程度,并形成了文档。在共通框架的开发过程中,针对软件的各个组件把内部逻辑具体化到这种程度、做成能够交给编程阶段使用的形式,这一阶段就是软件详细设计,而流程图正是它的代表性交付物。题干中「对运行逻辑进行研究,并把结果形成文档」的表述,指的正是这个阶段的工作。
错误エ
软件需求定义是这样一个阶段:针对系统体系结构设计中分配给软件的那部分,规定其功能、输入输出、接口、画面和报表等「软件要做什么」。判定上半年、下半年并显示出来这一功能本身确实是在这里确定的,但把它落实成 IN ≧ 4 AND IN ≦ 9 这样具体的判定式和分支排列,则是后续工序的软件详细设计。
- 共通框架的开发过程按 系统需求定义 → 系统体系结构设计 → 软件需求定义 → 软件体系结构设计 → 软件详细设计 → 编程 → 测试 的顺序,从「做什么」走向「怎么做」,并从整个系统逐步具体化到单个软件。判断时按两个维度切分会更容易:阶段名里有「需求定义」的是做什么,有「设计」的是怎么做;有「系统」的是整体,有「软件」的是软件部分。
- 软件详细设计是把组件内部的算法、分支条件和数据处理方式,确定到可以直接交给编程的粒度的阶段。流程图、伪代码、状态转换图等是它的典型交付物;一看到流程图就先怀疑是详细设计,这是常用的判断套路。