网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
常见分类的分析
国际需求工程协会的需求分类
国际需求工程协会在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等系统工程领域多个国际认证。公众号:雨后阳光工作室。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**