1 / 26

教学目的:理解并掌握 Warnier 图及 DSSD 、 Jackson 系统开发方法。 教学重点: Warnier 图及 DSSD 、 Jackson 系统开发方

教学目的:理解并掌握 Warnier 图及 DSSD 、 Jackson 系统开发方法。 教学重点: Warnier 图及 DSSD 、 Jackson 系统开发方 法。 教学难点: Jackson 系统开发方法。 教 具:多媒体教室、电子教案 作 业: 7.1 7.2 7.4. 第 7 章 面向数据的分析方法.

Download Presentation

教学目的:理解并掌握 Warnier 图及 DSSD 、 Jackson 系统开发方法。 教学重点: Warnier 图及 DSSD 、 Jackson 系统开发方

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 教学目的:理解并掌握Warnier图及 DSSD、Jackson 系统开发方法。 教学重点: Warnier图及 DSSD、Jackson系统开发方 法。 教学难点: Jackson 系统开发方法。 教 具:多媒体教室、电子教案 作 业:7.1 7.2 7.4 第7章 面向数据的分析方法

  2. 除了面向数据流、面向对象的分析方法以外,仍有其他一些方法可供分析人员选择,这些方法包括面向数据结构的系统开发方法(DSSD),Jackson系统开发方法(JSD)以及形式化软件规格说明技术。前两种统称为面向数据的需求分析方法。除了面向数据流、面向对象的分析方法以外,仍有其他一些方法可供分析人员选择,这些方法包括面向数据结构的系统开发方法(DSSD),Jackson系统开发方法(JSD)以及形式化软件规格说明技术。前两种统称为面向数据的需求分析方法。 它们的共同特点是: 1.以信息对象及其操作为核心进行需求分析,这一点与面向 对象分析有相似之处。 2.认为复合信息对象具有层次结构,并且可按顺序、选择、 重复三种结构分解为成员信息对象。 3.提供将层次信息结构映射为程序结构的机制,从而为软件 设计奠定较好的基础。 第7章 面向数据的分析方法

  3. DSSD也叫Warnier-Orr方法。 1974年,法国人 J.D.Warnier 提出了一种LCP(Logical Construction of Programs,逻辑构造程序)。他利用顺序、选择、重复三种结构表示信息的层次分解,并指出可以从信息层次结构推导出程序结构。 1981年Ken Orr对Warnier的工作进行了扩充,使其不仅包含了Warnier的信息层次结构,还引进了数据流和处理功能,从而发展成为一种需求分析方法。 本节首先介绍 Warnier 图,然后以此为基础阐述DSSD方法,其主要内容包括:如何创建实体图、 信息过程图、 Warnier‑Orr原型图。 7.1 面向数据结构的系统开发方法

  4. Warnier图又称为Warnier-Orr图,可以表示数据结构和程序结构。Warnier图又称为Warnier-Orr图,可以表示数据结构和程序结构。 考虑一个典型的报纸自动组版系统。其中报纸作为重要的信息对象, 具有以下内容: 1.首版 1)标题新闻 2)国内新闻 3)本地新闻 2.商业金融版 1)股市行情 2)商业新闻 3)广告 3.文化体育版 1)文化、体育新闻 2)散文 3)新书评论 该信息结构用Warnier图如下图7‑1‑1所示。 7.1.1 Warnier图

  5. 图7‑1‑1 Warnier 图示例 7.1.1 Warnier图 标题新闻 国内新闻 本地新闻 首 版 股市行情(0,1) 商业新闻 广告(1,5) 商业金融版 报 纸 文化、体育新闻 散文  新书评论 文化体育版

  6. 图元表示: 花括号内的信息条目构成顺序关系; 花括号从左至右排列表示树型层次结构; 符号“⊕”表示不可兼具的选择关系; “ ̄”表示“非”。 圆括号内的数字表示重复次数: (1,n)表示重复结构, (1)或不标次数表示顺序结构, (0,1)表示选择结构。 Warnier图

  7. 基于DSSD需求分析方法的主要步骤是: 1)标识与应用问题有关的实体。 2)创建一种类似于数据流图的信息‑过程图。 3)创建Warnier‑Orr原型图。 在详细介绍DSSD的具体步骤之前,首先用数据流图描述一个基于计算机的软件专卖店管理系统,见图7‑1‑2。(该数据流图并非DSSD的组成部分,仅用于说明后面将要用到的应用问题实例。) 7.1.2 DSSD方法

  8. 图7‑1‑2 软件专卖店管理系统的数据流图 客户 订单 订单编号 订单处理员接收并登录订单 邮寄员提取、包装软件产品 软件名称、编号 作者 数量 单价 总价 订单编号 客户姓名、地址 预定日期 支票编号 软件编号 数量 预定日期 客户姓名、地址 订单编号 订单文件 结算系统 管理系统 邮寄品 邮局

  9. 1.标识实体图 在DSSD中,与应用问题有关的实体及它们之间的信息流用 实体图表示。 具体地,分析人员可以通过对下述问题的回答来生成实体图: 1)软件系统必须处理哪些信息项? 2)信息项的生产者和消费者分别是哪些实体? 在上述应用问题中,有关的实体是:客户、订单处理员、邮寄 员、银行、结算员、管理员和邮局,如图7‑1‑3(a)所示。 订单处理员的实体图如图7‑1‑3(b)所示。 7.1.2 DSSD方法

  10. 注:实体图中的结点表示实体、有向边表示实体之间的信息流。 (a)信息的生产者和消费者 (b)实体图示例 图7‑1‑3 客户 客户 邮寄员 订单处理员 客户姓名 邮寄员 订单 编号 地 址 管理员 银行 软件名称、 编号 订单 处理员 订单编号 支票编号 结算员 订单编号 结算员 邮局

  11. 当所有实体的实体图都构造完成后,将它们综合起来便形成整个目标软件系统的实体图。当所有实体的实体图都构造完成后,将它们综合起来便形成整个目标软件系统的实体图。 图7‑1‑4 组合实体图示例 邮寄品 邮寄员 客户 订单信息 订单编号 软件 产品 订单编号 订单 处理员 支付 催款 软件产品库 订单编号 结算员 订单信息= 客户姓名+ 地址+ 软件名称与编码+ 支票编号 存款 收据 银行 月报表 管理员

  12. DSSD中的信息‑过程图与数据流图的作用类似,都是用来表示信息流及其处理功能的。DSSD中的信息‑过程图与数据流图的作用类似,都是用来表示信息流及其处理功能的。 生成信息‑过程图的方法: 从每个实体的输出信息流开始,逆向寻找用于生成该输出信息的输入信息流及相应的处理功能。 由此,得到软件专卖店管理系统的信息‑过程图,如图7‑1‑5 所示。 2.创建信息‑过程图 7.1.2 DSSD方法

  13. 图7‑1‑5 信息‑过程图示例 邮寄品是由订单编号和软件产品经过邮寄品包装过程生成的,订单编号又是由客户订购信息和订单编号过程生成的。 2.创建信息‑过程图 7.1.2 DSSD方法 订购信息 + 订单编号过程 订单编号 软件产品 + 邮寄品包装 邮寄品

  14. DSSD方法要求分析人员在最后以表格形式给出主要的输出信息的组成元素(见图7‑1‑6(a)),然后将其精确地表示为Warnier‑Orr图(见图7‑1‑6(b)) 3.创建 Warnier‑Orr 原型图 姓名 客户信息 地址 电话 软件编号(1~n) 邮寄品 单价(1~n) 总价 姓名 发件人信息 地址 电话 软件产品 信息 (a)输出信息的表格表示 (b)Warnier‑Orr图 图7‑1‑6

  15. 1975年,英国人M.A.Jackson提出了软件工程领域中著名的Jackson方法,当时它只用于软件设计。1983年,Jackson又对它进行了多方面的扩充和完善,最终发展成为一种需求分析方法。1975年,英国人M.A.Jackson提出了软件工程领域中著名的Jackson方法,当时它只用于软件设计。1983年,Jackson又对它进行了多方面的扩充和完善,最终发展成为一种需求分析方法。 其核心思想是:根据作用于数据的行为序列的结构(顺序、选择、重复),建立目标软件系统的模型,然后在软件设计阶段将模型转换为相应的程序结构。 Jackson方法在需求分析阶段的主要步骤是: (1)标识实体与行为。 (2)生成实体结构图。 (3)创建软件系统模型。 7.2 Jackson 系统开发方法

  16. 类似于面向对象分析中对象及其行为的识别,Jackson方法针对初步需求分析形成的用户需求描述进行语法分析:类似于面向对象分析中对象及其行为的识别,Jackson方法针对初步需求分析形成的用户需求描述进行语法分析: 名词及名词短语——潜在的实体, 相关的动词——构成实体的潜在行为。 分析人员根据应用问题的边界及自己的理解,决定对潜在实体和行为的取舍。 7.2.1 标识实体与行为

  17. 【例7.1】北华大学决定将分处两地的校园用直达交通车连接起来。在每个校园设一个站,站内配置一个按钮。学生通过按钮请求交通车搭载。交通车应尽快满足学生的请求。空闲时,交通车停在任意站等候。 分析过程: 1、分析人员可从“大学”、“校园”、“交通车”、“车站”、“学生”、“按钮”等名词中选取与应用问题相关的实体:“交通车”、“车站”、“按钮”。 2、与它们有关的行为是:“到站”、“离站”、“按键”。 3、“等候”和“运行”可以作为“交通车”的状态。 7.2.1 标识实体与行为

  18. 在Jackson方法中,实体结构是指实体在时间坐标系中的行为序列。这种序列以顺序、选择和重复三种结构进行复合。Jackson给出的实体结构图的表示机制如图7‑2‑1所示。在Jackson方法中,实体结构是指实体在时间坐标系中的行为序列。这种序列以顺序、选择和重复三种结构进行复合。Jackson给出的实体结构图的表示机制如图7‑2‑1所示。 其中的子结点既可以是行为,也可以是子实体。在后一种情况下,子实体应该继续分解,不能作为实体结构图的叶结点。 7.2.2 生成实体结构图 ° * 顺序结构 选择结构 重复结构 ° 图7‑2‑1 实体结构图的图形记号

  19. 例7.1 的实体结构图如图7‑2‑2所示。在图中,i 只能取值1或2。并且,在“站(i)”的重复序列中,i首先取2,然后交替变化。交通车首先停在站1,然后在两站之间反复往返运行,最后停靠在站1。为了刻画交通车在两站之间的往返穿梭,引入了虚拟的概念实体“Shuttle body”。 图7‑2‑2 实体结构图示例 Shuttle Button Leave(1) Shuttle* body Arrive(1) Push* Station(i) Arrive(i) Leave(i) 7.2.2 生成实体结构图

  20. 创建目标软件系统模型的第一步,Jackson方法要求分析人员首先用图7‑2‑3所示的图形记号建立系统规格说明图(System Specification Diagram)。 SSD图的图元表示: “数据流”(Data Stream)记号——表示现实世界中的过程或装置不断地向目标软件系统中的相应过程发送数据,后者以先进先出方式消费数据。两者之间的缓冲区容量是无限的。 “状态向量”(State Vector)记号——表示在两者之间存在状态向量,发送方设置状态向量,接收方读取状态向量。 7.2.3 创建软件系统模型

  21. 约定:0 表示现实世界中的过程或装置, 1 表示目标软件系统中的过程 图7‑2‑3 系统规格说明图的图形记号 SV 过程1 过程0 7.2.3 创建软件系统模型 数据流(Data Stream) DS 过程0 过程1 状态向量(State Vector)

  22. 在前述应用问题中,站内按钮和目标软件中的按钮处理过程之间以“数据流”方式连接,交通车和交通车控制过程之间则应以“状态向量”方式连接。见图7‑2‑4。在前述应用问题中,站内按钮和目标软件中的按钮处理过程之间以“数据流”方式连接,交通车和交通车控制过程之间则应以“状态向量”方式连接。见图7‑2‑4。 图7‑2‑4 系统规格说明图示例 数据流联系 DS Button‑0 Button‑1 状态向量联系 SV Shuttle‑1 Shuttle‑0 7.2.3 创建软件系统模型

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

  24. 交通车离站、接人、到站处理过程的结构正文:(顺序结构,以状交通车离站、接人、到站处理过程的结构正文:(顺序结构,以状 态向量连接) SHUTTLE_1 seq /* 顺序结构 */ Read 状态向量 WAIT_BODY1 itr while Wait(1) /* 如果状态向量中等待标志 置位,则循环等待 */ Read 状态向量 WAIT_BODY1 end TRANSIT_BODY1 itr while Transit(1) /* 如果状态向量中运行标 志置位,则一直运行 */ Read 状态向量 TRANSIT_BODY1 end Leave(1) /* 控制交通车离开站1 */ 7.2.3 创建软件系统模型

  25. SHUTTLE_BODY itr /* 往返重复运行 */ STATION seq Arrive(i) /* 控制交通车减速,准备停靠站i */ WAIT_BODY itr while Wait(i) /* 如果状态向量 中在站i的等待标志置位,则循环等待 */ Read 状态向量 WAIT_BODY end Leave(i) TRANSIT_BODY itr while Transit(i) Read 状态向量 TRANSIT_BODY end STATION end SHUTTLE_BODY end Arrive(1) SHUTTLE_1 end 7.2.3 创建软件系统模型

  26. 图7‑2‑5 对应于结构正文的结构图 Shuttle ‑1 Transit‑ body1 Shuttle‑ body1 wait‑ body1 Leave(1) Arrive(1) Transit(1)* Station(i)* Wait(1)* Arrive(i) wait‑ body Leave(i) Transit ‑ body Transit(i)* Wait(i)* 结构图: 返回目录

More Related