第10章面向数据的设计方法_第1页
第10章面向数据的设计方法_第2页
第10章面向数据的设计方法_第3页
第10章面向数据的设计方法_第4页
第10章面向数据的设计方法_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、课程名称:软件工程课程名称:软件工程 第第17讲讲班班 级:级: 日日 期:期:教教 室:室:教学题目:第教学题目:第10章面向数据的设计方法章面向数据的设计方法 10.1面向数据设计的概念面向数据设计的概念 10.2Jackson系统开发方法系统开发方法教学目的:了解概念,掌握教学目的:了解概念,掌握Jackson系统开发方法。系统开发方法。教学重点:教学重点:JSP技术。技术。教学难点:教学难点: JSP技术。技术。教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:业:l面向数据的设计(面向数据的设计(data structured-oriented design)方法就是根

2、据问题的数据结构定义一)方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的程组映射,把问题的数据结构转换为问题解的程序结构。序结构。 l面向数据流的设计来源于程序的模块化和功能面向数据流的设计来源于程序的模块化和功能分解的概念;分解的概念; l而面向数据结构的设计,则侧重于问题的数据而面向数据结构的设计,则侧重于问题的数据结构,把程序结构设计成与问题的数据结构一结构,把程序结构设计成与问题的数据结构一致,不强调模块定义。模块只是设计过程的副致,不强调模块定义。模块只是设计过程的副产品,对于模块独立性原则也未过分强调。这产品,对于模块独立性原则也未过分强调。这种程序结构容易理

3、解,也易于修改。种程序结构容易理解,也易于修改。l在许多应用领域中,信息有着清晰的层在许多应用领域中,信息有着清晰的层次结构,输入数据、存储信息(即数据次结构,输入数据、存储信息(即数据库)及输出数据都有各自的组织形式。库)及输出数据都有各自的组织形式。l一般说来,顺序出现的数据可以用顺序一般说来,顺序出现的数据可以用顺序控制结构的程序处理;选择出现的数据控制结构的程序处理;选择出现的数据用分支控制结构的程序处理;重复出现用分支控制结构的程序处理;重复出现的数据用循环控制结构的程序处理。的数据用循环控制结构的程序处理。l因此可以根据数据的组织形式确定使用因此可以根据数据的组织形式确定使用和处理

4、这些数据的程序的组织形式。和处理这些数据的程序的组织形式。l面向数据的设计就是根据数据结构的表面向数据的设计就是根据数据结构的表示获得软件表示。示获得软件表示。l本章重点讨论:本章重点讨论:l1. Jackson系统开发方法系统开发方法l Jackson System Development,简称,简称JSDl2. 基于结构化数据的系统开发方法基于结构化数据的系统开发方法l Data Structured System Development,简称简称DSSDlJSD方法是方法是Jackson 于于1989年对软件设计中年对软件设计中广为使用的广为使用的Jackson结构程序设计(结构程序设计

5、(Jackson Structured Programming,简称,简称JSP)方法)方法的扩展。的扩展。lDSSD方法,也称为方法,也称为Warnier Orr方法,是方法,是对对Warnier程序逻辑构造(程序逻辑构造(Logical Construction of Program,简称,简称LCP)方法)方法的扩充,除了设计能力以外,还加强了分析的扩充,除了设计能力以外,还加强了分析能力。能力。l面向数据设计方法一般都包括下列任务:面向数据设计方法一般都包括下列任务: 1确定数据结构特征;确定数据结构特征; 2用顺序、选择和重复三种基本形式表示用顺序、选择和重复三种基本形式表示 数据;

6、数据; 3把数据结构表示映射为软件的控制结构;把数据结构表示映射为软件的控制结构; 4用与具体方法配套的设计指南进一步精用与具体方法配套的设计指南进一步精 化控制结构;化控制结构; 5开发软件的过程性描述。开发软件的过程性描述。lJSD和和DSSD方法的软件总体结构设计与方法的软件总体结构设计与软件过程性设计的分界并不明显,都能软件过程性设计的分界并不明显,都能很快地过渡到过程性描述。这也是易于很快地过渡到过程性描述。这也是易于理解和易于维护的重要表现之一。理解和易于维护的重要表现之一。 lJSD和和DSSD也是分析与设计一体化的也是分析与设计一体化的 ,本章侧重于讨论与设计有关的技术。面本章

7、侧重于讨论与设计有关的技术。面向数据的设计方法,要求信息结构用层向数据的设计方法,要求信息结构用层次图表示,在软件需求规格说明中与信次图表示,在软件需求规格说明中与信息域的描述相对应。息域的描述相对应。l面向数据的设计方法的适用场合面向数据的设计方法的适用场合l 具有明显的层次信息结构的应用:具有明显的层次信息结构的应用:l 企事业的信息管理系统;企事业的信息管理系统;l 系统软件(如操作系统);系统软件(如操作系统);l 科学与工程计算;科学与工程计算;l 计算机辅助教学;计算机辅助教学;l 组合问题求解等领域。组合问题求解等领域。l例如:例如:CAD/CAE/CIM类应用软件。类应用软件。

8、l用用JSD方法开发一个软件的步骤:方法开发一个软件的步骤: 1)标识实体与动作:用与面向对象方法类似的)标识实体与动作:用与面向对象方法类似的分析技术识别出系统中的实体(包括人、对象、分析技术识别出系统中的实体(包括人、对象、产生或使用信息的组织)和动作(客观世界中产生或使用信息的组织)和动作(客观世界中影响系统实体的那些事件);影响系统实体的那些事件); 2)生成实体结构图:针对每一实体,将影响它)生成实体结构图:针对每一实体,将影响它的所有动作按发生的时间顺序用的所有动作按发生的时间顺序用Jackson结构结构图(图(Jackson diagrams)表示出来。为了描述)表示出来。为了描

9、述时间约束,同一动作必须出现在多张结构图中;时间约束,同一动作必须出现在多张结构图中;3)初建系统模型:将实体和动作统一用一个过程模)初建系统模型:将实体和动作统一用一个过程模型表示,并定义该模型中的过程与客观世界中的过型表示,并定义该模型中的过程与客观世界中的过程之间的联系。所用描述工具为系统规格说明图程之间的联系。所用描述工具为系统规格说明图(System Specification Diagram,简称,简称SSD););4)扩充功能性过程:在过程模型中扩充交互型功能)扩充功能性过程:在过程模型中扩充交互型功能和信息型功能,分别产生内部输入信息和系统输出和信息型功能,分别产生内部输入信息

10、和系统输出信息;信息;5)系统定时:确定实现必须满足的时间约束;)系统定时:确定实现必须满足的时间约束;6)实现:确定系统中所有软硬件成分,形成一个完)实现:确定系统中所有软硬件成分,形成一个完整设计方案。整设计方案。 前三个步骤主要在需求分析阶段完成,后三步是前三个步骤主要在需求分析阶段完成,后三步是软件设计的任务。软件设计的任务。l我们曾以大学校园内直达交通车系统我们曾以大学校园内直达交通车系统USS为例为例进行需求分析,结果得出进行需求分析,结果得出“交通车交通车”和和“按钮按钮”两实体及其动作对应的实体结构图如下图所示。两实体及其动作对应的实体结构图如下图所示。ShuttleShutt

11、le* bodyStation(i)Arrive(i)Leave(i)Arrive(1)ButtonPush*Leave(1)l初建系统模型后,得到初建系统模型后,得到USS的系统规格说明图的系统规格说明图(图(图7 2 4)。其中后缀为)。其中后缀为“_0”的过程表示的过程表示客观世界中的过程(或外部过程),后缀为客观世界中的过程(或外部过程),后缀为“_1”的过程表示系统模型内的过程(或模型的过程表示系统模型内的过程(或模型过程)。过程)。 l图图7-2-4 USS的系统规格说明图的系统规格说明图Button 1DSShuttle 0Shuttle 1SV数据流联系数据流联系Button

12、0状态向量联系状态向量联系l将实体结构图与初建系统模型(系统规将实体结构图与初建系统模型(系统规格说明图)综合起来,可导出目标软件格说明图)综合起来,可导出目标软件系统中每个过程内部细节的结构正文表系统中每个过程内部细节的结构正文表示,如示,如6.2.3节过程节过程BUTTON_1和和SHUTTLE_1所描述。所描述。l上述结构正文也可对应地用上述结构正文也可对应地用Jackson结构结构图表示。图图表示。图6 2 5是与模型过程是与模型过程SHUTTLE_1的结构正文对应的的结构正文对应的Jackson结构图。结构图。图图6 2 5 对应于结构正文的结构图对应于结构正文的结构图Shuttle

13、 1Station(i)*Arrive(1)Leave(1)Shuttle body1TRANSit body1wait body1Transit(i)*Transit(1)*Arrive(i)Leave(i)Wait(1)*TRANSit bodywait bodyWait(i)*l这一步骤以初建系统模型为基础,通过数据流这一步骤以初建系统模型为基础,通过数据流和状态向量两种方式将新定义的功能性过程与和状态向量两种方式将新定义的功能性过程与原有的模型过程联系起来。具体考虑两类功能:原有的模型过程联系起来。具体考虑两类功能: 1信息型功能(信息型功能(information function)

14、:从模):从模型过程产生的数据流和状态向量中提取信息并型过程产生的数据流和状态向量中提取信息并生成输出信息。嵌入型功能只需在原有模型过生成输出信息。嵌入型功能只需在原有模型过程的结构正文中插入一些操作;程的结构正文中插入一些操作; 2交互型功能(交互型功能(interactive function):监视模):监视模型过程的状态向量,在输出结果的同时产生内型过程的状态向量,在输出结果的同时产生内部输入信息,反过来影响模型化过程的动作。部输入信息,反过来影响模型化过程的动作。图图10 2 1 两类功能性过程与系统模型的关系两类功能性过程与系统模型的关系外部过程外部过程系统模型系统模型信息型信息型

15、功能过程功能过程交互型交互型功能过程功能过程客观世界客观世界系统系统l假设在交通车上有一块发光板,专门显示车到假设在交通车上有一块发光板,专门显示车到站的信息,发光板站的信息,发光板“亮亮”说明车到站,说明车到站,“暗暗”说明车离开。此板或亮或暗受说明车离开。此板或亮或暗受LON(i)、)、LOFF(i)两命令的控制。在过程)两命令的控制。在过程SHUTTLE_1中可嵌入一个新功能:当交通车中可嵌入一个新功能:当交通车到达站(到达站(i)时,发出命令)时,发出命令LON(i);离开站);离开站(i)时,发出命令)时,发出命令LOFF(i)。交通车在两站)。交通车在两站之间往返运行过程中,输出之

16、间往返运行过程中,输出“开关发光板开关发光板”的的命令数据流,图命令数据流,图10 2 2为增加这一功能后的为增加这一功能后的SSD,结构正文修改为:,结构正文修改为:图图10 2 2 修改后的修改后的SSDLAMPCMDSLamp commandsButton 0BDSVButton 1Shuttle 0Shuttle 1LAMPCMDSSHUTTLE_1 seq LON(1) /* 控制发光板控制发光板“亮亮”,说,说 明交通车正停在站明交通车正停在站1上上 */ read 状态向量状态向量 WAIT_BODY1 itr while Wait(1) read 状态向量状态向量 WAIT_B

17、ODY1 end LOFF(1) /* 交通车即将离站;控交通车即将离站;控 制发光板制发光板“暗暗” */ LEAVE(1) TRANSIT_BODY1 itr while Transit(1) read 状态向量状态向量 TRANSIT_BODY1 endSHUTTLE_BODY1 itr STATION seq ARRIVE(i) LON(i) /* 交通车已停靠站(交通车已停靠站(i) */ WAIT_BODY itr while Wait(i) read 状态向量状态向量 WAIT_BODY end LOFF(i) /* 交通车将离开站(交通车将离开站(i) */ LEAVE(i)

18、TRANSIT_BODY itr while Transit(i) read 状态向量状态向量 TRANSIT_BODY end STATION end SHUTTL_BODY1 end ARRIVE(1)SHUTTL_1 endl第二个功能是产生关于启动(第二个功能是产生关于启动(START)和关闭)和关闭(STOP)发动机的命令,以此控制交通车的)发动机的命令,以此控制交通车的运行。下达运行。下达STOP命令的条件是,传感器显示命令的条件是,传感器显示车已到站,而下达车已到站,而下达START 命令的条件是乘客命令的条件是乘客压下按钮招呼交通车并恰好交通车在某个站上压下按钮招呼交通车并恰好

19、交通车在某个站上等待。为此引入一个功能性过程等待。为此引入一个功能性过程mcontrol,它,它从从SHUTTLE_1和和BUTTON_2两过程接收数据,两过程接收数据,适时地发出适时地发出START和和STOP两种命令。两种命令。l过程过程SHUTTLE_1与过程与过程mcontrol之间用数据之间用数据流流“S1D”连接。因此连接。因此SHUTTLE_1的结构正文的结构正文进一步修改为:进一步修改为:SHUTTLE_1 seq LON(1) read 状态向量状态向量 WAIT_BODY1 itr while Wait(1) read 状态向量状态向量 WAIT_BODY1 end LOF

20、F(1) LEAVE(1) TRANSIT_BODY1 itr while Transit(1) read 状态向量状态向量 TRANSIT_BODY1 end SHUTTLE_BODY1 itr STATION seq ARRIVE(i) write arrive to S1D /* 向向mcontrol发送数据流,发送数据流, 说明车已到站(说明车已到站(i)*/ LON(i) WAIT_BODY itr while Wait(i) read 状态向量状态向量 WAIT_BODY end LOFF(i) LEAVE(i) TRANSIT_BODY itr while Transit(i)

21、read 状态向量状态向量 TRANSIT_BODY end STATION end SHUTTLE_BODY1 end ARRIVE(1) write arrive to S1D /* 发送数据流,说明车已到站发送数据流,说明车已到站1 */ SHUTTLE_1 endl过程过程SHUTTLE_1执行执行“read状态向量状态向量”操作操作和过程和过程mcontrol对对“S1D”的访问都必须有足够的访问都必须有足够快的频率,否则交通车将不能及时停下来。快的频率,否则交通车将不能及时停下来。 l为完成为完成USS实例,还需进一步考虑实体实例,还需进一步考虑实体BUTTON模型。过程模型。过程

22、BUTTON_1是对按钮动是对按钮动作的精确描述(即每次压下都对应过程作的精确描述(即每次压下都对应过程push的的一次调用),实际上系统应把第一次压下按钮一次调用),实际上系统应把第一次压下按钮招呼交通车的动作与一次运行未开始之前乘客招呼交通车的动作与一次运行未开始之前乘客压下按钮招呼交通车的请求区分开来。用已有压下按钮招呼交通车的请求区分开来。用已有实体无法描述和区分动作之间的时间约束,常实体无法描述和区分动作之间的时间约束,常常引入额外的实体常引入额外的实体为此设计过程为此设计过程BUTTON_2,结构图如图,结构图如图10 2 3所示所示图图10 2 3 button 2的结构图的结构

23、图Button 2Push group*ExtraArrival bodyExtrapush bodyRequestpushArrival Extra Arrival*Extra push*l功能性过程功能性过程mcontrol既负责检查既负责检查BUTTON_2的状态向量的状态向量“B2V”,确定是,确定是否有未满足的请求,又负责把从否有未满足的请求,又负责把从SHUTTLE_1处(处(S1D)获取的信息(即)获取的信息(即交通车已到达发出请求的车站)传递给交通车已到达发出请求的车站)传递给BUTTON_2(MBD流)。在此定义了一流)。在此定义了一个交互型功能。个交互型功能。 lBUTTO

24、N_2的结构正文描述如下:的结构正文描述如下:BUTTON_2 seq request:=no /* 置初值置初值 */ read MBD and B1D /* 检查是否有未满足请求和交检查是否有未满足请求和交 通车是否停在站上通车是否停在站上 */ BUTTON_BODY itr PUSH_GROUP seq EXTRA_AR_BODY itr while (ARRIVAL) /* 交通车已靠站但尚无请求,交通车已靠站但尚无请求, 或既无请求交通车也未靠站或既无请求交通车也未靠站 */ read MBD and B1D EXTRA_AR_BODY end RQ_PUSH seq /* 首次请

25、求到达,置请求标志首次请求到达,置请求标志 */ request:=yes read MBD and B1D RQ_PUSH endEXTRA_RQ_PUSH itr while (REQUEST) /* 因交通车尚未靠站,请求因交通车尚未靠站,请求 暂不满足,循环等待暂不满足,循环等待 */ read MBD and B1D EXTRA_RQ_PUSH end ARRIVAL seq/* 请求满足,清请求标志请求满足,清请求标志 */ request:=no read MBD and B1D ARRIVAL end PUSH GROUP end BUTTON_BODY end BUTTON_

26、2 endl图图10 2 4给出的系统规格说明图反映给出的系统规格说明图反映了在此步骤完成的所有工作。我们在了在此步骤完成的所有工作。我们在SHUTTLE_1中嵌入了一个功能,产生开、中嵌入了一个功能,产生开、关发光板的命令,增加了一个功能性过关发光板的命令,增加了一个功能性过程程mcontrol,它除了负责完成,它除了负责完成BUTTON_2上的交互型功能外,还产生上的交互型功能外,还产生启动、关闭发动机的命令。至于启动、关闭发动机的命令。至于mcontrol过程的内部结构可采用传统的过程的内部结构可采用传统的JSP技术导出,关于技术导出,关于JSP技术我们将在技术我们将在10.2.4和和1

27、0.2.5节讨论。节讨论。图图10 2 4扩充功能扩充功能1和和2后的系统规格说明图后的系统规格说明图Button 0BDSVButton 1Shuttle 0Shuttle 1LAMPCMDSB1DButton 2S1DMBDMcontrolB2VMOTORCMDSl经过前几个步骤,获得一个由若干顺序过程组成的经过前几个步骤,获得一个由若干顺序过程组成的系统,它们通过数据流或状态向量进行通信,但对系统,它们通过数据流或状态向量进行通信,但对这些处理过程的执行速度尚未考虑。所以,对于输这些处理过程的执行速度尚未考虑。所以,对于输出流,定义输出速度和更新频率;对于输入流,要出流,定义输出速度和更

28、新频率;对于输入流,要求子系统保证及时收集所有输入信息并保持它们的求子系统保证及时收集所有输入信息并保持它们的到达顺序不变。到达顺序不变。 l在在USS实例中,关于时间方面的约束包括:实例中,关于时间方面的约束包括: 1停车命令允许的最大延迟时间;停车命令允许的最大延迟时间; 2开、关发光板命令的响应时间。开、关发光板命令的响应时间。l目前在目前在JSD方法中,时间约束的描述仍采用非形式方法中,时间约束的描述仍采用非形式化的方式。一种解决办法是引入时间标志流(化的方式。一种解决办法是引入时间标志流(time marker stream)作为模型过程的输入,时间标志)作为模型过程的输入,时间标志

29、流由特定的时钟过程产生。流由特定的时钟过程产生。l实现是实现是JSD方法的最后一个步骤,它将方法的最后一个步骤,它将系统功能说明配置到给定的软硬件环境系统功能说明配置到给定的软硬件环境上,并满足性能方面的约束。上,并满足性能方面的约束。l这一步骤主要考虑:过程在多处理机上这一步骤主要考虑:过程在多处理机上的调度(的调度(scheduling)、根据)、根据SSD和和Jackson结构图进行过程变换结构图进行过程变换(transformation)、过程状态向量的存)、过程状态向量的存储和访问(储和访问(storage and access of state vectors)以及借助)以及借助J

30、SP技术描述功能性过技术描述功能性过程。因篇幅所限,本节及下节仅讨论最程。因篇幅所限,本节及下节仅讨论最后一个问题。后一个问题。lJSP技术是一种详细设计技术,它由问题所固技术是一种详细设计技术,它由问题所固有的数据结构导出过程的内部结构。所用的基有的数据结构导出过程的内部结构。所用的基本工具称为数据结构图,是本工具称为数据结构图,是Jackson结构图的结构图的变种,专门用于描述数据元素之间的逻辑关系。变种,专门用于描述数据元素之间的逻辑关系。例如在图例如在图10 2 5中,数据集合中,数据集合A由若干个由若干个B结构(结构(“*”表示重复)组成,而每个表示重复)组成,而每个B由若干由若干个

31、个C结构后跟一个结构后跟一个D结构组成(同级分叉表示结构组成(同级分叉表示顺序),顺序),D结构或为数据项结构或为数据项E或为或为F(“”表表示选择),这种层次信息结构的表示方法同样示选择),这种层次信息结构的表示方法同样适用于输入、输出和数据库中的数据。适用于输入、输出和数据库中的数据。图图10 2 5 数据结构图数据结构图AB*C*DEF图图10 2 6 信用卡记帐系统信用卡记帐系统Outstanding balCNO主文件主文件YYYY 1749.30CNODATEAMTXXXX 10.17 25.30XXXX 10.27 108.20XXXX 10.30 65.40YYYY 10.13

32、 158.00YYYY 10.28 307.90 支付文件支付文件支付记录支付记录*CNO分组分组*CNOCNO主文件主文件顾客记录顾客记录*余款额余款额支付文件支付文件XXXX 2373.50 l如图如图10 2 6所示。系统的输入是支付所示。系统的输入是支付文件和顾客主文件。文件和顾客主文件。l支付文件的每个记录由顾客号(支付文件的每个记录由顾客号(CNO)、)、支付日期(支付日期(DATE)和支付金额()和支付金额(AMT)三个数据项组成,并假定已按顾客号预三个数据项组成,并假定已按顾客号预先分组。先分组。l顾客主文件由顾客号(顾客主文件由顾客号(CNO)和余款额)和余款额(Outsta

33、nding bal)两项组成。两个文)两项组成。两个文件分别对应图件分别对应图10-2-6中所示数据结构图。中所示数据结构图。Accounting Report CNO Date Amt Old bal New bal XXXX YYYY Grand tot图图10 2 7 系统输出报表所对应的数据结构图系统输出报表所对应的数据结构图记帐报表记帐报表情况汇总情况汇总顾客数据顾客数据总付款额总付款额总余额总余额CNO组组*CNO支付记录支付记录*付款总数付款总数平帐数据平帐数据原余额原余额现余额现余额lJSP方法通过综合、对照过程的输入方法通过综合、对照过程的输入/输出数据结构的层输出数据结构的

34、层次关系导出对应的过程性表示次关系导出对应的过程性表示程序。具体步骤如下:程序。具体步骤如下:1找出输入与输出数据结构中有对应关系的数据元素,找出输入与输出数据结构中有对应关系的数据元素,即有直接因果关系者,它们在程序中可一并处理。即有直接因果关系者,它们在程序中可一并处理。2依据下述三条规则从数据结构图导出依据下述三条规则从数据结构图导出Jackson结构图。结构图。 1)在)在Jackson结构图中,为有对应关系的每对数据元素结构图中,为有对应关系的每对数据元素 画一个处理框,该框所处层次取这两个数据元素在画一个处理框,该框所处层次取这两个数据元素在 各自数据结构图中层次较低者。各自数据结

35、构图中层次较低者。 2)参照输入数据结构图中剩余的每个数据元素所处层)参照输入数据结构图中剩余的每个数据元素所处层 次,在次,在Jackson结构图的相应层次上画一个处理框。结构图的相应层次上画一个处理框。 3)参照输出数据结构图中剩余的每个数据元素所处层)参照输出数据结构图中剩余的每个数据元素所处层 次,在次,在Jackson结构图的相应层次上画一个处理框。结构图的相应层次上画一个处理框。3列出所有操作和条件(包括分支和循环条列出所有操作和条件(包括分支和循环条件),并把它们分配到件),并把它们分配到Jackson结构图中。结构图中。4根据根据Jackson结构图,产生结构正文描述。结构图,

36、产生结构正文描述。 将上述第将上述第1步骤用于信用卡付帐系统发现,步骤用于信用卡付帐系统发现,输入数据结构输入数据结构“支付文件支付文件”中的中的“CNO组组”、“支付记录支付记录”分别与输出数据结构中的分别与输出数据结构中的“CNO组组”、“支付记录支付记录”对应,输入数据对应,输入数据结构结构“顾客主文件顾客主文件”中的中的“顾客记录顾客记录”与输与输出数据结构中的出数据结构中的“CNO组组”对应。参照上述对应。参照上述第第2步骤得到该系统的结构图(图步骤得到该系统的结构图(图10 2 8)。)。图图10 2 8 导出导出Jackson结构图(程序结构)结构图(程序结构)信用卡信用卡付帐系

37、统付帐系统情况汇总情况汇总处理处理顾客数据顾客数据总付款额总付款额总余额总余额处理处理CNO组组*处理处理CNO处理处理支付记录支付记录*计算顾客计算顾客支付总额支付总额平帐数据平帐数据原余额原余额现余额现余额PROCESS_CUST_DATA seq open PAY_FILE; open CNO_MASTER_FILE; PROCESS CNO_GROUP itr until eof:PAY_FILE; read PAY_FILE; PROCESS_CNO; /* 读顾客总文件,找出原余额读顾客总文件,找出原余额 */PROCESS_PAY_REC itr until end:CNO_GR

38、OUP; write report line; computer total payments; read PAY_FILE; end PROCESS_PAY_REC COMPUTE_CUST_TOTAL; COMPUTE_BALANCE seq PROCESS_OLD_BAL; COMPUTE_NEW_BAL; write report line; end COMPUTE_BALANCE end PROCESS_CNO_GROUPend PROCESS_CUST_DATA课程名称:软件工程课程名称:软件工程 第第18讲讲班班 级:级: 日日 期:期:教教 室:室:教学题目:教学题目:10.3

39、 DSSD方法方法教学目的:掌握教学目的:掌握DSSD方法,了解复杂过程逻辑方法,了解复杂过程逻辑 的描述。的描述。教学重点:教学重点: DSSD方法。方法。教学难点:教学难点: DSSD方法。方法。教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:习题业:习题4lDSSD需求分析阶段产生的需求规格说明,将作为需求分析阶段产生的需求规格说明,将作为设计过程的输入信息。设计过程的输出为设计规格设计过程的输入信息。设计过程的输出为设计规格说明,具体包括输出数据结构、过程描述和设计约说明,具体包括输出数据结构、过程描述和设计约束三方面内容。束三方面内容。lDSSD设计分为逻辑设计和物理

40、设计两个步骤,逻设计分为逻辑设计和物理设计两个步骤,逻辑设计着重考虑软件的输出、界面及过程性表示,辑设计着重考虑软件的输出、界面及过程性表示,物理设计则在逻辑设计的基础上考虑如何满足性能、物理设计则在逻辑设计的基础上考虑如何满足性能、可维护性和其他一些设计约束。可维护性和其他一些设计约束。l基本工具:基本工具:Warnier Orr图,既可描述程序结构,图,既可描述程序结构,又可描述数据结构。这里介绍一种简化的又可描述数据结构。这里介绍一种简化的DSSD方方法。法。lDSSD的逻辑设计步骤主要有两个:的逻辑设计步骤主要有两个: 1推导输出数据的逻辑结构(推导输出数据的逻辑结构(Logical

41、Output Structure,简称,简称LOS);); 2由由LOS导出处理过程的逻辑结构导出处理过程的逻辑结构 (Logical Process Structure,简称,简称LPS)。)。l按下述简化方法,按下述简化方法,LOS可分四步导出:可分四步导出: 1)从问题描述本身或其他相关需求信息)从问题描述本身或其他相关需求信息 中找出所有不同的原子数据项(即不中找出所有不同的原子数据项(即不 可再分的数据项);可再分的数据项); 2)说明每个原子数据项的出现频率;)说明每个原子数据项的出现频率; 3)找出那些可再分的一般数据项;)找出那些可再分的一般数据项; 4)用)用Warnier-

42、Orr图表示图表示LOS。Daily_Machine_Tool_Usage_Report Date:DATE Tool category Tool ID status NO.parts produced Tool_CAT TID S NO_PARTS CATEGORY TOTAL PARTS: CAT_TOT_PARTS CATEGORY TOTAL PARTS: TOTAL PARTS PRODUCED THIS DATE: MANUF_TOTALl输出数据结构表现为数据项的一种层次输出数据结构表现为数据项的一种层次结构。结构。l按照按照LOS推导步骤:推导步骤:l1)首先从问题描述(例)首

43、先从问题描述(例10.1所给报表原所给报表原型)中找出原子数据项;型)中找出原子数据项;l2)确定每个原子数据项出现的频率(图)确定每个原子数据项出现的频率(图10 3 2)。)。图图10 3 2 原子数据项及出现频率原子数据项及出现频率原子数据项原子数据项频率频率细节细节HEADING(标题)(标题)DATE(日期)(日期)COLUME_HEAD(列标题)(列标题)TOOL_CAT(工具类名称)(工具类名称)TID(工具标志)(工具标志)S(状态)(状态)NO_PARTS(产品件数)(产品件数)SUB_TOTAL_HEAD(按类汇总小标题)(按类汇总小标题)CAT_TOT_PARTS(按类汇

44、总)(按类汇总)TOTAL_HEAD(按目汇总标题)(按目汇总标题)MANUF_TOTAL(每日产品总计)(每日产品总计)1/报表报表 1/报表报表 1/报表报表 1/工具类工具类 1/工具工具1/工具工具1/工具工具1/工具类工具类 1/工具类工具类 1/报表报表 1/报表报表每日机器使用情况报表每日机器使用情况报表 若干类,每类有若干项若干类,每类有若干项 按类汇总按类汇总 按日汇总按日汇总3)找出一般数据项,有:)找出一般数据项,有: 报表(出现一次)、报表(出现一次)、 工具类(每报表出现工具类(每报表出现t次)、次)、 工具(每类出现工具(每类出现s次)。次)。4)用)用Warnie

45、r-Orr图表示图表示LOS图图10 3 3 LOS的的Warnier Orr图示图示标题标题日期标题日期标题日期日期 工具类名称工具类名称 工具标识工具标识列标题列标题 工具工具 状态状态工具类工具类 (1,s) 产品件数产品件数 (1,t) 按类汇总小标题按类汇总小标题每日汇总标题每日汇总标题 按类汇总按类汇总每日产品总计每日产品总计生产生产日报表日报表lLPS是软件的过程性表示,推导步骤如下:是软件的过程性表示,推导步骤如下:1)从)从LOS的的Warnier Orr图示中去掉所有原子数据项;图示中去掉所有原子数据项;生产生产日报表日报表图图10 3 4 去掉所有原子数据去掉所有原子数据项项 工具工具 工具类工具类 (1,s) (1,t) .BEGIN .BEGIN 工具工具 工具类工具类 (1,s) (1,t) .END.END生产生产日报表日报表.BEGIN 置置MANUF_TOTAL为为0 .BEGIN 置置CAT_TOTALPARTS为为0 工具类工具类 工具工具 (1,t) (1,s) 把把NO_PARTS加到加到 CAT_TOTAL_PARTS上上 .END.END生产生产日报表日报表把把CAT_TOTAL_PARTS加到加到MANUF_TOTAL上上图图10 3 6 完整的完整的LPS生生产产日日报报表表.BEGIN工

温馨提示

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

评论

0/150

提交评论