欢迎来到天天文库
浏览记录
ID:57262069
大小:173.50 KB
页数:10页
时间:2020-08-07
《软件工程电子教案--第4章.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、山西大学商务学院教案2009—2010学年第二学期课程名称软件工程 授课对象07信息与计算科学B1班授课教师刘忠宝教材版本软件工程导论 张海藩著第五章总体设计教学目标与要求1、掌握概要设计的基本概念与原理,理解软件结构设计的优化准则2.熟练使用概要设计阶段常用的几种图形工具3.理解面向数据的设计方法教学重点与难点重点:1、概要设计的基本概念与原理2、关注概要设计说明书的编写难点:面向数据的设计方法教学过程设计新课导入、案例教学、课堂讨论、课堂练习、作业讲评。教学方法以多媒体讲授为主,任务驱动+提问、讨论、指导、练习等方法。5.1软件设计基本概念一、
2、软件设计过程:1、软件设计方法的内容软件开发阶段由设计、编码和测试三个基本活动组成,其中“设计”活动是获取高质量、低耗费、易维护软件的一个最重要环节。需求分析阶段获得的需求规格说明书包括对将要实现的系统在信息、功能和行为等各个方面的描述,这是软件设计的基础。对此不论采用何种软件设计方法都将产生:系统的总体结构设计(architecturaldesign);系统的数据设计(datadesign);系统的过程设计(proceduraldesign)。软件设计也可看作将需求规格说明逐步转换为软件源代码的过程。2、从工程管理的角度理解软件设计软件设计可分概要(p
3、reliminary)设计和详细(detail)设计两大步骤。概要设计是根据需求确定软件和数据的总体框架,详细设计是将其进一步精化成软件的算法表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组成,除总体结构设计、数据结构设计和过程设计外,许多现代应用软件,还包括一个独立的界面设计活动。二、抽象与逐步求精1、抽象抽象是控制复杂性的基本策略。“抽象”要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。软件设计过程应当是在不同抽象级别上考虑和处理问题的过程。最初,应在最高抽象级别上,用面向问题域的语言叙述“问题”,概括“问题解”的形式,
4、而后不断地具体化,不断地用面向过程的语言描述问题,最后,在最低的抽象级别上给出可直接实现的“问题解”,即程序。通过总体设计的目标引出软件设计过程英语序列化要求软件工程过程的每一步都是对较高一级抽象的解作一次进一步具体化的描述。在上述由高级抽象到低级抽象的转换过程中,伴随着一连串的过程抽象和数据抽象。2.逐步求精关于“逐步求精”,N.Wirth曾经做过如下说明:“我们对付复杂问题的重要办法是抽象,因此,对一个复杂的问题不应该立即用计算机指令、数字和逻辑符号来表示,而应该用较自然的抽象语言来表示,从而得出抽象程序。抽象程序对抽象的数据进行某些特定的运算并用某
5、些合适的记号(可能是自然语言)来表示。对抽象程序做进一步分解,进入下一个抽象层次,重复这一精化过程直到程序能被计算机接受为止。这时的程序可能是用某种高级语言或机器指令书写的。”(1)过程求精因为求精的每一步都是用更为详细的描述替代上一层次的抽象描述,所以在整个设计过程中产生的,具有不同详细程度的各种描述,组成了系统的层次结构。层次结构的上一层是下一层的抽象,下一层是上一层的求精。(2)与数据求精在过程求精的同时自然伴随着数据的求精,无论是过程还是数据,每一步细化都蕴涵着某些设计决策,因此设计人员必须掌握一些基本的准则,比较各种可能的候选方案。补充例子:学
6、习辅导P59习题第1题:用逐步求精方法解决下述更新顺序主文件的问题三.模块化与信息隐藏1.模块化把软件划分为可独立命名和编制的部件,每个部件称为一个模块,当把所有模块组装到一起时,便可获得满足问题需要的一个解。假设:函数C(X)——问题X的复杂性;函数E(X)——求解问题X需要花费的工作量(时间);对于问题P1和P2,如果:C(P1)>C(P2)则有:E(P1)>E(P2)结论:解决一个复杂问题总比解决一个简单问题耗费更多的工作量。同时有:C(P1+P2)>C(P1)+C(P2)结论:由P1、P2组合而成的问题的复杂性往往比考虑单个问题复杂性的和更大。于
7、是有:E(P1+P2)>E(P1)+E(P2)"分而治之"通过实际事例引入"分而治之"的思想:把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。2.信息隐藏信息隐蔽原理告诉我们,模块应该设计得使其所含信息(过程和数据)对于那些不需要这些信息的模块不可访问;每个模块只完成一个相对独立的特定功能;模块之间仅仅交换那些为完成系统功能必须交换的信息,即模块应该独立。3.内聚度(cohesion)·内聚度是前述信息隐蔽和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。·内聚度按其高低程度可分为七级,内聚度越高越好。(1)偶然性内聚
8、(coincidentalcohesion)。(2)逻辑性内聚(3)时间性内聚(
此文档下载收益归作者所有