"导出描绘程序结构的Jackson图-软件工程清华大学课件"
在软件工程领域,Jackson图是一种用于表示程序结构的图形工具,由M.J. Jackson在1970年代提出。Jackson图主要用于描绘程序的数据结构和控制流程,帮助开发者理解复杂系统的逻辑结构。在给定的描述中,提到的Jackson图是针对一个统计空格的程序,它通过不同的处理步骤来统计字符串中的空格数量。
Jackson图通常包括以下部分:
1. **程序体**:这是Jackson图的核心,表示整个程序的主要流程。在例子中,程序体可能包含了多个处理步骤。
2. **处理字符串**:这是一个处理单元,可能包含对输入字符串的分析和操作,例如遍历字符串以计数空格。
3. **分析字符串**:这部分可能涉及检查字符串的各个字符,识别空格和其他非空格字符。
4. **印总数**:这可能是程序的一个功能,用于打印统计得到的空格总数。
5. **印空格数**:在某些情况下,程序可能会单独输出空格的数量。
6. **印字符串**:如果程序需要显示原始字符串或处理后的字符串,这可能是其中一步。
7. **分析字符**:与分析字符串类似,可能涉及对单个字符的检查。
8. **处理空格º 和处理非空格º**:这些是处理步骤,分别对应于对空格和非空格字符的处理。º符号可能代表处理过程的开始或结束。
9. **I 和 S**:这些可能是流程控制符号,I可能表示初始化,S可能表示某种循环或顺序处理。
软件工程是应对软件危机的解决方案之一。在60年代到70年代,软件危机表现为软件开发和维护过程中的各种问题,如不准确的成本和进度估计、用户满意度低、质量问题、不可维护性、缺乏文档、软件成本上升以及开发效率低下。软件危机的原因包括软件本身的复杂性和开发方法的不当。为了解决这些问题,软件工程学应运而生,它结合了工程方法和技术,研究软件开发和维护的方法、工具和管理。同时,程序设计方法学则专注于程序设计的理论和数学基础。
软件工程的主要目标是通过引入规范化的开发过程、使用先进的开发工具和实施有效的项目管理来提高软件质量和生产效率。这包括:
1. **加强需求分析**:确保在项目开始时对软件需求有深入理解。
2. **编写详细文档**:为软件的维护和升级提供清晰的指南。
3. **重视软件维护**:考虑到软件生命周期中的长期支持和改进。
4. **采用软件工程方法**:比如结构化编程、面向对象编程、敏捷开发等。
5. **开发软件工具**:提高开发效率,如集成开发环境、版本控制系统、自动化测试工具等。
1968年的北约会议是软件工程概念的里程碑,从那时起,软件工程学和程序设计方法学逐渐发展,成为解决软件危机的关键途径。通过不断的研究和实践,软件工程领域不断进步,以适应快速发展的计算机应用需求。