软件工程ppt04概要设计课件.ppt
《软件工程ppt04概要设计课件.ppt》由会员分享,可在线阅读,更多相关《软件工程ppt04概要设计课件.ppt(173页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、:梁丽梁丽我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物第四章第四章 总体设计总体设计l内容要点:内容要点:本章介绍软件设计的基本原理,优化软件结构的准则以及本章介绍软件设计的基本原理,优化软件结构的准则以及结构化程序设计方法结构化程序设计方法。 l教学重点:教学重点:l软件设计的基本任务软件设计的基本任务l内聚性、耦合性的划分内聚性、耦合性的划分l软件结构、模块的影响范围、模块的控制范围软件结构、模块的影响范围、模块的控制范围l软件结构设计的优化准则软件结构设计的优化准则l表示软件结构的图形工具表示软件
2、结构的图形工具l教学难点:教学难点:l将变换流或事务流类型的数据流图转化成软件结构将变换流或事务流类型的数据流图转化成软件结构l将一个复杂型数据流图转化成软件结构图并优化将一个复杂型数据流图转化成软件结构图并优化我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物本章的知识结构图本章的知识结构图我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物总体目标总体目标根据根据DFD ,确定最恰当实现软件功能、,确定最恰当实现软件功能、
3、性能要求集合的软件系统结构,实现算法和数据结构。性能要求集合的软件系统结构,实现算法和数据结构。(How to do?)?)过程过程从抽象的需求规格向具体的程序与数据集合从抽象的需求规格向具体的程序与数据集合进行变换的过程。进行变换的过程。结果结果各种软件设计说明书。各种软件设计说明书。设计方法设计方法结构化设计(结构化设计(SD)方法,面向数据结构)方法,面向数据结构的的设计方法和面向对象的设计方法等。设计方法和面向对象的设计方法等。结构化软件设计可分为结构化软件设计可分为总体设计总体设计和和详细设计详细设计两个两个阶段,总体设计确定系统的整体模块结构,但这时每阶段,总体设计确定系统的整体模
4、块结构,但这时每个模块仍然处于个模块仍然处于“黑盒子黑盒子”级,描述这些黑盒子里的级,描述这些黑盒子里的具体内容是详细设计阶段的任务。具体内容是详细设计阶段的任务。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物数据词典数据词典数数据据流流图图实实体体关关系系图图状态转换图状态转换图加加工工规规格格说说明明控控制制规规 格格说说明明数数据据对对象象描描述述过程设计过程设计接
5、口设计接口设计体系结构设计体系结构设计数据设计数据设计我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物(1)(1)概要设计概要设计( (总体设计总体设计) )确定软件的结构以及各组成成分确定软件的结构以及各组成成分( (子系统或模块子系统或模块) )之间的相互关系。之间的相互关系。(2)(2)详细设计详细设计 确定模块内部的算法和数据结构,确定模块内部的算法和数据结构,产生
6、描述各模块程序过程的详细文产生描述各模块程序过程的详细文档。档。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个
7、活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把
8、它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的
9、猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 1. 1. 软件结构软件结构 2. 2. 软件过程软件过程 3. 3. 模块化模块化 4. 4. 抽象抽象 5. 5. 信息隐蔽信息隐蔽 6. 6. 信息局部化信息局部化4.2 4.2 软件设计的概念和原理软件设计的概念和原理我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的
10、世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件体系结构包括两部分软件体系结构包括两部分: :(1)(1)过程构件过程构件( (模块模块) )的层次结构的层次结构(2)(2)数据构件数据构件我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物控制结构是软件模块间控制结构是软件模块间关系的表示关系的表示我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在
11、这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l 只有一个顶层只有一个顶层(0(0层层) )模块模块l 0 0层外任一模块都会在它层外任一模块都会在它 的邻层存在一模块与它有关的邻层存在一模块与它有关l 同层模块间不发生联系同层模块间不发生联系我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件过程用以描述各模软件过程用以描述各模块的处理细节块的处理细节( (算法的详算法的详细描述细描述) ),包括对下层模,包括对下层模块控制的操作细节。块控制的操作细节。我吓了一跳,蝎子
12、是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物宽度宽度扇出扇出扇入扇入( (调用一个给定模调用一个给定模 块的模块个数块的模块个数) )深深度度( (模块的模块的 层数层数) )( (同一层最大模块数同一层最大模块数) )( (一个模块一个模块 直接调用直接调用 的模块数的模块数) )软件设计的概念与原理软件设计的概念与原理软件设计的基本原理是衡量软件设软件设计的基本原理是衡量软件设计的技术质量的标准,共有计的技术质量的标准,共有4 4条:条: 模块化:模块化:即自顶向下逐层将软件系即自顶向下逐层将软件系统划分成若干模块
13、。统划分成若干模块。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物模块化是好的软件设计的一个基本准则模块化是好的软件设计的一个基本准则 高层模块高层模块 从整体上把握从整体上把握 问题问题, ,隐蔽细节隐蔽细节 复杂问题复杂问题 较小问题较小问题 分解分解 可减小解题所需的总的工作可减小解题所需的总的工作我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 该标准是软件解决复杂问题所具备该标准是软件解决复杂问题所具备的手段
14、,其依据是适当分解软件系统可的手段,其依据是适当分解软件系统可降低复杂性,减少开发工作量,降低开降低复杂性,减少开发工作量,降低开发成本、提高软件生产率。但是模块化发成本、提高软件生产率。但是模块化时应注意接口代价,因为模块划分越多,时应注意接口代价,因为模块划分越多,模块内的工作量虽然减少,但模块间接模块内的工作量虽然减少,但模块间接口的工作量增加。口的工作量增加。软件设计的概念与原理软件设计的概念与原理 软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。 把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能
15、够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物例例: :将问题将问题( (P1+P2)P1+P2)分解为分解为P1,P2P1,P2设函数设函数C(x)定义问题定义问题 x 的复杂程度的复杂程度函数函数E(x)确定解决问题确定解决问题 x 需要的工作量需要的工作量对问题对问题P1和和P2,如如: C(P1) C(P2)显然显然: E(P1) E(P2)有规律有规律:C(P1+P2) C(P1)+C(P2) E(P1+P2) E(P1)+E(P2)
16、 各个击破各个击破理论理论软件设计的概念与原理软件设计的概念与原理 抽象:抽象:即抽出事物本质的共同的特性而不即抽出事物本质的共同的特性而不考虑细节,不考虑其他因素。考虑细节,不考虑其他因素。该标准与逐步求精、模块化密切相关,该标准与逐步求精、模块化密切相关,它是划分模块过程中的思维原则。软件设计它是划分模块过程中的思维原则。软件设计的每一步都是对软件解决方法的抽象层次的的每一步都是对软件解决方法的抽象层次的一次细化。一次细化。软件设计的概念与原理软件设计的概念与原理 软件系统进行模块设计时,可有不同的抽象层次。 在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。 在较低的抽
17、象层次上,则采用过程化的方法。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物抽象原则应用举例抽象原则应用举例Windows NTWindows NT一体化的一体化的I/OI/O系统设计系统设计文件管理文件管理网络管理网络管理设备管理设备管理高速缓冲存储器高速缓冲存储器对虚拟文件对虚拟文件的字节流的的字节流的管理。管理。虚拟文件可虚拟文件可为任何设备为任何设备和实体和实体抽抽象象 信息隐蔽:信息隐蔽:即在设计和确定模块时,使得即在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对一个模块内包含的信
18、息(过程或数据),对于不需要这些信息的其他模块来说,是不能于不需要这些信息的其他模块来说,是不能访问的。访问的。信息隐蔽的目的:信息隐蔽的目的:提高模块的独立性,减少修改或提高模块的独立性,减少修改或维护时的影响面。维护时的影响面。该标准可以定义和实施对模块的过程细该标准可以定义和实施对模块的过程细节和局部数据结构的存取限制。将自身实现节和局部数据结构的存取限制。将自身实现细节与数据隐藏起来有利于提高模块的独立细节与数据隐藏起来有利于提高模块的独立性,对软件系统的修改、测试以及维护都有性,对软件系统的修改、测试以及维护都有利。利。软件设计的概念与原理软件设计的概念与原理 模块独立性:模块独立性
19、:即每个模块只完成系统要求即每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最的独立的子功能,并且与其他模块的联系最少且接口简单。少且接口简单。该标准有两个定性的衡量指标:内聚性该标准有两个定性的衡量指标:内聚性( (度量模块的内部特征度量模块的内部特征) )和耦合性(度量模块和耦合性(度量模块的外部特征)。这两个标准可判断设计方案的外部特征)。这两个标准可判断设计方案的优劣(模块划分时应尽量做到高内聚、低的优劣(模块划分时应尽量做到高内聚、低耦合,提高模块独立性)。耦合,提高模块独立性)。 模块(模块(Module)“模块模块”,又称,又称“组件组件”。它一般具有。它一般具有如下三
20、个基本属性如下三个基本属性: :u 功能功能:描述该模块实现什么功能:描述该模块实现什么功能u 逻辑逻辑:描述模块内部怎么做:描述模块内部怎么做u 状态状态:该模块使用时的环境和条件:该模块使用时的环境和条件模块的独立性:模块的独立性: 在描述一个模块时,还必须按模块的在描述一个模块时,还必须按模块的外部外部特性特性与与内部特性内部特性分别描述分别描述 模块的模块的外部特性外部特性u 模块的模块名、参数表、其中的输入参模块的模块名、参数表、其中的输入参数和输出参数,以及给程序以至整个系统数和输出参数,以及给程序以至整个系统造成的影响造成的影响 模块的模块的内部特性内部特性u 完成其功能的程序代
21、码和仅供该模块内完成其功能的程序代码和仅供该模块内部使用的数据部使用的数据模块的独立性:模块的独立性: 模块的独立性:模块的独立性:模块的独立性:模块的独立性: 耦合性是根据模块的耦合性是根据模块的外部特征外部特征提出的,是对软件系统提出的,是对软件系统结构中各结构中各模块间相互联系紧密程度模块间相互联系紧密程度的一种度量。也称的一种度量。也称块块间关系间关系。耦合性越高,模块独立性越弱耦合性越高,模块独立性越弱 影响模块间耦合程度的最主要因素是影响模块间耦合程度的最主要因素是模块间信息传递模块间信息传递的复杂性。的复杂性。 耦合程度由低到高分为耦合程度由低到高分为7种:种:我吓了一跳,蝎子是
22、多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物无耦合没有依赖关系无耦合没有依赖关系松散耦合有松散耦合有少量依赖关系少量依赖关系紧密耦合有紧密耦合有很多依赖关系很多依赖关系我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 耦合强度依赖的因素:耦合强度依赖的因素:一模块对另一模块的引用一模块对另一模块的引用一模块向另一模块传递的数据量一模块向另一模块传递的数据量一模块施加到另一模块的控制的数量一模块施加到另一模块的控制的数量模块间接口的复杂
23、程度模块间接口的复杂程度模块的独立性:模块的独立性:不传递任何消息不传递任何消息 如果一个模块访问另一个模块时,彼此之如果一个模块访问另一个模块时,彼此之间是通过间是通过简单数据参数简单数据参数 ( (不是控制参数、公不是控制参数、公共数据结构或外部变量共数据结构或外部变量) ) 来交换输入、输出来交换输入、输出信息的,则称这种耦合为数据耦合。信息的,则称这种耦合为数据耦合。属松散耦属松散耦合。合。传递的是值。传递的是值。模块的独立性:模块的独立性:我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物开发票开发
24、票计算水费计算水费单价单价数量数量金额金额标记耦合标记耦合 ( (Stamp Coupling)Stamp Coupling)如果一组模块通过参数表传递如果一组模块通过参数表传递记记录信息录信息,就是标记耦合。这个记录,就是标记耦合。这个记录是某一数据结构的子结构,而不是是某一数据结构的子结构,而不是简单变量。简单变量。传递的是数据结构传递的是数据结构。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物计算水电费计算水电费计算水费计算水费计算电费计算电费住户情况住户情况水费水费电费电费住户情况住户情况“住户
25、情况住户情况”是一个是一个数据结构数据结构, ,图中模块都图中模块都与此数据结构有关与此数据结构有关. .“计算水费计算水费”和和“计算电费计算电费”本无关本无关, ,由于由于引用了此数据结构产生依赖关系引用了此数据结构产生依赖关系, ,它们之间它们之间也是标记偶合也是标记偶合. .我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物计算水电费计算水电费计算水费计算水费计算电费计算电费本月本月用水量用水量本月本月用电量用电量水费水费电费电费模块的独立性:模块的独立性:我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 ppt04 概要 设计 课件
限制150内