aa_20xx年___自考软件工程讲义内容摘要:
一个模块时,对其它模块的影响程度就越小,从而使模块的修改工作局限于一个最小范围之内。 ( 1) 内容耦合 ( 2) 公共耦合 ( 3) 数据耦合 ( 4) 控制耦合 ( 5) 标记耦合 原则 是:尽量用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。 11. 启发式规则 高内聚、低耦合。 ( 1) 改进软件结构,提高软件独立性。 模块分解 ( 2) 模块规模适中 ( 3) 力求深度、宽度、扇出、扇入适中。 深度:表示其控制的层数。 宽度:同一层次上模块总数的最大值。 扇出:一个模块直接控制的下级模块的数目。 扇入:有多少个上级模块直接调用它。 原则 :顶层模块扇出比较大,中间层模块扇出较小,底层模块具有较大的扇入。 ( 4) 尽量使模块的作用域在其控制域内。 模块的控制域:这个模块本身以及所有直接 或间接从属它的模块的集合。 模块的作用域:受该模块内一个判断所影响的所有模块的集合。 ( 5) 尽力降低模块接口的复杂度 ( 6) 力求模块功能可以预测 12. 详细设计 具体描述模块结构图中的每一模块,即给出实现模块功能的实施机制,包括一组例程和数据结构。 13. 结构化 程序设计方法 一种基于结构的编程方法,即采用顺序结构、选择结构和重复结构进行编程,其中每一结构只允许一个入口和一个出口。 17 三种基本的控制结构 : (a) 顺序结构,先执行 A再执行 B (b) IFTHENELSE 型选择 (分支 ) (c)DOWHILE 型循环结 构 14. 详细设计工具 ( 1) 程序流程图 程序流程图:程序流程图又称为程序框图,它是历史最悠久使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。 ( 2) 盒图( NS 图) 出于要有一种不允许违背结构程序设计精神的图形工具的考虑, Nassi和 Shneiderman 提出了盒图,又称为 NS 图。 18 (a) 顺序; (b) IFTHENELSE 型分支; (c) CASE 型多分支; (d) 循环; (e) 调用子程序 A ( 3) PAD 图 PAD 是问题分析图 (Problem Analysis Diagram)的英文缩写,自 1973 年由日本日立公司发明以后,已得到一定程度的推广。 它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。 下图给出 PAD 图的基本符号。 ( 4) 类程序设计语言 PDL PDL 也称为伪码,它是用正文形式表示数据和处理过程的设计工具。 PDL 具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面, PDL 表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。 因此,一般说来 PDL 是一种 ―混杂 ‖语言,它使用一种语言 ( 通常是某种自然语言 ) 的词汇,同时却使用另一种语言 ( 某种结构 化的程序设计语言 ) 的语法。 19 可以作为注释工具直接插在源程序中间。 15. 设 计规约 完整准确地描述满足需求规约所要求的所有功能模块,以及伴随功能模块而出现的非功能机制。 设计规约包括概要设计规约和详细设计规约。 ( 1) 概要设计规约 指明高层软件体系结构。 ? 系统环境 ? 软件模块的结构 ? 模块描述 ? 文件结构和全局数据文件的逻辑结构 ? 测试需求 ( 2) 详细设计规约 ? 各处理过程的算法 ? 算法所涉及的全部数据结构的描述 【 例题 】 根据下列变换型的数据流图,设计出初始软件结构图。 题 40 图 【答案】 F9 F9 f5 f5 主控模块 输入模块 变换模块 输出模块 G 输入 A 输入B 变换C 变换D 变换 E 变换F 20 【 解析 】 这是一个典型的变换型数据流程图,将其转换为模块控制图时,第一层可以分解为三个模块:输入模块、变换模块、输出模块。 每一模块还可以继续分解。 第 四 章 面向对象方法 UML 复习建议: 以不变应万变。 统一建模语言( Unified Modeling Language, UML) UML是目前流行的建模语言,特别是在网站开发中广泛应用。 UML 涉及很多的图,每一种图都有不同的图形符号、作用,在什么情况下用何种图来描述是本章的重点内容。 考核 题目类型包括单项选择题、填空题、简答题,分值在 10%~15%之间。 需要考生掌握各种 UML 图的作用。 面向对象建模过程的步骤 : ( 1) 需求获取 a) 建立 用况( use case) 模型和 用况 场景 ( 2) 需求分析 a) 建立活动图和状态图 b) 类图(建立域模型) c) 顺序图(实现 用况 ) ( 3) 编写需求规格说明书 ( 4) 需求验证 第一节 UML 术语表 1. 对象( object) 对象( object)是系统中用来描述客观事物的一个实体。 一个对象由一组属性和对这组属性进行操作的一组方法组成。 对象只描述客观事物本质的与系统目标有关的特征。 对象之间通过消息通信 , 一个对象通过向另一个对象发送消息激活某一个功能。 2. 类 类 ( Class) 是具有相同属性 、操作、关系和语义的 一组对象的集合,它为属于该类的全部对象提供了同 21 一的抽象描述,其内部包括属性和服务两个主要部分。 类有超类( Superclass)和子类( Subclass)之分。 (相对而言)对象与类的关系犹如程序设计语言中变量和类型的关系。 对象是类的实例 ( Instance)。 类在类图上使用包含三个部分的矩形来描述,如 下 图 41所示。 最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的操作(或者说 方法 )。 图 41:类图中的示例类对象 3. 属性 对象或类的属性 ( attributes) 描述了对象的具体特征。 属性有属性名和属性值 ( 或称属性状态 )。 每条属性可以包括属性的可见性、属性名称、类型、缺省值和约束特性。 UML 规定类的属性的语法为: 可见性 属性名 : 类型 = 缺省值 {性质串 } 可见性: public( +) 、 protected( )、 private( )、包内的( ~) 4. 类的 操作 通常也被称为功能 , 但是它们被约束在类的内部 , 只能作用到该类的对象上。 操作名、返回类型和参数表组成操作界面。 UML 规 定操作的语法为 : 可见性 操作名 ( 参数表 ) : 返回类型 {性质串 } 例如: +取客户地址(客户名 :字符串):字符串 5. 接口 接口是操作的一个集合,其中每个操作描述了类、构件或子系统的一个服务。 ( 1) 采用具有分栏和关键字 interface的矩形符号来表示 ( 2) 采用小圆圈和半圆圈来表示 6. 协作 协作是一个交互,涉及交互的三要素:交互各方、交互方式以及交互内容。 7. 用况 ( use case) /用况 对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可观察的结果。 8. 主动类 至少具有一个进程或线程的类。 能够启动 系统的控制活动,并且其对象的行为通常与其它元素行为并发的。 表示方法:两条竖线。 22 9. 构件 系统设计中的一种模块化部件,通过外部接口隐藏了它的内部实现。 10. 制品 系统中包含物理信息的、可替代的物理部件。 11. 节点 节点是在运行时存在的物理元素,通常表示一种具有记忆能力和处理能力的计算机资源。 12. 关联 ( Association) 关联反映了类和类之间的静态关系。 关联在模型中,特别是在永久业务对象模型中是最基本的关系。 链( link)是对象之间具有特定语义关系的抽象。 ( 1) 关联名 ( 2) 导航 ( 3) 角色 ( 4) 可见性 ( 5) 多重性: 多重性( Multiplicity)定义了与一个对象 /类相联系的对象 /类出现一次,该对象 /类可能出现的最小和最大的数目。 ( 6) 限定符 ( 7) 聚合:一个类是另一类的一部分。 ( 8) 组合:是聚合的一种特殊形式 23 ( 9) 关联类 ( 10) 约束 13. 泛化 /继承 继承:特殊类 ( 子类 ) 的对象拥有其一般类 ( 超类 ) 的全部属性与服务,称作特殊类对一般类的继承( Inheritance)。 利用继承( inheritance),子类可以继承父类的属性和方法。 子类/父类也可分别叫做特殊类/一般类、子类/超类、派生类/基类等。 继承反映了类之间的一种联系或结构 :一般 特殊结构, 也称分类结构 ( Classification Structure) ,是由一组具有继承关系的类所组成的结构。 仅由一些单继承关系的类形成的结构又称作层次结构 ( Hierarchy Structure) ;由一些存在多继承关系的类形成的结构又称作网格结构 ( Lattice Structure)。 14. 多态性 ( Polymorphism) 是指一般类中定义的属性或。aa_20xx年___自考软件工程讲义
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。