【软件工程】Jackson图

文章目录

  • 图形
  • Jackson结构程序设计方法
  • 例子

图形

图形 结构 说明
【软件工程】Jackson图_第1张图片 顺序结构 A由B、C、D 3个元素顺序组成,出现的次序依次是B、C和D
【软件工程】Jackson图_第2张图片 选择结构 根据条件A是B或C或D中的某一个
【软件工程】Jackson图_第3张图片 重复结构 A由B出现N次(N≥0)组成

Jackson结构程序设计方法

  • 确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构
  • 找出输入数据结构和输出数据结构中有对应关系的数据单元
  • 从描绘数据结构的Jackson图导出描绘程序结构的Jackson图
    • 为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框
    • 根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框
    • 根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框
  • 列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置
  • 用伪码表示程序。Jackson方法中使用的伪码和Jackson图是完全对应的

顺序结构

处理名 seq
	处理1
	处理2
处理名 end

选择结构

处理名 select 条件1
	处理1
处理名 or 条件2
	处理2
处理名 or 条件3
	处理3
处理名 end

重复结构

处理名 iter until 循环条件
	处理
处理名 end

例子

一个正文文件由若干个记录组成,每个记录是一个字符串
要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数
输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数;最后印出文件中空格的总个数。


输入数据是正文文件,输出数据是输出表格
有对应关系的数据单元是正文文件和输出表格、字符串和串信息
【软件工程】Jackson图_第4张图片



将【正文文件】变成【输出表格】的处理是【统计空格】
生成【表格体】的处理是【程序体】,生成【空格总数】的处理是【印总数】
将【字符串】变成【串信息】的处理是【处理字符串】
对【生成字符串】的处理是【印字符串】,对【字符】的处理是【分析字符】,生成【空格数】的处理是【印空格数】
由于Jackson图规定顺序执行的处理中不允许混有重复执行或选择执行的处理,所以在【分析字符】上面又增加了一个【分析字符串】
对【空格】的处理是【处理空格】,对【非空格】的处理是【处理非空格】

【软件工程】Jackson图_第5张图片



需要的全部操作和条件如下:
(1) 停止
(2) 打开文件
(3) 关闭文件
(4) 印出字符串
(5) 印出空格数目
(6) 印出空格总数
(7) sum∶=sum+1
(8) totalsum∶=totalsum+sum
(9) 读入字符串
(10) sum∶=0
(11) totalsum∶=0
(12) pointer∶=1
(13) pointer∶=pointer+1
I(1) 文件结束
I(2) 字符串结束
S(3) 字符是空格
【软件工程】Jackson图_第6张图片



伪码

统计空格seq
	打开文件
	读入字符串
	totalsum∶=0
	程序体iter until文件结束
	 	处理字符串seq
	  		印字符串seq
	  			印出字符串
	  		印字符串end
	  		sum∶=0
	  		pointer∶=1
			分析字符串iter until字符串结束
	 			分析字符select字符是空格
	   				处理空格Seq
						sum∶=sum+1
						pointer∶=pointer+1
	  				处理空格end
				分析字符or字符不是空格
	    			处理非空格seq
	    			pointer∶=pointer+1
	   				处理非空格end
	  			分析字符end
			分析字符串end
			印空格数seq
		     	印出空格数目
			印空格数end
			totalsum∶=totalsum+sum
	    	读入字符串
	  	处理字符串end
	程序体end
	印总数seq
    	印出空格总数
	印总数end
	关闭文件
	停止
统计空格end

你可能感兴趣的:(软件工程,Jackson)