《软件工程第三章.ppt》由会员分享,可在线阅读,更多相关《软件工程第三章.ppt(36页珍藏版)》请在第壹文秘上搜索。
1、SIT 软件工程软件工程 讲稿讲稿 第二部分第二部分 课程内容课程内容SIT第三章软件需求工程第三章软件需求工程学习目标学习目标 : :了解软件需求分析的任务与重要性,理解其中的重要了解软件需求分析的任务与重要性,理解其中的重要概念,如概念,如SRSSRS,里程碑,可提交物等;,里程碑,可提交物等;掌握软件需求分析的步骤、方法;掌握软件需求分析的步骤、方法;了解软件需求分析内容与后续工作的关系;了解软件需求分析内容与后续工作的关系;理解软件需求工程知识;理解软件需求工程知识;掌握软件需求分析文档的撰写;掌握软件需求分析文档的撰写;需求分析阶段存在的常见问题。需求分析阶段存在的常见问题。SIT3
2、.1 概述概述所谓所谓“需求分析需求分析”,是指对要解决的问题进行详细的分析,弄清楚,是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。么。 软件开发项目过程可以用图软件开发项目过程可以用图3.13.1开发过程模型来说明。开发过程模型来说明。 图3.1 开发过程模型 SIT3.1 概述概述图中几个概念的含义。图中几个概念的含义。当前系统当前系统:将用户正在使用的系统。:将用户正在使用的系统。目标系统目标系统:在应用计算机后要实现的系统。:在应用计算机后要实现的系统。当前系统的物
3、理模型当前系统的物理模型:用一个具体化的模型模拟、了解:用一个具体化的模型模拟、了解当前系统的组织机构、资源利用情况和日常数据处理过程。当前系统的组织机构、资源利用情况和日常数据处理过程。当前系统的逻辑模型当前系统的逻辑模型:在理解当前系统的具体运行过程:在理解当前系统的具体运行过程后,从个体的细节抽象出本质的过程模型。后,从个体的细节抽象出本质的过程模型。SIT3.1 概述概述目标系统的逻辑模型目标系统的逻辑模型:分析当前系统与目标系统逻辑上:分析当前系统与目标系统逻辑上的差别,明确目标系统要的差别,明确目标系统要“做什么做什么”的实质工作,从当前系的实质工作,从当前系统的逻辑模型导出目标系
4、统的逻辑模型。统的逻辑模型导出目标系统的逻辑模型。 目标系统的物理模型目标系统的物理模型:确定待开发系统的系统元素,将:确定待开发系统的系统元素,将功能和数据结构分配到系统元素中。功能和数据结构分配到系统元素中。它的具体物理模型则是它的具体物理模型则是由它的逻辑模型经实例化后,具体到某个业务领域得到的。由它的逻辑模型经实例化后,具体到某个业务领域得到的。SIT3.2 需求分析任务需求分析任务 软件需求分析阶段研究的对象是软件项目的用户要求,软件需求分析阶段研究的对象是软件项目的用户要求,如何准确表达用户的要求,怎样与用户共同明确将要开发的如何准确表达用户的要求,怎样与用户共同明确将要开发的是一
5、个什么样的系统,是需求分析要解决的主要问题。是一个什么样的系统,是需求分析要解决的主要问题。 下面简要叙述需求分析阶段的具体任务。下面简要叙述需求分析阶段的具体任务。一、确定对系统的综合要求。一、确定对系统的综合要求。对系统的综合要求有下述四个方面:对系统的综合要求有下述四个方面:1系统功能要求系统功能要求2系统性能要求系统性能要求3运行要求运行要求4将来可能提出的要求将来可能提出的要求SIT3.2 需求分析任务需求分析任务 二、分析系统的数据要求二、分析系统的数据要求分析系统的数据要求通常采用建立概念模型的方法。分析系统的数据要求通常采用建立概念模型的方法。三、导出系统的逻辑模型三、导出系统
6、的逻辑模型综合上述两项分析的结果可以导出系统的详细的逻辑模综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、数据字典和主要的处理算法描述这个型,通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。逻辑模型。四、修正系统开发计划四、修正系统开发计划根据在分析过程中获得的对系统的更深入更具体的了解,根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。发计划。五、开发原型系统五、开发原型系统SIT3.2 需求分析任务需求分析任务 对于软件系统的开发,使用对于软件系统的
7、开发,使用“样机样机”(原型系统原型系统)的主要目的主要目的是,使用户通过实践获得关于未来的系统将怎样为他们工的是,使用户通过实践获得关于未来的系统将怎样为他们工作的更直接更具体的概念,从而可以更准确地提出和确定他作的更直接更具体的概念,从而可以更准确地提出和确定他们的要求。们的要求。SIT3.3 软件需求分析类型软件需求分析类型3.3.1功能需求与非功能需求 软件系统需求通常分为三类软件系统需求通常分为三类 :功能需求功能需求 ,非功能需求非功能需求 ,领域领域需求需求 。1.功能需求功能需求功能需求描述系统所预期提供的功能或服务。功能需求描述系统所预期提供的功能或服务。 2.非功能需求非功
8、能需求 非功能需求,是指那些不直接与系统具体功能相关的一非功能需求,是指那些不直接与系统具体功能相关的一类需求。它们与系统的总体特性相关,如可靠性、反应时间类需求。它们与系统的总体特性相关,如可靠性、反应时间和储存空间等。和储存空间等。 SIT3.3 软件需求分析类型软件需求分析类型图3.3 非功能需求的类型 SIT3.3 软件需求分析类型软件需求分析类型3.领域需求领域需求 领域需求起源于系统的应用领域而不是系统的用户需要。领域需求起源于系统的应用领域而不是系统的用户需要。它们可能是一个新的特有的功能需求、对已存在的功能需求它们可能是一个新的特有的功能需求、对已存在的功能需求的约束或者是需要
9、实现的一个特别计算。的约束或者是需要实现的一个特别计算。3.3.2用户需求用户需求 用户需求是从用户角度来描述系统功能和非功能需求,用户需求是从用户角度来描述系统功能和非功能需求,以便让不具备专业技术方面知识的用户能看懂。这样的需求以便让不具备专业技术方面知识的用户能看懂。这样的需求描述只描述系统的外部行为,要尽量避免对系统设计特性的描述只描述系统的外部行为,要尽量避免对系统设计特性的描述。描述。 SIT3.3 软件需求分析类型软件需求分析类型3.3.3系统需求 系统需求是比用户需求更详细的需求描述,是系统实现系统需求是比用户需求更详细的需求描述,是系统实现的基本依据,因此,是一个完全的和一致
10、的系统描述,是软的基本依据,因此,是一个完全的和一致的系统描述,是软件工程人员系统设计的起点。件工程人员系统设计的起点。 自然语言时常被用来书写系统需求描述,但被用来做更自然语言时常被用来书写系统需求描述,但被用来做更详细的描述时,深层次的问题就暴露出来,主要有:详细的描述时,深层次的问题就暴露出来,主要有: 自然语言的二义性会造成语义理解的偏差。自然语言的二义性会造成语义理解的偏差。 自然语言书写的需求描述随意性大。自然语言书写的需求描述随意性大。 没有一个简单的方法使自然语言书写的需求模块化。没有一个简单的方法使自然语言书写的需求模块化。 替代的描述方式如表替代的描述方式如表3.23.2所
11、示所示: :SIT3.3 软件需求分析类型软件需求分析类型表3.2:可以替换自然语言的方法SIT3.4 软件需求分析原则软件需求分析原则进行用户需求是需求分析的第一步,进行用户需求是需求分析的第一步,用户需求通常可以用户需求通常可以分为功能需求和性能需求两类分为功能需求和性能需求两类。功能需求定义了功能需求定义了系统应该做系统应该做什么,系统要求输入什么信息,输出什么信息,以及如何将什么,系统要求输入什么信息,输出什么信息,以及如何将输入变换为输出。输入变换为输出。性能需求则定义了性能需求则定义了软件运行的状态特征,软件运行的状态特征,如系统运行效率,可靠性,安全性,可维护性等等。如系统运行效
12、率,可靠性,安全性,可维护性等等。SIT3.5 需求分析方法需求分析方法在软件工程学的需求分析中常用的方法通常采用在软件工程学的需求分析中常用的方法通常采用结构化结构化分析技术、面向对象分析技术,以及原型开发技术等分析技术、面向对象分析技术,以及原型开发技术等。3.5.1结构化分析方法结构化分析方法结构化分析技术是一种面向数据流的分析方法。结构化结构化分析技术是一种面向数据流的分析方法。结构化分析就是使用数据流图、数据词典、结构化英语、判定表和分析就是使用数据流图、数据词典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标判定树等工具,来建立一种新的、称为结构化说明书的
13、目标文档。文档。 1.建立功能模型建立功能模型数据流程图,又称数据流图,它是以图形的方式来表达数据流程图,又称数据流图,它是以图形的方式来表达数据处理系统中信息的变换和传递过程。数据处理系统中信息的变换和传递过程。 数据流程图有三个重要属性:数据流程图有三个重要属性:SIT3.5 需求分析方法需求分析方法数据流程图有三个重要属性:数据流程图有三个重要属性:1 1)可以表示任何一个系统)可以表示任何一个系统( (人工的、自动的或混合的人工的、自动的或混合的) )中中的信息流程。的信息流程。2 2)每个圆圈可能需要进一步分解以求得对问题的全面理)每个圆圈可能需要进一步分解以求得对问题的全面理解。解
14、。3 3)着重强调的是数据流程而不是控制流程。)着重强调的是数据流程而不是控制流程。数据流程图中的基本符号有:数据流程图中的基本符号有:1 1、数据流数据流数据流是有名字有流向的数据,在数据流程图中,数据数据流是有名字有流向的数据,在数据流程图中,数据流用标有名字的箭头来表示。流用标有名字的箭头来表示。 SIT3.5 需求分析方法需求分析方法2、加工加工加工又称处理逻辑,表示数据所进行的加工或变换,以加工又称处理逻辑,表示数据所进行的加工或变换,以标有名字的圆圈代表加工。指向加工的数据流是该加工的输标有名字的圆圈代表加工。指向加工的数据流是该加工的输入数据,离开加工的数据流是该加工的输出数据。
15、入数据,离开加工的数据流是该加工的输出数据。3 3、文件文件文件是数据暂存的处所,可对文件进行必要的存取,在文件是数据暂存的处所,可对文件进行必要的存取,在图中以标有名字的双直线段表示。图中以标有名字的双直线段表示。4、数据源及数据终点数据源及数据终点表明数据处理过程的数据来源或数据去向的标志称为数表明数据处理过程的数据来源或数据去向的标志称为数据源及数据终点,在数据流程图中均以命名的方框来表示。据源及数据终点,在数据流程图中均以命名的方框来表示。 SIT3.5 需求分析方法需求分析方法2.建立数据模型建立数据模型软件系统本质上是信息处理系统,因此,在软件系统的软件系统本质上是信息处理系统,因
16、此,在软件系统的整个开发过程中都必须考虑两方面的问题整个开发过程中都必须考虑两方面的问题“数据数据”及对数及对数据的据的“处理处理”。在需求分析阶段则既要分析用户的数据要求,。在需求分析阶段则既要分析用户的数据要求,又要分析用户的处理要求又要分析用户的处理要求 。为了把用户的数据要求清晰明确地表达出来,系统分析为了把用户的数据要求清晰明确地表达出来,系统分析员通常建立一个概念性的数据模型员通常建立一个概念性的数据模型(也称为信息模型也称为信息模型)。概念性。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。对数据和信息建模。 最常用的表示概念性数据模型的方法,是最常用的表示概念性数据模型的方法,是实体一联系方实体一联系方法法 ,用这种方法表示的概念性数据模型又称为,用这种方法表示的概念性数据模型又称为ER模型模型。 SIT3.5 需求分析方法需求分析方法ER模型中包含模型中包含“实体实体”、“联系联系”和和“属性属性”等三个基等三个基本成分:本成分:1实体实体 实体是客观世界中存在的且可相互区分的事物,实体可