
专题5:Jackson设计方法.pdf
19页专题专题5::Jackson设计方法设计方法Topic: Jackson System Development面向数据结构的面向数据结构的软件开发方法软件开发方法用工程化的方法开发软件系统用工程化的方法开发软件系统软件工程模型与方法2本讲要点 面向数据的分析、设计方法面向数据的分析、设计方法 基本特点基本特点 面向数据结构的设计开发方法面向数据结构的设计开发方法Jackson设计方法31 DSSD 面向数据结构系统开发方法(面向数据结构系统开发方法(Data Structure System Development, DSSD)) DSSD源于源于20世纪世纪70年代年代Warnier的重要的重要贡献;贡献; 核心思想:三种基本的结构,并可推出程核心思想:三种基本的结构,并可推出程序结构;序结构; Ken Orr作了重要的补充作了重要的补充Jackson设计方法42 JSD Jackson系统开发方法(系统开发方法(Jackson System Development, JSD)) JSD是是20世纪世纪80年代年代Jackson提出的方法;提出的方法; 由由JSP((Jackson Structured Programming ))发展而来;发展而来; 核心思想:核心思想:由数据结构,建立目标系统的由数据结构,建立目标系统的模型,并演化为相应的程序结构;模型,并演化为相应的程序结构;Jackson设计方法53 基本特点 以数据结构作为软件设计的基础;以数据结构作为软件设计的基础; 有信息对象的层次结构映射为层次的组织有信息对象的层次结构映射为层次的组织结构;结构; 产生软件的过程性描述(适合于详细设产生软件的过程性描述(适合于详细设计),对模块化不予特别考虑(是副产计),对模块化不予特别考虑(是副产品)。
品)Jackson设计方法6适用范围 对于具有明显层次信息结构的应用特对于具有明显层次信息结构的应用特别有效,如企事业信息系统;别有效,如企事业信息系统; 对科学与工程计算、计算机辅助教学、对科学与工程计算、计算机辅助教学、组合问题求解等领域的应用也很适用;组合问题求解等领域的应用也很适用;Jackson设计方法7Warnier图 一种表示信息层次结构的图示方法;一种表示信息层次结构的图示方法; 例如,一种典型的报纸含例如,一种典型的报纸含 ¾首版(标题新闻、国内新闻、本地新闻)首版(标题新闻、国内新闻、本地新闻) ¾商业金融版(股市行情、商业新闻、广商业金融版(股市行情、商业新闻、广告)告) ¾文化体育版(文化体育新闻、散文、新文化体育版(文化体育新闻、散文、新书评论)书评论)Jackson设计方法8Jackson设计方法Warnier图示例首版商业金融版文化体育版标题新闻国内新闻本地新闻股市行情(0,1)商业新闻广告(1,5)文化体育新闻散文新书评论报纸9Jackson设计方法数据结构图 三种基本的结构三种基本的结构 ¾顺序、选择、重复顺序、选择、重复AB*I1AB CAB 0C 0S110Jackson图表示复杂的结构BC DE F***A11由数据结构导出过程的结构 举例:举例:信用卡记账信用卡记账Jackson设计方法支付账册记帐报告行用卡记帐顾客主账册12步骤1:确定输入输出数据的逻辑结构支付帐册顾客号码支付日期支付金额XXXXXXXXXXXXXXX{YYYYYYYYYYYYYYY{………… …………………… ………………***** ********** **************************************** *****顾客号码组顾客号码组支付文件顾客号码组支付记录**支付帐册13顾客主帐册顾客帐号结余XXXXXYYYYY**********顾客主文件顾客号码记录结余*14顾客号码日期交易额老结余新结余XXXXXX **** **** **** ****XXXXXX **** **** **** ****…… …… …… …… ……XXXXXX **** **** **** ****YYYYYY **** **** **** ****YYYYYY **** **** **** ****…… …… …… …… ……YYYYYY **** **** **** ****…… …… …… …… ……总计**** ****{{顾客号码组顾客号码组记帐报告15顾客数据店方总计顾客号码组交易总计结余总计支付记录顾客总计结余老结余新结余记帐报告16步骤2:导出程序结构图处理支付文件和顾客主文件,给出记帐报告处理顾客数据处理店方总计处理顾客号码组处理支付记录计算顾客总计计算结余处理老结余计算新结余计算交易总计计算结余总计**17步骤3:用伪代码写出算法AB CAB CA selectdo B;ordo C;A endAB*A iter(while)untildo B;A endA seqdo B;do C;A end(c)重复型(a)顺序型(b)选择型18PROCESS_CUST_DATA seqOpen PAY FILE::open CUST M FILE;;{分别打开支付文件和顾客主文件分别打开支付文件和顾客主文件}PROCESS_CNO_GROUP iter until eof::PAY_FILE;;{处理顾客号码组处理顾客号码组}Read PAY FILE::{读支付文件一个记录读支付文件一个记录)PROCESS_CNO;;{读顾客主文件一个记录,找老结余读顾客主文件一个记录,找老结余}PROCESS PAY RECORD iter until end::CNOGROP::{处理顾客号码组中每个支付记录处理顾客号码组中每个支付记录} write report line;;{写出报告行写出报告行} compute total payments;;{计算总支付额计算总支付额} read PAY_FILE;;{读支付文件下一个记录读支付文件下一个记录}PROCESS PAY RECORD end;;{一位顾客数据处理完一位顾客数据处理完} COMPUTE CUST_TOTAL;;{计算顾客总数计算顾客总数} COMPUTE_BALANCE seq {计算结余计算结余}PROCESS_OLD_BALANCE;;{处理老结余处理老结余}COMPUTE_NEW_BALANCE;;{计算新结余计算新结余}Write report line;;{写出报告行写出报告行} COMPUTE_BALANCE end;;{计算结余完毕计算结余完毕}PROCESS CNO_GROUP end;;{支付文件处理完成支付文件处理完成}PROCESS CUST DATA end::{Substructure PROCESS CUST DATA}19说明 Jackson方法强调数据结构,并由此方法强调数据结构,并由此获得程序结构;获得程序结构; 一般适用于详细设计;一般适用于详细设计; 往往和其他各种方法配合使用;往往和其他各种方法配合使用;Jackson设计方法结束。
