通过需求的结构化整理,需要从这些需求中找到关键功能、关键质量及关键约束,并将关键质量、关键约束转化为衍生的设计需求:
1、确定业务功能
关键的业务功能包含如下四个方面:1.核心功能;2.必做功能;3.高风险功能;4.独特功能。
如何区别这四个方面,实际上是靠经验和感觉。它们之间实际上是有重叠部分的。
核心功能:业务层接口所反映的功能。如,HRMS系统中,前面说的8大业务内容都属于核心功能;
必做功能:必做功能实际上是以客户为背景的,简单来说就是愿景;
高风险功能:顾名思义,哪些功能操作可能会涉及到安全和隐私等问题;
独特功能:实际是上诉三个功能的补集,看看还有哪些没有覆盖到的,却又很关键的功能。
架构师在设计阶段要考虑到“关键功能”所占有的比例,没有明确的标准,一般遵循:功能少的系统比例高一些,功能多的系统比例少一些。
2、梳理非功能性需求涵盖质量及约束需求,将这些质量及约束背后的衍生需求梳理清晰:
关于质量要求这块的内容涵盖的范围非常的广泛,涵盖:1.性能 2. 安全性 3.持续可用性 4.可靠性 5.鲁棒性 6.易用性 7.可测试性 8.可重用性 9.可维护性 10.可扩展性 11.可移植性 12 可互操作性等。我们在做HRMS系统架构设计时考虑的质量属性里面也不需要把每一个指标都做上去。这些指标之间是相互影响的。其影响关系如下(+表示促进 -表示影响 空白表示无明显作用):
当出现多个质量属性出现互斥的时候,必须要权衡以哪个为主,那相应的另外一个质量属性就会弱化。
在架构设计中,对非功能性需求的重视程度,也会影响架构设计的好与劣;但也要平衡过渡设计和适可而止的关系。
1、找到系统的关键功能(系统具体是做什么的?)
我们可以采取职责链模式来梳理关键功能:
模拟不同类型的用户如何通过系统实现业务需求的过程,借助系统化的思维模拟跟踪各环节,梳理清晰后即可得出清晰的职责链,这样便可以找出各链上的关键功能点,这些关键点即是关键功能。借助职责链模式来梳理核心功能,确认系统中存在必要功能、HRMS系统中的8大业务模块,这里再强调下:
上面8项属于核心功能。除此之外,还应该会有流程管理、权限管理等功能,辅助及支撑系统运行的基础功能。
2、确定关键质量的5大原则(找出关键质量属性)
Ø分类合适+必要扩充
针对质量分类进行细化及分解