软件工程第六讲结构化分析方法
- 格式:ppt
- 大小:471.51 KB
- 文档页数:88
软件工程结构化分析与设计1. 简介软件工程结构化分析与设计是软件开发中非常重要的一门课程,通过对软件系统进行结构化分析和设计,可以提高软件的质量、可维护性和可扩展性。
本文将介绍软件工程结构化分析与设计的基本概念和主要内容。
2. 结构化分析结构化分析是软件工程中的一种分析技术,它主要用于对问题域进行分析,确定问题需求和对问题进行建模。
结构化分析主要包括以下几个步骤:确定问题领域和问题域边界;识别问题中的对象和它们之间的关系;划分问题域为子问题,建立问题域模型;确定问题的功能需求和非功能需求。
结构化分析的核心是数据流图,它可以表示问题域中的数据流和处理过程,帮助确定系统功能和数据流向。
3. 结构化设计结构化设计是在结构化分析的基础上进行的,它主要用于确定系统的结构和设计系统的组件。
结构化设计的主要内容包括以下几个方面:系统结构设计:确定系统的模块和模块之间的关系;数据结构设计:设计系统中的数据结构和数据存储组织方式;接口设计:设计系统与其他系统或外部设备之间的接口;过程设计:设计系统中的算法和处理过程。
结构化设计的目标是提高系统的可维护性、可扩展性和可重用性,满足系统的功能需求和非功能需求。
4. 工具与方法在软件工程结构化分析与设计过程中,有一些常用的工具和方法可以帮助完成任务。
其中一些常用的工具包括:UML:统一建模语言,用于描述系统的结构和行为;数据流图:用于表示数据流和处理过程;结构图:用于表示系统的模块和模块之间的关系;状态图:用于描述系统中对象的状态和状态转换。
而一些常用的方法包括:数据字典:记录系统中的数据元素和数据流,帮助理清数据之间的关系;面向对象分析与设计:通过对象的抽象和分类,设计系统的结构和行为;结构化设计方法:采用自顶向下和自底向上的设计方法,将系统划分为模块并确定模块之间的关系。
5.软件工程结构化分析与设计是软件开发中非常重要的一环,它通过对问题域进行分析和设计,帮助构建高质量、可维护和可扩展的软件系统。
软件工程——结构化方法上世纪60年代,由于计算机计算能力和处理的问题复杂度的急速增长,爆发了众所周知的软件危机。
为了应对软件危机带来的危害,解决管理大型复杂软件的难题,学术界与工业界共同研究并提出了许多有效的软件开发方法。
而其中影响最为深远的,分支最为庞大的方法就是结构化方法。
自1967年起就涌现出了许多软件工程领域有关结构化的相关概念与方法。
如结构化程序设计,结构化分析技术,结构化设计。
本文将针对它们进行介绍以及其应用。
结构化编程结构化编程(Structured programming)是上世纪60年代迪杰斯特拉,科拉多·伯姆及朱塞佩·贾可皮尼等计算机科学家所提出的。
图灵奖得主迪杰斯特拉(Edsger Wybe Dijkstra)在1968年的一篇名称为《GOTO陈述有害论》的论文写到:最近我发现为什么使用goto语句具有灾难性的影响,而且我认为goto语句应该从所有的高级语言中废除,因为它使分析和验证程序正确性(特别是涉及循环)的任务变得复杂。
——Go To Statement Considered Harmful Edsger W.Dijkstra科拉多·伯姆于1966年5月在《Communications of the ACM》期刊发表论文,说明任何一个有goto指令的程序,可以改为完全不使用goto指令的程序。
下面来看一个例子,用于展示goto带来的差可读性。
void foo{A:...if(c==1)goto B;else goto C;B:...if(c==2) goto A;else goto C;C:...if(c==3)goto B;else goto A;}因此为了应对这些弊端,迪杰斯特拉提出了结构化程序设计。
首先他证明了任何程序都可以用以下三种流程架构所组成。
可分为循序(sequence)、选择(selection)及重复(repetition),循序是指程序正常的运行方式,运行完一个指令后,运行后面的指令。