作为软件设计和开发人员,经常关心的问题是:自己对需求的掌握是否全面?对需求的了解是否存在遗漏环节?如何帮助软件设计和开发人员解除以上困惑呢?本文提出了“三横三纵”的矩阵检查方法,以一种直观易行的逻辑思维矩阵帮助软件设计和开发人员全面梳理和评价需求。如下图所示:
“三横三纵”矩阵
首先,需求是分层次的。从不同的需求提出者和需求跟踪两个角度出发,将需求划分为三个层次。
组织级需求。包含客户或建设方要达到的业务目标、预期投资、工期要求,以及要符合哪些标准、对哪些遗留系统进行整合等约束条件。
用户级需求。用户使用系统来辅助完成哪些工作?对质量有何要求?用户群及所处的使用环境方面有何特殊要求?
开发级需求。开发人员需要实现什么?开发期间、维护期间有何质量考虑?开发团队的哪些情况会反过来影响架构?
其次,需求还必须从不同方面进行考虑。实践表明,忽视质量属性和约束性需求,常常导致设计和开发最终失败。例如,一个自媒体发布系统:
“发布文章”、“管理文章”、“粉丝管理”以及“收益管理”等,属于功能性需求。
系统应当具备良好的“可扩展性”和“安全性”,这是质量属性要求。
系统“必须运行在Linux平台上”,则属于约束性需求之列。
也就是说,从“直接目标还是间接限制”的角度出发把需求分为三类。
功能需求:更多体现各级直接目标要求。
质量属性:考虑运行期质量和开发期质量。
约束需求:考虑业务环境因素、使用环境因素、构建环境因素和技术环境因素。