end A
从图4-41中可以可以看出,执行A是要顺序执行B、C和D处理框,而C框要根据条件I1执行0次或多次。根据上述分析,显然在两种表示方法中图4-41是正确的。但是画法容易引起混淆,因此在遇到上面这种顺序结构中混杂有重复结构或选择结构时,应将结构图改画。图4-42就是一种改画方案。
4-42 改进画法
其相应的伪代码如下: A seq B
Cunit iter until cond I1 C
end Cunit D end A
2.Jackson方法步骤与实现 ( 1)Jackson方法的步骤
从Jackson方法与前面讨论的面向数据流的设计方法的比较如图4-43所示,可以看出两种方法有不同的出发点,一个出发点是数据结构,一个出发点是数据流。而且Jackson方法得到的程序过程性描述实际上已接近详细过程描述。
36
图4-43 Jackson方法与面向数据流设计方法比较
Jackson方法步骤如下:
前三步属于需求分析阶段,后四步属于设计阶段。
S1:从描述的问题中,提取软件系统要产生和运用的实体(人、物或组织),以及现实世界作用于实体的动作。
S2:把作用于实体的动作或由实体完成的动作,按时间发生的先后顺序构成进程。
S3:把实体模型与现实世界联系,模型系统的规格说明可以用系统规格说明图来表示。
S4:确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。
S5:找出输入数据结构和输出数据结构中存在对应关系的数据单元。存在对应关系是指有直接的因果关系,在程序中可以同时处理的数据单元(对于重复出现的数据单元必须重复的次序和次数都相同才可能有对应关系)。从描绘数据结构的Jackson图导出描绘程序结构的Jackson图,规则如下: ①为每对在输入结构与输出结构中有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构的相应层次画一个处理框,如果这对数据单元在输入数据结构和输出数据结构中所处的层次不同,则和它们对应的处理框在程序结构图中所处的层次与它们之中在数据结构图中层次低的那个对应; ②根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;
③根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;
37
④所有处理框在在程序结构图上的位置,应与由它处理的的数据单元在数据结构的Jackson图上的位置相对应。
描绘程序结构的Jackson图应该综合输入数据结构和输出数据结构的层次关系而导出来。在导出程序结构图的过程中,由于改进的Jackson图规定在构成顺序结构的元素中不能有重复出现或选择出现的元素,因此可能需要增加中间层次的处理框。做好这一步的关键是准确的找出有对应关系的所有数据单元。所谓对应单元,是指在程序中具有因果关系,可以或者需要放在一起处理的单元。
S6:列出完成结构图各框处理功能的全部操作和条件,如打开文件、关闭文件等辅助性操作,分支条件和循环结束条件等条件,并且把它们分配到程序结构图的适当位置。 S7:用伪码书写程序。 (2) Jackson方法的实现
Jackson方法的实现是基于数据结构导出程序或进程的结构方法。实现的本质就是:问题应当被分解为可以用三种基本结构(顺序、选择和重复)表示的部件的层次结构。,利用这三种基本结构可以组合成更复杂的结构体系,即过程构造。
例: 信用卡报帐系统。
某商店开展信用卡购物业务。建立了两个帐目付款帐目和用户总帐目。前者记录了每位用户每次付款的日期,金额,由用户的帐号,日期和交易金额组成。后者记录了用户存款余额。这两个帐目都是按用户的帐号进行登录的(见图4-44)。店方每隔一段时间都需要根据上述两个帐目产生一个会计报告。包括帐号、日期、交易金额、旧余额、新余额等内容,如图4-45所示。要求用Jackson方法设计一个能够产生上述会计报告的程序。 S1:画数据结构图
这个系统的两个输入文件是 付款帐目和用户总帐目。输出文件是会计报告。两个输入文件是以用户帐号组织记录的。输出数据结构的 Jackson图如图4-46所示。
会计报告中最后一行店方总计中由两项内容组成,即交易额总计和店方余额总计。报告其他部分是顾客数据。其输出数据结构的 Jackson图如图4-47所示。
38
图4-44 付款帐目和用户总帐目
图4-45 会计报告
图 4-46信用卡报帐系统的输入
39
图 4-47信用卡报帐系统的输出
S2:画程序结构图
从层次性输入和输出数据结构可以直接得到程序的过程性表示。在确定程序的结构时的规则如下:
? 对于每对有对应关系的数据单元,按照它们在输出数据结构中所在的层次,在程序结构的适当位置画一个数据框。
? 对于在每个输入数据结构中的数据单元,如果在输出数据结构中没有对应的数据单元,则为它在程序结构中的适当位置画一个程序框。
? 对于在每个输出数据结构中的数据单元,如果在输入数据结构中没有对应的数据单元,则为它在程序结构中的适当位置画一个程序框。
每产生一份会计报告,就须将付款帐目和用户总帐目分别打开一次。从图4-46和图4-47中可以看出三个数据结构图的第一层是相互对应的。在第二层中,图4-47中的用户帐号组和存款金额总计分别与图4-46中用户帐号组和用户记录两个单元相对应。再往下:图4-47的报告行与图4-46的付款记录相对应;图 4-47的旧存款余额与图4-46的存款余额相对应。由于输入数据结构中除去对应单元已无剩余单元,所以程序结构图可以直接由输出数据结构图(图4-47)映射得到,如图4-48所示。
40
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库软件工程第四讲教案(8)在线全文阅读。
相关推荐: