《[信息与通信]软件需求分析.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]软件需求分析.ppt(120页珍藏版)》请在三一办公上搜索。
1、软件需求分析,教学提示,本章通过实例分析引入软件需求分析的任务与步骤,对软件需求分析的步骤需求获取、分析建模、文档编写及需求验证做了较详细的介绍;并着重介绍了用结构分析方法建立分析模型的描述工具及建立过程;同时给出文档编写规范与实例供学习参考。,教学要求,本章概念较多,分析比较抽象,教学中要注意结合实例进行说明,使学生对软件需求分析有较深刻的领会。本章重点是掌握软件需求分析的任务与步骤;理解需求获取的常用方法,尤其是快速原型法的过程;掌握结构化建立分析模型的方法及常用工具使用;理解软件需求规格说明书的结构与内容;学会阅读与书写软件需求规格说明书。,4,主要内容,一、软件需求分析概述二、案例分析
2、三、软件需求分析的任务和步骤四、需求获取的常用方法五、分析建模六、需求规格说明书与需求评审,5,一、软件需求分析概述,软件开发期的第一个阶段明确软件要“做什么”的问题是关系到软件开发成败的关键步骤,6,需求问题,需求是软件项目成败的关键所在。越早发现需求错误,越早改正它,其代价越小需求是系统必须具有的能力。好需求的特征:无歧义、完整、一致、可检验、确定、可跟踪的,正确的,可行的和必要的。,7,软件开发的目标,软件开发的目标,简单而言,就是满足用户的需要。,8,项目失败与成功的原因*,三种最经常使项目“遇到困难”的因素是:缺乏用户介入:占所有项目的13%不完整的需求和规格说明:占所有项目的12%
3、不断改变的需求和规格说明:占所有项目的12%三种项目最主要的“成功因素”是:用户介入:占所有成功项目的16%高层管理的支持:占所有成功项目的14%需求陈述清晰:占所有成功项目的12%,9,需求在项目中的作用,在项目开发中,所有的涉众(Stakeholder)都对需求分析阶段倍感兴趣。未真正明白这些问题就开始编码,结果没有人对产品满意。,10,什么是需求,需求的基本概念 宽泛地讲,需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成完整的文档,该文档详细地说明了产品“必须或应当”做什么。所以如果只有一些零碎的对话、资料或邮件,你就以为自己已经掌握了需求,那是自欺欺人。,什么是需求,12,
4、需求的重要性,Frederick Brooks在他1987年经典文章“No Silver Bullet”中阐述了需求的重要性:开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。,13,需求是产品的根源,需求工作的优劣对产品影响最大。就像一条河流,如果源头被污染了,那么整条河流也就被污染了。国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙碌不停地开发。,14,需求错误的代价,在生命周期的不同阶段修复缺陷的相对成本,15,需求缺陷造成的成本增
5、加,重新进行需求规格说明重新设计重新编码重新测试改变订单告诉用户将以一个修正后的版本来替代有缺陷的版本。纠正活动消除由于不准确的特定系统的错误造成的危害,可能涉及到赔偿客户损失。报废包括对于已经完成的代码、设计和测试,当发现它们是根据不正确的需求进行的时候,这些工作成果不得不被丢弃。收回有缺陷的软件产品以及相关的用户手册。产品赔偿或保修的成本。重新安装新版本的成本。重新建档的成本。,16,高质量的需求过程带来的好处,在开发后期和整个维护阶段的重做的工作大大减少了。让用户积极参与需求收集过程能使产品更富有吸引力,而且能建立起更加忠实的客户关系。用户的参与能弥补用户期望和开发者实际开发之间的“鸿沟
6、”(期望差异)。将确定的系统需求明确地分配到各软件子系统,确保软硬件系统功能匹配适当。有效的变更控制也能降低需求变更带来的负面影响。将需求编写成清晰、无二义性的文档将会极大地有利于系统测试,确保产品质量。,17,18,19,20,解密:实际需求,原来如此!,21,Return,22,将问题与解决方案分开,理解问题:需求获取问题的形式化表示形式规约,形式建模就问题性质达成共识验证,冲突及矛盾消解,磋商需求管理 维护双方的共识,23,But,what is a requirement?,每一个“人造物”都是一个内部环境与外部环境的“接口”。这里内部环境指人造物本身的设计组成。外部环境指人造物的周遭
7、及其作用环境。对这个接口的描述即是需求。Herbert Simon,1969需求,即是人们要解决的某个问题或达到某种目的的需要。是系统或其组成部分为满足某种书面规定(合同,标准,规范等)所要具备的能力。需求将作为系统开发,测试,验收,提交的依据。IEEE 610.12,1990,软件开发项目的过程,模型转换过程,案例分析,学生购买教材系统模型转换:通过对现实环境的调查,获得当前系统的物理模型,购书申请,购书单,发票,领书单,书,示例,去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型,购书申请,购书单,发票,领书单,当前系统逻辑模型,书,示例,分析当前系统与目标系统的差别,建立目标系统的逻辑
8、模型,计算机售书系统的逻辑模型,现行系统,目标系统,描述现实系统是如何在物理上实现的。,描述新系统的主要业务功能和用户新的需求,无论系统应如何实施。,描述新系统是如何实施的(包括技术)。,逻辑模型 物理模型(本质模型、概念模型)(实施模型、技术模型),描述重要的业务功能,不管系统是如何实施的。,案例:学生收费系统,问题的描述高校学生再每学年的开始都需要缴纳学费、收费、住宿费等费用,这些工作往往需要各个部门的人员参与。学生交费过程:先由系办公室秘书审查学生身份并开具交费清单(包括学费、书费和住宿费等);学生持交费清单找财务科会计开具交费发票;找财务科出纳付款;凭交费发票去教材科领取教材,到宿舍办
9、理入住手续,到系办公室办理开课手续。,通过对现实环境的调查研究,获取当前系统的物理模型,分析需求,建立系统的分析模型,排除当前系统的物理模型中的非本质因素,提炼出当前系统的逻辑模型,分析需求,建立系统的分析模型,分析当前系统与目标系统的差别,建立目标系统的逻辑模型,整理综合需求,编写软件规格说明书,根据已经确定的目标系统的逻辑模型,编写相关文档,描述对系统的综合需求及数据要求。,验证需求,完善对目标系统的描述,为了对目标系统有个完整的描述,还需要对已经得到的结果做补充:通过目标系统的人机界面,和用户一起确认目标系统功能;分析哪些功能由计算机完成,哪些功能由人工完成。本系统中,收款、发书、住宿认
10、证和注册等仍由人工完成。验证需求说明、补充未考虑的细节,如确定系统的响应时间、增加出错处理等。,二、需求分析的任务与步骤,2.1 需求分析的任务2.2 需求分析的步骤,35,2.1 需求分析的任务,1、通过对问题及其环境的理解、分析和综合,建立分析模型;2、在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求列出来。需求阶段的任务并不是确定系统怎样完成工作,而仅仅是确定系统必须完成哪些工作,即对目标系统提出完整、准确、清晰、具体的要求。,36,37,1、建立分析模型,分析模型(Analysis Model)是描述软件需求的一组模型(常由一组图、表加上注释组成)精确记
11、录用户对原始问题和目标软件的描述。帮助分析人员发现用户需求中的不一致性,排除不合理部分,挖掘潜在的用户要求。应包含有对系统信息流、处理功能、用户界面、行为模型、设计约束的描述。,38,精确性、一致性清晰性、没有二义性直观、易读、易于修改,2、编写需求规格说明,39,软件需求各组成部分之间的关系,40,需求获取 系统功能、界面、质量等方面的需求需求提炼(分析建模)分析建模,常用建模工具数据流图(DFD)、实体关系图(ER图)、控制流图(CFD)、状态转换图(STD图)、用例图(use case)、类对象关系及行为图需求描述(文档编写)编写SRS需求验证 确保需求规格说明可作为软件设计和最终系统验
12、收的依据,2.2 需求分析的步骤,41,Requirements Engineering Process,42,需求分析阶段的活动,43,需求分析的步骤,通过对现实环境的调查研究,获得当前系统的具体模型;去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型;分析当前系统与目标系统的差别,建立目标系统的逻辑模型;对目标系统进行完善和补充,并写出完整的需求说明;对需求说明进行复审。,三、需求获取的常用方法,常规的需求获取方法快速原型方法,44,45,常规的需求获取方法,简易的应用规格说明技术(建立联合分析小组)用户代表、领域专家和系统分析员客户访谈充分准备,寻找共同语言循序渐进、逐步逼近情景分析技
13、术(问题分析与确认)多个来回,常规的需求获取方法,通信途径:访谈、调查、情景分析,某图书馆系统调查表,快速原型方法有效的需求获取方法,步骤利用各种分析技术和方法,生成一个简化的需求规格说明对需求规格说明进行必要的检查修改后,确定原型的软件结构、用户界面和数据结构等在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试、改进将原型提交给用户评估并征求用户的修改意见重复上述过程,直到原型得到用户的认可,48,四、分析建模,为了更好地理解需求获取过程中用户描述的问题,可以采用创建模型的方式来实现。这就是分析建模的过程。所谓模型,就是为了理解事物所做出的一种抽象,是对事物无歧义的书面描述。模型由
14、一组图形符号和组成这些符号的规则所组成。,分析建模,两种分析模型软件的分析模型通常用一组模型组成,其中包括信息(或数据)模型、功能模型和行为模型。结构化分析模型 面向对象分析模型分析模型的组成与描述工具 DFD、DD和PSPEC CFD、CSPEC和STD E-R图 用例图,对象-关系图,对象-行为图,50,51,结构化分析模型,加工说明(PSPEC),数据对象说明,CFD,STD图,DFD图,E-R图,DD,控制说明(CSPEC),功能模型,行为模型,数据模型,用于描述数据对象间的关系、构建软件的数据模,系统所涉及的各种数据对象的总和,主要作用是指明系统中数据是如何流动和变换的,以及描述数据
15、流如何进行变换,状态-变迁图:用于指明系统在外部事件的作用下将如何动作,表明系统的各种状态及各种状态间的变迁,面向对象分析是采用面向对象的思想进行软件需求分析建模的过程.通过对对象定义性,赋予操作,把该对象在系统中的活动特点描述出来,然后通过消息将对象内以及对与对象之间的关系反映出来.,52,面向对象分析模型,定位在哪个对象上,通过反映系统中的对象与对象之间的关系及表示对、类、属性和操作来表达目标系统的静态结构.利用类图及对象图建模。,决定在什么时候,什么条件下发生。关心的是时间变化、对象与对象之间关系的变化。以状态图和时序图为工具建模。,确定什么事件发生,反映的是系统模块的输入和输出。该模型
16、从用户的视角来表示系统,用例和场景用于功能模型的建模选择。,53,结构化分析工具DFD、DD和PSPEC 早期结构化分析模型的基本组成部分CFD、CSPEC和STD 扩展,用以适应实时软件建模的需要E-R图 适用于描述具有复杂数据结构的软件数据模型面向对象分析工具用例图,类对象图对象-关系图对象-行为图,分析建模的描述工具,结构化分析,二、数据流图Data-flow diagram,DFD数据流图是SA方法中用于表示系统逻辑模型的一种工具,它以图形的形式描绘数据在系统中流动和处理的过程。结构化分析方法把任何软件系统都视作一个数据变换装置,它接受各种形式的输入,通过变换产生各种形式的输出。,结构
17、化分析,DFD就是一种描述数据变换的图形工具,是结构化分析方法最普遍采用的表示手段,但数据流图并不是结构化分析模型的全部,数据字典和小说明为数据流图提供了补充,并用以验证图形表示的正确性、一致性和完整性,三者共同构成了结构化分析的模型。,结构化分析,1、基本图形符号(数据流图的四个基本成分),方框,表示数据的源点或终点,圆或椭圆,表示加工,结构化分析,1、基本图形符号(数据流图的四个基本成分),双杠,表示数据存储,箭头,表示数据流,DFD的基本形式,在数据流图中,如果两个以上的数据流指向一个加工,或者从一个加工引出两个以上的数据流,那么这些数据流之间往往存在一定的关系。为表示这些关系,用“*”
18、表示相邻的一对数据流同时出现;用“”表示相邻的一对数据流只取其一。,多个数据流加工符号,例:旅行社订飞机票系统的DFD图:,结构化分析,加工:是对数据进行处理的单元,它接受一定的输入数据,对其进行处理,并产生输出。每个加工有一个名字和编号。数据存储:信息的静态存储。用来表示暂时存储的数据,每个文件都必须有名字。,结构化分析,数据源或终点:表示系统和环境的接口,是系统之外的实体,可以是人、物或其他软件系统。其中,数据源是数据数据流的起点,终点是数据流的最终目的地。数据流:表示数据和数据流向。可以从一个加工流向另一个加工从加工流向文件,从源点流向加工从加工流向汇点。,结构化分析,2、实例:飞机票预
19、订系统问题描述:旅行社凭订票单进行机票的预订,售票员查询航班目录文件,检查是否有满足预订条件的机票,如果有,那么将费用记入记帐文件,并准备机票,最后将帐单和机票交给旅客。,旅行社,旅客,预订机票,准备机票,记帐,订票单,航班目录,记帐文件,航班,机票,费用,帐单,飞机票预订系统的数据流图,案例:学生收费系统,学生收费系统的DFD,结构化分析,加工的命名规则:每个加工都要有名字,加工的名字最好使用动宾词组在分层的数据流图中,加工还应编号,顶层的加工名就是软件项目的名字,结构化分析,数据流:数据流表示数据和数据流向,通常由一组数据项组成。数据流可以从加工流向加工,也可以从数据源流向加工,从加工流向
20、终点,还可以从加工流向数据存储文件,或从数据存储文件流向加工,一般流入或流出数据存储文件的数据流不需要标出名字,有数据存储的名字就可以了。,结构化分析,两个加工之间可以有多个数据流,这些数据流之间没有任何联系,数据流图也不表明它们的先后次序。数据流命名方法:数据流的名字用名词,或名词词组;命名时应尽量使用现实系统中已有的名字;把现实环境中传递的一组数据(这组数据组成一个数据流)中最重要的那个数据的名字作为数据流的名字,结构化分析,数据存储文件的命名方法:和数据流的命名方法相似。数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。,举例:以下是错误的表示!,加工至少有一个输入流和一
21、个输出流,无输入,无输出,数据流必须起于或止于加工,DFD与程序流程图的区别:,程序流程图用于表示程序的过程设计;DFD用作描述软件的逻辑功能,不能表示程序的控制结构。DFD只考虑软件“干什么”不必问“怎样干”,数据字典(Data Dictionary),DFD仅仅是一种流模型,其符号本身并不能充分地描述软件的需求。数据字典用于精确地定义系统中每一个数据对象和控制信息的特性。数据字典与数据流图配合,能清楚地表达数据处理的要求,使用户和分析员对系统中每一个环节的输入、输出和存储有共同的理解。数据字典是描述数据信息的集合。,数据字典(Data Dictionary),DFD和DD共同构成系统的逻辑
22、模型,没有DD,DFD就不严格,没有DFD,DD也难于发挥作用。,数据字典完成以下任务:词条描述;数据结构描述;加工逻辑说明。,数据字典包含以下信息:所有元素的名称:(数据流、数据项、加工和数据存储)别名使用位置和作用内容描述补充信息(数据类型、预设值、限制等),描述内容所使用的符号 操作符 含义描述 等价于(定义为)和(连接两个分量).或(选择结构).重复(循环结构)(.)任选 m.n 界域 注释符,例如:电话系统中的数据字典 电话号码=当地分机号|外地号码 当地分机=2001|2002|2999 外地号码=9+当地号码|长途号码 长途号码=(1)+区号+当地号码 前缀=795|799|87
23、4|877 访问的号码=*任意四位串号码*,只可访问4个分支交换机,限制重复次数说明,数据字典的实现:人工方法 自动方法(利用字典管理程序)(CASE结构化分析与设计工具);,数据字典的定义方法找出所有数据元素(数据流、数据项、加工和数据存储)对数据项分类作结构定义规定特性和限制排序(按DFD层次、按字母、汉字顺序),数据流,数据流名称、编号、简述、组成、来源、去向、数据量、峰值和备注等。其中数据流名称和组成是必需的,数据量和峰值也是需要的。,实例:发票的字典条目,解:“发票”条目内容与格式如下:,文件(存储方式),文件条目可以有如下内容:文件名、编号、简述、组成(描述该文件有哪些数据流组成)
24、、文件组织、读文件、写文件、数据量和备注等。,实例:学生信息表字典,解:“学生信息表”字典条目如下:,数据项,数据项条目包括数据项名、编号、简述(简述该数据项的含义)、单位(该数据项的计量单位)、类型(描述该数据项的数据类型)、值域(描述该数据项的取值范围)、编辑方式(描述该数据项在输出时的编辑要求)、与其他数据项的关系(有利于数据的合法性检查)和备注等。,实例:“年级”数据项,解:“年级”数据项定义如下:,加工,在DFD中,有些加工最终分解成许多简单的加工,下面把不再需要分解的加工称为基本加工。DD中只列出基本加工的条目,因为其他的加工都可以被基本加工说明。,一个基本加工的条目:加工名、编号
25、、简述(对该加工的简要说明)、输入/输出数据流(描述该加工有哪些输入/输出/数据流)、输入/输出文件(描述该加工需要读、写哪些文件)、加工逻辑(描述该加工在什么条件下做什么事)、异常处理(描述该加工可能遇到的异常及其处理反应)、加工激发条件、执行频率和备注等。,实例,发票=学号+姓名+发票行+总计费用 发票行=学费+住宿费+书号+单价+数量+总价 学生信息表=系编号+专业编号+类别编号+班编号+年级+宿舍编号+用书记录编号 系编号=2数字2*二位数字 类别编号=1数字1*一位数字 专业及班编号=数字*三位数字 年级=F/M/J/S*4个字母中任选一个,例如:存折,PSPEC(Process S
26、PECification,加工说明)(小说明),PSPEC是对DFD中每个加工所作的说明。由输入数据、加工逻辑和输出数据等组成。加工逻辑阐明把输入数据转换为输出数据的策略,是PSPEC的主体。小说明集中描述一个加工“做什么”,即加工逻辑,指用户对这个加工的逻辑要求,这个加工的输入数据和输出数据的逻辑关系。,PSPEC的描述工具通常有3种:结构化语言(Structured language)判定表(Decision Table)判定树(Decision Tree)。,结构化语言(Structured language),结构化自然语言(结构化英语)结构化自然语言是介于形式语言和自然语言之间的一种
27、语言,它虽然没有形式语言那样严格,但具有自然语言简单易懂的特点,同时又避免了自然语言结构松散的缺点。,结构化语言(Structured language),结构化自然语言的语法通常分为内外两层,外层语法描述操作的控制结构,如顺序、选择、循环等,这些控制结构将加工中的各个操作连接起来。内层语法一般没有什么限制,就用自然语言描述。使用结构化语言时,“若”后面表示的均为条件,“则”后面表示的均为要做的处理。若使用结构化语言时,可采用if、then、otherwise等关键字。,实例,问题描述【例2.6】假定学校录取新生时主要考虑两个条件(考分与体格检查结果)。首先检验考分,其次再按不同的体检结果,分
28、别做不同的处理。,实例,解:本系统的加工说明可如下描述:若成绩在录取分数之上 若体格检查合格 则发录取通知书 若体格检查不合格 则将考生档案转送下一志愿学校 若成绩在录取分数以下 若体格检查合格 则将考生档案转送下一志愿学校 若体格检查不合格 则发不录取通知书,例如:商店业务系统处理中“检查发货单”,例如:结构化语言来描述“审查开发票”加工部分,判定表,判定表常用来描述一些不易用语言表达清楚或需要很大篇幅才能用语言表达清楚的加工。判定表采用表格化的形式,适用于含有复杂判断的加工说明。条件越复杂,规则越多,越适宜用判定表的方式来描述。,判定表,如果在加工逻辑中同时存在顺序、选择和循环结构,还可在
29、判定表中加上结构化语言,或者在结构化语言写的说明中插进判定表,以充分发挥各自的特点。由4个部分构成:条件所指对象、所有的操作、各种条件下的组合及在对应的条件组合下操作是否执行。,实例:学校录取新生,实例:订票系统,问题描述例如:在飞机票预订系统中,在旅游旺季的510月份,如果订票超过20张,优惠票价的15%;20张以下,优惠5%;在旅游淡季的14,1112月份,定票超过20张,优惠票价的30%;20张以下,优惠20%。,实例,判定树,判定树用图形形式描述加工逻辑,其特点是结构清晰,易读易懂。,实例:学校录取新生,实例:订票系统,实体-关系图(E-R图),为了把用户的数据要求清楚、准确地描述出来
30、,系统分析员通常要建立一个概念模型。概念模型是面向问题的数据模型,是按照用户的观点对数据建立模型。在需求分析模型建立过程中,使用E-R图来建立数据模型。数据模型包含3种相互关联的信息:实体(数据对象)、属性及联系。,实体-关系图(Entity-Relation Diagram),数据模型包含的三种相互关联的信息:数据对象数据属性数据对象之间的关系 ERD(实体-关系)图是数据建模的基础,简单明了地表达了三种相互关联的信息。,实体-关系图,常用二维表的形式表示相关属性。通常用矩形框表示实体,用连接相关实体的菱形框表示联系,用椭圆形或圆角矩形表示属性,用直线将各种成分连接起来。,实例:学生属性表,
31、教师,学生,课程,职称,性别,姓名,职工号,学,教,姓名,性别,学号,系,年级,成绩,课程号,课名,学时,学分,教学ER图,学分,层次方框图,层次方框图是用结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。,实例:某计算机公司的全部产品,五、需求规格说明(SRS)Software Requirement Specification,115,需求规格说明,系统分析员在需求分析阶段需要完成的文档,是软件需求分析的最终结果。作用主要是:作为软件人员
32、与用户之间事实上的技术合同说明;作为软件人员下一步进行设计和编码的基础;作为测试和验收的依据。,SRS的目标,117,便于用户、分析人员和设计人员进行理解和交流。支持目标系统的确认。控制系统进化过程。,118,软件需求说明(SRS),引言信息描述功能描述行为描述质量保证接口描述其它,给出对软件所含信息的详细描述,包括信息的内容、关系、数据流向、控制流向和结构等。根据系统所选用的不同的分析方法,可以用不同的工具描述软件设计的数据的定义和系统的信息逻辑模型。,对软件功能要求进行说明,包括系统功能划分、每个功能的处理说明、限制和控制描述等。对软件性能的需求,包括软件的处理速度、响应时间和安全限制等内
33、容,通常也在此叙述。,对系统状态的变化以及事件和动作的叙述,据此可以检查外部事件和软件内部的控制特征。,阐明在软件交付使用前需要进行的功能测试和性能测试,并且规定源程序和文档应该遵守的各种标准。,对系统的用户界面、硬件接口、软件接口和通信接口等的说明。,阐述系统设计和实现上的限制,系统的假设和依赖等其他需要说明的内容。,主要叙述在问题定义阶段确定的关于软件的目标与范围,简要介绍系统背景、概貌、软件项目约束和参考资料等。,软件需求说明(SRS),引言任务概述需求规定运行环境规定附录,编写目的、项目范围、定义、参考资料,产品概述、用户特点、条件与限制,对功能的规定、对性能的规定、对输入输出的规定、数据管理的功能、其他专门的要求,用户界面、设备、软件接口、故障处理,120,需求评审,在提交设计之前进行。需求评审的标准:正确性无歧义性完全性可验证性一致性可理解性可修改性可追踪性,一般以用户、分析人员和系统设计人员共同参与的会议形式进行。,