软件工程_需求分析.ppt_第1页
软件工程_需求分析.ppt_第2页
软件工程_需求分析.ppt_第3页
软件工程_需求分析.ppt_第4页
软件工程_需求分析.ppt_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件需求:指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。,第三章需求分析,3.1基本概念,需求工程(requirementengineering,RE)是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。,RE可分为系统需求工程(如果是针对由软硬件共同组成的整个系统)和软件需求工程(如果仅是专门针对纯软件部分)。,系统需求工程和软件需求工程,软件需求工程,是一门分析并记录软件需求的学科,它把系统需求分解成一些主要的子系统和任务,把这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型开发过程把这些系统需求转换成软件的需求描述和一些性能参数。,软件需求,是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通过对应问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化,最终形成需求规格说明,这一系列的活动即构成软件开发生命周期的需求分析阶段。,需求分析,介于系统分析和软件设计阶段之间的桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的主要基础。良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,改进软件质量。,需求工程是一个不断反复的需求定义、文档记录、需求演进的过程,并最终在验证的基础上冻结需求。80年代,HerbKrasner定义了需求工程的五阶段生命周期:需求定义和分析、需求决策、形成需求规格、需求实现与验证、需求演进管理。MatthiasJarke和KlausPohl提出了三阶段周期的说法:获取、表示和验证。,需求工程过程,1、涉及的几个问题,如何定义系统需求?如何识别、获取需求?你能够采取何种手段与用户进行交流沟通?何为需求建模?你如何理解模型与建模?,2、需求分析的三个阶段,需求获取需求提炼:分析建模(导出软件逻辑模型)需求描述:编写需求验证,3、需求分析的步骤,4、六步骤说,把需求工程的活动划分为以下6个步骤:(1)需求获取:通过与用户的交流,对现有系统的观察,从而捕获用户的需求;(2)需求分析:对获取的需求进行分析;(3)需求规约:对需求进行确的形式化的描述,作为用户和开发者之间的一个协约;,(4)需求建模:为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述;(5)需求验证:验证、确认需求的正确性和可行性;(6)需求管理:支持系统的需求演进,如需求变化和可跟踪性问题。,六步骤之二,3.2需求获取,需求获取即问题识别。任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用规范的形式准确地表达用户的需求。,在需求分析阶段,系统分析员的主要焦点是“做什么(what)”,不是“怎样做(how)”,焦点-what,一、需求获取面临的挑战,问题的复杂性和对问题空间理解的不完备性与不一致性交流障碍需求易变性,绝大部分用户是不懂得需求分析方法的,他们不知道怎样全面而又准确无误地表达自己的需求,因而对于需求分析人员来讲,需要掌握很好的方法与技巧,恰当地启发引导用户表达自己的需求,以便为项目的成功提供一个很好的基石。,需求获取面临的挑战之二,需求获取的2个基本原则,1深入浅出2以流程为主线,1深入浅出,对企业的需求调研的要尽可能的全面、细致,调研的需求是个全集,系统真正实现的是个子集。所做的工作可能一时看不到有什么作用,但是这样做可以对应用领域的业务吃得很透,能够避免一些不必要的麻烦,如可以保证系统的灵活性等。,2以流程为主线,在与用户交流的过程中,应该用流程将所有的内容串起来,如单据、信息、组织结构、处理规则等,这样便于交流沟通,符合用户的思维习惯。流程的描述既要有宏观,又要有微观。即要强调总体的业务流程、全生命周期的业务流程,又要对流程细化,有分支的业务流程。在分析企业流程并进行优化时,要把握几个方面:,该流程中是否存在不必要的环节?是否可以将决策的权力下放到作业部门?流程是否可以简化?是否可以省略一些环节?流程中的每个处理环节是否起到了增值的作用?哪些流程可以并行处理?与需求并行可提前做的设计工作有哪些?例如:数据库概念模型设计?基础数据字典设计?,企业流程分析,1用户访谈与会议2现场观察与实地调研3联合工作小组,二、初步需求获取技术,分析人员与用户在一起,充分了解用户的要求把双方的理解用需求规格说明书表达出来需求规格说明书包括目标系统的完整描述,需求验证标准,等等.审核通过之后,将成为系统设计的依据和将来验收系统的依据,联合工作小组,三、需求获取的内容,1.用户需求分类(1)功能性需求:定义了系统做什么(描述系统必须支持的功能和过程)(2)非功能性需求(技术需求):定义了系统工作时的特性(描述操作环境和性能目标),2.两类需求包括的内容,(1)功能(2)性能(3)环境(4)界面(5)用户或人的因素(6)文档(7)数据(8)资源(9)安全保密(10)软件成本消耗与开发进度(11)质量保证,(1)功能需求,系统做什么?系统何时做什么?系统何时及如何修改或升级?,(2)性能需求,软件开发的技术性指标例如:存储容量限制执行速度、相应时间吞吐量,(3)环境需求,硬件设备:机型、外设、接口、地点、分布、温度、湿度、磁场干扰等软件:操作系统网络数据库,(4)界面需求,有来自其它系统的输入吗?有来自其它系统的输出吗?对数据格式有规定吗?对数据存储介质有规定吗?,(5)用户或人的因素,用户类型?各种用户熟练程度?需受何种训练?用户理解、使用系统的难度?用户错误操作系统的可能性?,(6)文档需求,需哪些文档?文档针对哪些读者?,(7)数据需求,输入、输出数据的格式?接收、发送数据的频率?数据的准确性和精度?数据流量?数据需保持的时间?,(8)资源需求,软件运行时所需的数据、软件。内存空间等资源。软件开发、维护所需的人力、支撑软件、开发设备等。,(9)安全保密要求,需对访问系统或系统信息加以控制吗?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?系统备份要求?,(10)软件成本消耗与开发进度需求,开发有规定的时间表吗?软硬件投资有无限制?,(11)质量保证,系统的可靠性要求?系统必须监测和隔离错误吗?规定系统平均出错时间?出错后,重启系统允许的时间?系统变化如何反映到设计中?维护是否包括对系统的改进?系统的可移植性?,3.3需求分析建模,需求分析阶段建立的目标系统模型是一种逻辑模型,不涉及实现细节。逻辑模型构造的方法和描述的工具有很多,如:面向数据流的分析方法面向对象的分析方法,1、模型(model),模型一般分为具体模型和抽象模型两大类。具体模型有直观模型、物理模型等,抽象模型有思维模型、符号模型、数学模型等。,2、逻辑模型和物理模型,模型是对对象系统的形式化的特征抽象,概括性或近似地表示;系统的逻辑模型通常是由数据流图、实体联系图、状态转换图、数据字典、主要算法来描述。,逻辑模型物理模型(本质模型、概念模型)(实施模型、技术模型),当前系统,新系统,描述业务功能,无论系统是如何实现的。,描述当前的系统是如何实现的。,描述新系统的主要业务功能和用户新的需求,无论系统如何实施。,描述新系统是如何实施的(包括技术)。,3、分析阶段中常用的模型(逻辑模型),数据流图(DFD)实体联系图(ERD)类图实例图时序图状态图协作图,4、逻辑模型的构造过程,模型化即抽象的过程。系统模型是对现实世界的有关实体或活动的抽象,建立的过程包括观察分析、模型表示和模型检查三个阶段。,建模过程图示之一,系统模型的建立过程将运行的情况与外部的现实情况跟踪对照,检查模型是否符合要求。,构造模型的过程是一个抽象、分析的过程。,对象系统,模型系统,抽象(映射),模型应用,模型构造的过程,建模过程图示之二,3.3.2需求分析建模方法,分析建模方法1、结构化分析(传统建模方法)2、面向对象分析,计算机世界,现实世界,结构化分析,结构化设计,OOA,OOD,OOP,结构化开发方法,结构化编程,面向对象开发方法,建模方法图示,对象-关系模型,类/对象模型,对象-行为模型,使用实例(UseCase),操作、,属性、,协作者,面向对象模型的组成,面向数据流的分析:结构化分析方法(StructuredAnalisys,SA)的需求获取应遵循的三条基本原则:分解抽象投影,3.3.3需求工程之结构化分析,分析模型的主要目标,描述用户需要建立创建软件设计的基础定义软件完成后可被确认的一组需求,分析模型的构成,数据字典(DD):模型核心(中心库)E-R图(ERD):数据流图(DFD)指明数据在系统中移动时如何被变换;描述对数据流进行变换的功能;DFD中每个功能的描述包含在加工规约(小说明)。状态变迁图(STD)指明作为外部事件的结果,系统将如何动作。,数据流图(DFD),E-R图,状态变迁图(STD图),加,工,说,明,控制说明,数,据,对象,说明,数据字典(DD),结构化分析模型的组成,3.3.4数据建模,表达目标系统的数据结构,E-R图,概念模型和规范化,为了更清晰明确地表达用户的数据要求,系统分析员通常建立一个概念性的数据模型。这是一种面向问题,按照用户的观点对数据和信息建摸,且与在软件中实现的方法无关。最常用的是一种(Entity-RelationshipApproach)“实体联系方法”。这种方法用ER图描述现实世界中的实体,不涉及实现方法,称为ER模型。,前一页,概念模型和规范化,ER模型范式,前一页,主要内容,前一页,ER模型,概念模型和规范化,ER模型包括“实体”、“联系”和“属性”三个基本部分,实体:是客观世界中存在的且可以相互区分的物。如:职工、教师、产品等,联系:客观世界中事物间的联系。可分为:一对一联系(1:1)一对多联系(1:N)多对多联系(M:N),属性:是实体或联系具有的性质,通常一个实体由若干个性质来刻画。,概念模型和规范化,前一页,ER模型,概念模型和规范化,前一页,范式,通常用“范式”(NormalFormas)定义消除数据的冗余的程度。按照冗余程度的大小,分为第一范式(1NF)到第五范式(5FN)。,范式,概念模型和规范化,前一页,范式越高冗余度越小,但并非越高越好。随着范式的提高,存储过程变得复杂起来;数据的存储结构与问题的结构间的匹配程度随之下降,在需求变化时数据的稳定性差;访问的表增多,访问的效率下降。满足最低要求的是第一范式,在第一范式中再进一步满足一些要求的为第二范式,。大多数情况下选用第三范式比较合适。,概念模型和规范化,前一页,范式,第一范式:每个属性都必须是原子值,即仅仅是一个简单值而不含内部结构。第二范式:满足第一范式条件,而且每个非关键字的属性都由整个关键字决定。第三范式:符合第二范式条件,每个非关键字的属性仅由关键字决定,而且一个非关键字的属性不能仅仅是对另一个关键字的描述。,3.3.5功能建模,信息流建模DFD,1.数据流图(DFD),(DataFlowDiagram),描述逻辑模型的图形工具,表示数据在系统内的变化,用来刻画数据流和转换的信息系统建模技术。实现数据流程分析,其具体做法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图,一边整理绘图,一边核对相应的数据和报表、模型等。,按照自顶向下、逐层次分解、逐步细化的结构化分析方法进行。,DFD绘制方法,(1)外部项,是指不受系统控制,在系统以外的事物或人,它表达了目标系统数据的外部来源或去处。(2)数据流,是指用一个单项箭头来表示数据的流动方向。(3)物理逻辑,表述对数据的逻辑处理功能,也就是对数据的变换功能。(4)数据存储,是指数据保存的地方。,2数据流程图的基本成分,数据流图,数据流图中的主要图形元素,数据流与数据加工之间的关系,3分层的数据流程图,DFD可以用来表示一个系统或软件在任何层次上的抽象。较大型软件系统DFD分成多层(子图、父图概念),可以表示数据流和功能的进一步的细节。分层的数据流程图示例:,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。,S,2,1,3,2.2,2.1,2.3,3.1,3.2,顶层(不编号),0层,1层,数据流图的层次图,在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据。底层流图是指其加工不需再做分解的数据流图,它处在最底层。中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,4数据流程图的画法,数据流图的形成过程就是系统分析的过程。将一个(子)系统看作一个整体,明确信息的输入输出,内部的处理、传递、存储,将这些处理分别看作整体功能,内部再分析出处理、传递、存储,逐级进行。,人事工资管理系统的顶层DFD(概图)范例,人事工资管理系统0层DFD范例,人事工资管理系统1层DFD:加工3.0的分解图,5画数据流程图的注意事项,1)数据流程图与程序流程图不同,前者完全不反应时间的顺序,只反映数据的流向、自然的逻辑过程和必要的逻辑数据存储、尤其是也反映循环过程。在数据流程图中,既不反映起始点,也不反映终止点,所有与计算机有关的专业技术都不在数据流程图中反映,这样才能和用户有共同语言。,2)数据流程图中不反应判断和控制条件。3)正式画出系统的数据流程图,尽量避免线条的交叉,必要的时候可以重复外部项和重组的数据储存符号,数据流程图中的各种符号要布局合理、整齐清楚,分布均匀,提高易理解性。,4)逐层扩展要保持系统的完整性和一致性;下一层的输入和输出数据流至少要和上一层的输入和输出数据流相对应。下一层的外部项至少要和上一层的外部项相对应。根据第一张定稿的数据流程图,对其中的每一个处理逻辑,逐层向下扩展出详细的数据流程图,如果分解出来的数据流图基本表达了系统所有的逻辑功能和必要的输入输出,就没有必要再向下扩展了。,每一层数据流程图中的处理逻辑一般不超过78个。5)检查数据流图的正确性,例子:,3.3.7数据字典(DD,DataDictionary),1数据字典的各类条目2数据字典的使用与管理,数据字典,DD是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解。,数据字典的作用,DFD中的数据流、数据存储表示某个有组织的数据集合,它们要由系统分析的其他描述工具-数据字典来描述,包括:词条描述数据结构描述加工逻辑说明,数据词典,数据词典与数据流图配合,能清楚地表达数据处理的要求。词条描述对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等。,1数据字典的各类条目,数据项条目数据结构数据流条目数据存储条目处理过程外部实体,1)、数据项条目(数据元素词条),不可再分解的数据单位,包括:名称描述数据类型长度(精度)取值范围及缺省值计量单位相关数据元素及数据结构,举例,名称:商品编号别名:G-No,G-num简述:企业生产商品的编号类型:字符串长度:10取值范围及含义:第1位:JG(类别)第24位:LB01.LB29(规格)第57位:“A00”.“A99”(品名编号)第810位:“001”.“999”(自然序号),2)、数据结构,数据结构包含若干数据元素或数据结构,数据结构描述数据之间的组合关系。,例如:存折格式,存折户名所号帐号开户日性质(印密)1存取行50户名2字母24所号“001”.“999”帐号“00000001”.“99999999”开户日年月日性质“1”.“6”注:“1”表示普通户,“5”表示工资户等,印密“0”注:印密在存折上不显示存取行日期(摘要)支出存入余额操作复核,3)数据流条目,给出DFD中某个数据流的定义,通常包括:数据流标识数据流来源数据流去向数据流的数据组成流动属性描述:频率、数据量,举例:,数据流条目说明举例,数据流名:发票别名:无简述:客户购买时填写的项目来源:客户去向:加工1“审查并开发票”组成:客户姓名商品名+单价数量+总额数据流量:1000次/周高峰值:节假日1000次/天,4)、数据存储条目(数据文件词条),对某个文件的定义,包括:文件名描述:存放的是什么数据数据结构数据存储方式:顺序,直接关键码存取频率和数据量安全性要求,数据存储条目说明举例,文件名:库存记录别名:无简述:存放库存所有可供货物的信息组成:货物名称编号生产厂家单价库存量,组织方式:索引文件,以货物编号为关键字查询要求:要求能够立即查询,5)、处理过程条目(加工逻辑说明),加工类条目即数据处理描述,也称为小说明。描述实现加工的策略而不是实现加工的细节。小说明可认为是DD的组成部分。也可在DD中只定义说明每个加工的组成(每个处理分解成多少小处理),而在小说明中详细描述它的处理逻辑.,处理过程条目(加工逻辑说明),加工逻辑名:登记报名单编号:1.0激活条件:收到报名单加工逻辑:1.1检查报名单+1.2编准考证号+1.3登记考生执行频率:2000次/日,小说明(加工逻辑说明的另一种形式),描述的内容:(1)处理逻辑描述基本加工如何把输入数据流变化为输出数据流的加工原则,不涉及具体处理方法。(2)执行条件(3)输入(4)输出,(5)优先级(6)执行频率(7)出错处理对策,小说明举例,加工名:分类采购(CG111MD)编号:1.1.1加工激活条件:受到图书采购员分类采购操作命令加工逻辑:(1)1.1.1.1预定图书(2)1.1.1.2外采图书(3)1.1.1.3赠送图书执行频率:随时,小说明举例,处理名:月票额统计(MHCW713MD)编号:7.1.3激活条件:收到每日售票额信息处理逻辑:1统计月保险金总合月保险金信息=每日日保险金信息之和2统计月合计月合计信息=每日日合计信息之和执行频率:1次/月,用于写加工逻辑说明的工具,结构化英语判定表判定树,判定表,判定表用于表示加工逻辑在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理。要求将流程图中的多分支判断都改成两分支判断,例用判定表表示旅游票价的优惠规定。某旅行社根据旅游淡季、旺季及是否团体订票,确定旅游票价的折扣率。具体规定如下:人数在20人以上的属团体,20人以下的是散客。每年的4-5月、7-8月、10月为旅游旺季,其余为旅游淡季。旅游旺季,团体票优惠5,散客不优惠。旅游淡季,团体票优惠30,散客优惠20。用判定表表示旅游订票的优惠规定。,建立判定表的步骤,列出与一个具体过程(或模块)有关的所有处理。列出过程执行期间的所有条件(或所有判断)。将特定条件取值组合与特定的处理相匹配,消去不可能发生的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论