已剪辑自: https://mp.weixin.qq.com/s?__biz=MzI5Njg3NTU3MQ==&mid=2247483740&idx=1&sn=d8101a0f16f5a41f195336331743ba4f&chksm=ecbce200dbcb6b16685169835f3d4c4bd3fe3c77db83c1a91c971004aa26be17f0ea9a5d8cca&scene=178&cur_album_id=2786562064566943747#rd
你可能见过多种需求分类方法,怎么选择适合你的呢?
引言
需求分类的需求是指单个需求条目,而不是指整个需求文档。
分析方法
需求分类是一种分类方法,我们对需求分类主要有两个目标:
2) 根据不同类型的需求制定对应的管理策略,提高管理效率
同时满足这两个目标,要求我们的需求分类要完整,而且不重叠。
如果我们找到了多种同时满足以上两个目标的分类方法,怎么选出最合适的那个呢?
(图片来源:A Practical Guide to SysML)
SysML里边有一个泛化集Generalization Set的概念,泛化集主要有两个属性:覆盖率(完整/不完整)和重叠性(重叠/不重叠)。例如对人的分类有两种,分类是性别和职业,性别分为男和女,这种分类是完整且不重叠的;职业分为员工和经理,这种分类是不完整且重叠的。
我们希望需求分类是完整且不重叠的,下边我们利用泛化集的概念进行对常见的需求分类进行分析。
常见分类的分析
国际需求工程协会的需求分类
国际需求工程协会在Requirements Engineering Fundamentals中给出了一种需求分类方法,这种分类方法既完整又不重叠。第一层分类只分了三类,给人的感觉有点少,它在质量需求中进行了二级分类,把性能需求、特性需求都放到质量需求中。
SEBOK需求分类
(图片来源:https://www.sebokwiki.org/)
系统工程知识体指南(SEBOK)把需求分成了功能、性能、可用性、接口、运行、状态模式、适用性、物理约束、设计约束、环境条件、保障性、政策与管制、成本与进度约束共13种需求,但是这种分类是不完整且重叠的,从完整性上,缺少可靠性和安全性等需求,从重叠性上,政策与管制需求可能与其他需求重叠。另外,政策与管制、成本与进度约束等更像是需求的来源,而不是需求本身的类型。
国际系统工程协会需求分类
国际系统工程手册洋洋洒洒地给出了多种系统需求:输入、输出、外部接口、可靠性、可达性、维修性、可访问性、环境条件、人体工程学、安全性、安保性、设施、运输性、培训、文档、测试、质量、政策与管制、兼容性、转换性、成长性、安装。
这种需求分类既不完整又相互重叠,而且各类太多让人无法实践,可能都无法理解所有分类。
ISO29148需求分类
ISO29148作为需求工程的国际标准,没有给出一种参考的需求分类,但是它也指出六种重要的分类:功能/性能、接口、流程、质量、可用性/使用中的质量、人为因素。虽然这种分类不完整,但是它将功能和性能合并到一类、这种做法可以给予我们启示。
需求集合的分类
虽然本文主要考虑需求条目的分类,在这边也顺便提下需求集合(即需求文档)的分类。ISO29148给了我们的建议,需求集合分为业务需求、利益相关方需求、系统需求和软件需求。在这里提这个主要是想说明需求条目分类和需求集合分类的区别。
结束语
需求分类有很多种,完整且不重叠的分类,再加上合适的分类数量(例如7±2)就是我们需要的分类方法。
参考资料
Klaus Pohl, Chris Rupp. Requirements Engineering Fundamentals
Sanford Friedenthal etc. A Practical Guide to SysML
Stakeholder Requirements Definition - SEBoK (sebokwiki.org)
INCOSE Systems Engineering Handbook V4
ISO29148-2018 Systems & Software Engineering – Life cycle processes – Requirements Engineering
关于笔者
10年+系统工程师,有丰富的MBSE项目实践经验,获得CSEP、OCSMP、OCUP2、CPRE等系统工程领域多个国际认证。公众号:雨后阳光工作室。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)