《软件工程[2].ppt》由会员分享,可在线阅读,更多相关《软件工程[2].ppt(93页珍藏版)》请在第壹文秘上搜索。
1、软件工程2软件工程软件工程第第2章章 软件项目的需求分析软件项目的需求分析 软件工程2第第2章章 软件项目的需求分析软件项目的需求分析 本章要点本章要点 1、了解软件需求分析的原则和任务、了解软件需求分析的原则和任务 2、了解软件需求的获得方法、了解软件需求的获得方法 3、掌握结构化分析方法及其描述工具、掌握结构化分析方法及其描述工具 4、了解需求规格说明和需求评审的主、了解需求规格说明和需求评审的主要内容要内容软件工程2需求与需求分析需求与需求分析 一、需求分析的一、需求分析的特点特点 需求分析是指开发人员要准确理解用户需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户的要
2、求,进行细致的调查分析,将用户非形式非形式的需求陈述转化为的需求陈述转化为完整的需求定完整的需求定义义,再由需求定义转换到相应的形式功,再由需求定义转换到相应的形式功能规约(能规约(需求规格说明需求规格说明)的过程。)的过程。 软件工程2需求与需求分析需求与需求分析 需求分析需求分析难点难点主要体现在以下几个方面:主要体现在以下几个方面: 1、问题的复杂性、问题的复杂性 2、交流障碍、交流障碍 3、不完备性和不一致性、不完备性和不一致性 4、需求易变性、需求易变性软件工程2需求与需求分析需求与需求分析 二、需求分析的二、需求分析的任务任务 需求分析的基本任务是要准确地定义新需求分析的基本任务是
3、要准确地定义新系统的目标,为了满足用户需要,回答系统的目标,为了满足用户需要,回答系统必须系统必须“做什么做什么”的问题。的问题。软件工程2需求与需求分析需求与需求分析 用户需求分为两大类:用户需求分为两大类:功能性需求功能性需求和和非功能性非功能性需求需求。 前者定义了系统做什么,包括系统的所有输入、前者定义了系统做什么,包括系统的所有输入、输出以及如何从输入映射到输出;后者定义了输出以及如何从输入映射到输出;后者定义了系统工作时的特性,例如系统对效率、可靠性、系统工作时的特性,例如系统对效率、可靠性、安全性、可维护性、可移植性、吞吐量以及符安全性、可维护性、可移植性、吞吐量以及符合某种标准
4、等的要求。合某种标准等的要求。软件工程2需求分析的需求分析的任务任务就是借助于当前系统的逻辑模型导出就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统是目标系统的逻辑模型,解决目标系统是“做什么做什么”的问题。的问题。软件工程2需求与需求分析需求与需求分析 三、需求分析的三、需求分析的步骤步骤 1、问题识别问题识别 双方确定对问题的综合需求。这些需求包括:双方确定对问题的综合需求。这些需求包括: (1)功能需求功能需求:指所开发的软件必须具备什:指所开发的软件必须具备什么样的功能,这是最重要的。么样的功能,这是最重要的。 (2)性能需求性能需求:指待开发的软件的技术性能:指待开发
5、的软件的技术性能指标,如存储容量、运行时间等限制。指标,如存储容量、运行时间等限制。软件工程2需求与需求分析需求与需求分析 (3)环境需求环境需求:指软件运行时所需要:指软件运行时所需要的软、硬件(如机型、外设、操作系统的软、硬件(如机型、外设、操作系统和数据库管理系统等)的要求。和数据库管理系统等)的要求。 (4)用户界面需求用户界面需求:即人机交互方式、:即人机交互方式、输入输出数据格式等。输入输出数据格式等。软件工程2需求与需求分析需求与需求分析 2、分析与综合,导出软件的、分析与综合,导出软件的逻辑模型逻辑模型 分析人员对获取的需求,进行一致性的分析检分析人员对获取的需求,进行一致性的
6、分析检查,在分析、综合中逐步细化软件功能,划分查,在分析、综合中逐步细化软件功能,划分各个子功能。这里也包括对数据域进行分解,各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及并分配到各个子功能上,以确定系统的构成及主要成分,并用图文结合的形式,建立起新系主要成分,并用图文结合的形式,建立起新系统的逻辑模型。统的逻辑模型。软件工程2需求与需求分析需求与需求分析 3、编写文档编写文档 (1)编写)编写“需求说明书需求说明书”,把双方共,把双方共同的理解与分析结果用规范的方式描述同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。出来,作为今后各项工作的基
7、础。软件工程2需求与需求分析需求与需求分析 (2)编写初步)编写初步用户使用手册用户使用手册,着重反,着重反映被开发软件的用户功能界面和用户使映被开发软件的用户功能界面和用户使用的具体要求。用的具体要求。 (3)编写)编写确认测试计划确认测试计划,作为今后确,作为今后确认和验收的依据。认和验收的依据。 (4)修改完善)修改完善项目开发计划项目开发计划。软件工程2需求与需求分析需求与需求分析 4、需求分析、需求分析评审评审 系统定义的目标是否与用户的要求一致系统定义的目标是否与用户的要求一致 系统需求分析阶段提供的文档资料是否齐全系统需求分析阶段提供的文档资料是否齐全 文档中所有描述是否完整、清
8、晰、准确反映用文档中所有描述是否完整、清晰、准确反映用户要求户要求 与所有其他系统成分的重要接口是否都已经描与所有其他系统成分的重要接口是否都已经描述述软件工程2需求与需求分析需求与需求分析 四四、需求分析的、需求分析的原则原则 1、划分划分(可以把一个复杂问题按功能(可以把一个复杂问题按功能进行分解并可逐层细化)进行分解并可逐层细化)软件工程2需求与需求分析需求与需求分析 2、抽象抽象(捕获问题空间的(捕获问题空间的“一般一般/特殊特殊”或或“特例特例”关系)关系) 3、投影投影(捕获问题空间的多维(捕获问题空间的多维“视视图图”) 软件工程2结构化分析结构化分析 一、结构化方法概述一、结构
9、化方法概述 1、结构化方法结构化方法 结构化方法是软件工程产生后首先提出结构化方法是软件工程产生后首先提出来的软件开发方法,它也是一种实用的来的软件开发方法,它也是一种实用的开发方法,由开发方法,由结构化分析结构化分析、结构化设计结构化设计和和结构化程序设计结构化程序设计构成。构成。软件工程2结构化分析结构化分析 2、基本、基本思想思想: 该方法基于模块化的思想,采用该方法基于模块化的思想,采用“自顶自顶向下,逐步求精向下,逐步求精”的技术对系统进行划的技术对系统进行划分。分。 分解和抽象是它的两个基本手段。分解和抽象是它的两个基本手段。软件工程2结构化分析结构化分析 3、特点特点 它是使用最
10、早的开发方法,使用时间也它是使用最早的开发方法,使用时间也最长最长 是面向数据流进行需求分析的方法是面向数据流进行需求分析的方法 非常适合于数据处理类型的软件的需求非常适合于数据处理类型的软件的需求分析分析 相应的支持工具多,发展较为成熟相应的支持工具多,发展较为成熟软件工程2结构化分析结构化分析 4、优点优点: (1)简单、实用)简单、实用 (2)适合于瀑布模型,易为开发者掌)适合于瀑布模型,易为开发者掌握握 (3)成功率较高)成功率较高 (4)特别适合于数据处理中的应用,)特别适合于数据处理中的应用,对其他领域的领域也基本适应对其他领域的领域也基本适应软件工程2结构化分析结构化分析 5、存
11、在问题存在问题 (1)对于规模较大的项目,特别复杂)对于规模较大的项目,特别复杂的应用不太适应的应用不太适应 (2)难于解决软件重用的问题)难于解决软件重用的问题 (3)难于适应需求的变化)难于适应需求的变化 (4)难于彻底解决维护问题)难于彻底解决维护问题软件工程2结构化分析结构化分析 二、二、数据流图数据流图Data-flow diagram, DFD 数据流图是数据流图是SA方法中用于表示系统逻辑模型方法中用于表示系统逻辑模型的一种工具,它以图形的形式描绘数据在系统的一种工具,它以图形的形式描绘数据在系统中流动和处理的过程。中流动和处理的过程。 结构化分析方法把任何软件系统都视作一个数结
12、构化分析方法把任何软件系统都视作一个数据变换装置,它接受各种形式的输入,通过变据变换装置,它接受各种形式的输入,通过变换产生各种形式的输出。换产生各种形式的输出。软件工程2结构化分析结构化分析 DFD就是一种描述数据变换的图形工具,就是一种描述数据变换的图形工具,是结构化分析方法最普遍采用的表示手是结构化分析方法最普遍采用的表示手段,但段,但数据流图数据流图并不是结构化分析模型并不是结构化分析模型的全部,的全部,数据字典数据字典和和小说明小说明为数据流图为数据流图提供了补充,并用以验证图形表示的正提供了补充,并用以验证图形表示的正确性、一致性和完整性,三者共同构成确性、一致性和完整性,三者共同
13、构成了结构化分析的模型。了结构化分析的模型。 软件工程2结构化分析结构化分析 1、基本图形符号基本图形符号(数据流图的四个基(数据流图的四个基本成分)本成分)方框,表示数据的源点或终点方框,表示数据的源点或终点圆或椭圆,表示加工圆或椭圆,表示加工软件工程2结构化分析结构化分析 1、基本图形符号基本图形符号(数据流图的四个基(数据流图的四个基本成分)本成分)双杠,表示数据存储双杠,表示数据存储箭头,表示数据流箭头,表示数据流软件工程2结构化分析结构化分析 加工加工:是对数据进行处理的单元,它接:是对数据进行处理的单元,它接受一定的输入数据,对其进行处理,并受一定的输入数据,对其进行处理,并产生输
14、出。产生输出。 数据存储数据存储:信息的静态存储。:信息的静态存储。软件工程2结构化分析结构化分析 数据源或终点数据源或终点:表示系统和环境的接口,:表示系统和环境的接口,是系统之外的实体,可以是人、物或其是系统之外的实体,可以是人、物或其他软件系统。其中,数据源是数据数据他软件系统。其中,数据源是数据数据流的起点,终点是数据流的最终目的地。流的起点,终点是数据流的最终目的地。 数据流数据流:表示数据和数据流向。:表示数据和数据流向。软件工程2结构化分析结构化分析 2、实例实例:飞机票预订系统:飞机票预订系统 问题描述问题描述:旅行社凭订票单进行机票的:旅行社凭订票单进行机票的预订,售票员查询
15、航班目录文件,检查预订,售票员查询航班目录文件,检查是否有满足预订条件的机票,如果有,是否有满足预订条件的机票,如果有,那么将费用记入记帐文件,并准备机票,那么将费用记入记帐文件,并准备机票,最后将帐单和机票交给旅客。最后将帐单和机票交给旅客。 软件工程2旅行社旅客预订机票准备机票记帐订票单航班目录记帐文件航班机票费用帐单飞机票预订系统的数据流图飞机票预订系统的数据流图软件工程2结构化分析结构化分析 加工的命名规则:加工的命名规则: 每个加工都要有名字,加工的名字最好每个加工都要有名字,加工的名字最好使用动宾词组使用动宾词组 在分层的数据流图中,加工还应编号,在分层的数据流图中,加工还应编号,
16、顶层的加工名就是软件项目的名字顶层的加工名就是软件项目的名字软件工程2结构化分析结构化分析 数据流:数据流: 数据流表示数据和数据流向,通常由一组数据数据流表示数据和数据流向,通常由一组数据项组成。项组成。 数据流可以从加工流向加工,也可以从数据源数据流可以从加工流向加工,也可以从数据源流向加工,从加工流向终点,还可以从加工流流向加工,从加工流向终点,还可以从加工流向数据存储文件,或从数据存储文件流向加工,向数据存储文件,或从数据存储文件流向加工,一般流入或流出数据存储文件的数据流不需要一般流入或流出数据存储文件的数据流不需要标出名字,有数据存储的名字就可以了。标出名字,有数据存储的名字就可以了。软件工程2结构化分析结构化分析 两个加工之间可以有多个数据流,这些数据流两个加工之间可以有多个数据流,这些数据流之间没有任何联系,数据流图也不表明它们的之间没有任何联系,数据流图也不表明它们的先后次序。先后次序。 数据流命名方法:数据流命名方法:数据流的名字用名词,或名数据流的名字用名词,或名词词组;命名时应尽量使用现实系统中已有的词词组;命名时应尽量使用现实系统中已有的名字;把现实环境中传递