跳到正文

需求定义与设计

頻出约 33 分钟5 个术语过去问 19 题

本单元目标

  • 能够区分功能性需求和非功能性需求,并说明两者都要在系统需求定义阶段明确。
  • 能够了解各项质量特性分别从什么角度考察,并判断某个具体描述属于哪一项特性。
  • 能够说明在从需求定义经过设计走向编程的流程中,功能设计和详细设计各自决定什么。
术语总表(5 个)
术语一句话类型在工序中的位置
機能要件规定系统做什么、具备哪些处理和功能的需求需求在系统需求定义中明确
非機能要件规定以何种水平和条件提供功能的需求,涉及性能、可靠性、安全性等需求在系统需求定义中确定目标,在系统测试中确认
品質特性对衡量软件质量的角度进行分类的结果评价角度既是确定需求时的角度,也用于评价成品
機能設計根据需求决定画面、报表等用户可见规格的设计设计工序需求定义之后、详细设计之前
詳細設計把设计结果具体化到可以编写程序的内部规格的设计设计工序设计的最后一步,下一步是编程

术语

機能要件功能性需求

在术语表中打开 機能要件

功能性需求(機能要件)是规定系统做什么的需求,也就是为了业务要提供哪些处理和功能。

需求定义阶段要分析业务流程和使用方式,梳理出要交给系统完成的处理。以图书借阅系统为例,「用会员号登记借书」「列出超过归还期限的书」就属于功能性需求。在把工序划分得更细的叫法中,有决定整个系统需求的系统需求定义(システム要件定義),以及决定其中软件部分的软件需求定义(ソフトウェア要件定義)等工序。

类比就像餐厅菜单上列出的菜品。它决定了这家店能上哪些菜,但还没写怎么做。

考点

  • 常考在系统需求定义(システム要件定義)中,要明确系统应具备的功能和性能,系统化的对象范围也在这一阶段确定。
  • 常考软件需求定义(ソフトウェア要件定義)要明确软件所处理的数据项目及其定义。构思处理的动作逻辑并编写代码,是之后设计和编程工序的工作。
  • 常考订购方确认交付物是否具备规格书中写明的功能,使用部门确认系统是否满足业务需求。确认各个程序是否按设计运行,是开发方的职责。

该术语的过去问 3 题 機能要件

非機能要件非功能性需求

在术语表中打开 非機能要件

非功能性需求(非機能要件)规定以何种水平和条件提供功能,例如响应速度、不易中断、安全性、便于运维等。

角度需求的写法示例
性能月末结账处理在夜间 4 小时内完成
可靠性・可用性除计划停机外,营业时间内不停止运行
信息安全性负责人员以外的人不能查看客户信息
运维能从记录中追查故障原因

非功能性需求也和功能性需求一样,在需求定义阶段确定目标。目标尽量写成数值等可以检验的形式,之后就容易判定是否达成。

类比相当于店家「接单后 10 分钟内上菜」这样的承诺。它规定的不是菜的种类,而是上菜的水平。

记法「非」不是否定功能,而是指「功能以外」的条件。可以理解为在功能齐备之后再附加上的条件。

考点

  • 常考像应答时间目标值这样的性能目标,要在系统需求定义(システム要件定義)中确定。它不会推迟到设计阶段再决定。
  • 常考在检验整个已开发系统的系统测试(システムテスト)中,除了确认功能能否正确运行,还要确认是否满足性能等非功能性需求。
  • 易混功能性需求(機能要件)规定业务所需的处理本身,非功能性需求则规定对这些处理所要求的性能、可靠性、安全性、运维等水平和条件。

该术语的过去问 2 题 非機能要件

「功能性需求」与「非功能性需求」的区别

比较点功能性需求非功能性需求
关键决定的内容系统做什么(处理、功能)以何种水平和条件提供功能(速度、不易中断、安全性、便于运维等)
写法示例「能够登记订单」「每天最多能处理 5 万件订单登记」
遗漏时的后果根本无法完成必要的处理能处理,但慢、会停、守不住

质量特性(品質特性)是把软件质量按「是否好用」「是否不易出故障」等角度分类而成的。

特性 (JIS X 25010:2013)考察角度
功能适合性是否具备必要的功能,并给出正确结果
性能效率性响应速度和资源使用是否恰当
兼容性能否与其他系统共存并交换信息
易用性用户是否容易学会、容易操作
可靠性发生异常时能否继续正常运行并恢复
信息安全性能否保护信息不被未经许可地使用
维护性是否容易修改和变更
可移植性移到其他环境后能否运行

JIS X 25010:2013 标准把质量分为 8 项特性,更早的标准则分为 6 项。旧标准中的功能性,大致相当于 JIS X 25010 的功能适合性。把笼统的「质量好」拆成多个角度后,确定需求时更容易设定目标,成品也能按角度逐项评价。

类比就像给汽车按油耗、乘坐舒适度、故障少、保养方便等项目分别打分的评价表。

考点

  • 常考易用性(使用性)是指用户是否容易学会、能否少费功夫就运用自如的特性。它关系到用户与画面等系统操作部分之间的接点。
  • 常考功能性(機能性)是按规格给出正确结果的性质,可靠性(信頼性)是即使遇到错误输入或故障也能保持正常运行的性质。

该术语的过去问 3 题 品質特性

功能设计(機能設計)是根据需求定义的结果,决定画面、报表等用户可见规格的设计工序,也称为外部设计。

  1. 需求定义
  2. 功能设计
  3. 详细设计
  4. 编程

编程:用编程语言写出已决定的处理步骤。

4 / 4

功能设计要决定用户操作的画面项目和布局、输出报表的格式以及用户的操作流程等。这里决定的规格用户能亲眼确认,所以容易在这个阶段发现与要求之间的偏差。

类比相当于盖房子时,根据业主的要求画出平面图和外观图的阶段。这些是住户一看就能确认是否好用的图纸。

考点

  • 常考决定画面和报表上要放哪些项目,以及它们的布局和格式的,是外部设计(外部設計),也就是功能设计。
  • 常考系统方式设计(システム方式設計)是细分叫法中的工序,它把需求分配给硬件、软件和人工作业,并决定设备和网络的构成。它不决定用户可见的规格,也不是功能设计的别名。

该术语的过去问 3 题 機能設計

详细设计(詳細設計)是把此前设计中决定的规格,具体化到可以编写程序的内部规格的设计工序。

在细分工序的叫法中,到了软件详细设计(ソフトウェア詳細設計)阶段,要为每一个需要编码的程序决定处理步骤和数据的处理方式。决定的内容整理成设计书,作为编程的依据。

类比就像在平面图的基础上,连柱子位置和电线、管道走向都画进去的施工图。细到工匠拿到后就能直接开工。

考点

  • 常考软件详细设计(ソフトウェア詳細設計)中首次决定的,是每一个程序的规格。程序员在下一道工序中依据这份设计书进行编程。
  • 常考构思程序在不同条件下如何分支处理,并用流程图(流れ図)表示出来,这项工作在软件详细设计阶段进行。
  • 易混功能设计(機能設計)决定画面、报表等用户看得到的外侧,详细设计则决定程序处理步骤等由开发者构建的内侧。

该术语的过去问 3 题 詳細設計

「功能设计」与「详细设计」的区别

比较点功能设计详细设计
关键从谁的视角用户看得到的外侧开发者构建的内侧
决定内容的示例画面的项目与布局、报表格式每个程序的处理步骤、数据的处理方式
前后工序需求定义之后、详细设计之前设计的最后一步,下一步是编程

要点

  • 开发时,先在需求定义中决定「做什么」,再在设计中把「怎么做」逐步细化,然后进入编程。
  • 判断质量特性时,要看描述所表达的性质(好用、耐故障、能在其他环境运行等),由此找出对应的特性。
  • 工序的叫法有两种:一种像本单元的图那样,粗分为需求定义、功能设计(外部设计)、详细设计;另一种像系统需求定义、系统方式设计那样细分。两者的分界并不一一对应,所以考虑工序顺序时,要在其中一种叫法之内进行。

确认题

从本单元的过去问中选 5 题

开始做确认题

查看这个领域的全部过去问