第11章 面向数据的设计方法

上传人:ldj****22 文档编号:52329612 上传时间:2018-08-20 格式:PPT 页数:63 大小:261KB
返回 下载 相关 举报
第11章 面向数据的设计方法_第1页
第1页 / 共63页
第11章 面向数据的设计方法_第2页
第2页 / 共63页
第11章 面向数据的设计方法_第3页
第3页 / 共63页
第11章 面向数据的设计方法_第4页
第4页 / 共63页
第11章 面向数据的设计方法_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《第11章 面向数据的设计方法》由会员分享,可在线阅读,更多相关《第11章 面向数据的设计方法(63页珍藏版)》请在金锄头文库上搜索。

1、 软 件 工 程11.1 面向数据设计的概念 11.2 Jackson系统开发方法 教学目的:了解概念,掌握Jackson系统开发方法。 教学重点:JSP技术。 教学难点:JSP技术。 教 具:多媒体教室、电子教案 作 业:第11章 面向数据的设计方法 软 件 工 程第11章 面向数据的设计方法 面向数据的设计(data structured-oriented design)方法就是根据问题的数据结构定义一 组映射,把问题的数据结构转换为问题解的程 序结构。 面向数据流的设计来源于程序的模块化和功能 分解的概念; 而面向数据结构的设计,则侧重于问题的数据 结构,把程序结构设计成与问题的数据结构

2、一 致,不强调模块定义。模块只是设计过程的副 产品,对于模块独立性原则也未过分强调。这 种程序结构容易理解,也易于修改。软 件 工 程11.1 面向数据设计的概念 在许多应用领域中,信息有着清晰的层次结构 ,输入数据、存储信息(即数据库)及输出数 据都有各自的组织形式。 一般说来,顺序出现的数据可以用顺序控制结 构的程序处理;选择出现的数据用分支控制结 构的程序处理;重复出现的数据用循环控制结 构的程序处理。 因此可以根据数据的组织形式确定使用和处理 这些数据的程序的组织形式。软 件 工 程11.1 面向数据设计的概念 面向数据的设计就是根据数据结构的表示获得 软件表示。 本章重点讨论: 1.

3、 Jackson系统开发方法Jackson System Development,简称JSD 2. 基于结构化数据的系统开发方法Data Structured System Development,简 称DSSD软 件 工 程11.1 面向数据设计的概念 JSD方法是Jackson 于1989年对软件设计中广为使 用的Jackson结构程序设计(Jackson Structured Programming,简称JSP)方法的扩展。 DSSD方法,也称为Warnier Orr方法,是对 Warnier程序逻辑构造(Logical Construction of Program,简称LCP)方法的

4、扩充,除了设计能力以 外,还加强了分析能力。软 件 工 程11.1 面向数据设计的概念面向数据设计方法一般都包括下列任务: 1确定数据结构特征;2用顺序、选择和重复三种基本形式表示数据;3把数据结构表示映射为软件的控制结构;4用与具体方法配套的设计指南进一步精化控制结构;5开发软件的过程性描述。软 件 工 程11.1 面向数据设计的概念 JSD和DSSD方法的软件总体结构设计与软件过 程性设计的分界并不明显,都能很快地过渡到 过程性描述。这也是易于理解和易于维护的重 要表现之一。 JSD和DSSD也是分析与设计一体化的 ,本章侧 重于讨论与设计有关的技术。面向数据的设计 方法,要求信息结构用层

5、次图表示,在软件需 求规格说明中与信息域的描述相对应。软 件 工 程11.1 面向数据设计的概念 面向数据的设计方法的适用场合具有明显的层次信息结构的应用:企事业的信息管理系统;系统软件(如操作系统);科学与工程计算;计算机辅助教学;组合问题求解等领域。 例如:CAD/CAE/CIM类应用软件。软 件 工 程11.2 Jackson系统开发方法 用JSD方法开发一个软件的步骤: 1)标识实体与动作:用与面向对象方法类似的 分析技术识别出系统中的实体(包括人、对象 、产生或使用信息的组织)和动作(客观世界 中影响系统实体的那些事件); 2)生成实体结构图:针对每一实体,将影响它 的所有动作按发生

6、的时间顺序用Jackson结构 图(Jackson diagrams)表示出来。为了描述 时间约束,同一动作必须出现在多张结构图中 ;软 件 工 程 用JSD方法开发一个软件的步骤 : 3)初建系统模型:将实体和动作统一用一个过程模型表示,并 定义该模型中的过程与客观世界中的过程之间的联系。所用 描述工具为系统规格说明图(System Specification Diagram,简称SSD); 4)扩充功能性过程:在过程模型中扩充交互型功能和信息型功 能,分别产生内部输入信息和系统输出信息; 5)系统定时:确定实现必须满足的时间约束; 6)实现:确定系统中所有软硬件成分,形成一个完整设计方案

7、。 前三个步骤主要在需求分析阶段完成,后三步是软件设计的 任务。软 件 工 程11.2.1 JSD分析技术回顾 我们曾以大学校园内直达交通车系统USS为例进行需求 分析,结果得出“交通车”和“按钮”两实体及其动 作对应的实体结构图如下图所示。ShuttleShuttle* bodyStation(i)Arrive(i)Leave(i)Arrive(1)ButtonPush*Leave(1)软 件 工 程11.2.1 JSD分析技术回顾 初建系统模型后,得到USS的系统规格说明图(图724 )。其中后缀为“_0”的过程表示客观世界中的过程(或 外部过程),后缀为“_1”的过程表示系统模型内的过程

8、 (或模型过程)。 Button1DSShuttle0Shuttle1SV数据流联系Button0状态向量联系图7-2-4 USS的系统规格说明图Button1DSShuttle0Shuttle1SV数据流联系Button0状态向量联系软 件 工 程11.2.1 JSD分析技术回顾 将实体结构图与初建系统模型(系统规格说明 图)综合起来,可导出目标软件系统中每个过 程内部细节的结构正文表示,如6.2.3节过程 BUTTON_1和SHUTTLE_1所描述。 上述结构正文也可对应地用Jackson结构图表 示。图6 2 5是与模型过程SHUTTLE_1的结构 正文对应的Jackson结构图。软 件

9、 工 程图6 2 5 对应于结构正文的结构图Shuttle 1Station(i)*Arrive(1)Leave(1)Shuttlebody1TRANSit body1wait body1Transit(i)*Transit(1)*Arrive(i)Leave(i)Wait(1)*TRANSit bodywait bodyWait(i)*软 件 工 程11.2.2 扩充功能性过程 这一步骤以初建系统模型为基础,通过数据流 和状态向量两种方式将新定义的功能性过程与 原有的模型过程联系起来。具体考虑两类功能 : 1信息型功能(information function):从模 型过程产生的数据流和状

10、态向量中提取信息并 生成输出信息。嵌入型功能只需在原有模型过 程的结构正文中插入一些操作; 2交互型功能(interactive function):监视模 型过程的状态向量,在输出结果的同时产生内 部输入信息,反过来影响模型化过程的动作。软 件 工 程图10 2 1 两类功能性过程与系统模型的关 系外部过程系统模型信息型 功能过程交互型 功能过程客观世界系统软 件 工 程11.2.2 扩充功能性过程 假设在交通车上有一块发光板,专门显示车到 站的信息,发光板“亮”说明车到站,“暗”说明 车离开。此板或亮或暗受LON(i)、LOFF( i)两命令的控制。在过程SHUTTLE_1中可嵌 入一个新

11、功能:当交通车到达站(i)时,发出 命令LON(i);离开站(i)时,发出命令 LOFF(i)。交通车在两站之间往返运行过程 中,输出“开关发光板”的命令数据流,图 1022为增加这一功能后的SSD,结构正文修 改为:软 件 工 程11.2.2 扩充功能性过程图1022 修改后的SSDLAMPCMDSLamp commandsButton0BDSVButton1Shuttle0Shuttle1LAMP CMDS软 件 工 程SHUTTLE_1 seqLON(1) /* 控制发光板“亮”,说明交通车正停在站1上 */read 状态向量WAIT_BODY1 itr while Wait(1)rea

12、d 状态向量WAIT_BODY1 endLOFF(1) /* 交通车即将离站;控制发光板“暗” */LEAVE(1)TRANSIT_BODY1 itr while Transit(1)read 状态向量TRANSIT_BODY1 end软 件 工 程SHUTTLE_BODY1 itrSTATION seqARRIVE(i)LON(i) /* 交通车已停靠站(i) */WAIT_BODY itr while Wait(i)read 状态向量WAIT_BODY endLOFF(i) /* 交通车将离开站(i) */LEAVE(i)TRANSIT_BODY itr while Transit(i)r

13、ead 状态向量TRANSIT_BODY endSTATION endSHUTTL_BODY1 endARRIVE(1) SHUTTL_1 end软 件 工 程11.2.2 扩充功能性过程 第二个功能是产生关于启动(START)和关闭(STOP) 发动机的命令,以此控制交通车的运行。下达STOP命 令的条件是,传感器显示车已到站,而下达START 命 令的条件是乘客压下按钮招呼交通车并恰好交通车在 某个站上等待。为此引入一个功能性过程mcontrol, 它从SHUTTLE_1和BUTTON_2两过程接收数据,适时地发 出START和STOP两种命令。 过程SHUTTLE_1与过程mcontro

14、l之间用数据流“S1D” 连接。因此SHUTTLE_1的结构正文进一步修改为:软 件 工 程SHUTTLE_1 seqLON(1)read 状态向量WAIT_BODY1 itr while Wait(1)read 状态向量WAIT_BODY1 endLOFF(1)LEAVE(1)TRANSIT_BODY1 itr while Transit(1)read 状态向量TRANSIT_BODY1 end 软 件 工 程 SHUTTLE_BODY1 itrSTATION seqARRIVE(i)write arrive to S1D /* 向mcontrol发送数据流,说明车已到站(i)*/LON(i

15、)WAIT_BODY itr while Wait(i)read 状态向量WAIT_BODY endLOFF(i)LEAVE(i)TRANSIT_BODY itr while Transit(i)read 状态向量TRANSIT_BODY endSTATION endSHUTTLE_BODY1 endARRIVE(1)write arrive to S1D /* 发送数据流,说明车已到站1 */SHUTTLE_1 end软 件 工 程11.2.2 扩充功能性过程 过程SHUTTLE_1执行“read状态向量”操作和 过程mcontrol对“S1D”的访问都必须有足够 快的频率,否则交通车将不能及时停下来。 为完成USS实例,还需进一步考虑实体BUTTON 模型。过程BUTTON_1是对按钮动作的精确描述 (即每次压下都对应过程push的一次调用), 实际上系统应把第一次压下按钮招呼交通车的 动作与一次运行未开始之前乘客压下按钮招呼 交通车的请求区分开来。用已有实体无法描述 和区分动作之间的时间约束,常常引入额外的 实体为此设计过程BUTTON_2,结构图如图 10

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号