面向对象技术&UML-复习答案
- 格式:doc
- 大小:163.00 KB
- 文档页数:4
1.1 知识要点1.面向对象技术的基本概念∙面向对象技术是以对象为基础、以事件或者消息来驱动对象执行处理的程序设计技术。
∙对象是包含客观事物特征的抽象实体,是属性和行为的封装体。
在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”这一公式来表达。
∙类是对具有相同属性和行为的一组对象的抽象描述。
∙事件是系统产生的动作或是运行应用程序产生的动作。
事件通过消息描述,消息是描述事件发生的信息。
∙消息是对象间交互的手段,是要求某个对象执行某个操作的规格说明。
2.面向对象技术的基本特征∙抽象性是指忽略事物中与当前目标无关的非本质特征,而强调本质特征的特征。
∙封装性是指把对象的属性和行为封装在一起,并尽可能隐藏对象的内部细节的特征。
∙继承性是指特殊类的对象拥有其一般类的属性和行为的类与类之间层次关系的特征。
∙多态性是指不同对象收到相同消息时可以产生多种不同的行为方式的特征。
【重点】∙面向对象技术的概念。
∙类与对象的概念及关系。
∙面向对象与面向过程程序设计的区别。
∙面向对象技术的基本特征。
面向对象技术与Visual C++学习指导2【难点】∙类与对象的概念。
∙面向对象与面向过程程序设计的区别。
∙面向对象技术的基本特征。
1.2 习题解答1.什么是面向对象技术?【问题解答】面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。
它具有抽象性、封装性、继承性及多态性。
2.面向对象与面向过程程序设计有什么不同?【问题解答】面向对象与面向过程程序设计有如下不同:(1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。
(2)面向过程程序设计方法以功能为中心来设计功能模块,难于维护;而面向对象程序设计方法以数据为中心来描述系统,数据相对于功能而言具有较强的稳定性,因此更易于维护。
(3)面向过程程序的控制流程由程序中预定顺序来决定;面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际需要。
面向对象的软件测试技术(转)面向对象的软件测试技术相关知识点-面象对象(=objectoriented)技术1.对象和类l面象对象的编程语言:以对象为中心,以消息为驱动,程序=对象+消息l类就是一种代莱数据类型,就是设计的核心,就是通过抽象数据类型的方法去同时实现的一种数据类型l类是对某一对象的抽象,对象是某一类的实例,两者密切相关2.PCB、承继和多态性(1)封装:把数据和操作结合一体,使程序结构更加紧凑,避免了数据紊乱带来的调试与维护的困难(2)承继:可以从一个类衍生至另一个类,派生类承继了父类和祖先类的数据成员和函数,减少了软件的可扩充性,并为代码器重提供更多了强有力的手段(3)多态性:多种表现形式,可以用‘一个对外接口,多个内在实现方法’表示。
一.面向对象测试模型1.面向对象测试的分类依据面向对象研发模型(面向对象分析、面向对象设计、面向对向编程),分成:(1)面向对象分析的测试(ooatest)、面向对象设计的测试(oodtest):是对分析结果和设计结果的测试,主要对分析设计产生的文本进行的,是软件开发前期的关键性测试(2)面向对象编程的测试(ooptest):对编程风格和程序代码同时实现展开测试,主要的测试内容在oounittest和oointegratetest中彰显(3)面向对象单元测试(oounittest):对程序内部具体单一的功能模块的测试,主要对类成员函数的测试,是oointegratetest的基础(4)面向对象内置测试(oointergratetest):对系统内部的相互服务展开测试,例如成员函数间的相互作用,类间的消息传递。
不仅必须基于oounittest,还要参照ood、oodtest的结果(5)面向对象确认测试(oosystemtest)、面向对象系统测试(oosystemtest):最后阶段的测试,以用户需求为测试标准,借鉴ooa、ooatest的结果二.面向对象软件的测试策略1.面向对象分析的测试(1)面向对象分析是把e-r图和语义网络模型,即信息造型中的概念,与面向对象程序设计语方中的重要概念结合在一起而形成的分析方法。
简述面向对象技术的三大机制。
面向对象技术(Object-Oriented Technology)是一种常用的编程范式,它基于对象的概念来设计程序和系统。
面向对象技术的三大机制分别是封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。
封装是面向对象技术的基本原则之一,它将数据和操作封装在对象内部,对象对外部的数据和操作进行隐藏,只提供有限的接口供外部访问。
通过封装,对象可以控制对自身数据的访问,确保数据的安全性和完整性。
封装使得对象的实现细节对外部隐藏,提高了系统的可维护性和可扩展性。
同时,封装也使得对象之间的耦合度降低,各对象之间更加独立,提高了系统的灵活性。
继承是面向对象技术的另一个重要特性,它允许一个类(子类)继承另一个类(父类)的属性和方法。
通过继承,子类可以重用父类的代码,减少了重复编码的工作量,提高了代码的复用性和可维护性。
同时,继承也体现了类之间的层次关系,使得程序结构更加清晰和易于理解。
通过继承,可以实现代码的统一管理和扩展,提高了系统的可扩展性和可维护性。
多态是面向对象技术的另一重要机制,它允许不同的对象对同一消息作出不同的响应。
通过多态,可以实现接口的统一,提高了代码的灵活性和可重用性。
多态使得程序可以根据不同的对象类型调用不同的方法,实现了代码的动态绑定,提高了程序的可扩展性和可维护性。
多态是面向对象技术的一个重要特点,它使得程序更加灵活和易于扩展,提高了程序的可读性和可维护性。
封装、继承和多态是面向对象技术的三大机制,它们共同构成了面向对象技术的基本特性。
通过封装,可以保护对象的数据和实现细节;通过继承,可以实现代码的重用和扩展;通过多态,可以实现接口的统一和动态绑定。
这三大机制相互配合,共同构成了面向对象技术的核心思想,为软件开发提供了强大的支持和工具。
面向对象技术已成为现代软件开发的主流范式,它不仅提高了程序的可维护性和可扩展性,还提高了程序的质量和效率,是软件开发领域的一项重要技朧。
●下面关于面向对象方法中消息的叙述,不正确的是____(2)__。
(2)A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同正确答案:B【解析】在系统中既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此的通信,这样的方法才称为"面向对象的方法"。
●面向对象技术中,对象是类的实例。
对象有三种成份:____(3)____、属性和方法(或操作)。
(3) A. 标识B. 规则C. 封装D. 消息正确答案:A解析:对象有三种成份:标识(对象名)、属性和方法(或操作)。
●在面向对象技术中,类属是一种__(1)__机制。
一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与__(2)__的那些部分,而用变元来表示与__(3)__的那些部分。
(1)A.包含多态B.参数多态C.过载多态D.强制多态(2)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关(3)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关解析:在面向对象技术中,对象在收到信息后要予以响应。
不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态。
多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态成为特定多态。
参数多态应用比较广泛,被称为最纯的多态。
这是因为同一对象、函数或过程能以一致的形式用于不同的类型。
包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。
过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。
即通过语法对不同语义的对象使用相同的名,编译能够消除这一模糊。
强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。
论面向对象的数据库技术近年来,面向对象技术在软件开发领域得到了广泛的应用,而数据库也逐渐采用面向对象的方式进行设计和实现。
面向对象的数据库技术将对象的概念引入到了数据库中,使得数据库具有更加强大和灵活的功能特性。
本文将从面向对象技术和数据库技术两个方面入手,探讨面向对象的数据库技术的特点、应用和优缺点。
面向对象技术面向对象技术是一种软件开发方法,其核心概念为“对象”。
对象是指具有某种属性和行为的实体,可以对其进行封装、继承和多态等操作。
面向对象技术具有以下优点:•可重用性:对象的封装和继承使得代码更加模块化,可以方便地复用已有的代码,从而提高开发效率和代码质量。
•可扩展性:对象的继承和多态使得程序更加易于扩展和修改,可以方便地添加新的功能特性,从而适应不同的需求。
•易于维护:对象的封装和继承使得程序更加易于理解和维护,可以快速定位和修复问题。
面向对象数据库技术面向对象数据库技术是将面向对象技术应用于数据库设计和实现中的一种方法。
与传统的关系型数据库相比,面向对象数据库具有以下特点:1. 对象模型和数据库模型的一致性面向对象数据库将面向对象的概念引入到了数据库中,将对象作为数据库的基本单位。
与之相应的,面向对象数据库使用基于对象的模型来描述数据,与对象模型进行一一映射,从而实现了对象模型和数据库模型的一致性。
2. 可扩展性和灵活性面向对象数据库提供了更加丰富和灵活的数据结构和查询方式。
由于对象的继承和多态机制,可以方便地扩展数据结构和增加新的查询方式,满足应用程序不断变化的需求。
3. 高效性和安全性面向对象数据库采用了先进的数据访问和存储技术,具有更高的性能和安全性。
由于对象的封装和继承特点,可以实现更加高效的数据检索和处理,避免了传统关系型数据库的数据冗余和性能瓶颈问题。
4. 支持面向对象开发面向对象数据库直接支持面向对象开发。
开发人员可以直接将数据库中的对象作为应用程序的对象,从而更加方便地进行代码开发和维护。
复习
1.软件生命周期的几个阶段
软件生命周期主要包括以下几个阶段:
需求分析(Requirement Analysis);
软件设计(Software Design);
编码(Coding/Programming);
测试/调试(Testing/Debug);
运行/维护(Running/Maintenance)
2.述说Rational Unified Process的三个核心特征
RUP的基本特征:
(1)受控的迭代(Iterative)式增量(Incremental)开发
(2)用例(Use Cases)驱动
(3)以软件体系结构为中心
3.简述软件开发过程的实质
软件开发过程的实质:在开发过程中定义并构建一系列模型,通过这些模型越来越详细地描述系统,直到对需求的充分了解,能够开始编程。
4.UML的“4+1”视图
Use Case 视图:用于描述系统的功能集,它是从系统使用者的角度出发,对系统的抽象表示。
它只考虑系统提供什么样的功能。
包括以下图:用例图、序列图、协作图和活动图。
Logical 视图:用来表示系统的概念设计、详细设计、子系统结构、动态模型等,包括类图、包的组织方式。
包括以下图:类图、对象图、包图和状态图。
Process视图:与logical视图相似,侧重于描述系统的线程和进程,对系统中重要对象的同步机制和通讯过程进行描述。
Development 视图:描述代码组件的组织方式。
包括:Component图。
Deployment 视图:描述部署系统的物理结构图,包括系统硬件、软件构件的拓扑结构。
5.用例图的三要素
用例图组成的三要素:
用例(Use Case):描述的是用户可见的需求,一个具体的用户目标
参与者(Actor):使用系统的人或其他系统
参与者与用例之间的关系(Relationship)
6.简述用例建模的步骤
识别Actor;
捕获系统功能特性;
合并功能特性获得用例;
绘制用例图;
细化用例描述;
7.列举三种用例之间的关系
用例之间的关系:
泛化(Generalization):抽取一些用例共同的属性,定义一个基础用例;
包含(include):一个用例的执行要用到另外的用例;
扩展(extend):把新的用例(功能)插入到已有用例(基础用例);
8.根据下图阐述包之间的关系。
改动Account包中的元素时,需要注意什么问题。
(注:如果A包依赖B包,表示B包中的元素发生修改,则要检查A包中的元素是否也需要修改,反之是不需要的)
因为Customer包依赖Account包,当Account中的元素发生修改时,应当先检查Customer包中的元素是否也需要修改,如果Customer包的元素不需要修改,则相应地也不用修改Loan包中的元素,如果Customer包中的元素发生修改时,因为Loan包依赖Customer 包,则要检查Loan包中的元素是否也需要修改。
9.RUP把系统类划分的三种类型
RUP中把系统类划分为三大类型(stereotype):边界类(boundary)、控制类(Controller)、实体类(Entity);
boundary:处于系统与外界的交界处,通常用来完成参与者与系统之间的交互。
Controller:协调控制其他类的工作,主要用来体现程序的执行逻辑。
Entity:描述具体的实现,维护数据,通常映射到数据库基表或文件。
10.列举类之间的关系
泛化(Generalization):表示类之间的继承;
关联(Association):对象之间发生的关系;
聚合(Aggregation):整体与局部;
组成(Composition):强聚合关系;
依赖(Dependency):一个对象的方法要用到另外的对象作为参数;
抽象类&接口;
11.比较描述用例的事件流(Flow of Events)和活动图(Activity Diagram)的异同
12.简述时序图(Sequence Diagram)和合作图(Collaboration Diagram)的异同
时序图是按照时间的先后顺序来描述对象之间的交互过程;
与顺序图类似,也是用于描述对象之间的交互关系;
两种描述的内容相同(语义相同),都是用于描述系统的动态特性,只是表现形式不同;
合作图强调交互对象的组织,对于一些复杂的交互,适合采用合作图;
13.用包组织的方式举出一种典型的系统设计架构
案例:
1.大学选课系统是与学生有着紧密的联系的系统。
学生可以登录该系统选修课程,查看分数。
教授可以登录到系统选择课程授课,提交学生成绩。
学校另有一个系统里面保存有课程目录信息,选课系统需要和课程目录系统通讯以取得课程目录信息。
分析其UML模型(actor:学生、教师、课程目录系统;学生用例:登陆、查看分数、选修课程;老师用例:登陆、递交学生成绩、选择课程。
然后画出用例模型图)
采用用例驱动的方法分析需求的主要任务是识别参与者和用例,并建立用例模型,主要分为以下三个部分。
(一)识别参与者(角色)
参与者表示与系统进行交互的任何人或物。
可以包括人(不只是最终用户)、外部系统和其它机构。
通过分析选课系统的功能需求,确定有以下三个参与者:
(1)学生:在系统中申请注册讨论班的人
(2)教师:完成验证注册信息的人或外部系统
(3)课程目录系统:指导或协助讨论班和管理学生成绩
(二)识别用例(用况)
用例是一系列活动,描述真实世界中参与者与系统相互交互的方式。
通过分析选课系统的功能需求,确定有如下用例:
(1)学生用例:
1)登陆
2)查看分数
3)选修课程
(2)老师用例:
1)登陆
2)递交学生成绩
3)选修课程
(三)建立用例模型
2.软件学院暑期短学期开设实训课,聘请的每位教师分别承担一门实训课,每位学生只能选其中的一门课程,每门课程的人数在40-60人之间(这段描述中有如下实体:学生、实训课程、老师,老师和课程是一对一的关系,课程和学生是1对多的关系,然后建立类图模型)
静态建模主要分为两步:
1)定义类
2)确定类的名字、属性和操作,建立类图。
第1步:识别分析类。
分析用例模型的每个用例,确定实现用例的类,分析每个类的职责、属性和关联。
将参与用例实现的类收集到一个类图中。
界面类——描述系统与角色之间的接口。
控制类——在分析模型内表示协调、顺序、事务处理以及控制其他对象的类。
实体型——为需要长久保存的信息进行建模的类。
第2步构造类图。