数据库应用系统4_3_第1页
数据库应用系统4_3_第2页
数据库应用系统4_3_第3页
数据库应用系统4_3_第4页
数据库应用系统4_3_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、1详细设计的概念和方法 2处理过程设计的工具 3 Jackson设计方法 4代码设计 5屏幕界面设计 6详细设计阶段文档 返回3.1 Jackson方法概述 3.2 Jackson设计方法 返回 前面介绍了有关结构化分析及设计的方法,这些方法主要是面向软件中数据流的,而 Jackson方法是面向数据结构的。 70年代早期,由英国M.Jackson提出了这种软件开发方法,简称JSP。当时主要是总结了COBOL事务处理程序中的开发方法而发展起来的。这个方法的重点不是自顶向下逐步求精,而是建立在数据结构基础上的一种构造性方法,根据输入输出数据的结构建立程序结构的对应关系。由Jackson提出的这种构

2、造性的程序设计方法在欧洲较为流行,特别适合设计企事业管理一类数据处理系统。 返回 构造是把方法分成不同步骤,正确地执行每一步保证整个方法正确地执行,得到正确结果。要使构造性方法成功的关键是执行每一步时不必参考设计者尚未执行的其他步,在逐步求精方法中很难做到这一点,因为并非人人都能有良好的预见性,技术方法应有机地把人的主观直觉与现实世界的客观性结合起来。 Jackson方法主张软件的程序结构要与问题结构相对应,这样当所解决的问题有简单的或是局部性的修改时,对程序的改动也可以做到局部调整。相反,如果程序结构与问题缺乏很好的对应关系,那么对程序要进行部分调整和改动时,很有可能要对程序大动干戈,甚至要

3、推倒重来。 返回 对一般的数据处理系统而言,问题结构可用它所处理的数据结构来表示,大多数系统处理的是具有层次结构的数据,如文件由记录组成,记录又由数据项组成,如图(a)所示,那么Jackson方法就以此为基础建立起相应的模块层次结构,如处理文件的模块要调用处理记录的模块,处理记录的模块又要调用处理数据项的模块,如图(b)所示。 文件记录*数据项1数据项2数据项3处理文件处理记录*处理项2处理项1处理项3(a)(b)返回 使用Jackson方法进行程序设计,首先要分析和确定数据结构,并用适当的符号清晰地描绘数据结构。在此基础上,建立起相应的程序结构,最后列出程序中要用到的各种基本操作,再将这些操

4、作分配到程序结构中适当的模块。 返回1、Jackson图 2、Jackson设计方法的步骤 3、从数据结构导出程序结构 4、几种特殊情况的考虑 返回 虽然程序中实际使用的数据结构种类繁多,但是它们的数据元素彼此间的逻辑关系却只有顺序、选择和重复三类,因而逻辑数据结构也只有这三类。 (1)顺序结构。 (2)选择结构。 (3)重复结构。 (4)空操作 返回 顺序结构的数据由一个或多个数据元素组成,每个数据元素按确定的次序出现一次。如图所示,其中 X、Y、Z三个数据元素只出现一次,出现的次序是自左至右,依次是先X,再Y,最后是Z。 AYXZ顺序结构顺序结构返回 如图所示,在被选择的X、Y、Z数据元素

5、右上角标有小圆。选择必须包含两个或者两个以上的数据元素,并从中只能选取一个。这就是说,每一次选择要么是数据元素X,要么是Y,要么是Z,决不会出AY X Z 选择选择结构结构 现一次选择两个或是两个以上的数据元素。选择的语句结构总是IF-THEN-ELSE,这要求必须要有两个或多个可供选择的对象。如果需要一个 IF-THEN而没有 ELSE的选项,如同 IF A=B THEN X ELSE do nothing,则就需要加入一个空的选择对象。在选择结构中要注意,逻辑条件必须包含在其上层的数据元素中,如图中的数据元素A。返回 重复结构仅仅由一个数据元素构成,如图所示,其数据元素X的右上角标有一个星

6、号。和选择结构一样,重复的逻辑条件必须包含在其上层,如图上层A中。根据使用时的具体条件,数据元素X会出现零次或多次的重复。 AX*重复结构重复结构返回 除了以上三种结构以外,还有一种空操作,它在一个矩形框中标以连字符,表示在所构造的模型中不会发生任何一种情况。 返回便于表示层次结构,而且是对结构进行自顶向下分解的有力工具。 形象直观,可读性好。 既能表示数据结构,也能表示程序结构,因为在程序设计过程中,有关的程序结构也只用这三种基本的结构。 返回 虽然与前面介绍的结构化分析与设计方法一样,Jackson方法也是以信息驱动的,即这些方法都是将信息转换为软件的程序结构,但Jackson方法又有所不

7、同,它不直接利用数据流图,所以也就不必区分是变换型结构还是事务型结构。此外,Jackson方法的最终目标是生成软件的过程性描述,没有特别考虑程序模块化结构,模块只是作为过程的副产品而出现的,也不特别强调模块的独立性。 返回l第一步:分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。 l第二步:找出输入数据结构和输出数据结构中有对应关系的数据元素。 l第三步:从描绘数据结构的Jackson图导出描绘相应程序结构的Jackson图。 总而言之,推导描绘程序结构的Jackson图时,必须综合输入数据结构和输出数据结构的层次关系。 返回 分析并确定输入数据和输出数据的逻辑结

8、构,并用Jackson图描绘这些数据结构。这一步工作就是从分析说明和与客户的交流以及需求文档中提取出一组处理过程和处理中所用到的数据结构。 返回 找出输入数据结构和输出数据结构中有对应关系的数据元素。在这里,有对应关系是指有直接的因果关系。实际上,在这一步工作中,不仅要描述有关的处理活动,还应列出这些活动的属性。 返回 从描绘数据结构的Jackson图导出描绘相应程序结构的Jackson图。在具体推导过程中,可以考虑以下的一些规则: (1)为每对有对应关系的数据元素,按照它们在数据结构图中的层次,在程序结构图的相应层次上画一个处理框。 (2)根据输入数据结构中剩余的每个数据元素所处的层次,在程

9、序结构图相应层次中分别为它们画上对应的处理框。 (3)根据输出数据结构中剩余的每个数据元素所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。 返回 在得到了描绘数据结构的Jackson图的基础上,开发人员就需要考虑运行系统的软硬件方面的问题。实际上,从数据结构导出程序结构过程中,开发人员必须考虑诸如传统的程序设计语言、数据库管理系统、数据库查询系统、远程处理过程事务监管器、报告生成软件包、屏幕管理程序、特定的标准作业框架等多种因素。 但是,Jackson方法的目标不是引导开发人员去利用这些设施,而是把注意力集中于某些重要的实现特征上。 返回 (1)列出所有的操作和条件,包括分支条件

10、和循环结束的条件,并要将它们分配到有关程序处理的适当位置。 (2)用伪码来表示有关的处理程序。 返回 A seq do X do Y do Z A end 其中,“seq”、“do”和“end”是关键字。 返回 A select条件1 do X A or条件2 do Y A or条件3 do Z A end 其中“Select”、“or”和“end”是关键字,而“条件1”、“条件2”和“条件3”分别是执行 X、Y和Z的条件;。返回 A iter until(或while)条件 X A end 其中“iter”、“until”、“while”和“end”是关键字。要注意循环结构有两种结构:unt

11、il和while,并要注意不同的结构在程序具体运行时的差异。 返回 要求统计文本文件中每个记录中空格的个数,以及整个文件中空格的总个数。要求的输出格式是:在每输出一个记录即字符串后,换行输出该记录中的空格个数,最后输出文件中空格的总个数。 返回 因为是文本文件,所以其每条记录就是一串字符。根据题意,输入数据结构和输出数据结构能够很容易地确定下来。如图所示。 输入数据结构输入数据结构文本文件字符串*字符*空格非空格输出表格表格体串信息*空格总数字符串空格数输出数据结构输出数据结构返回 确定了输入输出的数据结构后,就必须在两者之间找出数据单元的对应关系,这是因为输出数据总是通过对输入数据的处理而得

12、到的。在确定了输入输出的数据结构以后,就需要在两者之间寻找对应关系的单元。要做到这些,就要依次考察两种数据结构中每个数据单元。 返回 根据这个法则,在本例中,输入输出数据结构最高层次的两个单元,即“文本文件”和“输出表格”总是有对应关系,因为文本文件通过程序的处理得到了输出表格,所以处于最顶层的方框往往代表了处理程序,也就有对应关系。此外,在输入数据结构中,每处理输入数据的一个“字符串”后,就能够得到要输出该字符串的有关“串信息”,而且在输入和输出的数据结构中又都是需要重复处理的数据单元,同时重复的次数也是完全相同,因此输入数据结构中的“字符串”与输出数据结构中的“串信息”就是一对有对应关系的

13、单元。 返回 除了上述两个对应关系外,本例中不存在其他的对应关系。因为“字符”不可能和多个字符组成的“字符串”对应,与输出数据结构中的其他数据单元也无法对应。此外,单个空格很明显不能决定一个记录中所包含的空格个数,所以也没有对应关系。再分析其他的单元,在两者数据结构中都找不到对应关系了。 为突出两种数据结构中的对应关系,用虚线箭头把有对应关系的数据单元连接起来,如图所示。 返回 找到了输入与输出数据结构的对应关系后,就可以从数据结构图中导出相应的程序结构图。由于相应的程序在处理之后是要完成所提出的要求,因此可以针对有关的输出数据结构来进行。 返回 在本例中,程序就是要完成对文本文件中空格数的统

14、计,因此针对输入输出数据结构,程序结构图的相应顶层有一个处理框“统计空格”,它与“文本文件”和“输出表格”的数据单元相对应。要注意,在输出数据结构中,“串信息”的上层还有“表格体”和“空格总数”两个数据单元,所以在程序结构图中也应该有与这两个数据单元相对应的处理框“处理过程”和“输出总数”。具体的处理过程就是与输入数据结构中的“字符串”和输出数据结构中的“串信息”相对应的处理框“处理字符串”,而且处理字符串的操作是要重复进行的。在其下层应该是与“字符”、“字符串”、“空格数”等数据单元对应的处理。根据要求及分析,应该是“输出字符串”、“分析字符”、“输出空格数”等按顺序执行的处理框。因为“字符

15、”是重复出现的数据单元,因此“分析字符”也应该是重复执行的。为了使顺序执行的处理中不出现重复执行或是选择执行的处理,在“分析字符”处理框的上面增加一个“分析字符串”处理框。于是得到了如图的程序结构图。 返回处理过程处理过程统计空格统计空格输出总数输出总数处理字符串处理字符串*分析字符串分析字符串输出字符串输出字符串输出空格数输出空格数分析字符分析字符*处理空格处理空格处理非空格处理非空格返回 下一步的Jackson程序设计方法就是要列出所有操作和条件,并且根据程序执行的要求把它们分配到程序结构图的适当位置。 在本例中,首先列出所需要的全部操作和条件。 返回 假设变量sum中存放的是字符串中空格

16、个数,total_sum是保存空格总数的变量,而变量 position是用来指示在分析字符时在字符串中的当前的位置,所以,有关的操作为: (l)程序结束 (2)打开文件 (3)关闭文件 (4)输出字符串 (5)输出空格数目 (6)输出空格总数 (7) sum:=sum+1 (8) totalsum:= total_sumsum (9)读入字符串 (10)sum:=0 (11)total_sum:=0 (12)position:=1 (13) position:= position +1 返回 根据题意,经过分析后能很容易地把这些操作和条件分配到程序结构图中的适当位置,如图所示。 处理过程处理过

17、程统计空格统计空格输出总数输出总数处理字符串处理字符串*分析字符串分析字符串输出字符串输出字符串输出空格数输出空格数分析字符分析字符*处理空格处理空格处理非空格处理非空格(2)(9)(11)(3)(1)(12)(10)(8)(9)(5)(7)(13)(13)(6)(4)返回统计空格统计空格seqseq打开文件打开文件读入字符串读入字符串处理过程处理过程 iter whileiter while文件未结束文件未结束 处理字符串处理字符串seqseq 输出字符串输出字符串seqseq 输出字符串输出字符串 输出字符串输出字符串endend sum:=0 sum:=0 position:=1 pos

18、ition:=1 返回 分析字符串分析字符串 iter untiliter until字符串结束字符串结束 分析字符分析字符selectselect字符是空格字符是空格 处理空格处理空格seqseq sum:=sum+1 sum:=sum+1 position:=position+1 position:=position+1 处理空格处理空格endend 分析字符分析字符oror字符不是空格字符不是空格 处理非空格处理非空格seqseq position:=position+1 position:=position+1 处理非空格处理非空格endend 分析字符分析字符endend 分析字符串

19、分析字符串endend返回 输出空格数输出空格数seqseq 输出空格数目输出空格数目 输出空格数输出空格数endend total_sum:=total_sum+sum total_sum:=total_sum+sum 读入字符串读入字符串 处理字符串处理字符串endend处理过程处理过程endend输出总数输出总数seqseq 输出空格总数输出空格总数输出总数输出总数endend关闭文件关闭文件程序结束程序结束 统计空格统计空格end 返回 从以上的例子中可以看出,一个程序一般都有输入和输出数据,而要整理出有关的输入和输出数据,就要对所要解决问题有一个比较全面的理解,通过分析从中找出数据结

20、构,然后还要寻找出输入和输出数据之间的对应性。实际上,在用Jackson方法进行程序设计时,最关键的就是要找出这种对应性。换言之,明确输出和输入之间的对应性就成为解题的关键所在。所谓“对应性”一般就是指数据的内容、数量和顺序上的对应性。下面的例子就是说明这种对应性的。 返回 将客房的有关信息文件和客房的当前各种状态(预订、住宿、维修、卫生等)文件合并成一个新文件。客房信息文件和状态文件的结构如图所示。 客房信息文件客房信息文件客房记录客房记录*客房信息文件客房信息文件客房记录客房记录*客房号客房号客房单价客房单价客房信息客房信息客房号客房号客房状态客房状态返回新文件新文件客房记录客房记录*客房

21、号客房号客房单价客房单价客房信息客房信息客房状态客房状态返回 由于输入数据结构和输出数据结构在内容、数量、次序上是对应的,所以很容易用Jackson方法设计出程序结构,如图所示。 产生新文件产生新文件取状态记录取状态记录取信息记录取信息记录产生新记录产生新记录取取客房客房号号取取客房客房单价单价取取客房客房信息信息取取客房客房号号取取客房客房状态状态产生产生客房客房号号产生产生客房客房状态状态产生产生客房客房信息信息产生产生客房客房单价单价返回 以上所介绍的 Jackson的设计方法,对于比较简单的数据处理系统特别方便。如果要设计的软件比较复杂,就经常会遇到一些比较特殊的情况。 (1)数据合法

22、性检查和错误处理。 (2)顺序冲突。 返回 出错数据或者是非法数据是Jackson方法中一个比较难以解决的问题。在数据结构图中没有表示出错数据,因为理论上在这种结构中出错信息是不应该存在的。但是在实际中,出现错误数据的情况是难免的。因此为了保证数据的合法性,必须根据下列的准则来构造: 每个程序模块的规格说明,需有一个合法的数据定义域; 设计每个程序时,应当保证赋给它的数据都是合法的; 如果程序模块X是程序模块A的直接下属模块,则必须保证A传送给X的数据都是合法的。 可是,这些准则在Jackson的设计方法中都没有反映出来。所以,在某些情况下,测试数据的合法性和非法性,以及错误处理,都应做专门考虑,把它构造在结构中。 返回 顺序冲突(Order Clash)是指在输入数据结构和输出数据结构中,输入数据与输出数据的顺序发生冲突。例如,每张卡片存放着

温馨提示

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

评论

0/150

提交评论