全国计算机考试四级的软件设计复习纲要
来源:学问馆 本文已影响2.3W人
来源:学问馆 本文已影响2.3W人
在明确了用户的需求以后,下一步的任务就是对未来的软件系统进行设计。软件设计通常可分为概要设计和详细设计。概要设计的任务是确定软件系统的结构,进行模块划分,确定每个模块的功能、接口以及模块间的调用关系。详细设计的任务是为每个模块设计实现的细节。此外,在概要设计阶段还应对全局数据结构进行设计,详细设计阶段还应对局部数据结构进行设计。有的设计方法不区分概要设计和详细设计,统称为软件设计。人们在开发过程中,总结出许多软件设计的概念和原则,这些概念和原则对提高软件的设计质量有很大的帮助。
1.抽象
抽象是指忽视一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象是认识复杂问题的过程中人类使用的最有力的思维工具,它抽取出事物的本质特性而暂时不考虑它的细节。软件工程中从软件定义到软件开发要经历多个阶段,在这个过程中每前进一步都可看作是对软件解法的抽象层次的一次细化。抽象的最低层次就是实现该软件的源程序代码。在进行模块化设计时可以有多个抽象层次,最高抽象层次的模块用概括的方式叙述问题的解法,较低抽象层次的模块是对较高的抽象层次模块对问题解决描述的细化。过程抽象和数据抽象是常用的两种主要抽象手段。过程抽象是指任何一个完成明确功能的操作都可被使用者当作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。过程抽象常常也称为功能/子功能抽象。例如函数、子程序。数据抽象定义了数据类型和施加于该类型的操作,并限定了对象值的.范围,只能**使用这些操作修改和观察这些数据。例如抽象数据类型。
2.模块化
模块化是指将一个待开发的软件分解成若干个小的简单的部分———模块,每个模块可独立地开发、测试,最后组装成完整的程序。这是一种复杂问题的“分而治之”的原则,模块化的目的是使程序的结构清晰,容易阅读,容易理解,容易测试,容易修改。模块是指执行某一特定任务(也可以是实现某一特定的抽象数据类型)的数据结构和程序代码。一个模块有它的外部特征和内部特征。外部特征包括模块的接口(即它的输入/输出参数,引用的全局变量和它需调用的其他模块)和模块的功能,内部特征包括模块的局部数据和实现该模块的程序代码。调用一个模块只需知道它的外部特征,而不必了解其内部特征。
3.信息隐蔽
信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。在设计时首先列出一些可能发生变化的因素,在划分模块时将一个可能发生变化的因素隐蔽在某个模块的内部,使其他模块与这个因素无关。在这个因素发生变化时,我们只需修改含有这个因素的模块,而与其他模块无关。隐蔽的对象可以有:什么的决策,可能修改的决策,数据结构的内部连接以及对它所做的操作细节,内部特征码,与计算机硬件有关的细节等。信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。
4.模块独立
模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单。衡量模块独立程序的度量标准有两个:耦合和内聚。耦合是指模块之间联系的紧密程度。耦合度越高则模块的独立性越差。内聚是指模块内部各元素之间联系的紧密程度。例如一个完成多个功能的模块的内聚度就比完成单一功能的模块的内聚度低。内聚度越低模块的独立性越差。因此,模块独立就是希望每个模块都是高内聚低耦合的。
(1)耦合
两个模块之间的耦合方式通常有如下7种,下面按它们的耦合度从低到高的次序依次作介绍。
① 非直接耦合:非直接耦合是指两个模块没有直接的联系,它们中的任一个都能不依赖于对方而独立地工作。
② 数据耦合:数据耦合是指两个模块借助于参数表传递简单数据。
③ 标记耦合(stamp coupling):当一个数据结构的一部分(如记录的一部分)借助于模块接口被传递时就发生标记耦合。
④ 控制耦合:控制耦合指两个模块间传递的信息中包含用于控制模块内部逻辑的控制信息。
⑤ 外部耦合:当模块与软件以外的环境有关时就发生外部耦合。例如,输入/输出把一个模块与特定的设备、格式、通信**耦合在一起。
⑥ 公共耦合:多个模块引用一全局数据区的模式称为公共耦合。例如FORTRAN语言中的COMMON语句,C语言中的external数据类型,一个磁盘文件等都是全局数据区。
⑦内容耦合:内容耦合指两上模块之间出现了下列情况之一:
一个模块访问另一个模块的内部数据;
一个模块不**正常入口转到另一模块的内部;
两个模块有一部分程序代码重叠;
一个模块有多个入口。
计算机四级考试软件测试工程师备考习题
嵌入式软件对计算机软件设计的应用论文
全国计算机等级考试四级笔试试题
关于计算机二级考试大纲复习
计算机等级考试四级软件测试工程师选择练习题
计算机软件对平面设计的重要性以及优势
计算机四级嵌入式系统开发工程师考试的复习要点
软件测试,动漫设计和数控技术(计算机辅助设计,计算机辅助设制造)那个就业前景更好?
计算机软件水平考试练习题及答案解析大纲
计算机四级嵌入式系统开发工程师考试复习要点
计算机软件水平考试软件设计笔试练习题+答案
计算机等级考试四级数据库工程师复习考点
计算机等级考试四级数据库工程师复习题
计算机应用、计算机软件与理论硕士研究生复试安排
浅析嵌入式实时软件在计算机软件设计中的应用论文
计算机二级考试复习指导及应试技巧
计算机软件实习报告四篇
计算机软件设计可维护性的探讨论文
2017全国计算机四级考试复习纲要
计算机软件专业实习总结
全国计算机应用技术证书考试更名为全国计算机应用水平考试
计算机二级考试C++复习资料
室内设计专业要学的软件是哪些
小学五年级上册信息技术《计算机的软件》教学设计
全国计算机等级二级考试java练习
计算机软件专业的个人简历
全国计算机一级考试试题
计算机四级嵌入式系统开发工程师考试复习知识点
计算机软件教学设计
全国计算机二级考试VB程序设计复习试题
全国计算机等级考试攻略
浅析计算机软件的设计与实现
计算机一级MSoffice辅导:计算机软件系统
计算机等级一级考试计算机基础练习题
全国计算机二级考试攻略
简要分析计算机软件3D Max 在室内设计中的作用论文
计算机软件中汽轮机课程设计的应用论文
备件音型码在计算机软件设计的应用论文
计算机四级嵌入式系统开发工程师考试复习知识点归纳
关于计算机软件复用的探讨
计算机软件水平考试的简介