第10章面向对象的方法
系统分析师核心考点归纳

n n 其中 n 为任务数,k 为流水线的段数 Tk ( k n 1) t
3
系统分析师核心考点
对于数据相关的处理:采用相关专用通路的直接读出操作数。 遇到转移指令影响流水线连续流动的情况可用猜测法来加快执行。 流水线出现 I/O 中断时可以让已经进入流水线的指令继续执行, 知道执行完成, 这种方 法叫做不精确断点法。 五、超级流水线: 采用简单指令以加快执行速度是所有流水线的共同特点, 超级流水线配置 了多个功能部件和指令译码电路, 采用多条流水线并行处理, 还有多个寄存器端口和总 线,可以同时执行多个操作,比普通流水线执行得更快。 六、超长指令字(VLIW) :是一种单指令流、多操作码、多数据的体系结构。编译时把多 个能并行的操作组合在一起,成为一条有多个操作码的超长指令。 七、磁盘存储器 1、最外层为 0 磁道。 2、存储容量= n t s b 其中 n 为保存数据的总盘面数;t 为每面磁道数;s 为每道的 扇区数;b 为每个扇区存储的字节数 3、存取时间包括寻道时间和等待时间。 4、数据传输速率 R=TB/T TB 为一个磁道上记录的字节数,T 为磁盘旋转一周所需的 时间。 5、磁盘读写时间=磁盘的平均寻道时间+平均旋转时间(转速/2)+读或写数据的传输 时间+控制器的开销 一般寻道为先移动磁盘臂再旋转到对应扇区。 八、RAID 存储器 RAID0:具有最高的 I/O 性能和最高的磁盘空间利用率; RAID1:磁盘镜像阵列,具有最高的安全性,但磁盘空间利用率只有 50%; 九、输入/输出接口控制方法 输入输出系统有 5 种方式与主机交换数据: 1、 程序控制方式(查询方式) :方法简单,硬件开销小,不能及时响应; 2、 程序中断方式:CPU 无需等待而提高了效率,及时响应,不会产生数据丢失,系 统开销大,实现较复杂; 3、 DMA 方式:使用 DMA 控制器来控制和管理数据传输。DMAC 获取总线的 3 种方 式:暂停方式、周期窃取方式和共享方式。 4、 通道:可分为字节多路通道、选择通道和数组多路通道 3 种 5、 输入输出处理机(IOP) :又称 PPU 方式,用于大型、高效的计算机系统处理外围 设备的输入输出,并利用共享存储器或其他共享手段与主机交换信息。 十、设备接口 IDE:普通 IDE 数据传数不超过 1.5Mbps,数据宽度 8 位,最多可接 4 个设备。EIDE 接口传数率可达 12-18Mbps,数据传输宽度 32 位,可接 4 个 IDE 设备; SCSI:数据宽度为 8 位、16 位和 32 位。被分配给一个唯一的 ID 号(0-7) ,其中 7 号 分配给 SCSI 控制器,可以提供多达 35 个 SCSI 通道。 PCMCIA:广泛用于笔记本电脑的接口标准,体积小,扩展较方便灵活。 P1394 串行接口:是一种高速的串行总线,用以连接众多的外部设备。一个端口可以支 持 63 个设备。以树形结构配置,可以支持的设备高达 1022 个。支持热插拔。 USB 接口:是一种串行总线式的接口。 SATA:传输率可达 150MB/sec(1.5Gbps)。SATAⅡ速率可达 300MB/sec.关键技术就是 3Gbps 的外部传输率和 NCQ 技术。NCQ 技术可以对硬盘的指令执行顺序进行优化,避免像 传统硬盘那样机械地按照接收指令的先后顺序移动磁头读写硬盘的不同位置, 与此相反, 它 会在接收命令后对其进行排序, 排序后的磁头将以高效率的顺序进行寻址, 从而避免磁头反
面向对象的开发方法PPT课件

第22页/共73页
第二节 面向对象的基本概念
七、继承性 • 广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象中,继承是 子类自动地共享基类中定义的数据和方法的机制。 • 父类:类的上层 • 子类:类的下层
• 70年代中期,Xerox Palo Alto研究中心的研究人员设计了Smalltalk 语言,该语言的每个元素都被当作一个对象来实现,其程序设计环境 及相关的各个方面都是面向对象的。
第1页/共73页
第一节 面向对象概述 • 但是,面向对象的推广很慢。例如:Samlltalk的成果直到1981年8月 因Byte杂志的介绍才为外界所知,许多软件开发人员了解Samlltalk时, 都把它看作是一个窗口系统,而不是程序设计技术的一次革命。 • 80年代,C成为很受欢迎的程序设计语言,它不仅可用在微机上,还 可用在多种结构的系统和环境中。80年代早期,AT&T贝尔实验室的 Bjarne Stroustrup把C语言扩展为支持面向对象程序设计的C++。在 C++中,程序员可以在其熟悉的语言环境下学习掌握面向对象的程序 设计技术,而不必去探究一种新的语言和环境。
第4页/共73页
第一节 面向对象概述
5.重用:为了实现重用,需要研究对象的规格说明等。 6.原型:面向对象的设计方法如何用于实现快速原型。 7.应用:将面向对象的设计方法用于商业、教育及科学等实际问题的处理中。 8.其它方面:将面向对象的设计方法用到数据库、操作系统、知识工程、人工智能、自然语言处理等其它
第15页/共73页
第二节 面向对象的基本概念
三、实例 • 实例是某个具体类所描述的一个具体对象。例如:“张三”、“李四”是类“中国人”的实例。 • 对象既可以是一个具体的对象,也可以泛指一般的对象;而实例只能是一个具体的对象。
10-面向对象图像特征提取

第十章面向对象图像特征提取10.1面向对象图像分类技术面向对象分类技术集合临近像元为对象用来识别感兴趣的光谱要素,充分利用高分辨率的全色和多光谱数据的空间、纹理和光谱信息对图像分割和分类,以高精度的分类结果或者矢量输出。
它主要分成两个过程:图像对象构建和对象的分类。
FX的操作可分为两个部分:发现对象(Find Object)和特征提取(Extract Features)笈现对彖10.2 发现对象10.2.1 准备工作根据数据源和特征提取类型等情况,可以有选择地对数据进行一些预处理工作。
(1)空间分辨率的调整如果您的数据空间分辨率非常高、覆盖范围非常大,而提取的特征地物面积较大(如云、大片林地等),可以降低分辨率,提供精度和运算速度。
可利用ENVI 主菜单->Basic Tools->Resize Data 工具实现。
(2)光谱分辨率的调整如果您处理的是高光谱数据,可以将不用的波段除去。
可利用ENVI 主菜单->Basic Tool->layer stacking 工具实现。
(3)多源数据组合(4)空间滤波10.2.2 发现对象第一步启动FX 模块(1)在ENVI EX 中,选择File-Open, 打开图像文件qb_colorado.img ,如图10.1。
(2)在ENVI EX 中,双击Toolbox 中的Feature Extraction 。
选择输入文件(图10.2),单击Select Additional Files 前的三角形符号,有三种数据可输入:Basic Image: 必选项辅助数据(Ancillary Data ):可选项掩膜文件(Mask File ):可选项(3)单击OK 按钮,进入下一步操作。
-£ xK & A «■(- M 話14 倨if日y Laper huHjper_j FSilx■ =' [T1." I M *钢i 啊■ E £i WO ) ■曲hr o MM J■!ITF rtW“■W T谊■[也贏*i F虫Diuj-in i r.{*■ I■"・>tx h 丄qpr »1>3 A _1Wfl-i ■■■SF“图10.1 ENVI EX 界面图10.2选择数据第二步图像分割FX根据临近像素亮度、纹理、颜色等对图像进行分割,它使用了一种基于边缘的分割算法,这种算法计算很快,并且只需一个输入参数就能产生多尺度分割结果。
软件工程课本讲解面向对象的OMT方法

化旳动态模型 + 细化旳功能模型。
16
第11章 面向对象的OMT方法
对象模型化技术OMT 对象模型化技术把分析时搜集旳信息构造在三类
模型中,即对象模型、功能模型和动态模型。
这个模型化旳过程是一种迭代过程。
17
第11章 面向对象的OMT方法
图11.4 三元关联 29
第11章 面向对象的OMT方法
角色为关联旳端点,阐明类在关联中旳作用和角 色。不同类旳关联角色可有可无,同类旳关联角色不 能省。角色旳表达如图11.5所示。
教师
讲授
课程
主讲
内容
图11.5 关联旳角色旳表达
30
第11章 面向对象的OMT方法
2) 受限关联
受限关联由两个类及一种限定词构成,限定词是 一种特定旳属性,用来有效地降低关联旳重数,限定 词在关联旳终端对象集中阐明。
技术之上旳,OMT措施旳基础是开发系统旳3个模型,再 细化这3种模型,并优化以构成设计。对象模型由系统中 旳对象及其关系构成,动态模型描述系统中对象对事件旳响应及对 象间旳相互作用,功能模型则拟定对象值上旳多种变换及变换上旳
约束。
6
第11章 面向对象的OMT方法
11.1.2 系统分析
分析旳目旳是拟定一种系统“干什么”旳模型,该模型经过 使用对象、关联、动态控制流和功能变换等来描述。分析过程是 一种不断获取需求及不断与顾客磋商旳过程。
8
第11章 面向对象的OMT方法
3. 构造动态模型
构造动态模型旳环节如下: (1) 准备经典交互序列旳脚本。 (2) 拟定对象间旳事件并为各脚本安排事件跟踪。 (3) 准备系统旳事件流图。 (4) 开发具有主要动态行为旳各个类旳状态图。 (5) 检验状态图中共享事件旳一致性和完整性。 最终得到:动态模型 = 状态图 + 全局事件流图。
9_面向对象的需求分析方法

9.1 面向对象技术概述9 面向对象的需求分析方法二者的本质区别• 面向过程的结构化系统 = 功能 + 数据 • 面向对象的系统 = 对象 + 消息9 面向对象的需求分析方法二者的本质区别银行账户对象 存款 取款 利息结算 账户 余额 存 款 账户 余额 利息结算 外部消息 取 款9 面向对象的需求分析方法面向对象方法的发展历史• 初始阶段• 1960’s:Simula编程语言 • 1970’s:Smalltalk编程语言• 发展阶段• 1980’s:理论基础,许多OO 编程语言(如C++, Objective-C等)• 成熟阶段• 1990’s:面向对象分析和设计方法(Booch, OMT等), Java • 1997:OMG 组织的统一建模语言(UML) • 逐渐替代了传统的结构化方法9 面向对象的需求分析方法面向对象的软件工程• 面向对象分析(Object Oriented Analysis, OOA)• 分析和理解问题域,找出描述问题域和系统责任所需的类及 对象,分析它们的内部构成和外部关系,建立OOA 模型。
• 面向对象设计(Object Oriented Design, OOD)• 将OOA 模型直接变成OOD 模型,并且补充与一些实现有关 的部分,如人机界面、数据存储、任务管理等。
• 面向对象编程(Object Oriented Programming, OOP)• 用一种面向对象的编程语言将OOD 模型中的各个成分编写成 程序,由于从OOA→OOD→OOP实现了无缝连接和平滑过 渡,因此提高了开发工作的效率和质量。
9 面向对象的需求分析方法面向对象的软件工程现实世界OOA结构化分析OOD结构化设计OOP结构化编程可执行软件系统9 面向对象的需求分析方法OO中的喷泉过程模型• 喷泉模型:• 在OO开发过程中,各阶段之间形 成频繁的迭代; • OO各阶段均采用统一的“对象”概 念,各阶段之间的区分变得不明 显,形成“无缝”连接,从而容易实 现多次反复迭代。
软件工程各章名词解释

名词解释一个三分 五个十五分第一章 绪论1. 软件2. 文档3. 软件工程4. 软件工程过程5. 软件生存周期6. 软件生存周期模型第二章 软件可行性研究与项目开发计划1. 投资回收2. 纯收人第三章 软件需求分析1. 需求分析2. 数据流3. 数据字典4. 加工5. 数据流图第四章 软件概要设计1. 模块2. 模块化3. 抽象4. 信息隐蔽5. 模块独立性6. 耦合性7. 无直接耦合8. 数据耦合9. 标记耦合10. 控制耦合11. 公共耦合12. 内容耦合13. 内聚性14. 偶然内聚15. 逻辑内聚16. 时间内聚17. 通信内聚18. 顺序内聚19. 功能内聚第五章 软件详细设计1. PAD2. 过程设计语言(PDL)第六章 软件编码1. 程序设计风格2. 程序可移植性第七章 软件测试1. 语句覆盖2. 判定覆盖3. 条件覆盖4. 判定/条件覆盖5. 条件组合覆盖6. 路径覆盖7. 环路复杂性8. 黑盒测试9. 白盒测试10. 驱动模块11. 桩模块12. 单元测试13. 集成测试14. 确认测试15. 调试第八章 软件维护1. 维护2. 校正性维护3. 适应性维护4. 完善性维护5. 预防性维护6. 软件可维护性第九章 软件开发的增量模型1. 原型第十章 面向对象的方法1. 对象2. 类3. 消息4. 方法5. 继承性6. 单重继承7. 多重继承8. 多态性9. 抽象10. 信息隐藏11. 链12. 关联第十一章 软件质量与质量保证1. 软件可靠性2. 效率3. 可维护性4. 可移植性5. 可互操作性6. 适应性7. 可重用性8. 软件设计质量9. 软件程序质量10. 冗余第十二章 软件工程管理1. 软件配置管理2. 软件配置项3. 基线4. 文档第十三章 软件开发环境1. 软件开发环境2. 软件工具3. CASE4. CASE生存期5. CASE工作台软件工程自考名词解释答案第一章 绪论1. 计算机程序及其说明程序的各种文档.2. 文档是有关计算机程序功能,设计,编制,使用的方案或图形资料.3. 用科学知识和技术原理来定义,开发,维护软件的一门学科.4. 软件工程过程规定了获取,供应,开发,操作和维护软件时,要实施的过程,活动和任务.5. 软件生存周期是指一个软件从得出开发要求开始直到该软件报废为止的整个时期.6. 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型.第二章 软件可行性研究与项目开发计划1. 投资回收期就是使累计的经济效益等于最初的投资费用所需的时间.2. 在整个生存周期之内的累计经济效益(折合成现在值)与投资之差.第三章 软件需求分析1. 需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非不甘落后将用户非不甘落后 需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程.2. 数据流是数据在系统内传播的路径,因此由一组成分固定的数据项组成.3. 数据字典(Data Dic onary, 简称DD)就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的,无二义性的说明方式为系统的分析,设计及维护提供了有关元素的一致的定义和详细的描述.4. 加工又称为数据处理,是对数据流进行某些操作或变换.5. 数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程.第四章 软件概要设计1. 模块在程序中是数据说明,可执行语句等程序对象的集合,或者是单独命名和编址的元素,在软件的体系结构中,模块是可组合,分解和更换的单元.2. 模块化是指解决一个复杂问题自顶向下逐层把软件系统划分成若干模块的过程.每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个要求的功能.3. 抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他因素.4. 信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的.5. 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单.6. 耦合性也称块间联系.指软件系统结构中各模块间相互联系紧密程序的一种度量.7. 无直接耦合指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息.8. 数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递.9. 标记耦合指两个模块之间传递的是数据结构,如高级语言的数组名,记录名,文件名等这些名字即为标记,其实传递的是这个数据结构的地址.10. 控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关,标志等),被调模块通过该控制变量的值有选择地执行块内某一功能.11. 公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合.公共数据环境可是是全程变量或数据结构,共享的通信,内存的公共覆盖区及任何存储介质上的文件,物理设备等(也有将共享外部设备分类为外部耦合).12. 当一个模块直接使用另一个模块的内部数据,或通过非正常口转入另一个模块内部,这种模块之间的耦合为内容耦合.13. 内聚块又称块内联系指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量.14. 偶然内聚指一个模块内的各处理元素之间没有任何联系.15. 逻辑内聚指模块内执行个逻辑上相似的功能,通过参数确定该模块完成哪一个功能.16. 把需要同时执行的动作组合在一起形成的模块为时间内聚模块.17. 通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据.18. 顺序内聚指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入.19. 功能内聚指模块内所有元素共同完成一个功能,缺一不可.因此模块不能再分割.第五章 软件详细设计1. PAD图指问题分析图(Problem Analysis Diagram),是一咱算法描述工具,它是一种由左往右展开的二维树型结构.PAD图的控制流程为自上而下,从左到右地执行.2. 过程设计语言(Process Design Language,简称PDL),也称程序描述语言(Program Descrip on Language),又称为伪码.它是一种用于描述模块自法设计和处理细节的语言.第六章 软件编码1. 程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等.2. 指程序从一个计算机环境移值到另一个计算机环境的容易程序.第七章 软件测试1. 语句覆盖是指设计足够的测试用例,使被测程序中每个语句至少执行一次.2. 判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次”真”和”假”值,从而使程序的每一个分支至少都通过一次.3. 条件覆盖指设计足够的测试用例,使得判定表达工中每个条件的各种可能的值出现一次.4. 判定/条件覆盖标准指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次.5. 条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次.6. 路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径.7. McCabe定义程序图的环路为程序图中区域的个数.区域个数为边和结点圈定的封闭区域数加上图形外的区域数1.8. 黑盒测试是功能测试又称为功能测试或数据驱动测试.9. 白盒测试是对程序中尽可能多和逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致.10. 驱动模块是用来模拟被测模块的上级调用模块的模块,功能要比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被模块,接收被测模块的测试结果并输出.11. 桩模块用来代替被测试模块所调用的模块它的作用是返回被测模块所需的信息.12. 单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误.13. 集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行测试,故也称组装测试或联合测试.14. 确认测试又称有效性测试.是为了检查软件的功能与性能是否与需求规格说明书中确定的指标相符合所进行的测试.15. 调试是为了确定错误的原因和位置,并改正错误所进行的工作,因此调试也称为纠错.第八章 软件维护1. 在软件运行/维护阶段对软件产品所进行的修改就是维护.2. 为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护.3. 随着计算机的飞速发展,计算机硬件,软件及数据环境在不断发生变化,为了使应用软件适应这种变化而修改软件的过程称为适应性维护.4. 在犯罪分子件运行时期中,用户往往会对软件提出新的功能要求与性能要求.这种增加软件功能,增强软件性能,提高软件运行效率而进行的维护活动称为完善性维护.5. 为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护.6. 软件可维护性是指软件能够被理解,校正,适应及增强功能的容易程度.第九章 软件开发的增量模型1. 软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性.第十章 面向对象的方法1. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则,计划或事件.2. 具有相同或相似性质的对象的抽象就是类具有相同或相似性质的对象的抽象就是类3. 对象之间进行通信的构造叫做消息.4. 类中操作的实现过程叫做方法,一个方法有方法名,参数,方法体.5. 继承性是子类自动共享父类数据结构和方法的机制这是类之间的一种关系.6. 在类层次中,子类只继承一个父类的数据结构和方法,称为单重继承.7. 在类层次中,子类继承了多个父亲的数据结构和方法,称为多重继承.8. 多态性是指相同的操作或函数,过程可作用于多用户种类型的对象上并获得不同结果.不同的对象收到同一消息可以产生不同的结果,这种现象称为多态性.9. 抽象是指强调实体的本质,内在的属性,忽略一些无关紧要的属性.10. 信息隐蔽是指所有软件部件内部都有明确的范围以及清楚的外部边界每个软件部件都有友好的界面接口,软件部件的内部实现与外部可访问性分离.11. 链表示对象间的物理与概念联结.12. 关联表示类之间的一种关系,就是一些可能的链的集合.第十一章 软件质量与质量保证1. 软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度.2. 为了完成预定功能,软件系统所需的计算机资源和程序代码数量的程度.3. 找到并改正程序中的一个错误所需代价的程度.4. 将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需的工作量.5. 将一个系统耦合到另一个系统所需的工作量.6. 修改或改进一个已投入运行的软件所需工作量的程度.7. 一个软件能再次用于其他相关应用的程度.8. 设计的规格说明书要符合用户的要求.9. 程序要按照设计规格说明所规定的情况正确执行.10. 冗余是指实现系统规定功能是多余的那部分资源,包括硬件,软件,信息和时间.第十二章 软件工程管理1. 软件配置管理,简称SCM,是一组管理整个软件生存期各阶段中变更的活动是一组管理整个软件生存期各阶段中变更的活动2. 软件配置项是软件工程中产生的信息项,它是配置管理的基本单位.3. 基线是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果.4. 文档是指某种数据媒体和其中所记录的数据.在软件工程中,文档用来表示对需求,工程或结果进行描述,定义,规定,报告或认证的任何书面或图示的信息.它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令.第十三章 软件开发环境1. 软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成.2. 软件工具是指为支持计算机软件的开发,维护,模拟,移植或管理而研制的程序系统.3. CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发.4. 一个组织中的CASE系统从被始需求到完全废弃这一生存期.5. 一个CASE工作台是一组工具集,支持像设计,实现或测试等特定的软件开发阶段.。
软件工程 第10章 面向对象的方法
第10章例题分析与解答作者:不详来源:2006年9月4日发表评论进入社区一、填空题1.面向对象方法认为系统是由应用域的___对象___组成。
2.对象具有状态,描述对象的状态用它的_属性值_____。
3.对象的抽象是_类_____。
4.类之间有两种结构关系,它们是分类关系和__组装____关系。
5.面向对象程序设计语言与其他程序设计语言的最主要差别是它具有_继承性_____。
6.动态模型描述了系统的__动态行为____。
二、选择题1.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是( D)关系。
A.组装B.整体成员C.has aD.一般具体2.面向对象分析阶段建立的三个模型中,核心的模型是( C )模型。
A.功能B.动态C.对象D.分析3.对象模型的描述工具是( C)。
A.状态图B.数据流图C.对象图D.结构图4.在有多重继承的类层次结构中,它的类层次结构是(B )层次结构。
A.树型B.网状型C.环型D.星型5.描述类中对象的行为,反映了状态与事件关系的是( B )。
A.对象图B.状态图C.流程图D.结构图6.在确定属性时,所有( C)是候选的属性。
A.动词B.名词C.修饰性名词词组D.词组三、应用题1.建立窗口系统的对象模型。
问题陈述如下:窗口分为对话窗、图形窗、滚动窗三种;对话窗中有若干对话项,由唯一的项名字来确定,对话项分为按钮、选择项、正文项三种,选择项中有若干对话项入口;图形窗中有若干形状元素,形状元素分为一维形状和二维形状,一维形状又分为直线、圆弧、折线;二维形状分为圆、椭圆、矩形、多边形,其中多边形和折线由若干有序顶点组成,正文窗是滚动窗的一种,而图形滚动窗既是一种图形窗又是一种滚动窗。
2.在学校教学管理系统中,学生查询成绩就是系统中的一次交互,请用状态图来描述这种查询的交互行为。
答案:一、填空题1.对象2.属性值3.类4.组装5.继承性6.动态行为二、选择题1.D2.C3.C4.B5.B6.C三、应用题1.2.第10章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.对象2.类3.属性4.操作5.消息6.消息传递7.方法8.关系9.关联10.一般具体关系 11.整体部分关系12.继承13.单重继承 14.多重继承15.多态性 16.角色17.受限关联 18.封装19.对象模型20.动态模型21.功能模型 22.事件23.状态24.事件追踪25.状态图26.动作27.活动28.处理29.数据流30.动作对象31.数据存储对象 32.重用性二、填空题1.对象具有封装性,实现了__数据与操作____的结合。
张海藩《软件工程导论》(第6版)(课后习题 第10章 面向对象分析)【圣才出品】
第10章面向对象分析1.用面向对象方法分析研究本书第2章第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
答:(1)对象模型储蓄系统的对象模型,如图10-2所示。
图10-2储蓄系统的对象模型(2)动态模型①编写脚本a.正常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额吻合;第三,存款单生效;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,确定储户存款金额>=取款金额;第六,审核通过,取款单生效;第七,系统打印利息清单,业务员把本金和利息返回储户。
b.异常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额不符;第三,存款单作废;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,发现储户存款金额<=取款金额;第六,取款单作废。
②事件追踪图储蓄系统的事件追踪图,如图10-3所示。
图10-3储蓄系统的事件追踪图(3)功能模型储蓄系统的数据库流图,如图10-4所示。
图10-4储蓄系统的数据库流图2.用面向对象方法分析研究本书习题2第3题中描述的机票预订系统,试建立它的对象模型、动态模型和功能模型。
答:略。
3.用面向对象方法分析研究本书习题2第4题中描述的患者监护系统,试建立它的对象模型、动态模型和功能模型。
答:略。
4.下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:自动售货机系统是一种无人售货系统。
售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。
有效的硬币是一元币、五角币、一角币、五分币、二分币和一分币。
其他货币都被认为是假币。
机器拒绝接收假币,并将其从退币孔退出。
第10章面向对象数据库-PPT精选文档
Ô Ï ¶ ó B
ô Ð Ê Ô 1 ¡ ¡ ô Ð Ê Ô r ½ · · ¨1 ¡ ¡ ½ · · ¨s
14
10.1 对象与类
10.1.3 类
类(Class)是对具有共同属性和方法的对象全体的 概括描述,它相当于关系模型中的关系模式。类给出 了属于其全部对象属性与行为的抽象定义,类中对象 仅是类定义中的一个实体,即对象实例。学生是一个 类,一个具体学生,例如John就是学生类中一个对象 实例。与关系模型需要首先描述关系模式类似,对象 模型也首先需要抽象描述具有共同属性的对象的类, 按照类来定义属性和方法,从而避免对每个对象一一 重复定义。查询操作等方法也定义在类上。
6
10.1 对象与类
10.1.1 对象
对象具有封装性、隐蔽性与稳定性等重要特性。 (1)封装性 封装(encapsulation)是使对象的外 部界面与内部实现之间实行清晰隔离的一种技术,是 OO模型的主要特征之一。封装使得用户只能看到对 象外在的界面信息(正如规格说明等),而看不到对 象内部的信息(如方法实现细节),对象内部信息对 于用户是屏蔽的。封装的意义首先在于安全性保证, 其次在于相关模块的可扩展性。
12
10.1 对象与类
10.1.2 消息
例 设一个对象A要求对象B完成其中的某种操作,则 只需向对象B发送一个消息即可。B接收到这个消息后, 根据消息模式找到与之匹配的方法,执行该方法后将 执行的结果又以消息的形式发送给对象A。
13
10.1 对象与类
10.1.2 消息
Ô Ï ¶ ó A
ô Ð Ê Ô 1 ¡ ¡ ô Ð Ê Ô n ½ · · ¨1 ¡ ¡ ½ · · ¨m á ¹ ½ û Ï û Ï ¢ ÷Ó µ Ã Ï û Ï ¢
软件工程导论第1章(第4版)
软件工程导论 (第4版)
张海藩 编著
总目录
第1章 软件工程学概述 第8章 维护
第2章 可行性研究
第9章 面向对象方法学引论
第3章 需求分析
第10章 面向对象分析
第4章 形式化说明技术 第11章 面向对象设计
第5章 总体设计
第12章 面向对象实现
第6章 详细设计
第13章 软件项目管理
测试、综合测试又称为系统实现。 设计出实现目标系统的方案,设计程序的体系结构。 确定实现模块功能所需要的算法和数据结构; 设计出程序的详细规格说明; 用适当的程序设计语言写出正确的容易理解、容易维护的
程序模块并进行单元测试; 根据设计的软件结构,把各模块装配起来并进行测试; 通过对软件测试结果的分析预测软件的可靠性; 写出测试计划和详细测试方案并记录实际测试结果; 按照规格说明书的规定,由用户对目标系统进行验收。
第7章 实现
第1章 软件工程学概述
软件成为独立的商品 计算机应用的普及,促使人们对软件的品种、
数量、功能、质量等提出了越来越高的要求 在1970前,计算机硬件工程技术由于电子技术
的发展而建立 重视软件开发过程、方法、工具和环境的研
究—软件工程
1.1 软件危机 一.软件
1.软件的定义 软件是能够完成预定功能和性能的可执行的计算
2. 产生软件危机的原因
(1)软件开发个体化,采用了错误的方法和技术,无设计资 料留存; (2)软件规模的增长,使得软件的复杂度增加,软件的可靠 性随软件规模的增长而下降,质量保证越来越困难; (3)软件维护费用急剧上升。
据统计,软件维护费用大约占到软件总花费的2/3; (4)软件生产技术进步缓慢,是加剧软件危机的重要原因。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章面向对象的方法
面向对象的方法是今后软件开发方法的主流。
学习本章,最好是学过面向对象程序设计语言,这样可以对对象、类、类的层次结构、方法、消息等概念更容易理解。
本章总的要求是,掌握面向对象的基本思想、基本概念、基本原理,掌握三种模型的基本概念和构造方法,掌握面向对象的分析、设计和实现的过程。
一、面向对象的基本概念
1、什么面向对象?首先了解几个概念:
1、对象:对象是人们要进行研究的任何事物。
具体一点讲就是研究对象。
它可以是有形实体,也可以是作用、事件、性能说明等,当然,如果女朋友成为你研究的对象时,对象也可以是你的女朋友。
2、对象的状态和行为:对象有自身的状态,比如你的女朋友有她的姓名(叫小丽)、年龄(22岁)、工作单位等。
对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为,比如"小丽.跳槽到(某公司)"这个行为将使她的工作单位这个状态发生变化。
3、类:具有相同或相似性质的对象的抽象就是类。
如桃树、李树、樟树等是具体的树,抽象之后得到"树"这个类。
类具有属性,属性是状态的抽象,如一棵李树的高度是3米,樟树是10米,树则抽象出一个属性"高度"。
类具有操作,它是对象行为的抽象。
4、类的结构:有两种,一种是"一般-具体"结构,如植物、树都是类,它们之间是抽象到具体的关系,即树是一种(is a)植物。
还有一种就是"整体-部分"结构,如计算机是类、CPU 也是类,则计算机与CPU之间就是整体与部分的关系。
5、消息和方法:对象之间进行通信的构造叫做消息,比如小丽是一个对象,上司发出一个消息:小丽.出差到(深圳)。
这样,相应的对象接收到这个消息就会给予响应,在这个消息中,小丽是对象名,出差到就是方法名,深圳就是参数。
在类中操作的实现过程叫做方法。
上面的出差到(某地)这个方法如何实现呢,就是买车票,乘车到某地。
这个过程就是方法。
总之,面向对象这种思想很符合人们观察世界的自然思想。
在很多时候我们可以用自然的观点去理解面向对象。
2、面向对象的特征有四点:对象唯一性、分类性、继承性和多态性。
3、面向对象的要素:抽象、封装性、共享性
4、面向对象技术强调的是对象结构而不是程序结构。
5、面向对象的开发方法主要有以下几种:Coad方法、Booch方法、OMT方法和OOSE 方法,最新的统一建模语言UML则不仅统一了Booch方法,OMT方法、OOSE方法,而且对其作了进一上的发展,最终统一为大众所接受的标准建模语言。
二、面向对象的模型(简单应用)
面向对象的模型包括三个,它们分别是:描述系统数据结构的对象模型、描述系统控制结构的动态模型和和描述系统功能的功能模型。
这三种模型都涉及到数据、控制和操作等共同的概念,只是每种模型描述的侧重点不同。
这三种模型从三个不同但又密切相关的角度模拟目标系统,它们各自从不同的侧面反映了系统的实质性内容,综合起来则全面反映了对目标系统的需求。
1、对象模型:它表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。
该模型主要关系的是系统中对象的结构、属性和操作,使用了对象图的工具来刻画,它是分析阶段三个模型的核心,也是其他两个模型的框架。
涉及及的概念有,对象和类、关联和链。
2、动态模型:是与时间和变化有关的系统性质。
该模型描述了系统的控制结构,它表示了瞬时的、行为化的系统控制性质,它关系的是系统的控制,操作的执行顺序,它从对象的事件和状态的角度出发,表现了对象的相互行为。
该模型描述的系统属性是触发事件,事
件序列、状态、事件与状态的组织。
使用状态图作为描述工具。
涉及的重要概念是事件、状态、操作等。
3、功能模型:描述了系统的所有计算。
功能模型指出发生了什么,动态模型确定什么时候发生,而对象模型确定发生的客体。
功能模型表明一个计算如何从输入值得到输出值,它不考虑所计算的次序。
功能模型由多张数据流图组成。
数据流图说明数据流是如何从外部输入、经过操作和内部存储输出到外部的。
功能模型也包括对象模型中值的约束条件。
功能模型说明对象模型中操作的含义、动态模型中动作的意义以及对象模型中约束的意义。
相关的概念有:数据流图中的处理、数据流、动作对象、数据存储对象等。
三、面向对象的分析(简单应用)
面向对象分析的目的是对客观世界的系统进行建模。
分析问题有三种用途:用来明确问题需求;为用户和开发人员提供明确需求;为用户和开发人员提供一个协商的基础,作为后继的设计和实现的框架。
通过分析,建立对象模型、动态模型和功能模型。
四、面向对象的设计(领会)
1、面向对象设计的准则:
(1)模块化:对象就是模块,它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。
(2)抽象:包括过程抽象、数据抽象、规格说明抽象及参数化抽象等。
(3)信息隐蔽:在面向对象方法中,信息隐蔽通过对象的封装性来实现。
(4)低耦合:低耦合是设计的一个重要标准,应该避免对象之间的高耦合,强调对象间的低耦合。
(5)高内聚:在面向对象设计中存在三种内聚:操作内聚、类内聚及一般-具体内聚,紧密的继承耦合与高度的一般--具体内聚是一致的。
2、面向对象设计的启发规则:
(1)设计结果应该清晰易懂
(2)一般--具体结构的深度应适当
(3)设计简单的类
(4)使用简单的协议
(5)使用简单的操作
(6)把设计变动减至最小
五、面向对象的实现(领会)
面向对象实现主要包括两项工作,把面向对象设计结果翻译成用某种程序设计语言写成的面向对象程序;测试并调试面向对象程序。
在开发过程,类的实现是核心问题。
在用面向对象风格所写的系统中,所有的数据都被封装在类的实例中,而整个程序则被封装在一个更高级的类中。