[信息与通信]软件需求分析.ppt
《[信息与通信]软件需求分析.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]软件需求分析.ppt(120页珍藏版)》请在三一文库上搜索。
1、软件需求分析,教学提示,本章通过实例分析引入软件需求分析的任务与步骤,对软件需求分析的步骤需求获取、分析建模、文档编写及需求验证做了较详细的介绍;并着重介绍了用结构分析方法建立分析模型的描述工具及建立过程;同时给出文档编写规范与实例供学习参考。,教学要求,本章概念较多,分析比较抽象,教学中要注意结合实例进行说明,使学生对软件需求分析有较深刻的领会。本章重点是掌握软件需求分析的任务与步骤;理解需求获取的常用方法,尤其是快速原型法的过程;掌握结构化建立分析模型的方法及常用工具使用;理解软件需求规格说明书的结构与内容;学会阅读与书写软件需求规格说明书。,4,主要内容,一、软件需求分析概述 二、案例分
2、析 三、软件需求分析的任务和步骤 四、需求获取的常用方法 五、分析建模 六、需求规格说明书与需求评审,5,一、软件需求分析概述,软件开发期的第一个阶段 明确软件要“做什么”的问题 是关系到软件开发成败的关键步骤,6,需求问题,需求是软件项目成败的关键所在。 越早发现需求错误,越早改正它,其代价越小 需求是系统必须具有的能力。 好需求的特征: 无歧义、完整、一致、可检验、确定、可跟踪的,正确的,可行的和必要的。,7,软件开发的目标,软件开发的目标,简单而言,就是满足用户的需要 。,8,项目失败与成功的原因*,三种最经常使项目“遇到困难”的因素是: 缺乏用户介入:占所有项目的13% 不完整的需求和
3、规格说明:占所有项目的12% 不断改变的需求和规格说明:占所有项目的12% 三种项目最主要的“成功因素”是: 用户介入:占所有成功项目的16% 高层管理的支持:占所有成功项目的14% 需求陈述清晰:占所有成功项目的12%,9,需求在项目中的作用,在项目开发中,所有的涉众(Stakeholder)都对需求分析阶段倍感兴趣。 未真正明白这些问题就开始编码,结果没有人对产品满意 。,10,什么是需求,需求的基本概念 宽泛地讲,需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成完整的文档,该文档详细地说明了产品“必须或应当”做什么。 所以如果只有一些零碎的对话、资料或邮件,你就以为自己已经掌
4、握了需求,那是自欺欺人。,什么是需求,12,需求的重要性,Frederick Brooks在他1987年经典文章“No Silver Bullet”中阐述了需求的重要性: 开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。,13,需求是产品的根源,需求工作的优劣对产品影响最大。就像一条河流,如果源头被污染了,那么整条河流也就被污染了。 国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙碌不停地开发。,14,需求错误的代价,在生命周期的不同阶
5、段修复缺陷的相对成本,15,需求缺陷造成的成本增加,重新进行需求规格说明 重新设计 重新编码 重新测试 改变订单告诉用户将以一个修正后的版本来替代有缺陷的版本。 纠正活动消除由于不准确的特定系统的错误造成的危害,可能涉及到赔偿客户损失。 报废包括对于已经完成的代码、设计和测试,当发现它们是根据不正确的需求进行的时候,这些工作成果不得不被丢弃。 收回有缺陷的软件产品以及相关的用户手册。 产品赔偿或保修的成本。 重新安装新版本的成本。 重新建档的成本。,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、在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求列出来。 需求阶段的任务并不是确定系统怎样完成工作,而仅仅是确定系统必须完成哪些工作,即
11、对目标系统提出完整、准确、清晰、具体的要求。,36,37,1、建立分析模型,分析模型(Analysis Model)是描述软件需求的一组模型(常由一组图、表加上注释组成) 精确记录用户对原始问题和目标软件的描述。 帮助分析人员发现用户需求中的不一致性,排除不合理部分,挖掘潜在的用户要求。 应包含有对系统信息流、处理功能、用户界面、行为模型、设计约束的描述。,38,精确性、一致性 清晰性、没有二义性 直观、易读、易于修改,2、编写需求规格说明,39,软件需求各组成部分之间的关系,40,需求获取 系统功能、界面、质量等方面的需求 需求提炼(分析建模) 分析建模,常用建模工具数据流图(DFD)、实体
12、关系图(ER图)、控制流图(CFD)、状态转换图(STD图)、用例图(use case)、类对象关系及行为图 需求描述(文档编写) 编写SRS 需求验证 确保需求规格说明可作为软件设计和最终系统验收的依据,2.2 需求分析的步骤,41,Requirements Engineering Process,42,需求分析阶段的活动,43,需求分析的步骤,通过对现实环境的调查研究,获得当前系统的具体模型; 去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型; 分析当前系统与目标系统的差别,建立目标系统的逻辑模型; 对目标系统进行完善和补充,并写出完整的需求说明; 对需求说明进行复审。,三、需求获取的
13、常用方法,常规的需求获取方法 快速原型方法,44,45,常规的需求获取方法,简易的应用规格说明技术(建立联合分析小组) 用户代表、领域专家和系统分析员 客户访谈 充分准备,寻找共同语言 循序渐进、逐步逼近 情景分析技术(问题分析与确认) 多个来回,常规的需求获取方法,通信途径:访谈、调查、情景分析,某图书馆系统调查表,快速原型方法有效的需求获取方法,步骤 利用各种分析技术和方法,生成一个简化的需求规格说明 对需求规格说明进行必要的检查修改后,确定原型的软件结构、用户界面和数据结构等 在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试、改进 将原型提交给用户评估并征求用户的修改意见 重
14、复上述过程,直到原型得到用户的认可,48,四、分析建模,为了更好地理解需求获取过程中用户描述的问题,可以采用创建模型的方式来实现。 这就是分析建模的过程。所谓模型,就是为了理解事物所做出的一种抽象,是对事物无歧 义的书面描述。模型由一组图形符号和组成这些符号的规则所组成。,分析建模,两种分析模型 软件的分析模型通常用一组模型组成,其中包括信息(或数据)模型、功能模型和行为模型。 结构化分析模型 面向对象分析模型 分析模型的组成与描述工具 DFD、DD和PSPEC CFD、CSPEC和STD E-R图 用例图,对象-关系图,对象-行为图,50,51,结构化分析模型,加工说明 (PSPEC),数据
15、对象说明,CFD,STD图,DFD图,E-R图,DD,控制说明(CSPEC),功能模型,行为模型,数据模型,用于描述数据对象间的关系、构建软件的数据模,系统所涉及的各种数据对象的总和,主要作用是指明系统中数据是如何流动和变换的,以及描述数据流如何进行变换,状态-变迁图:用于指明系统在外部事件的作用下将如何动作,表明系统的各种状态及各种状态间的变迁,面向对象分析是采用面向对象的思想进行软件需求分析建模的过程. 通过对对象定义性,赋予操作,把该对象在系统中的活动特点描述出来,然后通过消息将对象内以及对与对象之间的关系反映出来.,52,面向对象分析模型,定位在哪个对象上,通过反映系统中的对象与对象之
16、间的关系及表示对、类、属性和操作来表达目标系统的静态结构.利用类图及对象图建模。,决定在什么时候,什么条件下发生。关心的是时间变化、对象与对象之间关系的变化。以状态图和时序图为工具建模。,确定什么事件发生,反映的是系统模块的输入和输出。该模型从用户的视角来表示系统,用例和场景用于功能模型的建模选择。,53,结构化分析工具 DFD、DD和PSPEC 早期结构化分析模型的基本组成部分 CFD、CSPEC和STD 扩展,用以适应实时软件建模的需要 E-R图 适用于描述具有复杂数据结构的软件数据模型 面向对象分析工具 用例图,类对象图 对象-关系图 对象-行为图,分析建模的描述工具,结构化分析,二、数
17、据流图Data-flow diagram, DFD 数据流图是SA方法中用于表示系统逻辑模型的一种工具,它以图形的形式描绘数据在系统中流动和处理的过程。 结构化分析方法把任何软件系统都视作一个数据变换装置,它接受各种形式的输入,通过变换产生各种形式的输出。,结构化分析,DFD就是一种描述数据变换的图形工具,是结构化分析方法最普遍采用的表示手段,但数据流图并不是结构化分析模型的全部,数据字典和小说明为数据流图提供了补充,并用以验证图形表示的正确性、一致性和完整性,三者共同构成了结构化分析的模型。,结构化分析,1、基本图形符号(数据流图的四个基本成分),方框,表示数据的源点或终点,圆或椭圆,表示加
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息与通信 信息 通信 软件 需求 分析
链接地址:https://www.31doc.com/p-2001268.html