5 结构化分析方法_第1页
5 结构化分析方法_第2页
5 结构化分析方法_第3页
5 结构化分析方法_第4页
5 结构化分析方法_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、 软件工程 第五讲 结构化分析方法 朱建凯上次课的阅读与思考张海藩软件工程3.1、3.2、3.3思考:1、为什么用户需求文档要对每一条需求进行编号?2、哪些人应该参加需求评审?-1、需求跟踪的需要;验收与测试的需要;交流和分工的需要;2、双方(技术)负责人;项目经理;市场方;系统分析师;本次课程要学习的内容需求文档的作用(重要)什么是分析,什么是需求分析(重要)数据流图的绘制(非常重要)数据字典(重要)5)需求文档的作用 其作用可概括为: 第一也是最重要的,作为软件开发组织和用户之间一份事实上的技术合同书;是产品功能及其环境的体现。 第二,对于项目的其余大多数工作,它是一个管理控制点。 第三,

2、对于产品的设计,它是一个正式的、受控的起始点。 第四,是创建产品验收测试计划和用户指南的基础,即基于 需求分析规规约一般还会产生另外两个文档初始 测试计划和用户系统操作描述。初始测试计划 主要内容:对未来系统中的哪些功能和性能指标进行测试,以及达到何种要求。 作用:指导系统开发早期发现并修改一个错误,减少测试代价.注:在以后阶段的软件开发中,对这个测试计划要不断地修正和完善,并 成为相应阶段文档的一部分。注:大量的统计数字表明,在系统开发早期发现并修改一个错误的代价往 往很低,越到系统开发的后期,改正同样错误所花费的代价越高。例 如,假设在需求分析阶段检测并改正一个错误的代价为1个单位,那么

3、到了软件测试阶段检测并改正同样的错误所花费的代价,一般需要10 个单位,而到软件发布后的代价就可能高达100个单位。用户系统操作描述 主要内容:从用户使用系统的角度,简要描述系统功能和性能,使用系统的主要步骤和方法,以及系统用户的责任等。系统, 作用:在软件开发的早期,准备一份初步的用户手册可以使未来的系统用户能够从使用的角度检查、审核目标系统,从而比较容易判断这个系统是否符合他们的需要。 为了书写这样的文档,也会迫使系统分析员从用户的角度来考虑软件系统。这样不论是审查还是复审时,就更容易发现不一致和误解的地方,这对保证软件质量和项目成功是很重要的。注:相当于一份初步的用户手册。 SRS所不能

4、实现的作用 第一,它不是一个设计文档。它是一个“为了”设计的文档。 第二,它不是进度或规划文档,不应该包含更适宜包含在工作陈述(SOW)、软件项目管理计划(SPMP)、软件生存周期管理计 划(SLCMP)、软件配置管理计划(SCMP)或软件质量保证计划(SQAP)等文档中的信息。因此,在SRS中不应给 出: 项目成本; 交付进度; 报告规程; 软件开发方法;质量保证规程;配置管理规程; 验证和确认规程;验收规程;安装规程。关于项目的需求及其需求规约 项目需求是客户和开发者之间有关技术合同-产品/系统需求的理解,应记录在工作陈述SOW中或其他某一项目文档(例如,项目管理计划)中。 即 SRS应只

5、关注产品需求,即: 产品/系统需求-“交付给客户的产品是什么” SOW应关注项目工作与管理,即: 项目需求-“开发组要做的是什么”。使用自然语言定义需求规约的问题不确定性读者和作者必须以同样的方式对同样的文字有相同的翻译。过于灵活同一个事情可以有多种表达方式。不方便模型化自然语言不适合结构化表达。结构化的语言规约需求规约的作者写作的自由度必须通过预定义模板来限定。所有的需求都必须用统一的标准方式来表达。使用的术语必须是有限定的。这样的好处就是即保留了自然语言的优势,同时它的不一致性又得到了约束。表单式需求规约对功能或者入口进行定义.描述所有的输入以及它们来自哪里.面熟所有的输出以及它们到哪里去

6、.指出相关系的其他实体.前置和后置条件 (如果有的话).这个功能的副作业是什么 (如有).Form-based node specification软件开发方法学 概念:软件方法学 -支持软件开发的原理/原则、过程和规程的体系.是以软件方法为研究对象的学科。主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法和技术。 狭义的软件方法学也指某种特定的软件设计指导原则和方法体系。 掌握并能正确运用开发方法,具有事半功倍的作用. 软件开发本质软件生存周期过程定义软件生存周期模型软件工程生存周期过程支持过程方向(活动与定序)的建立形成软件开发方法学结构化方法面向对象方法面向数据结构 方法维也

7、纳开发方 法(VDM)给出实现开发过程的途径支持/管理技术与方法作用于(一) 结构化方法 -一种特定的软件开发方法学1 结构化分析方法1)何谓分析 分析的三要素: 需要使用哪些信息; 如何系统化的使用信息, 估算算法一般地说,分析是系统化地使用信息,给出一个问题的估算.何谓结构化分析 就软件需求分析而言,即为:系统化地使用问题域术语,给 出该问题的模型,即:需求-一个抽象层该系统的概念模型或称系统的需求规约问题域 -客观事物系统形成分析(映射)可见,需求分析作为一种活动,其目标为: 在一个确定的抽象层(即需求层)上为客观事物系统施 加了一个结构, 形成待开发软件系统(产品)的概念模型, 即需求

8、规约( 规格说明书),作为开发人员和客户间技术 契约的基础,并作为而后开发活动的一个基本输入 2)实现软件需求分析的目标对方法学的需求 (1) 提供一组术语(符号),指导抽象中需要关注的主要方 面,并用于表达分析中所使用的信息. 这些术语形成一个特定的抽象层,即需求层.当然,这 组术语应体现 软件设计的某些“原理/原则”! (2) 依据这些术语所形成的“空间”,给出表达模型的工具. (3) 给出过程指导. 3) 需求层的确定 一个抽象层是由一组确定的术语定义的, 为此为了支持需求分析中有关要使用的那些信息的表达,给出了以下五个术语符号: 数据流: 加工: 数据存储: 数据源: 数据潭: 其中:

9、 数据流、数据存储-支持数据抽象,加工-支持过程/功能的抽象,用于表达系统内涵 数据源、数据潭支持系统边界抽象,用于表达系统外延. 是完备的。 4) 模型表达工具这些术语形成一个特定的术语空间,即: 它们之间是”正交”的. 每一个术语所要表达的信息,形成了该术语的”值域”,并且是一个偏序集; 例如,假定在一个学籍管理系统中,数据流-“学生各科成绩”:数学85分,软件工程90分,操作系统86分,编译83分等,构成了该数据流的“值域”. 这些术语确定了所建系统的形态.如果是一个三维空间,那些所建系统的形态只能是: 或是一条直线;或是一条曲线; 或是一个平面,或是一个曲面; 或是一个立方体,或是一个

10、多形体. 现在,是由五个术语所确定的一个五维空间,因此该方法只能采用DFD图来表达各种“形态”的系统.例如旅行社订票单预定航班准备机票记帐费用航班帐单机票记帐文件航班目录旅行社5)过程指导 建立系统的功能模型 -使用的工具为数据流图DFD 首先:建立系统环境图,确定系统边界 继之:自顶向下,逐层分解 建立数据字典 -使用的工具为结构符 定义数据流 定义数据存储 定义数据项 给出加工小说明 -使用的工具可以为判定表 判定树 问题:建立一个简化的商业自动化系统,其中:营业员通过该系统记录每日销售的商品(商品名,商品编号,单价,数量,销售时间);收款员通过该系统记录收到的现金数额以及购物余额;商店经

11、理每日统计销售额,并在必要时查看某种商品的销售情况(商品名,商品编码,金额)结构化分析方法应用实例简化的商业自动化系统营业员收款员经 理销售的商品现金额现金余额销售情况日销售额查询要求建立系统的功能模型首先:建立系统环境图,确定系统边界 -顶层DFD其中:1 数据流为:销售的商品,日销售额等 3个输入流,3个输出流 数据源为:营业员,经理,收款员 数据潭为:经理,收款员 2 加工名为:要建立的系统名字录入、修改或删除商品信息录入、修改 现金额,并计算余额查询商品销售情况 计算日销售额123继之:自顶向下,逐层分解A、按人或部门的功能要求,将加工“打碎”,形成:注:需给每一加工编号;B、”分派”

12、数据流,形成:录入、修改或删除商品信息 2录入、修改 现金额,并计算余额查询商品销售情况 计算日销售额销售的商品现金额现金余额查询要求销售情况日销售额13其中:要根据特定的加工要求进行分派; 保持与顶层数据流的一致; 可以不引入数据源和数据潭。录入、修改或删除商品信息录入、修改 现金额,并计算余额查询商品销售情况 计算日销售额销售的商品现金额现金余额查询要求销售情况日销售额销售文件123C、引入文件,使之形成一个有机整体系统:注:到一个文件,既有输入流,又有输出流,则可简化为 ,并可不给出标识。至此,体现精化,形成0层数据流图。 查询商品销售情况 计算日销售额查询要求销售情况日销售额销售文件3

13、继续A、B、C:自顶向下,逐层分解。例如:加工3可分解为:判定要求查询要求 3。1统计销售情况 3。2计算日销售额销售文件查询要求2查询要求1销售情况日销售额加工3:*其中为什么要引入加工“判定要求”?建立数据字典 定义数据流 定义数据存储 定义数据项 引入:结构符 | 用于定义数据结构 A A A B C B0 C0 B*数据字典:、数据流:销售的商品=商品名+商品编号+单价+数量+销售时间现金额 = 余额 =日销售额=非负实数查询要求=商品编号|日期查询要求1=商品编号查询要求2=日期销售情况=商品名+商品编号+金额、数据存贮:销售文件=销售的商品、数据项 给出加工小说明 -使用的工具可以

14、为判定表 判定树 判断表 条件类别 条件组合 操作 操作执行 例如: 考试总分 =620 =620 620 单科成绩 有满分 有不及格 有满分 发升级通知书 y y n 发留级通知书 n n y 发重修通知书 n y n 图书管理系统旨在用计算机对图书进行管理,主要涉及四个方面的工作:新书入库、读者借书、读者还书以及图书注销,以及查询某位读者的借书情况、某种图书和整个图书的库存情况。 在购入新书时,图书管理人员为购入的新书编制图书卡片,包括分类目录号、流水号(要保证每本书都有惟一的流水号,即使同类图书也是如此)、书名、作者、内容摘要、价格和购书日期等信息,并写入图书目录文件中; 读者借书时,首

15、先填写借书单,包括姓名、学号、欲借图书分类目录号等信息,然后管理人员将借书单输入系统,继之系统检查该读者号是否有效,若无效,则拒绝借书;否则进一步检查该读者所借图书是否超过最大限制数(此处我们假设每位读者同时只能借阅不超过五本书),若已达到最大限制数(此处为五本),则拒绝借书;否则读者可以借出该书,登记图书分类目录号、读者号和借阅日期等,写入到借书文件中;问题:图书管理系统 在读者还书时,读者填写还书单,由管理人员将其输入系统后,系统根据其中的学号,从借书文件中读出该读者的借阅记录,获取该书的还书日期,判定该图书是否逾期,以便按规定做出相应的罚款; 在对一些过时或无继续保留价值的图书进行注销时

16、,管理人员从图书目录文件中删除相关的记录; 当图书馆领导提出查询要求时,系统应依据查询要求,分别给出相应的信息。其中假定,“为购入的新书编制图书卡片”,“读者首先填写借书单”等功能,均由人工实现。 根据问题陈述,按功能可以把该系统分为两“大块”,即:借还书等事务的处理,以及咨询事务处理。 -进行功能抽象。 (注:不同的功能抽象将导致不同的结果!但应该是等价的。)于是,可以根据这一抽象,可以识别: 1)顶层数据流:借还书等事务处理要求 咨询事务要求 以及相关的数据流 2)数据源和数据潭为:图书管理人员,读者以及时钟。基于以上分析,可形成该系统的环境图:图书管理系统图书管理员图书管理要求查询要求图

17、书统计表图书情况读者情况 读者 系统时钟当前日期罚款单其中:3个输入流:图书管理要求,查询要求,系统时钟 图书管理要求=入库单 借书单 还书单 注销单 查询要求=读者情况 图书情况 图书统计表 4个输出流:图书统计表,图书情况,读者情况 通过“打碎”、“分派”,可形成如下0层DFD: 1 处理借还书等事务 2 处理咨询 事务图书管理要求查询要求当前日期目录文件借书文件读者文件罚款单读者情况图书情况图书统计表其中:保持输入与输出的一致; 引入三个文件,对顶层DFD进行细化。 (注:存在数据库设计问题)以同样方式,对加工1进行分解,形成: 1。1入库新书 1。2 借书 1。3 还 书 1。4注销图书图书管理要求处

温馨提示

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

评论

0/150

提交评论