|
知识路径: > 系统开发基础知识 > 系统规划与问题定义 >
|
考试要求:熟悉
相关知识点:22个
|
|
|
|
软件系统的目的是为了解决问题,因此在建模之初最重要的步骤是问题的分析与定义,并在此基础上归结模型,这样才能够获得切实有效的模型。定义问题的过程包括理解真实世界中的问题和用户的需要,并提出满足这些需要的解决方案的过程。问题分析的目标就是在开始开发之前对要解决的问题有一个更透彻的理解。为了达到这一目标,通常需要经过在问题定义上达成共识、理解问题的本质、确定项目干系人(stakeholders,风险承担着、涉众)、定义系统的界限、确定系统实现的约束这5个步骤。
|
|
|
(1)在问题定义上达成共识。要检验大家是否在问题的定义上达成了共识,最简单的方法就是把问题写出来,看看是否能够获得大家的认可。而要使得这个过程更加有效,应该将问题用标准化的格式写出来。在问题定义上达成共识,就能够有效地将开发团队的理解与用户的需求形成一致,这样就能够使得整个系统的开发沿着合理的方向进展。
|
|
|
(2)理解问题的本质。每一句描述都会夹杂着叙述者的个人理解和判断,因此透过表面深入本质,理解问题背后的问题,是在问题分析阶段的一个十分关键的任务。其中一种技术是“根本原因”分析,这是一种提示问题或其表象的根本原因的系统化方法。在实际的应用中,常使用因果鱼骨图和帕雷托图两种方法。
|
|
|
(3)确定项目干系人。要想有效地解决问题,必须了解用户和其他相关的项目干系人(任何将从新系统或应用的实现中受到实质性影响的人)的需要。不同的项目干系人通常对问题有不同的看法和不同的需要,这些在解决问题时必须加以考虑。
|
|
|
(4)定义系统的连界。系统的边界是指解决方案系统和现实世界之间的边界。在系统边界中,信息以输入和输出的形式流入系统并由系统流向系统外的用户,所有和系统的交互都是通过系统和外界的接口进行的。要描述系统的边界有两种方法:一种是结构化分析中的上下文范围图,另一种则是面向对象分析中的用例模型。
|
|
|
(5)确定系统实现的约束。由于各种因素的存在,我们会对解决方案的选择进行一定的限制,称这种限制为约束。每条约束都将影响到最后的解决方案的形成,甚至会影响是否能够提出解决方案。在考虑约束时,首先应该考察到不同的约束源,其中包括进度、投资收益、人员、设备预算、环境、操作系统、数据库、主机和客户机系统、技术问题、行政问题、已有软件、公司总体战略和程序、工具和语言的选择、人员及其他资源限制等等。
|
|
|
通过对问题进行细致周密的分析,就可以对其进行综合的定义。对于一个问题的完整定义,通常应包括目标、功能需求和非功能需求3个方面。
|
|
|
(1)目标。目标是指构建系统的原因,它是最高层次的用户需求,是业务上的需要,而功能、性能需求则必须是以某种形式对该目标做出贡献。
|
|
|
(2)功能。功能性需求是用来指明系统必须做的事情,只有这些行为的存在,才有系统存在的价值。功能需求应该源于业务需求,它只与问题域相关,与解决方案域无关。
|
|
|
(3)非功能需求。非功能需求(性能)是系统必须具备的属性,这些属性可以看作是一些特征或属性,它们使产品具有吸引力、易用、快速或可靠。
|
|
|