《3软件工程第三章电子教案大同大学1.ppt》由会员分享,可在线阅读,更多相关《3软件工程第三章电子教案大同大学1.ppt(84页珍藏版)》请在三一文库上搜索。
1、第三章 软件需求分析,在软件的整个生命周期中,首先是软件计划期,接着是软件开发期,软件需求分析是软件开发的第一个阶段,也是关系到软件开发成功与否的关键一步。本章的学习是基于已完成软件计划的基础上进行的,软件计划安排到第十二章讲。 3.1 需求分析的任务与步骤 3.2 需求获取的常用方法 3.3 分析建模 3.4 软件需求说明 3.5 结构化分析方法 3.6 面向对象分析方法,第三章 软件需求分析,软件在需求分析和设计阶段占用的工作量达到总工作量的4050,说明软件开发前期的活动多么重要。当然这也包括分阶段开发原型的开销。大家熟悉的编码工作只占全部工作量的1020,而软件测试和调试的工作量占到总
2、工作量的3040,甚至50%。,3.1 需求分析的任务与步骤,3.1 .1需求分析的任务 需求分析的任务就是准确地回答“系统必须做什么?”这个问题,是通过系统分析员与用户一起商定,清晰、准确、具体地描述软件产品必须具有的功能、性能、运行规格等要求。软件需求分析阶段的目的是澄清用户的要求,并把双方共同的理解明确地表达成一份书面文档软件需求规格说明书。,3.1 需求分析的任务与步骤,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型。 主要有两个任务: 1、建立分析模型数据、功能和行为模型 2、编写需求说明书。 其实现模型如下图所示:,系统实现模型,目标系统,当前系统,物理模型,逻辑
3、模型,逻辑模型,物理模型,模型化,抽象化,实例化,具体化,理 解 需 求,表 达 需 求,导 出,做什么,怎 么 做,1.分析建模,导出目标系统逻辑模型的例子: 找出当前系统的物理模型,学 生,张 秘书,王 会计,李 出纳,赵 保管,学 生,学生购买教材的物理模型,购书 申请,购书 证明,购书发票,领书单,书,导出目标系统逻辑模型的例子,把当前系统的物理模型转换为逻辑模型,学 生,审查有 效性,开 发票,开 领书单,发书,学 生,购书单,有效 购书单,领书单,书,发票,学生购买教材的逻辑模型,导出目标系统逻辑模型的例子,把旧系统的逻辑模型转换为目标系统逻辑模型,学 生,审查并 开发票,开 领书
4、单,发书,学 生,购书单,发票,领书单,书,计算机售书系统的逻辑模型,导出目标系统逻辑模型的例子,改进(优化)目标系统逻辑模型,学 生,审查并 开发票,开 领书单,学 生,购书单,发票,领书单,改进了的计算机售书系统模型,无效书单,分析阶段中常用的模型(逻辑模型),数据流图(DFD) 实体联系图( ERD ) 层次方框图、IPO图、 Warnier图 类图、实例图、时序图 状态图、协作图、 活动图 事件列表 数据流定义 数据元素定义 ,3.1 需求分析的任务与步骤,2.编写软件需求规格说明: 主要包括描述目标系统概貌、功能要求、性能要求、运行要求和将来可能提出的要求。数据流图、用IPO图或其他
5、工具简要描述的系统主要算法都是该份文挡的重要组成部分。此外,该份文档还应包括用户需求与系统功能之间的关系、设计约束等等文字描述。 软件需求规格说明是需求分析阶段的最终成果。,3.1 需求分析的任务与步骤,准确、完整和规范的软件需求是软件开发成功的关键! 需求分析的任务 建立分析模型 描述软件需求的一组模型 精确记录用于对原始问题和目标系统的描述 帮助分析人员发现用户需求中的不一致性,排除不合理的部分,挖掘潜在的用户需求 编写需求说明应做到 准确性和一致性 清晰性和没有二义性 直观、易读和易于修改,案例分析,一个具有n部电梯的电梯系统要安装在一座m层的大楼上。电梯和控制机构已造好。每个电梯的内部
6、机构也已给定。问题涉及电梯在楼层间移动的逻辑: (1)每座电梯有一套按钮,每层一个。按钮按下时使钮灯变亮,并使电梯达到相应的楼层。当电梯到达相应的楼层时按钮灯熄灭。,(2)除了底层和顶层外,每层都有两个按钮,一个按钮请求电梯上升,另一个按钮请求电梯下降。这些按钮在按下时按钮灯亮。电梯到达指定楼层后按钮灯熄灭,然后要么朝期望的方向移动,要么请求等待。在后一种情况下,如果一个楼层上的两个请求按钮都按下,则只取消其中一个按钮。决定先服务哪一层的算法应当使两个请求的等待时间最小。,案例分析,(3)当一个电梯没有服务请求时,应当停留在最终的目的地,关上电梯门,并等待后面的请求。 (4)楼层上所有电梯请求
7、必须最终得到服务,并且所以楼层具有相同的优先权。 (5)电梯内所有楼层的请求必须最终得到服务,各层按电梯移动方向先后得到服务。 (6)每个电梯有一个紧急按钮。按下该按钮时,将使一个报警信号发送到现场管理人员,然后强制电梯“停止服务”。每一个电梯有一个取消其“停止服务”状态的机制。,案例分析,电梯状态转换图举例,在一楼,上升,停滞,下降,回到一楼,回一楼,想要到 达楼层,想要到 达楼层,电梯行程,开始,向上,向上,向下,需求分析的步骤,需求分析的步骤 1.需求获取 目的:清楚地理解所要解决的问题;完整地获取用户需求 2.需求提炼 任务:分析建模 3.需求描述 结果:软件需求说明书 4.需求验证
8、改善需求说明的完整性,确保他可作为软件设计和系统验收的依据。,3.2 需求获取的常用方法,联合分析小组 用户代表、领域专家和系统分析员 客户访谈 充分准备,寻找共同语言 循循序渐进、逐步逼近 采用情景分析技术 (例如制定一个减肥计划软件) 采用简易的规格说明技术(用户积极参与,不要区分“我们和他们”,开会讨论且增删需求项目) 问题分析与确认 多个来回(采用软件原型),调研问卷,部分的名称、人员数量和结构 部分发展或变化简单介绍 部分的主要任务 业务处理流程 业务处理过程中涉及哪些专业领域的知识 工作需要的审批流程是什么? 主要算法描述 哪些业务需要实时处理? 哪些业务需要交互操作?,部门各岗位
9、的职责 部门接受哪些部门或外界的信息?信息的内容和格式是什么? 部门产生哪些信息? 部门产生的信息送到哪些其他部门?格式要求是什么? 对信息的输入和输出方式有要求吗?输入输出设备是什么? 数据要求实时备份吗?备份的设备是什么?时间策略? 业务处理有高峰期吗?高峰时间是什么?时间策略? 现有的哪些设备要继续使用?,调研问卷,对产品的运行环境有要求吗? 对界面风格和操作方式有要求吗? 在系统运行过程中允许停机吗? 操作方式要根据操作环境和使用人员素质分类吗? 需要的操作权限有哪些? 需要记录系统操作运行日志吗? 用户有能力进行系统维护吗? 需要分布式处理吗? 需要什么方式的用户操作培训。 需要制作
10、联机帮助吗?,调研问卷,案例,用户提出某种需求: 水的质量信息必须立即能够显示出来。 分析员更准确的描述: 水的质量记录必须在接到请求信号的5秒内显示出来。,需求获取的三大挑战,问题空间的理解 人与人之间的通信 需求的不断变化,某出版社系统调查表,某出版社系统调查表,需求获取的内容,1.用户需求分类 (1)功能性需求: 定义了系统做什么(描述系统必须支持 的功能和过程) (2)非功能性需求(技术需求): 定义了系统工作时的特性 (描述操作环境和性能目标),2. 两类需求包括的内容,(1) 功能 (2) 性能 (3) 环境 (4) 界面 (5) 用户或人的因素 (6) 文档 (7) 数据 (8)
11、 资源 (9) 安全保密 (10)软件成本消耗与开发进度 (11)质量保证,(1) 功能需求,系统做什么? 系统何时做什么? 系统何时及如何修改或升级?,(2) 性能需求,软件开发的技术性指标 例如: 存储容量限制 执行速度、相应时间 吞吐量,(3) 环境需求,硬件设备:机型、外设、接口、 地点、分布、温度、 湿度、磁场干扰等 软件: 操作系统 网络 数据库,(4) 界面需求,有来自其它系统的输入吗? 到自其它系统的输出吗? 对数据格式有规定吗? 对数据存储介质有规定吗?,(5) 用户或人的因素,用户类型? 各种用户熟练程度? 需受何种训练? 用户理解、使用系统的难度? 用户错误操作系统的可能
12、性?,(6) 文档需求,需哪些文档? 文档针对哪些读者?,(7) 数据需求,输入、输出数据的格式? 接收、发送数据的频率? 数据的准确性和精度? 数据流量? 数据需保持的时间?,(8) 资源需求,软件运行时所需的数据、软件。 内存空间等资源。 软件开发、维护所需的人力、 支撑软件、开发设备等。,(9) 安全保密要求,需对访问系统或系统信息加以控 制吗? 如何隔离用户之间的数据? 用户程序如何与其它程序和操作 系统隔离? 系统备份要求?,(10) 软件成本消耗与开发进度需求,开发有规定的时间表吗? 软硬件投资有无限制?,(11) 质量保证,系统的可靠性要求? 系统必须监测和隔离错误吗? 规定系统
13、平均出错时间? 出错后,重启系统允许的时间? 系统变化如何反映到设计中? 维护是否包括对系统的改进? 系统的可移植性?,3.3 分析建模,所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。简单地说,模型就是某一事物的抽象表示方式。 经过软件的需求分析建立起来的模型可以称之为分析模型或者需求模型。,3.3 分析建模,需求分析模型:,数据字典,数据模型,功能模型,行为模型,功能模型,功能模型可以用数据流图(DFD)描述,所以又称为数据流模型。 下面是数据流图的基本形式:,3 变换,4 变换,1 变换,2 变换,外部 实体,外部 实体,外部 实体,外部 实体,数据文件
14、,输入数据,中间数据,输出数据,学 生,1 审查 开发票,2 开领书 单,学 生,购书单,发票,领书单,计算机售书系统的数据流图,无效书单,各班学生用书表,教材存量表,功能模型-案例一,假定一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。 对于每个需要再次订货的零件应该勒出以下数据:零件编号、名称、订货数量、目前价格、主要供应者、次要供应者。 零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给订货系统。当某种零件库存量少于库存量临界值时就应该再次订货。,功能模型-案例二,数据流图含有四种成分:源点和终点、处理、数据存储、数据流。 首先考虑数
15、据的源点和终点。从上面的叙述可知:采购员是数据终点,而仓库管理员是数据源点。 然后考虑处理。必须有一个用于产生报表的处理;事务的后果是改变库存量,而任何改变数据的操作都是处理,因此对事物的加工是另一个处理。,功能模型-案例二,最后,考虑数据流和数据存储。系统把订货报表送给采购部,订货报表是一个数据流;事物需要从仓库送到系统中,显然事物是另一个数据流。 产生报表和处理事务这两个处理在时间上明显不匹配-每当发生一个事务时要立即处理它,而每天只产生一个订货报表。因此,订货报表的数据应该有一个数据存储。 另外,还有一些隐含的数据:零件的库存量、库存临界值等。,功能模型-案例二,功能模型-案例二,功能模
16、型-案例二,功能模型-案例二,功能模型-案例二,数据模型,包含有3种相关的信息: (1)数据对象 数据对象是几乎所有必须被软件理解的复合信息的表示。它只封装数据,不包含作用于对象的操作。 (2)属性 属性定义了数据对象的性质。 (3)关系 数据对象彼此之间是有关联的,也称为关系。,数据模型,数据模型常常用“实体-关系图(ERD)” 来描述。 ERD包含3种基本元素,即实体、属性和关系。 通常,用矩形表示即数据对象,用圆角矩形或椭圆形表示实体的属性,用菱形连接相关实体表示关系。 下图是一个简化的教学管理ERD:,性别,职称,姓名,教工号,姓名,性别,系,学号,年级,课程号,课程名,学时,学分,课
17、程,教师,学生,教,学,数据模型-案例,简化的教学管理ERD,行为模型及案例,行为模型常用状态转换图(简称状态图)来描述,它又称为状态机模型。 状态图中的基本元素有事件、状态和行为等。 系统的状态机模型可以理解为在任一个时刻,系统处于有限可能的状态中的一个状态,当某一个激励(条件)到达时,它激发系统从一个状态转换到另一个新状态。 下面是电话系统的状态图:,闲置,拨号音 do:响拨号音,超时 do:响蜂鸣音,存储的信息 do:播放信息,接通中 do:试接通,振铃 do:振铃,拨号,通话,断线,忙音 do:响忙音,挂断电话,挂断电话,拿起话筒,超时,无效号码,有效号码,超时,数字,数字,占线,已接
18、通,受话人回话,受话人挂断电话,信 息 播 完,数据字典,数据字典(Data Dictionary)用于描述软件系统中使用或者产生的每一个数据元素,是系统数据信息定义的集合。 数据字典的作用,就是对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。 软件中的数据,可分为三种情况: 只含一个数据的数据项(或数据元素); 由多个相关数据项组成的数据流; 数据文件或数据库。,数据流“发票”的字典条目,数据字典-案例,3.3 分析建模,下面介绍两种需求模型:结构化分析模型和面向对象分析模型 分析模型描述工具 DFD、DD和PSPEC CFD、CSPEC和STD E-R图 用例图 对象-关系
19、图:类、对象、构建等图 对象-行为图 :状态、时序、协作、活动等图,结构化分析模型,数据对 加工 象说明 说明 控制说明(STD图),E-R图 DFD图 CFD图,DD,数据模型,功能模型,行为模型,面向对象分析模型,属性、操作、协作者,类对象 对象-关 模型 系模型 对象-行为模型,使用 实例,功能模型,行为模型,数据模型,(静态),(静态),(动态),分析模型描述工具,结构化分析工具 DFD、DD和PSPEC(加工说明)基本组成 CFD、CSPEC (控制说明)和STD 扩展 E-R图 扩展(复杂数据结构可以使用) 面向对象分析工具 用例图,类对象图 对象-关系图 对象-行为图,1. 数据
20、流图(DFD),举例:飞机票预订系统数据流图:,1. 数据流图(DFD),描述系统逻辑模型 信息在系统中的流动和处理 用途 交流信息的工具 结构化分析和设计的工具,1. 数据流图(DFD),数据流图以图形的方式反映系统的 数据流程 由四种基本元素组成,代表符号和名称:,加工名,编号,文件名,数据流,加工、 处理或变换,数据文件或数据库,数据原点或终点,文件名,实体名,顾客,出版社,验证 订单,汇总 订单,订单,出版社 订单,图书目录文件,顾客档案,待处理订单文件,正确 订单,一批 订单,出版社档案文件,订货存根文件,DFD图的例子,画数据流图的原则,找出数据的源点与终点 把软件系统看成一个大的
21、加工,根据外部实体的输出数据流和输入数据流,划出系统的输入和输出图,即顶层图(也称第一层数据流图) 根据系统的逻辑要求,从外部实体的输出数据流出发,把顶层图中的加工分解成若干个子加工,并用数据流把这些加工连接起来,此时的系统内部图称为第二层图 进行检查和修改 按照上述步骤,再从各加工出发,画出所需的若干层子图(第三层、第四层),一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告结订货系统。
22、当某种零件的库存数量少于库存量临界值时就应该再次订货。,由文字描述画出数据流图(案例),采购员,订货 系统,事务,订货报表,订货系统数据顶层流程图,仓库 保管员,由文字描述画出数据流图(案例),会计 处理,原始 数据,账簿、报表,会计信息系统数据顶层流程图,会计信息系统数据流图(案例),DFD可以用来表示一个系统或软件在任何层次上的抽象。 较大型软件系统DFD分成多层(子图、父图概念),可以表示数据流和功能的进一步的细节。,数据流图的分层结构,S,2,1,3,2.2,2.1,2.3,3.1,3.2,顶层(1层) (不编号),2层,3层,领书单 进书通知,购书单 缺书单,DFD练习售书系统,教材
23、购销系统-顶层数据流图,领书单 进书通知,进书通知,购书单 缺书单,F1教材存量表,F2缺书登记表,DFD练习售书系统,教材购销系统-第二层数据流图,DFD练习售书系统,DFD练习售书系统,教材购销系统第三层DFD-采购子系统,实例 考务处理系统功能,(1)对考生送来的报名单进行检查; (2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站; (3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者; (4)制作考生通知单(含成绩及合格/不合格标志)送给考生; (5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。,考务处理系统的分层DFD顶
24、层数据流图,考 生,考务 处理系统,考 试 中 心,阅卷站,不合格报名单,报名单,准考证,考生通知单,成 绩 清 单,合格标准,错误成绩 清单,考生名 单,统计分析表,登记 报名单,报名单,准考证,1,统计成绩,2,不合格 报名单,考生通知单,成,统计分析表,考务处理系统-2层数据流图,考生名册,绩,清,单,合 格 标 准,考生名 单,成,绩,清,单,错,误,考务处理系统-3层数据流图 (a),检查 报名单,报名单,准考证,1.1,编准考证号,1.2,不合格 报名单,考生名册,考生名单,合格 报名单,登记 考生,1.3,考务处理系统-3层数据流图 (b),检查 成绩清单,2.1,审定 合格者,
25、2.2,考生名册,正确 成绩清单,制作 通知单,2.3,分析 统计成绩,2.4,分析 试题难度,2.5,试题得分清单,考生 通知单,难度 分析表,合格 标准,分类 统计表,成绩清单,错误 成绩清单,经审定的 成绩清单, 数据流 是数据在系统内传播的路径,由一组成固定的数据项组成。除了与数据存储(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,也可以从源点流向加工或从加工流向终点。,数据流图总结, 加工 也称为数据处理,它对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应有编号。,数据流图的总结, 数据存储 指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。,数据流图的总结, 数据源点和终点 是软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称为外部实体。一般只出现在数据流图的顶层图中。,数据流图的总结,数据流图的辅助符号,
链接地址:https://www.31doc.com/p-3015703.html