软件工程电子教案省公共课一等奖全国赛课获奖课件.pptx
《软件工程电子教案省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《软件工程电子教案省公共课一等奖全国赛课获奖课件.pptx(105页珍藏版)》请在咨信网上搜索。
1、第四章第四章 软件设计概述软件设计概述n软件设计任务软件设计任务n软件设计基本概念软件设计基本概念n模块化设计模块化设计n设计需要处理问题设计需要处理问题n设计文档及其复审设计文档及其复审第1页什么是设计?什么是设计?n把问题转化为处理方案创造性过把问题转化为处理方案创造性过程;处理方案描述也称为设计。程;处理方案描述也称为设计。第2页设计和需求有什么不一样设计和需求有什么不一样?n张君和李丽想张君和李丽想建建一栋新房子。他们需求一栋新房子。他们需求以下:以下:n三个小孩有玩耍空间,并独立拥有各自睡房三个小孩有玩耍空间,并独立拥有各自睡房n一间主人卧房一间主人卧房n一个厨房一个厨房n冬天可取暖
2、,夏天可制冷冬天可取暖,夏天可制冷n室内通水通电室内通水通电n等等等等第3页设计和需求有什么不一样设计和需求有什么不一样?n设计师方案设计师方案:n屋子楼上有四间睡房,楼下有一间客房,一屋子楼上有四间睡房,楼下有一间客房,一间厨房,一个玩具房和一个杂物室等等。间厨房,一个玩具房和一个杂物室等等。n还有其它方案吗?还有其它方案吗?第4页软件设计两个阶段软件设计两个阶段n设计者必须同时满足用户和系统开发人员要求设计者必须同时满足用户和系统开发人员要求n概要设计书概要设计书n详细设计书详细设计书n设计者迂回于各种活动中:设计者迂回于各种活动中:n了解需求了解需求n提出可能方案提出可能方案n测试方案可
3、能性测试方案可能性n向用户描述各种可能向用户描述各种可能n向编程人员提供设计文档向编程人员提供设计文档第5页软件设计内容软件设计内容n体系结构设计体系结构设计n定义软件部件间关系定义软件部件间关系n接口设计接口设计n软件内部、外部及与人之间通信软件内部、外部及与人之间通信n数据设计数据设计n信息模型信息模型 软件数据结构软件数据结构n过程设计过程设计n软件组件过程性描述软件组件过程性描述第6页软件设计任务软件设计任务n分析模型分析模型 设计模型设计模型 设计文档设计文档n回答回答How to do?n能够分为概要设计、详细设计能够分为概要设计、详细设计n软件设计包含软件设计包含n数据设计数据设
4、计n体系结构设计体系结构设计n接口设计接口设计n过程设计过程设计第7页分解和模块化分解和模块化n系统设计方法:系统设计方法:n功效分解:将功效作为组件功效分解:将功效作为组件n面向数据分解:基于外部数据结构面向数据分解:基于外部数据结构n面向事件分解:基于系统必须处理事件面向事件分解:基于系统必须处理事件n外部输入设计:基于系统用户输入外部输入设计:基于系统用户输入n面向对象设计:定义对象类及其相互联络面向对象设计:定义对象类及其相互联络第8页分解层次化分解层次化第9页模块和模块化模块和模块化n模块化:当系统每项功效恰好由一个输入输出模块化:当系统每项功效恰好由一个输入输出都明确定义组件完成时
5、候,我们称这个系统模都明确定义组件完成时候,我们称这个系统模块化。块化。n模块模块表示能够用计算机程序代码实现,相表示能够用计算机程序代码实现,相对独立单一数据处理功效,所以模块有时也叫对独立单一数据处理功效,所以模块有时也叫功效模块。功效模块。n深入明确模块是拥有明确定义输入、输出和特深入明确模块是拥有明确定义输入、输出和特征程序实体。征程序实体。第10页设计方法选择设计方法选择n应该允许不一样设计者使用他们喜欢技应该允许不一样设计者使用他们喜欢技巧,只要他们文档能让其它设计者明白巧,只要他们文档能让其它设计者明白就能够了。就能够了。n设计方法选择又是取决于设计者偏好,设计方法选择又是取决于
6、设计者偏好,而更多时候取决于系统要求结构或数据。而更多时候取决于系统要求结构或数据。第11页软件设计中包括问题软件设计中包括问题n抽象(抽象(abstract)与细化)与细化(refinement)n抽象:分层次考虑和处理问题抽象:分层次考虑和处理问题(数据和过程数据和过程)n细化:从高到低逐步分解过程细化:从高到低逐步分解过程n信息隐藏信息隐藏n对其它模块隐藏模块内部数据和过程对其它模块隐藏模块内部数据和过程第12页抽抽 象象n抽象是对详细对象(问题)进行概括,抽出抽象是对详细对象(问题)进行概括,抽出这一类对象公共性质并加以描述过程。这一类对象公共性质并加以描述过程。n先注意问题本质及描述
7、,其次是实现过程或细节。先注意问题本质及描述,其次是实现过程或细节。n数据抽象:描述某类对象属性或状态(对象相互数据抽象:描述某类对象属性或状态(对象相互区分物理量)。区分物理量)。n代码抽象:描述某类对象共有行为特征或含有功代码抽象:描述某类对象共有行为特征或含有功效。效。n抽象实现:经过类申明。抽象实现:经过类申明。第13页模块化设计好处模块化设计好处n信息隐藏信息隐藏n从不一样角度了解系统从不一样角度了解系统n将难以处理问题独立出来;抽象层次经将难以处理问题独立出来;抽象层次经过逐层分析来了解问题过逐层分析来了解问题n允许不一样模块采取不一样设计方法允许不一样模块采取不一样设计方法第14
8、页模块化设计模块化设计n把大型软件按照要求标准划分成一个个较把大型软件按照要求标准划分成一个个较小、相对独立但又相互关联模块小、相对独立但又相互关联模块n主要指导思想:主要指导思想:n分解分解n模块独立性模块独立性第15页分解(分解(Decomposition)n模块化是为了使一个复杂大型程序能被模块化是为了使一个复杂大型程序能被人智力所管理人智力所管理n设函数设函数c(x)定义问题定义问题x复杂程度,函数复杂程度,函数E(X)确定处理问题确定处理问题x需要工作量(时间)需要工作量(时间)。对于两个问题。对于两个问题P1 和和P2,假如,假如显然显然第16页模块化依据模块化依据n人类处理普通问
9、题时一个有趣规律:人类处理普通问题时一个有趣规律:C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)n结论:各个击破结论:各个击破把复杂问题分解成把复杂问题分解成轻易处理小问题,原来问题也就轻易处轻易处理小问题,原来问题也就轻易处理了理了第17页问题提出问题提出n假如无限分割软件,最终为了开发软假如无限分割软件,最终为了开发软件而需要工作量也就小得能够忽略了。件而需要工作量也就小得能够忽略了。?第18页模块数与开发工作量关系模块数与开发工作量关系模块数模块数接口成本接口成本最小成本区最小成本区M软软件件开开发发工工作作量量总成本总成本模块成本模块成本第19页模块划分基
10、本标准模块划分基本标准n概括了把软件划分为模块时要恪守准则,概括了把软件划分为模块时要恪守准则,也是判断模块结构是不是合理标准。也是判断模块结构是不是合理标准。n不过到当前为止,没有统一标准判断一不过到当前为止,没有统一标准判断一个系统化分成几个模块是最优。个系统化分成几个模块是最优。第20页模块划分四项基本标准模块划分四项基本标准1.模块独立性强模块独立性强n块内联络强块内联络强 n块间联络弱块间联络弱2.高内聚高内聚n模块内部各成份之间模块内部各成份之间3.低耦合低耦合n一个模块与其它模块之间一个模块与其它模块之间4.公共(共享)公共(共享)模块模块n多个模块公用多个模块公用第21页模块独
11、立性模块独立性n为何模块独立性很重要?n有效模块化软件轻易开发出来n独立模块比较轻易测试和维护n人独立性强怎样?n人没有独立性,什么都依赖他人怎样?第22页内聚内聚、耦合定义、耦合定义n内内聚聚是是模模块块功功效效强强度度(一一个个模模块块内内部部各各个元素彼此结合紧密程度)度量。个元素彼此结合紧密程度)度量。n耦合是对软件内部块间联络度量。耦合是对软件内部块间联络度量。一一个个模模块块内内部部各各个个元元素素之之间间联联络络越越紧紧密密,则则它它内内聚聚性性就就越越高高,相相对对地地,它它与与其其它它模模块块之之间间耦耦合合就就会会减减低低,而而模模块块独独立性就越强。立性就越强。第23页内
12、聚与耦合内聚与耦合n内内聚聚和和耦耦合合是是相相互互关关联联。在在程程序序结结构构中中各各模模块块内内聚聚程程度度越越高高,模模块块间间耦耦合合程程度度就就越越低低。但但这这也也不不是是绝绝正正确确。软软件件概概要要设设计计目目标标是是力力争争增增加加模模块块内内聚聚,尽尽可可能能降降低低模模块块间间耦耦合合,但但增增加加内内聚聚比比降降低低耦耦合合更更主主要要,应应该该把把更更多多注注意意力力集集中中到到提提升模块内聚程度上来。升模块内聚程度上来。第24页内聚内聚等级划分等级划分 弱弱 强强低内聚低内聚 中内聚中内聚 高内聚高内聚 第25页低低 内内 聚聚.偶然性内聚偶然性内聚n模块内各部分
13、没有联络,或者即使有联络,模块内各部分没有联络,或者即使有联络,这种联络也很涣散。这种联络也很涣散。.逻辑性内聚逻辑性内聚n这种模块把几个相关功效组合在一起,每次这种模块把几个相关功效组合在一起,每次调用时,由传送给模块判定参数来确定该模调用时,由传送给模块判定参数来确定该模块应执行哪一个功效。这种模块是单入口多块应执行哪一个功效。这种模块是单入口多功效模块。类似有错误处理模块。它接收犯功效模块。类似有错误处理模块。它接收犯错信号,对不一样类型错误打印出不一样犯错信号,对不一样类型错误打印出不一样犯错信息。错信息。第26页低低 内内 聚聚.时间性内聚时间性内聚时间内聚又称为经典内聚。这种模块大
14、多时间内聚又称为经典内聚。这种模块大多为多功效模块,但模块各个功效执行与时为多功效模块,但模块各个功效执行与时间相关,通常要求全部功效必须在同一时间相关,通常要求全部功效必须在同一时间段内执行。比如初始化模块和终止模块。间段内执行。比如初始化模块和终止模块。第27页中中 内内 聚聚.过程性内聚过程性内聚n假如一个模块内处理是相关,而且必须以特假如一个模块内处理是相关,而且必须以特定次序执行,则称这个模块为过程内聚模块。定次序执行,则称这个模块为过程内聚模块。.通讯性内聚通讯性内聚n假如一个模块内各功效部分都使用了相同输假如一个模块内各功效部分都使用了相同输入数据,或产生了相同输出数据,则称之为
15、入数据,或产生了相同输出数据,则称之为通信内聚模块。通信内聚模块。第28页高高 内内 聚聚.次序性内聚次序性内聚n假假如如一一个个模模块块内内处处理理元元素素和和同同一一个个功功效效亲亲密密相相关关,而而且且这这些些处处理理必必须须次次序序执执行行(通通常常一一个个处处理元素输出数据作为下一个处理元素输入数据)理元素输出数据作为下一个处理元素输入数据).功效性内聚功效性内聚n一个模块中各个部分都是某一详细功效必不可一个模块中各个部分都是某一详细功效必不可少组成部分,或者说该模块中全部部分都是为少组成部分,或者说该模块中全部部分都是为了完成一项详细功效而协同工作,紧密联络,了完成一项详细功效而协
16、同工作,紧密联络,不可分割。则称该模块为功效内聚模块。不可分割。则称该模块为功效内聚模块。第29页七种内聚优劣评分七种内聚优劣评分n功效内聚 10分n次序内聚 9分n通信内聚 7分n过程内聚 5分n时间内聚 3分n逻辑内聚 1分n偶然内聚 0分高内聚高内聚低内聚低内聚第30页逻辑逻辑内聚内聚模块模块 判断判断调用模块调用模块读读一一个个记记录录写写一一个个记记录录被被调调用用模模块块第31页常见内聚类型常见内聚类型第32页常见内聚类型常见内聚类型第33页耦耦 合合n对一个软件结构内不一样模块之间互连对一个软件结构内不一样模块之间互连程度度量。耦合强弱取决于模块间接口程度度量。耦合强弱取决于模块
17、间接口复杂程度、复杂程度、调用模块方式以及哪些信息调用模块方式以及哪些信息经过接口。经过接口。n在软件设计中应该追求尽可能涣散耦合在软件设计中应该追求尽可能涣散耦合系统系统第34页耦合七种类型(低耦合七种类型(低高)高)1.非非直直接接耦耦合合:假假如如两两个个模模块块之之间间没没有有直直接接关关系系,它它们们之之间间联联络络完完全全是是经经过过主主要要模模块块控控制制和和调调用用来来实现,这就是非直接耦合。实现,这就是非直接耦合。2.数据耦合:数据耦合:假如一个模块访问另一个模块时,彼假如一个模块访问另一个模块时,彼此之间是经过数据参数(不是控制参数、公共数此之间是经过数据参数(不是控制参数
18、、公共数据结构或外部变量)来交换输入、输出信息,则据结构或外部变量)来交换输入、输出信息,则称这种耦合为数据耦合。称这种耦合为数据耦合。3.标识标识(特征)(特征)耦合耦合:假如一组模块经过参数表传假如一组模块经过参数表传递统计信息,就是标识耦合。实际上,这组模块递统计信息,就是标识耦合。实际上,这组模块共享了这个统计,它是某一类数据结构子结构,共享了这个统计,它是某一类数据结构子结构,而不是简单变量。这要求这些模块都必须清楚该而不是简单变量。这要求这些模块都必须清楚该纪录结构,并按结构要求对此统计进行操作。纪录结构,并按结构要求对此统计进行操作。第35页耦合七种类型(续)耦合七种类型(续)4
19、.控制耦合控制耦合:假如一个模块经过传递开关、标志、假如一个模块经过传递开关、标志、名字等控制信息,显著控制选择另一模块功效,就名字等控制信息,显著控制选择另一模块功效,就是控制耦合。是控制耦合。5.外部耦合外部耦合:一组模块都访问同一全局简单变量而一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是经过参数表传递不是同一全局数据结构,而且不是经过参数表传递该全局变量信息,则称之为外部耦合。该全局变量信息,则称之为外部耦合。6.公共耦合公共耦合:若一组模块都访问同一个公共数据环若一组模块都访问同一个公共数据环境,则它们之间耦合称为公共耦合。公共数据环境境,则它们之间耦合称为公共耦合。
20、公共数据环境能够是全局数据结构、共享通信区、内存公共覆盖能够是全局数据结构、共享通信区、内存公共覆盖区等。区等。7.内容耦合:假如一个模块能够直接调用另一模块中内容耦合:假如一个模块能够直接调用另一模块中数据,或者允许一个模块直接转移到另一个模块中数据,或者允许一个模块直接转移到另一个模块中去,则称它们间耦合为内容耦合。去,则称它们间耦合为内容耦合。第36页弱弱 耦耦 合合数据耦合数据耦合非直接非直接耦合耦合模块模块2模块模块1模块模块4模块模块3特征耦合(参数表特征耦合(参数表传递数据结构)传递数据结构)第37页公公 共共 耦耦 合合第38页公公 共共 耦耦 合合公共耦合会引发以下问题:公共
21、耦合会引发以下问题:1 1.全全部部公公共共耦耦合合模模块块都都于于某某一一个个公公共共数数据据环环境境内内部部各各项项物物理理安安排排相相关关,若若修修改改某某个个数数据据大大小,将会影响到全部模块。小,将会影响到全部模块。2 2.无无法法控控制制各各个个模模块块对对公公共共数数据据存存取取,严严重重影影响软件模块可靠性和适应性。响软件模块可靠性和适应性。3 3.公共数据名使用,显著降低了程序可读性。公共数据名使用,显著降低了程序可读性。第39页内内 容容 耦耦 合合n假如出现以下情况之一,两个模块间就假如出现以下情况之一,两个模块间就发生了内容耦合:发生了内容耦合:n一个模块访问另一个模块
22、内部数据一个模块访问另一个模块内部数据n一个模块不经过正常入口而转到另一个模一个模块不经过正常入口而转到另一个模块内部块内部n两个模块有一部分程序代码重合(只可能两个模块有一部分程序代码重合(只可能出现在汇编程序中)出现在汇编程序中)n一个模块有多个入口(这意味着一个模块一个模块有多个入口(这意味着一个模块有几个功效)有几个功效)第40页(a)(a)进入另一模块内部进入另一模块内部(b b)模块代码重合)模块代码重合(c c)多入口模块)多入口模块ABABEnty1enty2内内 容容 耦耦 合合第41页n内容耦合内容耦合 0分分n公共耦合公共耦合 1分分n外部耦合外部耦合 3分分n控制耦合控
23、制耦合 5分分n特征耦合特征耦合 7分分n数据耦合数据耦合 9分分n非直接耦合非直接耦合 10分分高耦合高耦合低耦合低耦合七种耦合优劣评分七种耦合优劣评分第42页关于耦合设计标准关于耦合设计标准n尽可能使用数据(特征)耦合尽可能使用数据(特征)耦合n少用控制耦合少用控制耦合n限制公共环境耦合范围限制公共环境耦合范围n完全不用内容耦合完全不用内容耦合第43页建立公共(共享)模块建立公共(共享)模块 建建立立公公共共模模块块目目标标是是降降低低冗冗余余,降降低低无无须须要要重重复复工工作作,划划出出某某项项功功效效成成为为一一个个能能被被几几个个模模块块共共同同利利用用模模块块。也也就就模模块块结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 电子 教案 公共课 一等奖 全国 获奖 课件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。