面向数据设计的概念ackson系统开发方法教学目的

上传人:仙*** 文档编号:47415181 上传时间:2021-12-20 格式:PPT 页数:63 大小:230.50KB
返回 下载 相关 举报
面向数据设计的概念ackson系统开发方法教学目的_第1页
第1页 / 共63页
面向数据设计的概念ackson系统开发方法教学目的_第2页
第2页 / 共63页
面向数据设计的概念ackson系统开发方法教学目的_第3页
第3页 / 共63页
点击查看更多>>
资源描述
软软软软软软 件件件件件件 工工工工工工 程程程程程程11.1 11.1 面向数据设计的概念面向数据设计的概念11.2 Jackson11.2 Jackson系统开发方法系统开发方法教学目的:了解概念,掌握教学目的:了解概念,掌握JacksonJackson系统开发方系统开发方 法。法。教学重点:教学重点:JSPJSP技术。技术。教学难点:教学难点:JSPJSP技术。技术。教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:业:第第1111章章 面向数据的设计方法面向数据的设计方法 软软软软软软 件件件件件件 工工工工工工 程程程程程程第第1111章章 面向数据的设计方法面向数据的设计方法面向数据的设计(面向数据的设计(data structured-oriented design)方法就是根据问题的数据结构定义一)方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的程组映射,把问题的数据结构转换为问题解的程序结构。序结构。 面向数据流的设计来源于程序的模块化和功能面向数据流的设计来源于程序的模块化和功能分解的概念;分解的概念; 而面向数据结构的设计,则侧重于问题的数据而面向数据结构的设计,则侧重于问题的数据结构,把程序结构设计成与问题的数据结构一结构,把程序结构设计成与问题的数据结构一致,不强调模块定义。模块只是设计过程的副致,不强调模块定义。模块只是设计过程的副产品,对于模块独立性原则也未过分强调。这产品,对于模块独立性原则也未过分强调。这种程序结构容易理解,也易于修改。种程序结构容易理解,也易于修改。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.1 11.1 面向数据设计的概念面向数据设计的概念在许多应用领域中,信息有着清晰的层次结构,在许多应用领域中,信息有着清晰的层次结构,输入数据、存储信息(即数据库)及输出数据输入数据、存储信息(即数据库)及输出数据都有各自的组织形式。都有各自的组织形式。一般说来,顺序出现的数据可以用顺序控制结一般说来,顺序出现的数据可以用顺序控制结构的程序处理;选择出现的数据用分支控制结构的程序处理;选择出现的数据用分支控制结构的程序处理;重复出现的数据用循环控制结构的程序处理;重复出现的数据用循环控制结构的程序处理。构的程序处理。因此可以根据数据的组织形式确定使用和处理因此可以根据数据的组织形式确定使用和处理这些数据的程序的组织形式。这些数据的程序的组织形式。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.1 11.1 面向数据设计的概念面向数据设计的概念面向数据的设计就是根据数据结构的表示获得面向数据的设计就是根据数据结构的表示获得软件表示。软件表示。本章重点讨论:本章重点讨论:1. Jackson1. Jackson系统开发方法系统开发方法 Jackson System DevelopmentJackson System Development,简称,简称JSDJSD2. 2. 基于结构化数据的系统开发方法基于结构化数据的系统开发方法 Data Structured System DevelopmentData Structured System Development,简,简称称DSSDDSSD 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.1 11.1 面向数据设计的概念面向数据设计的概念JSDJSD方法是方法是Jackson Jackson 于于19891989年对软件设计中广为使年对软件设计中广为使用的用的JacksonJackson结构程序设计(结构程序设计(Jackson Structured Jackson Structured ProgrammingProgramming,简称,简称JSPJSP)方法的扩展。)方法的扩展。DSSDDSSD方法,也称为方法,也称为WarnierWarnier OrrOrr方法,是对方法,是对WarnierWarnier程序逻辑构造(程序逻辑构造(Logical Construction of Logical Construction of ProgramProgram,简称,简称LCPLCP)方法的扩充,除了设计能力以)方法的扩充,除了设计能力以外,还加强了分析能力。外,还加强了分析能力。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.1 11.1 面向数据设计的概念面向数据设计的概念 面向数据设计方法一般都包括下列任务:面向数据设计方法一般都包括下列任务: 1 1确定数据结构特征;确定数据结构特征; 2 2用顺序、选择和重复三种基本形式表示用顺序、选择和重复三种基本形式表示 数据;数据; 3 3把数据结构表示映射为软件的控制结构;把数据结构表示映射为软件的控制结构; 4 4用与具体方法配套的设计指南进一步精用与具体方法配套的设计指南进一步精 化控制结构;化控制结构; 5 5开发软件的过程性描述。开发软件的过程性描述。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.1 11.1 面向数据设计的概念面向数据设计的概念JSDJSD和和DSSDDSSD方法的软件总体结构设计与软件过方法的软件总体结构设计与软件过程性设计的分界并不明显,都能很快地过渡到程性设计的分界并不明显,都能很快地过渡到过程性描述。这也是易于理解和易于维护的重过程性描述。这也是易于理解和易于维护的重要表现之一。要表现之一。 JSDJSD和和DSSDDSSD也是分析与设计一体化的也是分析与设计一体化的 ,本章侧,本章侧重于讨论与设计有关的技术。面向数据的设计重于讨论与设计有关的技术。面向数据的设计方法,要求信息结构用层次图表示,在软件需方法,要求信息结构用层次图表示,在软件需求规格说明中与信息域的描述相对应。求规格说明中与信息域的描述相对应。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.1 11.1 面向数据设计的概念面向数据设计的概念面向数据的设计方法的适用场合面向数据的设计方法的适用场合 具有明显的层次信息结构的应用:具有明显的层次信息结构的应用: 企事业的信息管理系统;企事业的信息管理系统; 系统软件(如操作系统);系统软件(如操作系统); 科学与工程计算;科学与工程计算; 计算机辅助教学;计算机辅助教学; 组合问题求解等领域。组合问题求解等领域。例如:例如:CAD/CAE/CIMCAD/CAE/CIM类应用软件。类应用软件。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2 Jackson11.2 Jackson系统开发方法系统开发方法用用JSD方法开发一个软件的步骤:方法开发一个软件的步骤: 1)标识实体与动作:用与面向对象方法类似的)标识实体与动作:用与面向对象方法类似的分析技术识别出系统中的实体(包括人、对象、分析技术识别出系统中的实体(包括人、对象、产生或使用信息的组织)和动作(客观世界中产生或使用信息的组织)和动作(客观世界中影响系统实体的那些事件);影响系统实体的那些事件); 2)生成实体结构图:针对每一实体,将影响它)生成实体结构图:针对每一实体,将影响它的所有动作按发生的时间顺序用的所有动作按发生的时间顺序用Jackson结构结构图(图(Jackson diagrams)表示出来。为了描述)表示出来。为了描述时间约束,同一动作必须出现在多张结构图中;时间约束,同一动作必须出现在多张结构图中; 软软软软软软 件件件件件件 工工工工工工 程程程程程程用用JSDJSD方法开发一个软件的步骤:方法开发一个软件的步骤: 3 3)初建系统模型:将实体和动作统一用一个过程模型表示,并)初建系统模型:将实体和动作统一用一个过程模型表示,并定义该模型中的过程与客观世界中的过程之间的联系。所用定义该模型中的过程与客观世界中的过程之间的联系。所用描述工具为系统规格说明图(描述工具为系统规格说明图(System Specification System Specification DiagramDiagram,简称,简称SSDSSD););4 4)扩充功能性过程:在过程模型中扩充交互型功能和信息型功)扩充功能性过程:在过程模型中扩充交互型功能和信息型功能,分别产生内部输入信息和系统输出信息;能,分别产生内部输入信息和系统输出信息;5 5)系统定时:确定实现必须满足的时间约束;)系统定时:确定实现必须满足的时间约束;6 6)实现:确定系统中所有软硬件成分,形成一个完整设计方案。)实现:确定系统中所有软硬件成分,形成一个完整设计方案。 前三个步骤主要在需求分析阶段完成,后三步是软件设计的前三个步骤主要在需求分析阶段完成,后三步是软件设计的任务。任务。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.1 JSD11.2.1 JSD分析技术回顾分析技术回顾我们曾以大学校园内直达交通车系统我们曾以大学校园内直达交通车系统USSUSS为例进行需求为例进行需求分析,结果得出分析,结果得出“交通车交通车”和和“按钮按钮”两实体及其动两实体及其动作对应的实体结构图如下图所示。作对应的实体结构图如下图所示。ShuttleShuttle* bodyStation(i)Arrive(i)Leave(i)Arrive(1)ButtonPush*Leave(1) 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.1 JSD11.2.1 JSD分析技术回顾分析技术回顾初建系统模型后,得到初建系统模型后,得到USS的系统规格说明图(图的系统规格说明图(图7 2 4)。其中后缀为)。其中后缀为“_0”的过程表示客观世界中的的过程表示客观世界中的过程(或外部过程),后缀为过程(或外部过程),后缀为“_1”的过程表示系统模的过程表示系统模型内的过程(或模型过程)。型内的过程(或模型过程)。 Button 1DSShuttle 0Shuttle 1SV数据流联系数据流联系Button 0状态向量联系状态向量联系图图7-2-4 USS的系统规格说明图的系统规格说明图Button 1DSShuttle 0Shuttle 1SV数据流联系数据流联系Button 0状态向量联系状态向量联系 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.1 JSD11.2.1 JSD分析技术回顾分析技术回顾将实体结构图与初建系统模型(系统规格说明将实体结构图与初建系统模型(系统规格说明图)综合起来,可导出目标软件系统中每个过图)综合起来,可导出目标软件系统中每个过程内部细节的结构正文表示,如程内部细节的结构正文表示,如6.2.36.2.3节过程节过程BUTTON_1BUTTON_1和和SHUTTLE_1SHUTTLE_1所描述。所描述。上述结构正文也可对应地用上述结构正文也可对应地用JacksonJackson结构图表结构图表示。图示。图6 6 2 2 5 5是与模型过程是与模型过程SHUTTLE_1SHUTTLE_1的结构的结构正文对应的正文对应的JacksonJackson结构图。结构图。 软软软软软软 件件件件件件 工工工工工工 程程程程程程图图6 6 2 2 5 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)* 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.2 11.2.2 扩充功能性过程扩充功能性过程 这一步骤以初建系统模型为基础,通过数据流这一步骤以初建系统模型为基础,通过数据流和状态向量两种方式将新定义的功能性过程与和状态向量两种方式将新定义的功能性过程与原有的模型过程联系起来。具体考虑两类功能:原有的模型过程联系起来。具体考虑两类功能: 1信息型功能(信息型功能(information function):从模):从模型过程产生的数据流和状态向量中提取信息并型过程产生的数据流和状态向量中提取信息并生成输出信息。嵌入型功能只需在原有模型过生成输出信息。嵌入型功能只需在原有模型过程的结构正文中插入一些操作;程的结构正文中插入一些操作; 2交互型功能(交互型功能(interactive function):监视模):监视模型过程的状态向量,在输出结果的同时产生内型过程的状态向量,在输出结果的同时产生内部输入信息,反过来影响模型化过程的动作。部输入信息,反过来影响模型化过程的动作。 软软软软软软 件件件件件件 工工工工工工 程程程程程程图图1010 2 2 1 1 两类功能性过程与系统模型的关系两类功能性过程与系统模型的关系外部过程外部过程系统模型系统模型信息型信息型功能过程功能过程交互型交互型功能过程功能过程客观世界客观世界系统系统 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.2 11.2.2 扩充功能性过程扩充功能性过程假设在交通车上有一块发光板,专门显示车到假设在交通车上有一块发光板,专门显示车到站的信息,发光板站的信息,发光板“亮亮”说明车到站,说明车到站,“暗暗”说明车离开。此板或亮或暗受说明车离开。此板或亮或暗受LON(i)、)、LOFF(i)两命令的控制。在过程)两命令的控制。在过程SHUTTLE_1中可嵌入一个新功能:当交通车中可嵌入一个新功能:当交通车到达站(到达站(i)时,发出命令)时,发出命令LON(i);离开站);离开站(i)时,发出命令)时,发出命令LOFF(i)。交通车在两站)。交通车在两站之间往返运行过程中,输出之间往返运行过程中,输出“开关发光板开关发光板”的的命令数据流,图命令数据流,图10 2 2为增加这一功能后的为增加这一功能后的SSD,结构正文修改为:,结构正文修改为: 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.2 11.2.2 扩充功能性过程扩充功能性过程图图10 2 2 修改后的修改后的SSD LAMPCMDSLamp commandsButton 0BDSVButton 1Shuttle 0Shuttle 1LAMPCMDS 软软软软软软 件件件件件件 工工工工工工 程程程程程程SHUTTLE_1 seq LON(1) /* 控制发光板控制发光板“亮亮”,说,说 明交通车正停在站明交通车正停在站1上上 */ read 状态向量状态向量 WAIT_BODY1 itr while Wait(1) read 状态向量状态向量 WAIT_BODY1 end LOFF(1) /* 交通车即将离站;控交通车即将离站;控 制发光板制发光板“暗暗” */ LEAVE(1) TRANSIT_BODY1 itr while Transit(1) read 状态向量状态向量 TRANSIT_BODY1 end 软软软软软软 件件件件件件 工工工工工工 程程程程程程SHUTTLE_BODY1 itrSHUTTLE_BODY1 itr STATION seq STATION seq ARRIVE(i) ARRIVE(i) LON(i) / LON(i) /* * 交通车已停靠站(交通车已停靠站(i i) * */ / WAIT_BODY itr while Wait(i) WAIT_BODY itr while Wait(i) read read 状态向量状态向量 WAIT_BODY endWAIT_BODY end LOFF(i) / LOFF(i) /* * 交通车将离开站(交通车将离开站(i i) * */ / LEAVE(i) LEAVE(i) TRANSIT_BODY itr while Transit(i) TRANSIT_BODY itr while Transit(i) read read 状态向量状态向量 TRANSIT_BODY endTRANSIT_BODY end STATION end STATION end SHUTTL_BODY1 end SHUTTL_BODY1 end ARRIVE(1) ARRIVE(1)SHUTTL_1 endSHUTTL_1 end 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.2 11.2.2 扩充功能性过程扩充功能性过程第二个功能是产生关于启动(第二个功能是产生关于启动(STARTSTART)和关闭()和关闭(STOPSTOP)发动机的命令,以此控制交通车的运行。下达发动机的命令,以此控制交通车的运行。下达STOPSTOP命命令的条件是,传感器显示车已到站,而下达令的条件是,传感器显示车已到站,而下达START START 命命令的条件是乘客压下按钮招呼交通车并恰好交通车在令的条件是乘客压下按钮招呼交通车并恰好交通车在某个站上等待。为此引入一个功能性过程某个站上等待。为此引入一个功能性过程mcontrolmcontrol,它从它从SHUTTLE_1SHUTTLE_1和和BUTTON_2BUTTON_2两过程接收数据,适时地发两过程接收数据,适时地发出出STARTSTART和和STOPSTOP两种命令。两种命令。过程过程SHUTTLE_1SHUTTLE_1与过程与过程mcontrolmcontrol之间用数据流之间用数据流“S1D”S1D”连接。因此连接。因此SHUTTLE_1SHUTTLE_1的结构正文进一步修改为:的结构正文进一步修改为: 软软软软软软 件件件件件件 工工工工工工 程程程程程程SHUTTLE_1 seqSHUTTLE_1 seq LON(1) LON(1) read read 状态向量状态向量 WAIT_BODY1 itr while Wait(1)WAIT_BODY1 itr while Wait(1) read read 状态向量状态向量 WAIT_BODY1 endWAIT_BODY1 end LOFF(1) LOFF(1) LEAVE(1) LEAVE(1) TRANSIT_BODY1 itr while Transit(1) TRANSIT_BODY1 itr while Transit(1) read read 状态向量状态向量 TRANSIT_BODY1 end 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) read 状态向量状态向量 TRANSIT_BODY end STATION end SHUTTLE_BODY1 end ARRIVE(1) write arrive to S1D /* 发送数据流,说明车已到站发送数据流,说明车已到站1 */ SHUTTLE_1 end 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.2 11.2.2 扩充功能性过程扩充功能性过程过程过程SHUTTLE_1SHUTTLE_1执行执行“readread状态向量状态向量”操作和操作和过程过程mcontrolmcontrol对对“S1D”S1D”的访问都必须有足够的访问都必须有足够快的频率,否则交通车将不能及时停下来。快的频率,否则交通车将不能及时停下来。 为完成为完成USSUSS实例,还需进一步考虑实体实例,还需进一步考虑实体BUTTONBUTTON模型。过程模型。过程BUTTON_1BUTTON_1是对按钮动作的精确描述是对按钮动作的精确描述(即每次压下都对应过程(即每次压下都对应过程pushpush的一次调用),的一次调用),实际上系统应把第一次压下按钮招呼交通车的实际上系统应把第一次压下按钮招呼交通车的动作与一次运行未开始之前乘客压下按钮招呼动作与一次运行未开始之前乘客压下按钮招呼交通车的请求区分开来。用已有实体无法描述交通车的请求区分开来。用已有实体无法描述和区分动作之间的时间约束,常常引入额外的和区分动作之间的时间约束,常常引入额外的实体实体为此设计过程为此设计过程BUTTON_2BUTTON_2,结构图如图,结构图如图1010 2 2 3 3所示所示 软软软软软软 件件件件件件 工工工工工工 程程程程程程图图1010 2 2 3 button3 button 2 2的结构图的结构图Button 2Push group*ExtraArrival bodyExtrapush bodyRequestpushArrival Extra Arrival*Extra push* 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.2 扩充功能性过程扩充功能性过程功能性过程功能性过程mcontrol既负责检查既负责检查BUTTON_2的的状态向量状态向量“B2V”,确定是否有未满足的请求,确定是否有未满足的请求,又负责把从又负责把从SHUTTLE_1处(处(S1D)获取的信)获取的信息(即交通车已到达发出请求的车站)传递给息(即交通车已到达发出请求的车站)传递给BUTTON_2(MBD流)。在此定义了一个交流)。在此定义了一个交互型功能。互型功能。 BUTTON_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 /* 首次请求到达,置请求标志首次请求到达,置请求标志 */ request:=yes read MBD and B1D RQ_PUSH end 软软软软软软 件件件件件件 工工工工工工 程程程程程程EXTRA_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_2 end 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.2 扩充功能性过程扩充功能性过程图图1010 2 2 4 4给出的系统规格说明图反映了在此给出的系统规格说明图反映了在此步骤完成的所有工作。我们在步骤完成的所有工作。我们在SHUTTLE_1SHUTTLE_1中嵌中嵌入了一个功能,产生开、关发光板的命令,增入了一个功能,产生开、关发光板的命令,增加了一个功能性过程加了一个功能性过程mcontrolmcontrol,它除了负责完,它除了负责完成成BUTTON_2BUTTON_2上的交互型功能外,还产生启动、上的交互型功能外,还产生启动、关闭发动机的命令。至于关闭发动机的命令。至于mcontrolmcontrol过程的内部过程的内部结构可采用传统的结构可采用传统的JSPJSP技术导出,关于技术导出,关于JSPJSP技术技术我们将在我们将在10.2.410.2.4和和10.2.510.2.5节讨论。节讨论。 软软软软软软 件件件件件件 工工工工工工 程程程程程程图图1010 2 2 4 4扩充功能扩充功能1 1和和2 2后的系统规格说明后的系统规格说明图图Button 0BDSVButton 1Shuttle 0Shuttle 1LAMPCMDSB1DButton 2S1DMBDMcontrolB2VMOTORCMDS 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.3 11.2.3 施加时间约束施加时间约束经过前几个步骤,获得一个由若干顺序过程组成的系统,经过前几个步骤,获得一个由若干顺序过程组成的系统,它们通过数据流或状态向量进行通信,但对这些处理过程它们通过数据流或状态向量进行通信,但对这些处理过程的执行速度尚未考虑。所以,对于输出流,定义输出速度的执行速度尚未考虑。所以,对于输出流,定义输出速度和更新频率;对于输入流,要求子系统保证及时收集所有和更新频率;对于输入流,要求子系统保证及时收集所有输入信息并保持它们的到达顺序不变。输入信息并保持它们的到达顺序不变。 在在USSUSS实例中,关于时间方面的约束包括:实例中,关于时间方面的约束包括: 1 1停车命令允许的最大延迟时间;停车命令允许的最大延迟时间; 2 2开、关发光板命令的响应时间。开、关发光板命令的响应时间。目前在目前在JSDJSD方法中,时间约束的描述仍采用非形式化的方式。方法中,时间约束的描述仍采用非形式化的方式。一种解决办法是引入时间标志流(一种解决办法是引入时间标志流(time marker streamtime marker stream)作为模型过程的输入,时间标志流由特定的时钟过程产生。作为模型过程的输入,时间标志流由特定的时钟过程产生。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.4 11.2.4 实现与实现与JSPJSP技术技术实现是实现是JSDJSD方法的最后一个步骤,它将系统功方法的最后一个步骤,它将系统功能说明配置到给定的软硬件环境上,并满足性能说明配置到给定的软硬件环境上,并满足性能方面的约束。能方面的约束。这一步骤主要考虑:过程在多处理机上的调度这一步骤主要考虑:过程在多处理机上的调度(schedulingscheduling)、根据)、根据SSDSSD和和JacksonJackson结构图进结构图进行过程变换(行过程变换(transformationtransformation)、过程状态向)、过程状态向量的存储和访问(量的存储和访问(storage and access of storage and access of state vectorsstate vectors)以及借助)以及借助JSPJSP技术描述功能性技术描述功能性过程。因篇幅所限,本节及下节仅讨论最后一过程。因篇幅所限,本节及下节仅讨论最后一个问题。个问题。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.4 11.2.4 实现与实现与JSPJSP技术技术JSPJSP技术是一种详细设计技术,它由问题所固有的技术是一种详细设计技术,它由问题所固有的数据结构导出过程的内部结构。所用的基本工具数据结构导出过程的内部结构。所用的基本工具称为数据结构图,是称为数据结构图,是JacksonJackson结构图的变种,专门结构图的变种,专门用于描述数据元素之间的逻辑关系。例如在图用于描述数据元素之间的逻辑关系。例如在图1010 2 2 5 5中,数据集合中,数据集合A A由若干个由若干个B B结构(结构(“* *”表表示重复)组成,而每个示重复)组成,而每个B B由若干个由若干个C C结构后跟一个结构后跟一个D D结构组成(同级分叉表示顺序),结构组成(同级分叉表示顺序),D D结构或为数据结构或为数据项项E E或为或为F 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 158.00YYYY 10.28 307.90 支付文件支付文件支付记录支付记录*CNO分组分组*CNOCNO主文件主文件顾客记录顾客记录*余款额余款额支付文件支付文件XXXX 2373.50 软软软软软软 件件件件件件 工工工工工工 程程程程程程简化的信用卡付帐系统简化的信用卡付帐系统如图如图1010 2 2 6 6所示。系统的输入是支付文件和所示。系统的输入是支付文件和顾客主文件。顾客主文件。支付文件的每个记录由顾客号(支付文件的每个记录由顾客号(CNOCNO)、支付)、支付日期(日期(DATEDATE)和支付金额()和支付金额(AMTAMT)三个数据项)三个数据项组成,并假定已按顾客号预先分组。组成,并假定已按顾客号预先分组。顾客主文件由顾客号(顾客主文件由顾客号(CNOCNO)和余款额)和余款额(Outstanding balOutstanding bal)两项组成。两个文件分)两项组成。两个文件分别对应图别对应图10-2-610-2-6中所示数据结构图。中所示数据结构图。 软软软软软软 件件件件件件 工工工工工工 程程程程程程假设该系统输出报表如下图所示假设该系统输出报表如下图所示 Accounting Report CNO Date Amt Old bal New bal XXXX YYYY Grand tot 软软软软软软 件件件件件件 工工工工工工 程程程程程程图图10 2 7 系统输出报表所对应的数据结构系统输出报表所对应的数据结构图图记帐报表记帐报表情况汇总情况汇总顾客数据顾客数据总付款额总付款额总余额总余额CNO组组*CNO支付记录支付记录*付款总数付款总数平帐数据平帐数据原余额原余额现余额现余额 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.5 11.2.5 产生过程表示产生过程表示JSPJSP方法通过综合、对照过程的输入方法通过综合、对照过程的输入/ /输出数据结构的层次关输出数据结构的层次关系导出对应的过程性表示系导出对应的过程性表示程序。具体步骤如下:程序。具体步骤如下:1 1找出输入与输出数据结构中有对应关系的数据元素,即有直找出输入与输出数据结构中有对应关系的数据元素,即有直接因果关系者,它们在程序中可一并处理。接因果关系者,它们在程序中可一并处理。2 2依据下述三条规则从数据结构图导出依据下述三条规则从数据结构图导出JacksonJackson结构图。结构图。 1 1)在)在JacksonJackson结构图中,为有对应关系的每对数据元素结构图中,为有对应关系的每对数据元素 画一个处理框,该框所处层次取这两个数据元素在画一个处理框,该框所处层次取这两个数据元素在 各自数据结构图中层次较低者。各自数据结构图中层次较低者。 2 2)参照输入数据结构图中剩余的每个数据元素所处层)参照输入数据结构图中剩余的每个数据元素所处层 次,在次,在JacksonJackson结构图的相应层次上画一个处理框。结构图的相应层次上画一个处理框。 3 3)参照输出数据结构图中剩余的每个数据元素所处层)参照输出数据结构图中剩余的每个数据元素所处层 次,在次,在JacksonJackson结构图的相应层次上画一个处理框。结构图的相应层次上画一个处理框。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.2.5 11.2.5 产生过程表示产生过程表示3 3列出所有操作和条件(包括分支和循环条件),列出所有操作和条件(包括分支和循环条件),并把它们分配到并把它们分配到JacksonJackson结构图中。结构图中。4 4根据根据JacksonJackson结构图,产生结构正文描述。结构图,产生结构正文描述。 将上述第将上述第1 1步骤用于信用卡付帐系统发现,输入数步骤用于信用卡付帐系统发现,输入数据结构据结构“支付文件支付文件”中的中的“CNOCNO组组”、“支付记录支付记录”分别与输出数据结构中的分别与输出数据结构中的“CNOCNO组组”、“支付记录支付记录”对应,输入数据结构对应,输入数据结构“顾客主文件顾客主文件”中的中的“顾客记顾客记录录”与输出数据结构中的与输出数据结构中的“CNOCNO组组”对应。参照上对应。参照上述第述第2 2步骤得到该系统的结构图(图步骤得到该系统的结构图(图1010 2 2 8 8)。)。 软软软软软软 件件件件件件 工工工工工工 程程程程程程图图10 2 8 导出导出Jackson结构图(程序结构)结构图(程序结构)信用卡信用卡付帐系统付帐系统情况汇总情况汇总处理处理顾客数据顾客数据总付款额总付款额总余额总余额处理处理CNO组组*处理处理CNO处理处理支付记录支付记录*计算顾客计算顾客支付总额支付总额平帐数据平帐数据原余额原余额现余额现余额 软软软软软软 件件件件件件 工工工工工工 程程程程程程执行完执行完3、4两步骤后,该结构图中两步骤后,该结构图中“处理顾客数据处理顾客数据”一框对应的结构正文应一框对应的结构正文应为:为: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_GROUP; 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 软软软软软软 件件件件件件 工工工工工工 程程程程程程教学目的:掌握教学目的:掌握DSSD方法,了解复杂过程逻辑方法,了解复杂过程逻辑的描述。的描述。教学重点:教学重点: DSSD方法。方法。教学难点:教学难点: DSSD方法。方法。教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:习题业:习题411.3 DSSD方法方法 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.3 基于结构化数据的系统开发(基于结构化数据的系统开发(DSSD)方法)方法DSSD需求分析阶段产生的需求规格说明,将作为需求分析阶段产生的需求规格说明,将作为设计过程的输入信息。设计过程的输出为设计规格设计过程的输入信息。设计过程的输出为设计规格说明,具体包括输出数据结构、过程描述和设计约说明,具体包括输出数据结构、过程描述和设计约束三方面内容。束三方面内容。DSSD设计分为逻辑设计和物理设计两个步骤,逻设计分为逻辑设计和物理设计两个步骤,逻辑设计着重考虑软件的输出、界面及过程性表示,辑设计着重考虑软件的输出、界面及过程性表示,物理设计则在逻辑设计的基础上考虑如何满足性能、物理设计则在逻辑设计的基础上考虑如何满足性能、可维护性和其他一些设计约束。可维护性和其他一些设计约束。基本工具:基本工具:Warnier Orr图,既可描述程序结构,图,既可描述程序结构,又可描述数据结构。这里介绍一种简化的又可描述数据结构。这里介绍一种简化的DSSD方方法。法。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.3.1 DSSD11.3.1 DSSD设计步骤设计步骤DSSD的逻辑设计步骤主要有两个:的逻辑设计步骤主要有两个: 1推导输出数据的逻辑结构(推导输出数据的逻辑结构(Logical Output Structure,简称,简称LOS);); 2由由LOS导出处理过程的逻辑结构导出处理过程的逻辑结构 (Logical Process Structure,简称,简称LPS)。)。 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.3.1 DSSD11.3.1 DSSD设计步骤设计步骤按下述简化方法,按下述简化方法,LOS可分四步导出:可分四步导出: 1)从问题描述本身或其他相关需求信息)从问题描述本身或其他相关需求信息 中找出所有不同的原子数据项(即不中找出所有不同的原子数据项(即不 可再分的数据项);可再分的数据项); 2)说明每个原子数据项的出现频率;)说明每个原子数据项的出现频率; 3)找出那些可再分的一般数据项;)找出那些可再分的一般数据项; 4)用)用Warnier-Orr图表示图表示LOS。 软软软软软软 件件件件件件 工工工工工工 程程程程程程【例【例11.111.1】产生如图】产生如图11-3-111-3-1所示的所示的“机器使用情况日报表机器使用情况日报表”系系统统 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_TOTAL 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.3.2 11.3.2 推导输出数据的逻辑结构推导输出数据的逻辑结构输出数据结构表现为数据项的一种层次结构。输出数据结构表现为数据项的一种层次结构。按照按照LOS推导步骤:推导步骤:1)首先从问题描述(例)首先从问题描述(例11.1所给报表原型)中找所给报表原型)中找出原子数据项;出原子数据项;2)确定每个原子数据项出现的频率(图)确定每个原子数据项出现的频率(图11 3 2)。)。 软软软软软软 件件件件件件 工工工工工工 程程程程程程图图11 3 2 原子数据项及出现频率原子数据项及出现频率原子数据项原子数据项频率频率细节细节HEADING(标题)(标题)DATE(日期)(日期)COLUME_HEAD(列标题)(列标题)TOOL_CAT(工具类名称)(工具类名称)TID(工具标志)(工具标志)S(状态)(状态)NO_PARTS(产品件数)(产品件数)SUB_TOTAL_HEAD(按类汇总小标题)(按类汇总小标题)CAT_TOT_PARTS(按类汇总)(按类汇总)TOTAL_HEAD(按目汇总标题)(按目汇总标题)MANUF_TOTAL(每日产品总计)(每日产品总计)1/报表报表 1/报表报表 1/报表报表 1/工具类工具类 1/工具工具1/工具工具1/工具工具1/工具类工具类 1/工具类工具类 1/报表报表 1/报表报表每日机器使用情况报表每日机器使用情况报表 若干类,每类有若干项若干类,每类有若干项 按类汇总按类汇总 按日汇总按日汇总 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.3.2 11.3.2 推导输出数据的逻辑结构推导输出数据的逻辑结构3)找出一般数据项,有:)找出一般数据项,有: 报表(出现一次)、报表(出现一次)、 工具类(每报表出现工具类(每报表出现t次)、次)、 工具(每类出现工具(每类出现s次)。次)。4)用)用Warnier-Orr图表示图表示LOS 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.3.2 推导输出数据的逻辑结构推导输出数据的逻辑结构图图1111 3 3 3 LOS3 LOS的的WarnierWarnier OrrOrr图图示示标题标题日期标题日期标题日期日期 工具类名称工具类名称 工具标识工具标识列标题列标题 工具工具 状态状态工具类工具类 (1,s) 产品件数产品件数 (1,t) 按类汇总小标题按类汇总小标题每日汇总标题每日汇总标题 按类汇总按类汇总每日产品总计每日产品总计生产生产日报表日报表 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.3.3 推导处理过程的逻辑结构推导处理过程的逻辑结构 (LPS)LPS是软件的过程性表示,推导步骤如下:是软件的过程性表示,推导步骤如下:1)从)从LOS的的Warnier Orr图示中去掉所有原子数据项;图示中去掉所有原子数据项;生产生产日报表日报表图图11 3 4 去掉所有原子数据去掉所有原子数据项项 工具工具 工具类工具类 (1,s) (1,t) 软软软软软软 件件件件件件 工工工工工工 程程程程程程2)对每个一般数据项加上)对每个一般数据项加上“.BEGIN、.END”分隔符;分隔符;.BEGIN .BEGIN 工具工具 工具类工具类 (1,s) (1,t) .END.END生产生产日报表日报表 软软软软软软 件件件件件件 工工工工工工 程程程程程程3)定义所有初始、终止的指令或过程;)定义所有初始、终止的指令或过程;4)说明所有数值计算和非数值处理;)说明所有数值计算和非数值处理;.BEGIN 置置MANUF_TOTAL为为0 .BEGIN 置置CAT_TOTALPARTS为为0 工具类工具类 工具工具 (1,t) (1,s) 把把NO_PARTS加到加到 CAT_TOTAL_PARTS上上 .END.END生产生产日报表日报表把把CAT_TOTAL_PARTS加到加到MANUF_TOTAL上上 软软软软软软 件件件件件件 工工工工工工 程程程程程程5)说明所有输出指令或过程;)说明所有输出指令或过程; 6)说明所有输入指令或过程。)说明所有输入指令或过程。图图11 3 6 完整的完整的LPS生生产产日日报报表表.BEGIN工具类工具类(1,t).END输出标题、日期标题、日期、列标题输出标题、日期标题、日期、列标题置置MANUF_TOTAL为为0取一条逻辑记录取一条逻辑记录.BEGIN工具工具(1,s).END输出输出TOOL_CAT置置CAT_TOTAL_PARTS为为0输出输出TID,S,NO_PARTS把把NO_PARTS加到加到CAT_TOTAL_CAT上上取一条逻辑记录取一条逻辑记录输出输出SUB_TOTAL_HEAD把把CAT_TOTAL_PARTS加到加到MANUF_TOTAL上上输出输出CAT_TOTAL_PARTS输出输出TOTAL_HEAD输出输出MANUF_TOTAL 软软软软软软 件件件件件件 工工工工工工 程程程程程程图图11 3 6 完整的完整的LPS生生产产日日报报表表.BEGIN工具类工具类(1,t).END输出标题、日期标题、日期、列标题输出标题、日期标题、日期、列标题置置MANUF_TOTAL为为0取一逻辑记录取一逻辑记录.BEGIN工具工具(1,s).END输出输出TOOL_CAT置置CAT_TOTAL_PARTS为为0输出输出TID,S,NO_PARTS把把NO_PARTS加到加到CAT_TOTAL_CAT上上取一条逻辑记录取一条逻辑记录输出输出SUB_TOTAL_HEAD把把CAT_TOTAL_PARTS加到加到MANUF_TOTAL上上输出输出CAT_TOTAL_PARTS输出输出TOTAL_HEAD输出输出MANUF_TOTAL 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.3.4 11.3.4 复杂过程逻辑的描述复杂过程逻辑的描述DSSDDSSD提供了一种复杂过程逻辑(提供了一种复杂过程逻辑(Complex Complex Process LogicProcess Logic,简称,简称CPLCPL)的工具。)的工具。 【例【例10.210.2】假设某邮购系统按下面算法计算顾客】假设某邮购系统按下面算法计算顾客购物的总费用,即货物本身的价格加上运费减购物的总费用,即货物本身的价格加上运费减去折头。按表去折头。按表11-111-1计算运费,按表计算运费,按表11-211-2计算折计算折头:头: 软软软软软软 件件件件件件 工工工工工工 程程程程程程表表11-1表表11-1距离(英里)距离(英里)重量(磅)重量(磅)收费收费=10010010050500.01距离距离重量重量1.10重量重量0.02距离距离重量重量2.35重量重量货款总额(美元)货款总额(美元)折头率(折头率(%)100500且且100500012 软软软软软软 件件件件件件 工工工工工工 程程程程程程购购物物总总费费用用货款总额货款总额 + 运费运费 折头折头每种物品的费用每种物品的费用 + (1,i)单价单价 数量数量本地本地/?1 远程远程/?2轻轻/?3 重重/?40.01 距离距离重量重量1.10 重量重量轻轻/?3 重重/?40.02 距离距离重量重量2.35 重量重量货款总额货款总额 折头率折头率0% (/?5) 1% (/?6) 2% (/?7) 软软软软软软 件件件件件件 工工工工工工 程程程程程程11.3.4 11.3.4 复杂过程逻辑的描述复杂过程逻辑的描述其中:其中:/?i分支条件或循环条件;分支条件或循环条件; +、算术运算符;算术运算符; 表示不可兼具的选择关系。表示不可兼具的选择关系。本例中:本例中:/?1距离距离100英里;英里;/?3 重量重量 50 磅;磅; /?5 货款总额货款总额100美元;美元;/?6 100美元美元=货款总额货款总额=500美元;美元; 软软软软软软 件件件件件件 工工工工工工 程程程程程程习习 题题11.4 用用Jackson数据结构图表示数据结构图表示Pascal文件结构:文件结构: type persons=record age: integer; sex: (male,female); case t of 1: factory; 2: office; 3: administration end; end; var thefile:file of persons; 软软软软软软 件件件件件件 工工工工工工 程程程程程程解:解:office record *age sex tthefile Administration Factory female male 返回目录返回目录
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!