《软件设计基础》PPT课件.ppt

上传人:小飞机 文档编号:4861287 上传时间:2023-05-20 格式:PPT 页数:30 大小:234.49KB
返回 下载 相关 举报
《软件设计基础》PPT课件.ppt_第1页
第1页 / 共30页
《软件设计基础》PPT课件.ppt_第2页
第2页 / 共30页
《软件设计基础》PPT课件.ppt_第3页
第3页 / 共30页
《软件设计基础》PPT课件.ppt_第4页
第4页 / 共30页
《软件设计基础》PPT课件.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《《软件设计基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件设计基础》PPT课件.ppt(30页珍藏版)》请在三一办公上搜索。

1、1,第四章 软件设计概述,软件设计的任务软件设计的基本概念模块化设计设计需要处理的问题设计文档及其复审,2,4.1 软件设计的任务,把分析阶段产生的软件需求说明转换为用适当手段表示的软件设计文档。回答How to do?包括4个方面的设计:,3,4.2 软件设计的基本概念,模块(module)与构件(component)模块:明确定义输入、输出和特性的程序实体构件:可重复使用的软件组件抽象(abstract)与细化(refinement)抽象:分层次考虑和处理问题(数据和过程)细化:从高到低的逐步分解过程信息隐藏对其它模块隐藏模块内部的数据和过程软件复用Design with reuse,de

2、sign for reuse,4,4.3 模块化设计(modular design),分解和模块独立性,是实现模块化设计的重要指导思想。分解(decomposition)C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)C为问题的复杂度,E为解题需要的工作量,5,模块独立性(module independence)概括了把软件划分为模块时要遵守的准则衡量模块独立性的两个准则内聚(cohesion)指模块内部各成分之间的联系,也称块内联系或模块强度。耦合(coupling)指一个模块与其它模块之间的联系,也称为块间联系。模块的独立性高 块内联系强 块间联系弱,6,.偶然

3、性内聚(coincidental cohesion).逻辑性内聚(logical cohesion).时间性内聚(temporal cohesion).过程性内聚(procedural cohesion).通讯性内聚(communicational cohesion).顺序性内聚(sequential cohesion).功能性内聚(functional cohesion),内聚(cohesion),7,偶然性模块,块内各组成成分在功能上互不相关,模块内部成分的组合纯属偶然。,8,逻辑性模块,模块由若干个逻辑功能相似的成分组成。,9,时间性模块,模块内各成分是由相同的执行时间将它们连接到一起模

4、块内各成分须在同一时间段内执行,每一程序段的先后执行顺序任意,但必须在一个时间段内完成。,10,过程化模块,模块内包含的一组任务必须按照某一特定的次序执行,每一程序段的先后执行顺序有严格要求,必须依次完成。,11,通信性模块,模块内部的各个成分都使用同一种输入数据,或产生同一个输出数据。,12,顺序性模块,模块中的各组成成分顺序执行上一个处理框的输出是下一个处理框的输入,13,功能性模块,所有成分结合在一起,用于完成一个单一的功能“一个模块一个功能”模块化设计的准则,建立方程组系数矩阵,高斯消去法,回代,14,耦合(coupling),1.非直接耦合(no direct coupling)2.

5、数据耦合(data coupling)3.特征耦合(stamp coupling)4.控制耦合(control coupling)5.外部耦合(external coupling)6.公共耦合(common coupling)7.内容耦合(content coupling),15,非直接耦合(No direct Coupling),如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。这种耦合的模块独立性最强。,非直接耦合,16,如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,

6、则称这种耦合为数据耦合。,数据耦合(Data Coupling),A,B,简单变量,数据参数,17,特征耦合(Stamp Coupling),如果一组模块通过参数表传递记录信息,就是特征耦合。这个记录是某一数据结构的子结构,而不是简单变量。,18,控制耦合(Control Coupling),如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。,控制信息,19,外部耦合(External Coupling),一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。,20,公共耦合(Common Co

7、upling),若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。若只是两模块间有公共数据环境,则公共耦合有两种情况,松散公共耦合和紧密公共耦合。,公共耦合的复杂程度随耦合模块的个数增加而显著增加。,21,公共耦合,MIS系统中,大量存在公共耦合的模块。,22,内容耦合(Content Coupling),如果发生下列情形,两个模块之间就发生了内容耦合(1)一个模块直接访问另一个模块的内部数据;(2)一个模块不通过正常入口转到另一模块内部;(3)两个模块有一部分程序代码重迭(只可能出现在汇编语言中);(4)一

8、个模块有多个入口。,23,耦合的强弱取决于模块间接口的复杂性、进入或调用模块的位置以及通过界面传送数据的多少等。在设计软件时应追求尽可能松散耦合的系统。因为将对这类系统中任一模块的设计、测试和维护相对独立。由于模块间联系较少,错误在模块间传播的可能性也随之变小。模块间的耦合程度直接影响系统的可理解性、可测试性、可靠性和可维护性。,24,自定向下和自底向上设计,自顶向下和由底向上是模块化设计的两种设计方法。自顶向下(Bottom-Up Design)首先设计人员要对系统有一个全面的了解,然后从顶层开始,连续地逐层向下分解,直至系统的所有模块都小到便于掌握为止。由底向上(Top-Down Desi

9、gn)由局部开始,首先选择关键部分先设计,然后逐渐扩展到整个系统。,25,由顶向下设计与由底向上设计的比较,26,4.4 设计需要处理的问题,协同设计谁最合适设计系统的某一方面?如何使组内成员相互了解别人的设计?如何协调设计组件使整个系统统一?用户界面设计让用户驾驭软件,不是软件驾驭用户 减少用户的记忆 保持界面的一致性 并发系统设计怎样确保同时执行的组件间对共享数据的一致性,27,例:并发处理(顺序执行),1、组件1查询栈X是否为空。2、组件1被告知栈X不为空。3、组件2查询栈X是否为空。4、组件2被告知栈X不为空。5、组件1出栈,删除最后一个元素。6、组件2想出栈,但X已为空,系统进入非法

10、状态。,28,例:并发处理互斥方法,1、组件1询问栈X是否为空。2、组件1被告知栈X不为空。3、组件2询问栈X是否为空。4、组件2被告知栈X不为空。5、组件1出栈,删去最后一个元素,并锁住栈X。6、组件2想出栈,但被告知X已上锁。7、另一个组件加了一个元素到栈X中。8、组件2被告知X已开锁(由于外部进程或者因为组件2 再次尝试)9、组件2出栈。,29,4.5 设计文档及其复审,软件设计说明书1)范围 2)数据设计 3)体系结构设计4)接口设计 5)模块的过程设计 6)其他 包括测试的考虑,确保设计满足所有需求,设计约束和一些特殊注解等内容。,30,设计复审(design review)及早发现设计中的缺陷差错的传播复审的内容概要设计复审 系统的总体结构,模块划分,内外接口 详细设计复审 各个模块的具体设计 复审的方式正式复审(Formal review)设计复审会(Design review meeting)非正式复审(Informal review)走查(Walk-through),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号