版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向数据的分析方法第1页,共34页,2023年,2月20日,星期四第6章面向数据的分析方法与形式化方法除了面向数据流的分析方法,仍有其他一些方法可供分析人员选择,这些方法包括面向数据结构的系统开发方法(DSSD),Jackson系统开发方法(JSD)以及形式化软件规格说明技术。前两种统称为面向数据的需求分析方法。它们的共同特点是:
1.以信息对象及其操作为核心进行需求分析,这一点与面向对象分析有相似之处。
2.认为复合信息对象具有层次结构,并且可按顺序、选择、重复三种结构分解为成员信息对象。
3.提供将层次信息结构映射为程序结构的机制,从而为软件设计奠定较好的基础。第2页,共34页,2023年,2月20日,星期四6.1面向数据结构的系统开发方法DSSD也叫Warnier-Orr方法。1974年,法国人J.D.Warnier提出了一种LCP(LogicalConstructionofPrograms,逻辑构造程序)。他利用顺序、选择、重复三种结构表示信息的层次分解,并指出可以从信息层次结构推导出程序结构。1981年KenOrr对Warnier的工作进行了扩充,使其不仅包含了Warnier的信息层次结构,还引进了数据流和处理功能,从而发展成为一种需求分析方法。本节首先介绍Warnier图,然后以此为基础阐述DSSD方法,其主要内容包括:如何创建实体图、信息过程图及Warnier‑Orr原型图。第3页,共34页,2023年,2月20日,星期四Warnier图Warnier图又称为Warnier-Orr图,可以表示数据结构和程序结构。考虑一个典型的报纸自动组版系统。报纸作为其中重要的信息对象,具有以下内容:1.首版
1)标题新闻
2)国内新闻
3)本地新闻2.商业金融版
1)股市行情
2)商业新闻
3)广告3.文化体育版
1)文化、体育新闻
2)散文
3)新书评论该信息结构用Warnier图如图6‑1‑1所示。第4页,共34页,2023年,2月20日,星期四Warnier图图6‑1‑1Warnier图示例标题新闻国内新闻本地新闻股市行情(0,1)商业新闻广告(1,5)文化、体育新闻散文新书评论文化体育版首版商业金融版报纸第5页,共34页,2023年,2月20日,星期四Warnier图花括号内的信息条目构成顺序关系;花括号从左至右排列表示树型层次结构;符号“⊕”表示不可兼具的选择关系;“ ̄”表示“非”。圆括号内的数字表示重复次数:(1,n)表示重复结构,(1)或不标次数表示顺序结构,(0,1)表示选择结构。第6页,共34页,2023年,2月20日,星期四6.1.2DSSD方法基于DSSD需求分析方法的主要步骤是:
1)标识与应用问题有关的实体。
2)创建一种类似于数据流图的信息‑过程图。
3)创建Warnier‑Orr原型图。在详细介绍DSSD的具体步骤之前,首先用数据流图描述一个基于计算机的软件专卖店管理系统,见图6‑1‑2。(该数据流图并非DSSD的组成部分,仅用于说明后面将要用到的应用问题实例。)第7页,共34页,2023年,2月20日,星期四图6‑1‑2软件专卖店管理系统的数据流图结算系统管理系统客户订单处理员接收并登录订单邮寄员提取、包装软件产品订单订单编号订单文件订单编号客户姓名、地址预定日期支票编号软件名称、编号作者数量单价总价软件编号数量预定日期客户姓名、地址邮局邮寄品订单编号第8页,共34页,2023年,2月20日,星期四1.标识实体图在DSSD中,与应用问题有关的实体及它们之间的信息流用实体图表示。具体地,分析人员可以通过对下述问题的回答来生成实体图:
1)软件系统必须处理哪些信息项?
2)信息项的生产者和消费者分别是哪些实体?在上述应用问题中,有关的实体是:客户、订单处理员、邮寄员、银行、结算员、管理员和邮局,如图6‑1‑3(a)所示。订单处理员的实体图如图6‑1‑3(b)所示。第9页,共34页,2023年,2月20日,星期四注:实体图中的结点表示实体、有向边表示实体之间的信息流。(a)信息的生产者和消费者(b)实体图示例图6‑1‑3软件名称、编号地址订单编号支票编号客户姓名客户邮寄员订单处理员银行结算员管理员邮局客户邮寄员结算员订单处理员订单编号订单编号第10页,共34页,2023年,2月20日,星期四图6‑1‑4组合实体图示例当所有实体的实体图都构造完成后,将它们综合起来便形成整个目标软件系统的实体图。客户邮寄员软件产品库结算员管理员银行订单信息=
客户姓名+
地址+
软件名称与编码+
支票编号邮寄品支付催款软件产品月报表收据存款订单编号订单编号订单信息订单编号订单处理员第11页,共34页,2023年,2月20日,星期四2.创建信息‑过程图DSSD中的信息‑过程图与数据流图的作用类似,都是用来表示信息流及其处理功能的。但是,信息‑过程图从每个实体的输出信息流开始,逆向寻找用于生成该输出信息的输入信息流及相应的处理功能。第12页,共34页,2023年,2月20日,星期四2.创建信息‑过程图图6‑1‑5信息‑过程图示例邮寄品是由订单编号和软件产品经过邮寄品包装过程生成的,订单编号又是由客户订购信息和订单编号过程生成的。邮寄品订单编号软件产品+邮寄品包装订购信息+订单编号过程第13页,共34页,2023年,2月20日,星期四3.创建Warnier‑Orr原型图DSSD方法要求分析人员在最后以表格形式给出主要的输出信息的组成元素(见图6‑1‑6(a)),然后将其精确地表示为Warnier‑Orr图(见图6‑1‑6(b))姓名客户信息地址电话软件编号(1~n)邮寄品单价(1~n)
总价姓名客户信息地址电话邮寄品客户姓名——地址——电话——总价——发件人姓名——
地址——
电话——定单编号——软件编号——单价——数量——总价——(a)输出信息的表格表示(b)Warnier‑Orr图
图6‑1‑6软件产品信息第14页,共34页,2023年,2月20日,星期四6.2Jackson系统开发方法1975年,英国人M.A.Jackson提出了软件工程领域中著名的Jackson方法,当时它只用于软件设计。1983年,Jackson又对它进行了多方面的扩充和完善,最终发展成为一种需求分析方法。其核心思想是:根据作用于数据的行为序列的结构(顺序、选择、重复),建立目标软件系统的模型,然后在软件设计阶段将模型转换为相应的程序结构。Jackson方法在需求分析阶段的主要步骤是:(1)标识实体与行为。(2)生成实体结构图。(3)创建软件系统模型。第15页,共34页,2023年,2月20日,星期四6.2.1标识实体与行为类似于面向对象分析中对象及其行为的识别,Jackson方法针对初步需求分析形成的用户需求描述进行语法分析:名词及名词短语——潜在的实体,相关的动词——构成实体的潜在行为。分析人员根据应用问题的边界及自己的理解,决定对潜在实体和行为的取舍。
第16页,共34页,2023年,2月20日,星期四6.2.1标识实体与行为【例6.1】北华大学决定将分处两地的校园用直达交通车连接起来。在每个校园设一个站,站内配置一个按钮。学生通过按钮请求交通车搭载。交通车应尽快满足学生的请求。空闲时,交通车停在任意站等候。分析人员可从“大学”、“校园”、“交通车”、“车站”、“学生”、“按钮”等名词中选取与应用问题相关的实体:“交通车”、“车站”、“按钮”。与它们有关的行为是:“到站”、“离站”、“按键”。“等候”和“运行”可以作为“交通车”的状态。第17页,共34页,2023年,2月20日,星期四6.2.2生成实体结构图在Jackson方法中,实体结构是指实体在时间坐标系中的行为序列。这种序列以顺序、选择和重复三种结构进行复合。Jackson给出的实体结构图的表示机制如图6‑2‑1所示。其中的子结点既可以是行为,也可以是子实体。在后一种情况下,子实体应该继续分解,不能作为实体结构图的叶结点。顺序结构*重复结构
°
°选择结构图6‑2‑1实体结构图的图形记号第18页,共34页,2023年,2月20日,星期四图6‑2‑2实体结构图示例例6.1的实体结构图如图6‑2‑2所示。在图中,i只能取值1或2。并且,在“站(i)”的重复序列中,i首先取2,然后交替变化。交通车首先停在站1,然后在两站之间反复往返运行,最后停靠在站1。为了刻画交通车在两站之间的往返穿梭,引入了虚拟的概念实体“Shuttlebody”。ShuttleShuttle*bodyStation(i)Arrive(i)Leave(i)Arrive(1)ButtonPush*Leave(1)第19页,共34页,2023年,2月20日,星期四6.2.3创建软件系统模型创建目标软件系统模型的第一步,Jackson方法要求分析人员首先用图6‑2‑3所示的图形记号建立系统规格说明图(SystemSpecificationDiagram)。“数据流”(DataStream)记号——表示现实世界中的过程或装置不断地向目标软件系统中的相应过程发送数据,后者以先进先出方式消费数据。两者之间的缓冲区容量是无限的。“状态向量”(StateVector)记号——表示在两者之间存在状态向量,发送方设置状态向量,接收方读取状态向量。第20页,共34页,2023年,2月20日,星期四约定:0表示现实世界中的过程或装置,
1表示目标软件系统中的过程图6‑2‑3系统规格说明图的图形记号过程1DS过程0过程1SV数据流(DataStream)过程0状态向量(StateVector)第21页,共34页,2023年,2月20日,星期四图6‑2‑4系统规格说明图示例在前述应用问题中,站内按钮和目标软件中的按钮处理过程之间以“数据流”方式连接,交通车和交通车控制过程之间则应以“状态向量”方式连接。见图6‑2‑4。Button‑1DSShuttle‑0Shuttle‑1SV数据流联系Button‑0状态向量联系第22页,共34页,2023年,2月20日,星期四创建模型的第二步是利用Jackson给出的“结构正文”(StructureText)将实体结构图和系统规格说明图综合起来,并针对目标软件系统中的每一过程用正文方式给出更为精确、更为详尽的描述。BUUTTON_1ReadButtonDown信号
PUSH_BODYitrwhileButtonDown/*循环结构*/PUSH/*按键处理*/ReadButtonDown信号
PUSH_BODYendBOTTON_1end第23页,共34页,2023年,2月20日,星期四6.2.3创建软件系统模型SHUTTLE_1seq/*顺序结构*/Read状态向量
WAIT_BODY1itrwhileWait(1)/*如果状态向量中等待标志置位,则循环等待*/Read状态向量
WAIT_BODY1endTRANSIT_BODY1itrwhileTransit(1)/*如果状态向量中运行标志置位,则一直运行*/Read状态向量
TRANSIT_BODY1endLeave(1)/*控制交通车离开站1*/第24页,共34页,2023年,2月20日,星期四SHUTTLE_BODYitr/*往返重复运行*/STATIONseqArrive(i)/*控制交通车减速,准备停靠站i*/WAIT_BODYitrwhileWait(i)/*如果状态向量中在站i的等待标志置位,则循环等待*/Read状态向量
WAIT_BODYendLeave(i)TRANSIT_BODYitrwhileWait(i)Read状态向量
TRANSIT_BODYendSTATIONendSHUTTLE_BODYendArrive(1)
SHUTTLE_1end第25页,共34页,2023年,2月20日,星期四图6‑2‑5对应于结构正文的结构图Shuttle‑1Station(i)*Arrive(1)Leave(1)Shuttle‑body1TRANSit‑body1wait‑body1Transit(i)*Transit(1)*Arrive(i)Leave(i)Wait(1)*TRANSit‑bodywait‑bodyWait(i)*第26页,共34页,2023年,2月20日,星期四6.3形式化方法简介前面对数据流图等语言机制并未给出数学意义上严格的语法和语义说明。因此,这些需求模型都或多或少地带有不精确性、不完整性,甚至不一致性。需求分析完成后,软件开发的正确实施仍有赖于设计人员对分析人员主观意图的揣摩,而不仅仅取决于他们对需求文档的客观理解。许多软件开发实践都希望借助于形式化方法严格地定义用户需求,并通过数学推演而不是代价昂贵的失败教训来确保需求定义的一致性和完整性。本节简要介绍形式方法的引入、主要思想、分类、优缺点以及软件形式开发方法。第27页,共34页,2023年,2月20日,星期四6.3.1形式化方法的引入在传统的软件开发过程中,人们普遍采用许多非形式化的图形工具和文字符号工具,例如:数据流图(DFD)、模块结构图(SC)、IPO图、结构化语言、类程序设计语言、判定表、判定树等,并按照一定的设计原则和有序步骤,或自上而下或循环往复逐步开发出目标软件,同时手工或辅助编写有关设计文档。软件工程的实践表明,用户需求规格说明的质量对于后续的软件开发过程是非常重要的。系统分析人员依据用户需求,为目标软件系统创建了需求规格说明(Specification)。设计和编程人员根据这个需求规格说明进行系统结构和模块设计及编码。软件测试及验收人员则根据这个需求规格说明验证目标系统。第28页,共34页,2023年,2月20日,星期四6.3.1形式化方法的引入若采用自然语言描述的规格说明具有模糊性和二义性,给下一步的开发工作造成理解上的困难。同时自然语言又是非形式化的,无法得到计算机的支持,使软件生成自动化几乎不可能。程序设计语言着重描述的是“如何做”(Howtodo)而不是“做什么”(Whattodo)的问题。因此程序设计语言并不太适合描述抽象程度较高的需求规格说明。第29页,共34页,2023年,2月20日,星期四6.3.1形式化方法的引入近年来,人们正在发展一种更抽象的程序设计语言——更高级语言(VeryHighLanguage),也称为第四代语言4GL。这种语言更多地采用了过程抽象和数据抽象技术。但这种语言的出发点仍在系统的设计方面,作为需求规格的描述语言仍存在不足。20世纪80年代中期以来,一种专用于需求规格说明的形式规格说明语言应运而生。这种形式规格说明语言克服了自然语言和程序设计语言的不足,应用形式化、规范化的数学理论,严格定义软件系统“做什么”的形式语义模型,并支持自动程序转换系统将需求规格说明的语义模型转换为可执行代码。由此产生的软件形式开发方法正日益受到各国软件界的重视。第30页,共34页,2023年,2月20日,星期四6.3.2形式方式的主要思想形式化需求分析方法的主要思想,是利用形式化规格说明语言严格地定义用户需求,并采用数学推演的方法证明需求定义的性质,例如一致性、实时系统的活性(liveness)和公平性(fairness)等。从某种意义上讲,形式化方法是克服需求分析阶段中主要困难(不精确性、不一致性和不完全性)的有效途径。形式化规格说明语言包括:严格的语法定义、严格的语义定义以及一系列的数学推演规则。第31页,共34
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年北京协和医院药物研发与评价平台栾晓东课题组合同制科研助理招聘备考题库带答案详解
- 2025年钟祥市国有企业公开招聘工作人员16人备考题库及答案详解(新)
- 2026年阿克苏职业技术学院单招职业倾向性考试题库带答案详解(完整版)
- 2026年鹰潭职业技术学院单招职业技能考试题库带答案详解(完整版)
- 2026年阿坝职业学院单招职业适应性测试题库带答案详解ab卷
- 2026年鹤壁职业技术学院单招职业适应性测试题库带答案详解(模拟题)
- 2025年大理州苍洱公证处公开选调事业单位工作人员备考题库及答案详解参考
- 2026年黑龙江三江美术职业学院单招职业适应性考试题库含答案详解(预热题)
- 2026年陕西服装工程学院单招职业倾向性考试题库带答案详解(研优卷)
- 2026年闽南理工学院单招职业技能测试题库带答案详解(能力提升)
- 助产士规培考试题及答案
- 车队防春困安全培训课件
- 【生物】江苏省南通市2024-2025学年高一下学期6月期末试题(解析版)
- 2026年高考物理一轮复习 力学实验(含解析)
- 海信ai面试题库及答案
- 2025年江西省高职单招文化考试语文试卷
- 个人山林承包合同
- 山东德州2010-2022年中考满分作文63篇
- 外派员工绩效考核管理制度范例
- 小学科技创新实验项目汇编
- 新闻传播学基础课件
评论
0/150
提交评论