软件工程教学课件第06章_第1页
软件工程教学课件第06章_第2页
软件工程教学课件第06章_第3页
软件工程教学课件第06章_第4页
软件工程教学课件第06章_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程主编 曹哲 高诚 中国水利水电出版社第6章 面向数据的分析方法 面向数据的需求分析方法的共同特点是: 以信息对象及其操作为核心进行需求分析1复合信息对象具有层次结构,可按顺序、选择、重复分解为成员信息对象2提供将层次信息结构映射为程序结构的机制36.1 面向数据结构的系统开发方法6.2 Jackson系统开发方法6.3 形式化方法简介第6章 面向数据的分析方法提出了一种LCP(逻辑构造程序)。利用顺序、选择、重复三种结构表示信息的层次分解,并指出可以从信息层次结构推导出程序结构。对Warnier的工作进行了扩充,使其不仅包含了Warnier的信息层次结构,还引进了数据流和处理功能,从而

2、发展成为一种需求分析方法。1981Ken Orr1974Warnier6.1 面向数据结构的系统开发方法DSSD也叫Warnier-Orr方法Warnier图又称为Warnier-Orr图,可以表示数据结构和程序结构。一个典型的报纸自动组版系统, 具有以下内容:1首版 1)标题新闻 2)国内新闻 3)本地新闻2商业金融版 1)股市行情 2)商业新闻 3)广告3文化体育版 1)文化、体育新闻 2)散文 3)新书评论 Warnier图Warnier 图示例标题新闻国内新闻本地新闻股市行情(0,1)商业新闻广告(1,5)文化、体育新闻散文 新书评论文化体育版首 版商业金融版报 纸Warnier图花括

3、号内的信息条目构成顺序关系;花括号从左至右排列表示树型层次结构;符号“”表示不可兼具的选择关系;“”表示“非”。圆括号内的数字表示重复次数: (1,n)表示重复结构, (1)或不标次数表示顺序结构, (0,1)表示选择结构。 6.1.2 DSSD方法基于DSSD需求分析方法的主要步骤是: 1)标识与应用问题有关的实体。 2)创建一种类似于数据流图的信息过程图。 3)创建WarnierOrr原型图。在详细介绍DSSD的具体步骤之前,首先用数据流图描述一个基于计算机的软件专卖店管理系统,见图612。(该数据流图并非DSSD的组成部分,仅用于说明后面将要用到的应用问题实例。)DSSD需求分析方法的主

4、要步骤:三步3 创建Warnier原型图1 标识与应用问题有关的实体2 创建一种类似于数据流图的信息过程图软件专卖店管理系统的数据流图结算系统管理系统客户订单处理员接收并登录订单邮寄员提取、包装软件产品订单订单编号订单文件订单编号客户姓名、地址预定日期支票编号软件名称、编号作者数量单价总价软件编号数量预定日期客户姓名、地址邮局邮寄品订单编号1标识实体图在DSSD中,与应用问题有关的实体及它们之间的信息流用实体图表示。 具体地,分析人员可以通过对下述问题的回答来生成实体图: 1)软件系统必须处理哪些信息项? 2)信息项的生产者和消费者分别是哪些实体? 在上述应用问题中,有关的实体是:客户、订单处

5、理员、邮寄员、银行、结算员、管理员和邮局,如图所示。 订单处理员的实体图如图所示。注:实体图中的结点表示实体、有向边表示实体之间的信息流。 (a)信息的生产者和消费者 (b)实体图示例客户邮寄员订单处理员银行结算员管理员邮局软件名称、编号地 址订单编号支票编号客户姓名客户邮寄员结算员订单处理员订单编号订单编号组合实体图示例当所有实体的实体图都构造完成后,将它们综合起来便形成整个目标软件系统的实体图。客户邮寄员软件产品库结算员管理员银行订单信息= 客户姓名+ 地址+ 软件名称与编码+ 支票编号邮寄品支付催款软件 产品月报表收据存款订单编号订单编号订单信息订单编号订单处理员2创建信息过程图DSSD

6、中的信息过程图与数据流图的作用类似,都是用来表示信息流及其处理功能的。但是,信息过程图从每个实体的输出信息流开始,逆向寻找用于生成该输出信息的输入信息流及相应的处理功能。2创建信息过程图信息过程图示例邮寄品是由订单编号和软件产品经过邮寄品包装过程生成的,订单编号又是由客户订购信息和订单编号过程生成的。邮寄品订单编号软件产品+邮寄品包装订购信息+订单编号过程3创建WarnierOrr原型图DSSD方法要求分析人员在最后以表格形式给出主要的输出信息的组成元素(见图616(a),然后将其精确地表示为WarnierOrr图(见图616(b)邮寄品客户姓名地 址电 话总 价发件人姓名 地址 电话定单编号

7、软件编号单 价数 量总 价(a)输出信息的表格表示 (b)WarnierOrr图 姓名 客户信息 地址 电话 软件编号(1n)邮寄品 单价(1n) 总价 姓名 客户信息 地址 电话软件产品 信息6.2 Jackson系统开发方法1975年,英国人M.A.Jackson提出了软件工程领域中著名的Jackson方法,当时它只用于软件设计。1983年,Jackson又对它进行了多方面的扩充和完善,最终发展成为一种需求分析方法。其核心思想是:根据作用于数据的行为序列的结构(顺序、选择、重复),建立目标软件系统的模型,然后在软件设计阶段将模型转换为相应的程序结构。Jackson方法在需求分析阶段的主要步

8、骤是: (1)标识实体与行为。 (2)生成实体结构图。 (3)创建软件系统模型。类似于面向对象分析中对象及其行为的识别,Jackson方法针对初步需求分析形成的用户需求描述进行语法分析: 名词及名词短语潜在的实体, 相关的动词构成实体的潜在行为。分析人员根据应用问题的边界及自己的理解,决定对潜在实体和行为的取舍。 6.2.1Jackson图 在Jackson方法中,实体结构是指实体在时间坐标系中的行为序列。这种序列以顺序、选择和重复三种结构进行复合。Jackson给出的实体结构图的表示机制如图621所示。其中的子结点既可以是行为,也可以是子实体。在后一种情况下,子实体应该继续分解,不能作为实体

9、结构图的叶结点。顺序结构 *重复结构 选择结构图621 实体结构图的图形记号 上面介绍的Jackson图的缺点是,用这种图形工具表示选择或重复结构时,选择条件或循环条件不能直接在图上标示出来,影响图形工具的表达效果,也不利于将图形翻译成对应的程序。为此,提出改进的Jackson图。也就是将条件标示于图形相应位置上。虽然Jackson图和描绘软件结构的层次图类树图相似,意义却大不相同:层次图中的一个方框代表一个模块;Jackson图即使用来描绘程序结构时,一个方框也并不代表一个模块,一般只代表几条语句。层次图代表了调用关系,调用模块除了调用下级模块之外,本身还要完成其他操作;Jackson图代表

10、了组成关系,即一个方框包括的成分仅仅由下层框中的操作所组成。6.2.2 改进的Jackson6.2.3标识实体与行为 【例】某大学决定将分处两地的校园用直达交通车连接起来。在每个校园设一个站,站内配置一个按钮。学生通过按钮请求交通车搭载。交通车应尽快满足学生的请求。空闲时,交通车停在任意站等候。 分析人员可从“大学”、“校园”、“交通车”、“车站”、“学生”、“按钮”等名词中选取与应用问题相关的实体:“交通车”、“车站”、“按钮”。与它们有关的行为是:“到站”、“离站”、“按键”。“等候”和“运行”可以作为“交通车”的状态。实体结构图示例 实体结构图如图所示。在图中,i 只能取值1或2。并且,

11、在“站(i)”的重复序列中,i首先取2,然后交替变化。交通车首先停在站1,然后在两站之间反复往返运行,最后停靠在站1。为了刻画交通车在两站之间的往返穿梭,引入了虚拟的概念实体“Shuttle body”。ShuttleShuttle* bodyStation(i)Arrive(i)Leave(i)Arrive(1)ButtonPush*Leave(1)6.2.4 生成实体结构图 6.2.5 创建软件系统模型创建目标软件系统模型的第一步,Jackson方法要求分析人员首先用图623所示的图形记号建立系统规格说明图(System Specification Diagram)。 “数据流”(Data

12、 Stream)记号表示现实世界中的过程或装置不断地向目标软件系统中的相应过程发送数据,后者以先进先出方式消费数据。两者之间的缓冲区容量是无限的。 “状态向量”(State Vector)记号表示在两者之间存在状态向量,发送方设置状态向量,接收方读取状态向量。约定:0 表示现实世界中的过程或装置, 1 表示目标软件系统中的过程系统规格说明图的图形记号过程1DS过程0过程1SV数据流(Data Stream)过程0状态向量(State Vector) 系统规格说明图示例 在前述应用问题中,站内按钮和目标软件中的按钮处理过程之间以“数据流”方式连接,交通车和交通车控制过程之间则应以“状态向量”方式

13、连接。Button1DS数据流联系Button0Shuttle0Shuttle1SV状态向量联系创建模型的第二步是利用Jackson给出的“结构正文”(Structure Text)将实体结构图和系统规格说明图综合起来,并针对目标软件系统中的每一过程用正文方式给出更为精确、更为详尽的描述。BUUTTON_1 Read ButtonDown 信号 PUSH_BODY itr while ButtonDown /* 循环结构 */ PUSH /* 按键处理 */ Read ButtonDown 信号 PUSH_BODY endBOTTON_1 endSHUTTLE_1 seq /* 顺序结构 */

14、 Read 状态向量 WAIT_BODY1 itr while Wait(1) /* 如果状态向量 中等待标志置位,则循环等待 */ Read 状态向量 WAIT_BODY1 end Leave(1) /* 控制交通车离开站1 */ TRANSIT_BODY1 itr while Transit(1) /* 如果状态向 量中运行标志置位,则一直运行 */ Read 状态向量 TRANSIT_BODY1 endSHUTTLE_BODY itr /* 往返重复运行 */ STATION seq Arrive(i) /* 控制交通车减速,准备停靠站i */ WAIT_BODY itr while W

15、ait(i) /* 如果状态向量 中在站i的等待标志置位,则循环等待 */ Read 状态向量 WAIT_BODY end Leave(i) TRANSIT_BODY itr while Wait(i) Read 状态向量 TRANSIT_BODY end STATION end SHUTTLE_BODY end Arrive(1) SHUTTLE_1 end对应于结构正文的结构图Shuttle 1Station(i)*Arrive(1)Leave(1)Shuttle body1TRANSit body1wait body1Transit(i)*Transit(1)*Arrive(i)Leav

16、e(i)Wait(1)*TRANSit bodywait bodyWait(i)*6.3 形式化方法简介 迄今为止,本书所介绍的需求分析方法基本上都基于非形式化的需求描述语言(惟DFA_Tool例外)。事实上,前面对数据流图等语言机制并未给出数学意义上严格的语法和语义说明。因此,这些需求模型都或多或少地带有不精确性、不完整性,甚至不一致性。需求分析完成后,软件开发的正确实施仍有赖于设计人员对分析人员主观意图的揣摩,而不仅仅取决于他们对需求文档的客观理解。鉴于此,许多软件开发实践都希望借助于形式化方法严格地定义用户需求,并通过数学推演而不是代价昂贵的失败教训来确保需求定义的一致性和完整性。本节简

17、要介绍形式方法的引入、主要思想、分类、优缺点以及软件形式开发方法。6.3.1 形式方法的引入20世纪80年代中期以来,一种综合性的专用于需求规格说明的形式规格说明语言应运而生。这种形式规格说明语言克服了自然语言和程序设计语言的不足,应用形式化、规范化的数学理论,严格定义软件系统“做什么”的形式语义模型,并支持自动程序转换系统将需求规格说明的语义模型转换为可执行代码。由此产生的软件形式开发方法正日益受到各国软件界的重视。 6.3.2 形式方法的主要思想形式化需求分析方法的主要思想是利用形式化规格说明语言严格地定义用户需求,并采用数学推演的方法证明需求定义的性质,例如一致性、实时系统的活性(liv

18、eness)和公平性(fairness)等。对于复杂的应用问题,尽管无法验证整个需求定义的完整性,但仍有可能为避免某些要点的疏漏而建立数学断言,然后予以形式证明或反驳。从这个意义上讲,形式化方法是克服需求分析阶段中主要困难(不精确性、不一致性和不完全性)的有效途径。 面向模型的形式方法面向模型的形式方法又称为基于状态描述的形式方法。其基本思想是利用域、元组、集合、序列、映射、包等已知特性的数学抽象概念来为目标软件系统的状态特征和行为特征构造形式语义模型。语义模型就作为目标软件系统需求规格的形式说明。面向模型的形式方法的主要代表有:VDM方法(维也纳开发方法)、软件工程Z方法等。形式化方法代数构

19、造形式方法代数形式方法为目标软件系统的需求规格说明提供一些特殊的构造机制,并以代数构造方式描述目标系统的结构、功能。6.3.3 形式化方法的分类6.3.4 软件形式开发方法将形式化方法应用于软件开发过程称为软件形式开发方法。其主要内容是:首先,在需求分析阶段的信息收集和信息分析两项工作中采用形式化的规格说明语言(如Z、VDM、LoTos、OBJ、Larch等)构造目标软件系统严格的形式需求规格说明(形式语义)。其中信息收集工作要求形式规格说明语言简明、清晰、可维护性。信息分析工作要求形式规格说明语言精确、无二义,并能够实施完整性、一致性、正确性的检查和验证工作。不同的形式规格说明语言在表达能力、术语、准确性以及支持形式处理的能力方面均有所不同,应根据软件系统的功能特征和行为特征选择。然后,以该形式需求规格说明为起点,借助相应的形式开发支持工具辅助实现目标软件系统。目前,除了在软件设计、编码阶段采用形式方法外,还在开展软件系统形式化测试的研究工作。软件形式开发方法还有许多问题有待研究发展。6.3.5 形式方法的优缺点优点有:(1)对系统的需求规格说明描述精确、定义完整。(2)形式化的需求规格说明有利于系统的设计与实现。(3)软件实现的正确性可以形式验证,确保软件质量。主要缺点有:(1)形式化的需求规格说明可读性差。(2)形式方法对软件设计人员提出较高要求

温馨提示

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

评论

0/150

提交评论