预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共72页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第四章总体设计第4章总体设计总体设计的任务总体设计的必要性:可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。总体设计所书写的文档 概要设计说明书(GB8567—88)4.2设计原理4.2.1模块化问题:模块该如何划分?4.2.2抽象4.2.3逐步求精MagicalNumberSeven,PlusorMinusTwo,SomeLimitson OurCapacityforProcessingInformation ThePsychologicalReview,1956抽象与求精是一对互补的概念。 抽象使得设计者能够说明过程和数据,同时却忽略低层细节。事实上,可以把抽象看作是一种通过忽略多余的细节同时强调有关的细节,而实现逐步求精的方法。 求精则帮助设计者在设计过程中逐步揭示出低层细节。 这两个概念都有助于设计者在设计演化过程中创造出完整的设计模型。4.2.4信息隐藏和局部化4.2.5模块独立1.耦合(1)非直接耦合(2)数据耦合(3)标记耦合(特征耦合)(4)控制耦合(5)外部耦合(6)公共环境耦合(公共数据区耦合)(7)内容耦合以上给出了7种耦合类型,这只是从耦合的机制上所做的分类,按耦合的强弱程度的排列只是相对的关系。但它给设计人员在设计程序结构时提供了一决策准则。实际上,开始时两个模块之间的耦合不只是一种类型,而是多种类型的混合。这就要求设计人员按照实际情况进行分析、比较和分析,逐步加以改进,以提高模块的独立性。2.内聚(1)功能内聚(FunctionalCohesion)(2)信息内聚(InformationalCohesion)(3)通信内聚(CommunicationCohesion)(4)过程内聚(ProceduralCohesion)(5)时间内聚(ClassicalCohesion)(6)逻辑内聚(LogicalCohesion)(7)巧合内聚(CoincidentalCohesion)内聚与耦合密切相关,同其它模块强耦合的模块意味者弱内聚,强内聚模块意味着与其它模块间松散耦合。 设计目标: 力争强内聚、弱耦合4.3改进设计的启发规则4.4软件设计过程4.4软件设计过程4.4软件设计过程4.4软件设计过程4.4软件设计过程4.5描绘软件结构的图形工具正文加工系统的层次图2、结构图(SC--StructureChart)①模块:模块用矩形框表示,并用模块的名字标记它。②模块的调用关系和接口:模块之间用单向箭头联结,箭头从调用模块指向被调用模块③模块间的信息传递:当一个模块调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,以使被调用模块能够运行。而被调用模块在执行过程中又把它产生的数据或控制信息回送给调用模块。④在模块A的箭头尾部标以一个菱形符号,表示模块A有条件地调用另一个模块B。当一个在调用箭头尾部标以一个弧形符号,表示模块A反复调用模块C和模块D。程序的系统结构图4.6面向数据流的设计方法---结构化设计(SD-StructuredDesign)结构化设计方法(SD)在系统结构图中的模块变换型系统结构图事务型系统结构图变换分析(1)在DFD图上标出逻辑输入、逻辑输出和变换中心的分界(2)完成第一级分解第一级分解后的SC图(另一种画法)MAMA①在选择模块设计的次序时,必须对一个模块的全部直接下属模块都设计完成之后,才能转向另一个模块的下层模块的设计。 ②在设计下层模块时,应考虑模块的耦合和内聚问题,以提高初始结构图的质量。③使用“黑箱”技术:在设计当前模块时,先把这个模块的所有下层模块定义成“黑箱”,在设计中利用它们时,暂时不考虑其内部结构和实现。在这一步定义好的“黑箱”,在下一步就可以对它们进行设计和加工。这样,又会导致更多的“黑箱”。最后,全部“黑箱”的内容和结构应完全被确定。事务分析I变换分析是软件系统结构设计的主要方法。 一般,一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。设计的后处理数据设计及文件设计设计实例: 教材P106–P112