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

下载本文档

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

文档简介

第3章需求分析3.1需求分析的任务3.2与用户沟通获取需求的方法3.3分析建模与规格说明3.4实体-联系图3.5数据规范化3.6状态转换图3.7其他图形工具3.8验证软件需求3.9小结习题为什么需要需求分析?开发人员往往急于求成希望对开发进行指导希望开发人员对用户的要求理解希望用户理解开发人员测试部门有理可依需求分析的任务

就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。需求分析做什么?准确地回答”系统必须做什么?”这个问题;对系统提出完整、准确、清晰、具体的要求;写出软件需求规格说明书;用户要很好地参与到需求分析过程中来;(需求要不断迭代)注意区别”可行性分析”和”需求分析”的异同;设计出系统的”数据模型”、细化的“逻辑模型”和“行为模型”;(关键所在)IsWhatNotHow需求分析做什么?所有的结构化分析方法都遵守下述准则:(1)必须理解并描述问题的信息域,根据这条准则应该建立数据模型。(2)必须定义软件应完成的功能,这条准则要求建立功能模型。(3)必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。(4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。需求获取面临的挑战客户说不清楚需求需求易变性问题的复杂性和对问题空间理解的不完备性与不一致性优秀需求具有的特性1.完整性

2.正确性

3.可行性

4.必要性

5.划分优先级

6.无二义性

7.可验证性3.1需求分析的任务

具体任务:确定对系统的综合要求(系统需要什么?)

分析和设计系统的数据要求

(处理的数据对象是什么?)在可行性分析的基础之上分析和设计系统的功能模型(系统功能的模型表示是什么?)分析和设计描述软件动态变化的行为模型(系统的状态是如何改变的?)

编写软件需求规格说明书,可能需要修正系统开发计划3.1.1确定系统的综合要求功能要求性能要求可靠性和可用性要求出错处理要求接口要求约束逆向要求扩展要求基本的、核心的时间、存储量、安全性MTTF对环境错误应该如何响应用户、硬件、软件、通信限制条件、精度、语言对系统可能的扩充或修改系统不应该做什么3.1.2分析和设计系统的数据要求软件系统的本质是对数据进行处理。通常要求建立完整的数据模型(E-R模型)数据字典缺乏直观性(考虑图形化的描述复杂数据的组成)必要时需要对数据模型进行规范化(范式)阶段性成果:E-R图层次方框图或Warnier图3.1.3分析和设计系统的功能模型确定系统综合要求和分析系统数据要求顺利完成之后即可导出详细的系统功能模型。阶段性成果:细化后并经过多次校验的数据流图(DFD)与数据流图相辅相存的数据字典(DD)概要性的描述主要加工的处理算法(IPO)3.1.4分析和设计系统的行为模型确定系统的动态变化的方式,采用状态转换图来描述。阶段性成果:状态转换图(STD)3.1.5编写需求规格说明,可能需要修正系统的开发计划根据上述的阶段性成果,汇总为“软件需求规格说明书”,以提交评审在可行性分析的基础上,较准确地估计系统的开发成本和进度修正开发计划3.2与用户沟通获取需求的方法访谈面向数据流自顶向下求精简易的应用规格说明技术快速原型法用户和系统其他人员参与需求分析3.2.1访谈最早并且仍然广泛使用正式的访谈:具体问题的问答形式非正式的访谈:开放式、交互性的问答需要调查大量人员有时采用“调查表”技术还使用“情景分析技术”(用户角度),就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。3.2.1访谈情景分析(1)它在某种程度上演示目标系统的行为,便于用户理解,而且还可能进一步揭示出一些分析员还不知道的需求。(2)由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色。3.2.2面向数据流的自顶向下求精信息系统的本质决定数据是需求分析的起点系统分析员一定要搞清楚数据的细节分析的对象:高层数据流图(什么阶段得到的?)主要目标:把数据流和数据存储定义到元素级别(不可分解为止)可行性分析忽略了细节数据的来源、去向、数据结构定义等3.2.2面向数据流的自顶向下求精结构化分析方法是一种什么方法呢?从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出的关键原因。输出数据决定了系统必须具有的最基本的组成元素(包括功能和数据结构组成)。自顶向下,逐层细化的方法3.2.2面向数据流的自顶向下求精注意1:第2章给出了1种数据流图的分析方法(教材),其目的主要是导出较高层次较粗糙的数据流图,而需要准确地收集需求,采用本章的从数据流图的输出向输入的回溯方法。3.2.2面向数据流的自顶向下求精回溯过程中需要回答两个问题输出数据的组成?输出数据的来源?深入调查外部输入或系统生成3.2.2面向数据流的自顶向下求精回溯时常遇到的问题:为了得到某个数据元素需要用到数据流图中还没有的数据元素,或者得出这个数据元素要用的算法尚不完全清楚。因此,需要向用户等有关人员请教,他们的回答使分析员对目标系统的认识更深入具体,系统中更多的数据元素被划分出来,更多的算法搞清楚了。把分析过程中得到的有关数据元素的信息记录在数据字典中,把对算法的简明描述记录在IPO图中。通过分析而补充的数据流、数据存储和处理,应该添加到数据流图的适当位置上。面向数据流方法的分析过程沿数据流图回溯用户复查细化数据流图修正开发计划书写文档审查和复审沿数据流图回溯从数据流图的输出向输入回溯,依次确定每个数据元素的来源(组成和实现算法);把数据元素的信息记录到数据字典中;把对算法的简明描述记录到IPO图中;补充的数据流、数据存储和处理应该添加到数据流图的适当位置上。用户复查数据流图是帮助复查的极好工具;分析员向用户解释数据的来源(组成和处理,它反映了分析员建立的对系统已有的认识。)用户要及时纠正和补充分析员的认识它验证了已知的元素,补充了未知的元素,填补了文档中的空白;分析员对系统的认识是一个螺旋式上升的过程。细化数据流图为了追踪更详细的数据流,应该把数据流图扩展到更低的层次;通过追踪这些细化的数据流图产生了新的问题,新的问题的答案可能在数据字典中增加新的条目,并且将产生新的算法;功能分解可以完成数据流图的细化;细化过程中注意及时的更新数据字典;书写文档需求规格说明数据要求用户系统描述修正的开发计划需求分析的过程示图面向数据流方法的分析的应用仓库管理员采购员定货系统事务定货报表来源、数据组成是什么?来源:由哪个加工产生或从哪个文件读出?数据组成:数据字典应该如何设计,大概有哪些数据项?面向数据流方法的分析的应用名字:定货报表别名:定货信息描述:每天一次送给采购员的需要定货的零件表定义:定货报表=零件编号

+零件名称+定货数量+目前价格+主要供应商+次要供应商位置:定货报告定货信息库存清单逐一确定元素的来源面向数据流方法的分析的应用仓库管理员采购员1处理事务2产生报表事务定货报表库存清单D1定货信息D2123456包含零件编号、名称、目前价格形成定货数量面向数据流方法的分析的应用仓库管理员采购员1.1接收事务2产生报表事务定货报表库存清单D1定货信息D21.2更新库存1.3处理定货事务库存信息12356487供应商信息D33.2.3简易的应用规格说明技术前两种方法中,用户比较被动它是一种面向团队的需求收集方法,是一种主流技术它提倡用户与开发者密切合作、共同标识问题、提出解决方案,确定基本需求简易的应用规格说明技术流程初步访谈待解决问题的范围和方案召开讨论会是否需要这个软件以及对需求进行组合针对每个议题制定一统一的需求列表分会讨论单独议题需求列表的讨论汇总需求完整的需求规格说明书3.2.4快速原型法快速建立起来的旨在演示目标系统主要功能的可运行的程序。它是最准确、有效和强大的需求分析技术。基本特性:快速:快速的提供给用户一个可运行的软件;容易修改:根据用户的要求可迅速构建新的原型;3.3分析建模与规格说明模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型。数据角度、功能角度、行为角度DFD、DD、STD、E-R模型的作用现实世界计算机世界影射模型的作用计算机世界现实世界结构化开发方法结构化分析结构化设计结构化编程OOAOODOOP面向对象开发方法结构化分析模型的组成结构数据流图

(DFD)E-R图状态转换图(STD图)加工说明控制说明数据对象说明数据字典(DD)面向对象分析模型的组成结构对象-关系模型类/对象模型对象-行为模型使用实例(UseCase)操作、属性、协作者3.3分析建模与规格说明结构化分析方法的创建的几个主要模型及关键元素如下:数据模型:E-R图(E-RD)(本章介绍)功能模型:数据流图(DFD)行为模型:状态转换图(STD)(本章介绍)数据字典:模型中心(DD)根据上述模型整理出软件需求规格说明书3.4实体-联系图为了把用户的数据要求清楚、准确地描述,信息模型,或概念性数据模型。(是面向问题的数据模型,是按照用户的观点对数据建立的模型)现实世界的数据抽象,它是真实世界的最好反映,它完全依赖于用户的角度(语义)。信息系统数据库分析与设计的基础,也是数据建模的基础。包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。3.4.1数据对象它是指用一系列的属性和性质,对现实中的事物加以更加形象的描述。它也称为实体,可以是有生命的或没有生命的。实体之间不是孤立的。注意区分面向对象中的“对象”和ER中的“数据对象”。(只封装数据,而没有施加于数据上的操作的引用)3.4.1数据对象它的范畴很大,可以是外部实体(例如,产生或使用信息的任何事物)、事物(例如,报表)、行为(例如,打电话)、事件(例如,响警报)、角色(例如,教师、学生)、单位(例如,会计科)、地点(例如,仓库)或结构(例如,文件)等。总之,可以由一组属性来定义的实体都可以被认为是数据对象。3.4.2属性属性定义了数据对象的性质数据对象的基本属性,它是原子的。关键字属性是什么?属性的确定要依据实际的软件问题。(究竟是否为属性或究竟是什么属性?)3.4.2联系实体之间是存在联系的1:11:NM:N联系也可以有属性实体-联系图的符号ER图中包含了实体(即数据对象)、关系和属性等3种基本成分。通常用矩形框代表实体;用连接相关实体的菱形框表示关系;用椭圆形或圆角矩形表示实体(或关系)的属性;并用直线把实体(或关系)与其属性连接起来。“化学制品跟踪系统”实体联系图化学制品仓库存货清单化学制品容器存储执行化学制品请求1MM13.5数据规范化信息以一定方式组织并存储在数据库或文件中,为减少数据冗余,避免出现插入异常或删除异常,需要把数据结构规范化。数据库中范式的定义(normalforms)第一范式:原子属性冗余程度最大第二范式:消除部分函数依赖第三范式:消除传递函数依赖规范化的目的是:消除数据冗余,即消除表格中数据的重复;消除多义性,使关系中的属性含义清楚、单一;使关系的“概念”单一化,让每个数据项是一个简单的数或字符串,而不是一个组项或重复组;方便操作。使数据的插入、删除与修改操作可行并方便;使关系模式更灵活,易于实现接近自然语言的查询方式。第一范式

每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。

如:学生(学号,姓名,性别,年龄,年级,专业,籍贯)教师(职工号,姓名,年龄,职称,职务,工资级别,工资)课程(课程号,课程名,学分,学时,课程类型)第二范式

满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。

如:选课

(学号,课程号,听课出勤率,作业完成率,分数)教课

(职工号,课程号,授课效果)第三范式

符合第二范式的条件。

满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。

例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。

3.6状态转换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。例如:上课铃响了,同学们应该进入教室准备上课。状态图还指明了作为特定事件的结果,系统将做哪些动作(例如,处理数据)。3.6.1状态状态代表系统的行为模式;一个状态代表系统的一种行为模式。它规定了系统对事件的响应方式;(3种)改变状态(绝大多数的系统都如此响应)做动作(完成一定的“操作”)既改变状态,又做动作(比较复杂)3.6.1状态三种状态类型:初态、终态和中间态状态图可表示循环运行过程以及单程运行过程。3.6.2事件某个特定时刻发生的“事情”。它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。它是控制信息,状态是受事件触发的。3.6.3基本符号初始事件事件表达式结束事件活动表的语法事件名/动作表达式在活动表中经常使用下述3种标准事件:entry,exit和do。entry事件指定进入该状态的动作,exit事件指定退出该状态的动作,而do事件则指定在该状态下的动作。事件表达式的语法事件说明[守卫条件]/动作表达式3.6.3基本符号活动表的语法格式如下:事件名(参数表)/动作表达式“事件名”可以是任何事件的名称。在活动表中经常使用下述3种标准事件:entry,exit和do。两个状态之间带箭头的连线称为状态转换状态变迁通常是由事件触发的,箭头线上标出触发转换的事件表达式3.6.3基本符号事件表达式的语法如下:事件说明[守卫条件]/动作表达式事件说明的语法为:事件名(参数表)。守卫条件是一个布尔表达式。动作表达式是一个过程表达式,当状态转换开始时执行该表达式。3.7其他图形工具层次方框图Warnier图IPO图3.7.1层次方框图用树型结构描述的一系列多层次的图形;顶层只有一个方框代表完整的数据结构;下面各层代表这个数据的子集;最底层代表不能再分割的实际的数据元素;一个层次方框图的例子产品硬件软件服务处理机存储器外设系统软件应用软件软件服务硬件维修培训操作系统编译程序软件工具3.7.2Warnier图它也是表示信息层次结构的图形工具;它可以指出信息量是重复出现的或有条件出现的;图形包括:用来区分数据结构层次的花括号表明一类信息或一个数据元素在一定条件下出现的异或号名字后面的数字表示信息类在数据结构中重复的次数。一个Warnier图的例子软件产品系统软件操作系统(P1)编译程序(P2)软件工具编辑程序(P3)测试驱动程序(P3)设计辅助工具(P3)应用软件+3.7.3IPO图INPUT/PROCESS/OUTPUT(输入/处理/输出图)的简称。描述输入数据、输出数据和对数据的处理之间的关系。(适用任何系统)软件元素渗透到模型的各个方面。需求分析阶段可以使用IPO图来简要地描述系统的主要算法。传统的IPO图IPO图IPO图系统:模块:编号:作者:日期:被调用:调用:输入:输出:处理:局部数据:注释列出处理的执行顺序改进的IPO图一

IPO

子IPO图系统:模块:编号:作者:日期:订货处理模块可供货处理缺货订单暂存订货量X相应库存量Y供货标志SupplyIFY-X>0THEN可供货处理ELSE缺货订单暂存ENDIF文件名:库存文件注释销售管理系统Armstrong确定能否订货2005/3/10推迟实现3.8验证软件需求一致性:不能相互矛盾;

完整性:规格说明书应包括用户需要的每一个功能或性能;现实性:技术上可以实现;

有效性:需求确实能解决用户面对的问题;软件需求说明书的编写提示(GB856T—88)1引言1.1编写目的1.2背景1.3定义1.4参考资料

2任务概述2.1目标2.2用户的特点2.3假定和约束软件需求说明书的编写提示(GB856T—88)

3

需求规定3.1

对功能的规定3.2

对性能的规定3.2.1

精度3.2.2

时间特性要求3.2.3

灵活性3.3

输人输出要求3.4

数据管理能力要求3.5

故障处理要求3.6

其他专门要求

4运行环境规定4.1设备4.2支持软件4.3接口4.4控制小结需求分析是软件生命期的一个重要阶段;最根本的任务是确定为了满足用户的需求,系统需要做什么。传统的软件工程方法学使用结构化分析方法。为了全面了解用户的需要,必须使用适当的方法和用户沟通。小结必须仔细地分析系统中的数据流又要分析长期使用的数据存储。数据字典是“粘合剂”。分析应该得出用数据流图、ER图、数据字典和简洁算法描述的详细的系统逻辑模型。还可使用层次方框图、Warnier图辅助性的描述系统中的数据结构。IPO图描述算法的有效工具。3-1为什么要进行需求分析?通常对软件系统有哪些需求?3-2怎样与用户有效地沟通以获取用户的真实需求?3-3银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。习题请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。3-4分析习题2第3题所述的机票预订系统。请用实体-联系图描绘本系统中的数据对象并用数据流图描绘本系统的功能。3-5分析习题2第4题所述的患者监护系统。请用实体-联系图描绘本系统中的数据对象并用数据流图描绘本系统的功能,画出本系统的顶层IPO图。3-6复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。西安交通大学刘海岩803.4例1:机票预订系统其功能为:旅行社把预订机票的旅客信息(姓名、性别、身份证号码、旅行时间、目的地等)输入系统。系统为旅客安排航班,打印出取票通知单。旅客在飞机起飞的前一天凭取票通知单交款取票,系统检验无误,输出机票给旅客。建立该系统DFD:机票预订系统旅行社旅客订票单取票单取票单机票机票预订系统顶层图西安交通大学刘海岩81

预订机票1旅客取票2订票单取票单取票单机票机票文件机票预订系统0层图检验有效性1.1查询航班1.2登记机票1.3打印取票单1.4机票文件航班目录订票单有效有航班已登记取票单“预订机票”子图(1层图)图1:西安交通大学刘海岩82图2:这样逐步求精分解下去,直到每个加工相对简单、整个图的功能可理解为止。查询机票文件检验取票单2.1记帐2.2修改机票文件并打印机票2.3机票文件账目文件取票单有效取票单已交款机票“旅客取票”子图(1层图)西安交通大学刘海岩83例2:家庭安全系统(SafeHome)是一个基于微处理器的系统,能

温馨提示

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

评论

0/150

提交评论