欢迎来到天天文库
浏览记录
ID:42719159
大小:1.51 MB
页数:63页
时间:2019-09-21
《软件工程-第6讲R》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件工程第6讲软件设计贾西平Email:jiaxp@126.com2of96本课程的学习内容概述基本概念过程模型需求分析需求分析过程结构化分析面向对象分析软件设计设计概述结构化设计面向对象设计软件实现测试与维护软件测试软件维护项目管理项目估算计划管理*2软件设计三类活动总体设计:也称概要设计,软件结构设计,或高层设计分析需求规格说明模块划分,形成具有预定功能的模块组成结构表示出模块间的控制关系给出模块之间的接口详细设计:也称(模块)过程设计,或低层设计。设计模块细节确定模块所需的算法和数据结构等测试和复审软件设计概述解决的问题:“怎么做”的问题目标:详尽描述将要实现的软件系统的体系结构、系统的
2、数据、系统模块间的接口,以及所采用的算法。输入:需求分析各种模型元素输出:软件设计模型和表示5of96提纲相关概念体系结构设计的任务工具和原则系统结构模型6of96提纲相关概念体系结构设计的任务、工具和原则系统结构模型7of96相关概念模块模块化模块独立性抽象信息隐蔽8of96模块概念:独立命名的,拥有明确定义的输入、输出和特性的程序实体。具体表现:函数、子程序、过程等。四个特征:输入/输出(接口)、功能、内部数据和程序代码。输入/输出:实现模块与其他模块间的数据传送.功能:模块所完成的工作。内部数据:仅在模块内部使用的局部量。程序代码:描述实现模块功能的具体方法和步骤。外部特征:输入/输出、
3、功能内部特征:内部数据、程序代码9of96模块化概念:将整个软件系统划分为若干个模块,每个模块用于实现一个特定的功能。理论依据:分解复杂问题,各个击破模块化的好处降低软件开发的难度、减少工作量使程序结构清晰,增加易读性和易修改性有利于提高代码的可重用性及团队合作开发大型软件的可行性。10of96图5.1模块数与软件开发成本开发每个模块的成本实现模块间通信的成本最佳模块数M主要依靠经验确定11of96抽象概念将现实世界中具有共性的一类事物的相似的、本质的方面集中概括起来,暂时忽略它们之间的细节差异。12of96信息隐蔽概念:模块将自身的内部信息向其他模块隐藏起来,以避免其他模块不恰当的访问和修改
4、.目的:提高模块的独立性,减少将一个模块中的错误扩散到其他模块的机会。实质:模块之间的信息传递只允许通过合法的调用接口来实现模块独立性概念:开发具有独立功能而和其他模块没有过多关联的模块。是模块化、抽象、信息隐蔽等概念的直接结果,是判断模块化结构是否合理的标准.两大优点:独立的模块由于分解了功能,简化了接口,使得软件比较容易开发;独立的模块比较容易测试和维护。13of9614of96模块独立性的度量两个定性度量标准:模块自身的内聚,也称为块内联系或模块强度模块之间的耦合,也称为块间联系。15of96耦合性用于度量软件结构内部不同模块间联系的紧密程度。模块间联系越紧密,耦合性越高,模块的独立性越
5、低。决定因素:模块接口的复杂程度、调用模块的方式以及通过模块接口的数据。耦合性分类非直接耦合:同级模块相互之间没有信息传递。数据耦合:调用下属模块时,交换的都是简单变量。特征耦合:调用下属模块时,交换的是数据结构。控制耦合:模块间传递的信息是作为控制信息的开关值或标志量。外部耦合:允许一组模块访问同一个全局变量。公共耦合:允许一组模块访问同一个全局性的数据结构。如:共享的通信区、公共的内存区域、任何存储介质文件、物理设备等。内容耦合:一个模块可直接调用另一个模块中的数据,或者直接转移到另一个模块中去,或者一个模块有多个入口。16of96耦合性分类非直接耦合弱数据耦合特征耦合控制耦合外部耦合公共
6、耦合内容耦合强弱耦合中耦合强耦合较强耦合18of96内聚性用于度量模块内部各个组成元素之间相互结合的紧密程度。模块中组成元素结合的越紧密,模块的内聚性越高,独立性越高。模块的高内聚性往往意味着模块间的低耦合性。软件设计时应将更多的注意力集中在提高模块的内聚性上。内聚性分类偶然内聚:模块内的各个任务在功能上没有实质性联系,因“偶然”因素组合在一起。逻辑内聚:由若干个逻辑功能相似的任务组成,通过模块外引入的一个开关量选择其一执行。时间内聚:模块内的各个任务由相同的执行时间联系在一起。例如,初始化模块。过程内聚:模块内的各个任务必须按照某一特定次序执行。通信内聚:模块内部的各个任务靠公用数据联系在一
7、起。顺序内聚:模块内的各个任务是顺序执行的。功能内聚:模块各个成分结合在一起,完成一个特定的功能。19of96内聚性分类偶然内聚弱逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚强低内聚中内聚高内聚逐步求精逐步求精,或称逐步细化,是一种自顶向下的设计策略。采用抽象到具体的过程把一个复杂问题趋于简单化控制和管理的有效策略。抽象和精化是互补的概念。重构一种重新组织技术,可简化构件或模块的设计或编码而无
此文档下载收益归作者所有