描述程序处理过程的工具成为过程设计的工具,他们可以分为图形、表格和语言3类。不论是哪类工具,对他们的基本要求都是能提供对设计的无歧义的描述,也就是应该指明控制流程、处理功能、数据组织以及其他方面的实现细节,从而在编码阶段能把对设计的描述直接翻译成程序代码。


出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。它有下述特点:

  1. 功能域(即一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来;

  2. 不可能任意转移控制;

  3. 很容易明确局部和全局数据的作用域;

  4. 很容易表现嵌套关系,也可以表示模块的层次结构。


下图给出了结构化控制结构的盒图表示,也给出了调用子程序的盒图表示方法。


wKioL1NLpzPje_3kAABHIwKtSCI525.jpg

wKiom1NLp1ziMeUtAABysU5uLSw268.jpg

wKioL1NLpzTDyXa5AAC8paG2hdQ959.jpg

wKiom1NLp12zGAVwAAC4MjqYDF0676.jpg

wKioL1NLpzWRl0vPAABh22sY2fk945.jpg


盒图没有箭头,因此不允许随意转移控制。坚持使用盒图作为详细设计的工具,可以使程序员逐步养成用结构化的方式思考问题和解决问题的习惯。


摘自:《软件工程》张海藩编著