第三章 软件需求分析
需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。
它有以下几难点:
⑴ 问题的复杂性。由用用户需求涉及的因素繁多引起,如运行环境和系统功能
⑵ 交流障碍。需求分析涉及人员较多,这些人具备不同的背景知识,处于不同角度,扮演不同角色,造成相互之间交流困难。
⑶ 不完备性和不一致性。用户对问题的陈述往往是不完备的,各方面的需求可能还存在矛盾,需求分析要消除矛盾,形成完备及一致的定义。
⑷ 需求易变性。
近几年来已提出多种分析和说明方法,但都必须适用以下原则:
⒈ 必须能够表达和理解问题的数据域和功能域。数据域包括数据流(数据通过一个系统时的变化方式)数据内容和数据结构,功能域反映上述三方面的控制信息。
⒉ 可以把一个复杂问题按功能进行分解并可逐层细化。
⒊ 建模。可更好地理解软件系统的信息,功能,行为。也是软件设计的基础。
需求分析的任务:
⒈ 问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。
⒉ 分析与综合,导出软件的逻辑模型
⒊ 编写文档:包括编写"需求规格说明书""初步用户使用手册""确认测试计划""修改完善软件开发计划"
结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。
结构化(SA)分析步骤:
⑴了解当前系统的工作流程,获得当前系统的物理模型。
⑵抽象出当前系统的逻辑模型。
⑶建立目标系统的逻辑模型。
⑷作进一步补充和优化。
数据流图(DFD)
以图形的方式描述数据在系统中流动和处理的过程。只反映系统必须完成的逻辑功能,是一种功能模型。