前言:
可行性分析的基本目的就是用较小的成本在较短的时间内确定软件是否有可行的解决方案,即软件值不值得开发的问题。一旦确定要开发软件,开发人员首要的任务是要搞清楚用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,需求分析是软件定义的最后一个阶段,它的基本任务是准确的回答“系统必须做什么”的问题。
1.需求分析的基本概念
1.1定义
需求分析就是用户对软件各种要求的通称,也就是表达出用户希望软件做什么事情,完成什么样的功能,达到什么样的性能。对软件需求的严格定义并未统一,不同的组织和个人从不同方面对软件需求给出了不同的描述。
1.2特点
1)需求动态性。在整个软件的生命周期,软件的需求会随时间和业务有所变化。
2)问题的复杂性。
3)交流共识困难。软件需求分析过程中涉及系统分析员和用户等诸多人员,这些人员在交流中由于彼此不同的知识背景、角色和角度使得交流共识困难。
1.3目标
软件需求分析阶段是把来自用户的信息加以提炼,形成功能和性能方面的描述。需求分析阶段所要达到的目标是以软件计划阶段确定软件工作范围为指南,导出新系统的逻辑模型,编写出软件需求规格说明书。
具体目标:1)理清数据流或数据结构。2)通过标识接口细节,深入描述功能,确定设计约束和软件有效性要求。3)构造一个完全、精细的目标系统逻辑模型。
1.4任务
需求分析的基本任务是准确回答“系统必须做什么”的问题。它的任务不是确定系统怎样完成工作,而是确定系统必须完成哪些工作,即对目标系统实现的功能等提出完整、准确、清晰、具体的要求。
具体任务:
1)确定对系统的综合要求。主要包括功能要求、性能要求、运行要求和其他要求。
2)分析系统的数据要求。
3)导出目标系统的详细逻辑模型。
4)修改系统开发计划。
5)编写软件需求规格说明书。
1.5原则
1)需求分析方法应该容易被用户理解。2)系统分析人员要在用户和开发人员之间做好平衡。3)需求分析成果必须规范化、形成文档。4)评审需求文档和原型系统。
2.需求获取的方法
用户访谈-问卷调查-专题讨论会-快速建立软件原型
3.需求建模方法
3.1数据流图
3.1.1基本概念
数据流图(DFD)图是一种图形化建模工具,它描绘了信息流和数据从输入移动到输出的过程中所经历的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程,是软件系统逻辑功能的图形表示。
3.1.2基本图形元素
3.1.3附加符号和关系
星号(*)表示数据流之间是“与”关系;加号(+)表示“或”关系;
号表示只能从中选择一个(互斥关系)。
3.1.4绘制数据流图的的原则
(1)注意数据流图中成分的命名。1)为数据流或数据存储命名。2)为数据加工命名
(2)注意父图和子图的平衡。
(3)掌握分解的速度。
(4)遵守加工编号规则。
3.2数据字典
3.2.1定义
数据流图描述了现行系统的总体框架,在数据流图的基础上,还需要对其中的每个数据流、文件和数据项加以描述,我们把这些定义所组成的集合成为数据字典。
3.2.2任务
数据子典(DD)的任务是对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一 个图形元素的名字都有一个确切的解释。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,没有数据流图数据字典也难以发挥作用。
3.2.3定义符号
*...* 注释符 在两个*之间的内容为词条的注释
3.3层次方框图
3.4Warnier图
3.5E-R图
3.6状态转换图
4需求验证
4.1需求验证的内容
软件需求验证的四个方面:一致性、完整性、有效性、现实性
4.2需求验证的方法
4.2.1自查法
自查法是由需求分析人员对自己完成的软件进行审查和验证,纠正需求中存在的问题。该方法又细分为3中方法:1)小组审查法;2)参照法;3)逻辑分析法。
4.2.2用户审查法
该方法是系统分析人员将需求分析文档交给用户,由用户对需求分析进行审查。
4.2.3专家审查法
4.2.4原型法
该方法通过建立原型系统对存在争议或拿不准的需求进行验证,以此来确定需求的正确性。
5需求分析的过程
5.1问题识别
5.2分析与综合
常用的分析方法:
面向数据流的结构化分析方法(SA)
面向数据结构的Jackson方法(JSD)
结构化数据系统开发方法(DSSD)
面向对象的分析方法(OOA)
5.3编制需求分析阶段的文档
软件需求说明书
数据要求说明书
初步的用户手册
改正、完善与确定软件开发计划
5.4需求分析评审
6.小结
需求分析是软件生命周期中的一个重要阶段,它解决的是软件要“做什么”的问题。需求分析的好坏直接影响软件的设计和实现,因此系统分析人员必须准确地把握需求分析的目标和任务,遵循需求分析的原则。