文档视界 最新最全的文档下载
当前位置:文档视界 › UML面向对象与设计教程课后习题答案(胡荷芬-高斐)简答题部分讲解

UML面向对象与设计教程课后习题答案(胡荷芬-高斐)简答题部分讲解

UML面向对象与设计教程课后习题答案(胡荷芬-高斐)简答题部分讲解
UML面向对象与设计教程课后习题答案(胡荷芬-高斐)简答题部分讲解

简答题

第一章

1.面向对象设计的基本特征有哪些?这些特征对软件设计有何帮助?

封装性继承性多态性

在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.

2.类与对象的区别是什么?

类是抽象的,不具体的。就像有些东西可以归为一类,比如说狗,猫,猪。它们都是动物,我们就可以归为一类。

而猫,狗就是动物类中的一个对象。

3.什么是软件生命周期?生命周期包括几个阶段?

软件的生命周期,亦称软件的生存周期。它是按开发软件的规模和复杂程度,从时间上把软件开发的整个过程(从计划开发开始到软件报废为止的整个历史阶段)进行分解,形成相对独立的几个阶段,每个阶段又分解成几个具体的任务,

然后按规定顺序依次完成各阶段

的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。

分为:一般分为定义,开发,维护三大阶段,

定义阶段有可行性论证和开发计划,需求分析,

开发阶段有概要设计,详细设计和编码,维护阶段有测试,运行维护

4.面向对象与uml的关系?

umL是统一建模图,用于便于描述类之间的关系等,是用来帮助你更好进行面向对象的设计。

5.面向对象设计与传统软件相比,有何优点?

更有针对性更容易让客户满意减少修改提高效率

第二章

1.uml模型元素有哪些?

UML中模型元素太多了,比如用例图中的元素有用例,角色,扩展关系,包含关系,类图中的元素有类,接口,关联等等,每一种框图都有各自独有的元素

2.简述uml通用机制组成以及它的作用?

一、修饰。

在使用UML语言建模时,可以将图形修饰附加到UML图中的模型元素上。比如,当一个元素代表某种类型的时候,它的名称可以用粗体字形类显示;当同一元素表示该类型的实例时,该元素的名称用一条下划线修饰。

二、注释。

UML语言中用一条虚线将注释连接到它为之解释的或细化的元素上。

三、通用划分。

UML语言对其模型元素规定了两种类型的通用划分:型-实例(值)和接口-实现。

1、型-实例(Type-Instance):描述一个通用描述符与单个元素项之间的对应关系。实例元素使用与通用描述符相同的表示图形,但是名字的表示与通用描述符不同:实例元素名字带有下划线,而且后面还要加上冒号和通用描述符的名字。

2、接口-实现:接口声明了一个规定了服务的约定,接口的实现负责执行接口的全部语义定

义并实现该项服务。

3.在uml中包含哪些视图?视图对应哪些图?

场景视图use case

逻辑视图类图

开发视图类图,组件图

进程视图无完全对应

部署视图部署图

4.简述视图与图的内在关系?

视图是几何体在投影面上留下的正投影,它是主视图、俯视图、左视图的总称,满足主视图与俯视图的长对正,主视图与左视图的高平齐,俯视图与左视图的宽相等。

5.简述uml中扩展机制的作用?

UML 提供了几种扩展机制,允许建模者在不用改变基本建模语言的情况下做一些通用的扩展。这些扩展机制已经被设计好,以便于在不需理解全部语义的情况下就可以存储和使用。由于这个原因,扩展可以作为字符串存储和使用。对不支持扩展机制的工具来说,扩展只是一个字符串,它可以作为模型的一部分被导入、存储,还可以被传递到其他工具。

第四章

1、在一个“客户服务系统”中,需要管理的用户包括客户管理人员、维护人员、部门领导,

他们都具有用户ID、姓名、性别、年龄、联系电话、部门、职位、密码、登录名。

其中,维护人员具有三个操作,即接受派工任务、填写维护报告、查询派工任务;

部门领导具有五个操作,即安排派工任务、修改派工任务、删除派工任务,查询派

工任务,处理投诉;客户人员具有四个操作,增加客户、删除客户、修改客户和查

找客户。根据这些信息,创建系统的类图。

2、在上题中,客户人员,维护人员,部门领导都具有一些共同的属性,所以可以进行抽象

出一个单独的抽象系统用户类,客户人员,维护人员,部门领导分别是系统用户类

下的继承,根据这些信息,创建包括类关系的类图

3、根据图4-51,创建相应带参数的对象图,要求用Actor构造型来表示

第五章

1、在客户服务系统中,将客户业务的功能单独的作为一个包,在该包中嵌套两个子包,分

别是客户咨询管理,和派工管理。

2、细化包图,在客服咨询管理中嵌套三个子包,分别是咨询,投诉,报修;派工管理中嵌

套两个子包,维护安排和回访安排,

3、子包对父包存在这依赖关系,现在要求对包进行分解,并创建他们的关系。

在客户服务管理系统中,有三个参与者,分别是客服人员、部门领导和维护人员。

第六章

1、客服人员登录系统后,通过身份验证,能够维护个人信息、修改密码、修改基本信息、维护客户信息和维护客户咨询信息,根据这些用例在rose中创建客服人员的用例图

2、部门领导登录系统后,通过身份验证们可以处理派工、处理投诉、安排回访、安排上门维护和统计查询客户来电情况,根据这些情况在rose中创建部门领导的用例图

3、维护人员登录系统后,通过身份验证,能够查询派工单、接受派工、填写报告、处理派工等,根据这些用例在rose中创建维护人员的用例图。

第七章

1、对客户服务系统中的客服人员修改客户信息的用例进行动态建模,该交互操作的动态建模由客服对象。客户信息界面类、客服信息控制类和客户信息类组成,在序列图中创建这些对象

2、在上题创建的序列图对象中,根据修改客户信息的用例,添加消息和脚本信息完成如图所示的完整序列图建模

3、对客户服务系统中的客服人员删除客户信息的用例进行动态建模,在逻辑视图中创建序列图

第八章

(1)在客户服务系统中个“客户来电”用例,当客户来电的事件发生后,进入“来电咨询”活动,如果受理,则查询客户信息,否则活动结束。当查询客户信息时,如果查询到客户,则判断咨询类型,否则新增加一个客户的信息。咨询类型有三种:咨询、投诉、保修,如果咨询,判断是否能解答问题,如果能,则直接处理,否则由维护人员跟进;如果是投诉,转入投诉处理;如果是保修,则转入报修处理。咨询处理结束后,填写咨询处理结果,整个活动的流程结束。根据以上描述,创建客户来电活动图中的需要表示的各种动作状态,如图8-31所示。

来电咨询查询客户信

息新增客户信

判断咨询类

新增咨询、填写处理结果维护人员跟

投诉处理能否解答问

故障处理

图8-32 创建动作状态

(2)在上题的基础上,识别出各种状态之间的额转换并考虑分支与合并、分叉与汇合的情况。绘制如图8-32所示的客户来电咨询活动图。

图8-32 客户来电咨询活动图

(3)在上题创建的活动图中有一个主要的缺点,它没有显示出由谁或者怎么负责来执行某项活动。为了给活动图中活动指明责任者,要求在活动图中放置两个泳道:客户和客户服务人员负责执行这些活动。最后的完整客户来电咨询活动图,如图8-33所示。

图9-18 创建协作图对象

(2)在上题创建的协作图对象中,根据修改客户信息的用例,添加消息和脚本信息,完成图9-19所示的完整协作图建模。

图9-19 修改客户信息协作图

(3)对客户服务系统中的客服人员删除客户信息的用例进行动态建模,在逻辑视图(Logical View)中创建完整的协作图,如图9-20所示。

图9-20 删除客户信息协作图

第十章

(1)在客户服务器系统中派工单有五个状态,即新派工单,未分配,已分配未完成,已分配已完成,删除派工单,图中还包括一个起始状态和一个终止状态。根据以上的描述,创建出派工单的各种状态,如图10-29所示。

图10-29 派工单的状态

(2)当派工单的状态在某一事件或某个条件满足时,就在这五个状态中进行转换。分配、作废、完成等是状态转换所发生的事件。根据各种状态以及装换规则,创建派工单完整的状态图,如图10-30所示。

图10-30 派工单状态图

(3)扩展上题创建的派工单简单状态图,让该图包含三个子状态:未分配,已分配未完成,已分配已完成,它们都内嵌在处理派工单超状态中,在嵌套状态中还可以包含一个起始状态和终止状态。根据以上描述,创建嵌套子状态的状态图,如图10-31所示。

图10-31 派工单嵌套状态图

第十一章

1、在客户服务系统中,可以确定系统业务尸体类包括客户人员、维护人员、部门经理、产

品项目、来电咨询、客户资料和派工单,将这些逻辑元素映射到构建中,如图11-35所示。

图11-35 映射构件

2、在上题的基础上,确定构件之间的依赖关系,并创建完整的客户服务系统的构件图,如

图11-36所示。

图11-36 完整构件图

3、客户服务系统的部署图包括客户端PC、应用服务器和数据库服务器,其中的客户端分

别由管理员、部门领导、客服人员、维护人员在不同的PC上登录。整个系统部署在企业的局域网中,根据上面的描述创建客户服务系统的部署图,如图11-37所示。

图11-37 客户服务系统部署图

面向对象程序设计—文本编辑器的设计与实现

课程设计报告书 课程名称面向对象程序设计 设计题目文本编辑器的设计与实现 专业班级 学号 姓名 指导教师 年月

目录 1 设计时间 (1) 2 设计目的 (1) 3设计任务 (1) 4 设计内容 (1) 4.1需求分析 (1) 4.2概要设计 (1) 4.2.1功能结构图 (1) 4.3详细设计 (2) 4.3.1流程图 (3) 4.4系统的功能实现 (4) 4.4.1类或包的加载 (5) 4.4.2设计一个主类,变量的定义 (5) 4.4.3文件操作功能的实现 (6) 4.5运行测试 (25) 4.5.1文本编辑器界面 (25) 4.5.2各功能菜单界面 (25) 5 总结与展望 (26) 参考文献 (26) 成绩评定 (27)

1 设计时间 2011年12月19日~2011年12月25日 2 设计目的 本次设计是学习完《java6程序设计》课程后进行的一次全面的综合练习,目的是加深对本学期课程的理解,通过设计文本编辑器并实现其功能来熟练掌握java语言基础,初步掌握软件开发的基本方法与技术将理论课程中学到的知识运用到实践中,实现有一定规模的Java应用。 3设计任务 本次设计的主要任务是文本编辑器的设计与实现,要求设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。 4 设计内容 4.1需求分析 现在网络上各种文本编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed,xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的文本编辑器程序。 4.2概要设计 4.2.1功能结构图

UML面向对象分析与设计

UML面向对象分析与设计 大作业 前言 “UML面向对象分析与设计”是计算机专业和软件工程等相关专业的一门重要课程,也是其他理工科专业的热门选修课程。“程序设计语言”、“计算机网络”、“数据库原理”和“数据机构”等是它的前导课程,学好本课程对学生毕业后从事软件开发有着极为重要的作用。 要学好这门课,仅仅通过课堂教学或自学掌握理论知识是远远不够的,还必须加强实践。特在学期末引入uml的综合分析与设计,从实际项目出发,使学生学会运用软件工程基本理论知识,UML建模语言和rose建模环境,去解决软件开发中的实际问题,达到学以致用的目的。

面向对象软件开发技术 项目的引入及需求 简易教学管理系统的分析、设计与实现 一、设计的目的 1.初步了解UML语言的概念、结构、语义与表示方法; 2.掌握UML建模工具Rational Rose的使用方法; 3.给出某个简单系统的模型,能够熟练地使用Rose工具表达; 二、设计理论基础 1. 面向对象的程序设计C++或JAVA程序设计课程; 2.数据结构或算法课程 2.SQLServer或mysql数据库系统; 3. 熟悉传统软件工程以及软件测试技术。 三、设计内容与步骤 需求陈述:简易教学管理系统主要提供两个方面的服务: 选课管理,负责新学期的课程选课注册。 成绩管理,负责学生成绩管理。 (1)简易教学管理系统---选课管理应提供的服务如下: 1.录入与生成新学期课程表 教学管理人员在新学期开学前录入新学期的课程,打印将开设的课程目录表,供师 生参考选择。如果某门课实际选课的学生少于10人,则停开该课程,把该课程从 课程表中删除;如某课程选课学生多于60人,则停止选课。 2.学生选课注册 新学期开始前一周为学生选课注册时间,在此期间学生可以选课注册,并且允许改 变或取消注册申请。 每个学生选课可不允许超过4门,每门课最多允许60名学生选课注册。 3.查询 可以查询课程信息、学生选课信息和学生、教师信息。

面向对象的分析设计实现--图书管理系统

实验报告面向对象的分析设计实现—图书管理系统 一.需求分析 1.1系统需求描述 一般图书馆管理系统主要用于对图书馆日常工作的管理,主要任务是用计算机对读者、图书等各种信息进行日常管理,如查询、修改、增加、删除、图书借阅和归还的管理等。本系统实现了图书馆的信息化管理,完成了图书馆管理系统的基本功能。 一般图书馆管理系统主要包括用户登录子系统、用户管理子系统、图书管理子系统、图书借阅与归还、图书和用户信息查询子系统四个部分,各部分主要功能如下: 用户登录子系统:用于数据库的连接,主界面的设计和不同身份用户的登录管理。 用户管理子系统:用于用户信息的管理,如用户添加、用户信息修改、用户删除。 图书管理子系统:用于图书信息的管理,如新书入库、图书信息修改、图书信息删除。 图书借阅与归还子系统:用于用户借阅和归还图书。 图书和用户信息查询:图书和用户信息的查询。 1.2系统功能结构图

图 1.1 图书管理系统分析系统流程图 1.3 系统解决方案 以上述一般的图书管理系统分析为构思原型。为简化系统,忽略掉其他复杂琐碎的功能需求,仅保留图书信息的录入、修改和读者借、续借、还的功能。读者与管理员通过界面对象调用控制类对象,控制对象进行各种操作并把信息写入数据库。 二.系统设计 2.1 系统E-R图 图 1.2 用户实体图

图1.3 书籍实体图 图 1.4 实体属性图 2.2数据库表结构 表2.1 图书信息表

表2.2 用户借阅表 表2.3用户信息表 2.3用例文档 本系统共设置四个活动者。分别是TT_People、TT_Registrar、TT_Reader 和TT_Database。其中TT_People泛指与系统发生关系的人;TT_Registrar为系统管理员,负责添加、修改图书信息;TT_Reader为所有读者,读者可能发生借书、续借、还书的行为;TT_Database为存储各种信息的数据库对象。另:考虑到现实图书馆中还存在“图书馆管理员”这一角色,但其所起的作用仅为代替读者完成各种系统操作,故没有设置此活动者。 系统中共有五个用例。TT_Addinfo、TT_Modifyinfo、TT_Borrow、TT_Renew 和TT_Return。TT_Addinfo表示管理员添加图书信息;TT_Modifyinfo表示修改图书信息;TT_Borrow表示读者借阅图书;TT_Renew表示读者续借图书;TT_Return表示读者归还图书。

(完整版)面向对象程序设计与面向过程程序设计的区别(2)

面向过程程序设计和面向对象程序设计的区别 面向过程程序设计我个人的理解简单来说,他考虑问题的方式是面向流程的,一个程序的设计思路就是解决一个问题的流程。就好比游戏先登入界面,再输入密码,然后选择角色,在然后进入游戏玩耍,结束... .... 这把这些步样就是面向过程。面向过程就是分析出解决问题所需要的步骤,然后用函数骤一步调用就可以了一步实现,使用的时候一个一个依次。可以看出面向过程化程序设计是先确定算法,再确定数据结构。而面向对象程序设计是面向问题中的各种独立个体的,程序的析设分计过程就是将程序分解成不同对象(不同概念体)之间的交互的过程。这就好比在针对某个工程或游戏设计程序时先不考虑,游戏是怎么玩的,工作是怎么做的,而先会去找,游戏或工程中有哪些人或事物参与(一般选择:用户,玩家,角色等等),然后再看他们都有什么用,都干了些什么,针对这个区设计方法。最后在通过这些千丝万缕的联系把他们分门别类的,组装在一起。可以看出面向过程化程序设计是先确定数据结构再确定算法。 从上面很容易看出,面向过程的程序上一步和下一步环环相扣,他只考虑实现客户的需求不考虑以后扩展,如果以后客户的需求有变化那代码量要改变非常大耗费的时间也相当多。从本质上说,面向过程基本上是一种状态机,不利于修改,当新状态出现的时候,甚至可能需要重设每一个状态解决实现。所以说面向过

程是一种直接的编程方法,它是按照编程语言的思路考虑问题。尤其是想C语言这种过程式语言,它就是通过顺序执行一组语句来实现一个功能,这些语句的执行过程就是整个程序。不同的语言解决同一个问题的过程是不一样的。 而面向对象的程序设计很多东西都是独立的,每个对象都可以重复使用。而面向对象程序设计强调“封装”,“继承“和“多态”。数据和与数据相关的操作被包装成对象(严格的说是“类”),每一种对象是相对完整和独立的。对象可以有派生的类型,派生的类型可以覆盖(或重载)原本已有的操作。所有的这些,是为了达成更好的内聚性,即一种对象做好一件(或者一类相关的)事情,对象内部的细节外面世界不关心也看不到;以及降低耦合性,即不同种类的对象之间相互的依赖尽可能降低。而所有的这些,都有助于达成一个崇高的目标,就是可复用性。 下面举个例子来说明面向过程的程序和面向对象的程序设计的区别: 用面向过程的思想去考虑它应该是这样的:如何启动汽车、如何起步、加速、刹车、熄火等一个个操作。面向过程是把所有的功能全部在一个大的类里定义出来,当系统庞大时,功能多了,各种操作之间的调用关系也很复杂,当需要修改一个功能时就可能引发一连串的改动,使修改和维护成本增加,而不利于修改。 而面向对象则以汽车为对象,一切由汽车开始,以上的可用操

面向对象分析与设计试题及其答案

面向对象分析与设计试题B卷 一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2 分,共20 分) 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是()的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中()是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 3.下列不属于面向对象技术的基本特征的是()。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是()。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 6. ()是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 7. ( ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图 和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 8.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之 间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 9.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统 中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 10. 使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 二、填空题( 每空1 分,共20 分) 1. 面向对象开发方法一改过去传统的以___功能分析___为基础的__面向过程__的结 构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为

面向对象三维图形引擎的设计与实现

第39卷 第1期 电 子 科 技 大 学 学 报 V ol.39 No.1 2010年1月 Journal of University of Electronic Science and Technology of China Jan. 2010 面向对象三维图形引擎的设计与实现 邱 航,陈雷霆 (电子科技大学计算机科学与工程学院 成都 610054) 【摘要】提出并实现了一种面向对象的三维图形渲染引擎Gingko ,对引擎的体系结构、各模块之间的关系以及关键技术进行了分析说明。该引擎提供可扩展的软件体系结构、高效的场景处理方法、方便易用的应用程序接口,为三维图形应用的快速开发和高效运行提供了支撑。实验证明,该引擎具有运行稳定、渲染速度快的特点,对于大规模室外场景的渲染速度能保持在20 fps 以上。 关 键 词 图形引擎; 插件; 实时渲染; 真实感渲染 中图分类号 TP391.41 文献标识码 A doi:10.3969/j.issn.1001-0548.2010.01.028 Design and Implementation of Object-Oriented 3D Graphics Engine QIU Hang and CHEN Lei-ting (School of Computer Science and Engineering, University of Electronic Science and Technology of China Chengdu 610054) Abstract An object-oriented 3D graphics engine is presented and implemented. The general architecture, the relationships of every module, and the key techniques of the engine are discussed. This engine can support extendable software architectures, and provide high efficient scene rendering method and convenient application programming interfaces. It can greatly accelerate the development of 3D graphics and provide supports for its efficient running. Experimental results show that this engine has high stability and high rendering speed, for rendering large-scale out-door scene, the speed is still above 20 fps. Key words graphics engine; plug-in; real time rendering; realistic rendering 收稿日期:2008 ? 06 ? 25; 修回日期:2009 ? 04 ? 28 基金项目:国家863高技术研究发展计划项目(2006AA01Z335);总装“十一五”预研项目 作者简介:邱 航(1978 ? ),男,在职博士生,讲师,主要从事计算机图形学、数字媒体技术方面的研究. 实时真实感图形生成是计算机科学技术的重要 研究方向,目标是使计算机可以产生与真实世界相 同或高度近似的视觉环境,从而使用户获得身临其 境的视觉感受[1-2],其应用范围覆盖大众娱乐、视景 仿真、城市规划及文化教育等诸多领域。 近年来,随着计算机图形软、硬件的不断发展, 人们对实时真实感渲染以及场景复杂度提出了更高 的要求。传统的直接使用底层图形接口如OpenGL 、 DirectX 开发图形应用的模式越来越暴露出开发复 杂性大、周期长、维护困难的缺陷。鉴于以上原因, 三维图形引擎相关技术受到了广泛的关注。目前, 国外已有众多商用或开源三维图形引擎,如 OGRE [3]、OSG [4]等。 OGRE(object-oriented graphics rendering engine) 是一种用C++实现的跨平台开源三维图形引擎。该 引擎底层对DirectX 、OpenGL 进行完全封装,采用 了基于插件的体系结构,方便用户使用和功能扩展。 但OGRE 过于庞大和复杂,使用户感觉掌握困难。此外,由于底层对DirectX 和OpenGL 的完全封装,用户无法对基本图形API 进行直接操作。 OSG(open scene graph)是一款著名的3D 图形引擎,主要用于虚拟现实、仿真和游戏等领域。OSG 底层只提供了对OpenGL 的封装,与其他图形引擎一样,拥有诸如场景管理、地形管理和底层API 封装等功能。但OSG 的渲染管理比较特殊,它不是采用渲染队列进行渲染管理,而是采用渲染树,更为高效。 Irrlicht 引擎是一款开源、跨平台的3D 引擎,底层封装了DirectX 和OpenGL ,并提供基于GLSL 和HLSL 的可编程渲染管道。该引擎结构简单、速度快。但Irrlicht 以牺牲渲染质量达到高速的目的,在光照等真实感方面比较薄弱。 纵观目前国内外三维图形引擎的发展格局,开发具有自主知识产权、融入新方法、新技术的三维图形引擎是我国在信息技术领域的一项重要目标。 本文提出并实现了一种面向对象的三维图形引擎Gingko ,该引擎不仅能提高用户的开发速度,而

面向对象分析与设计试题A卷及答案

面向对象分析与设计试题A卷及答案 一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 ) 1. 到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是( D )的 出现和广泛使用,使面向对象方法成为了软件开发的主流方法。 A. OMT B. OOSE C. C++ D. UML 2.( D )为编程人员提供了重复利用程序资源的一种途径,使编程人员可以扩充和完善旧的程序以适用新的需求。 A. 封装机制 B. 抽象机制 C. 多态机制 D. 继承机制 3. 面向对象程序设计中用( C ) 来描述具有相同属性和行为的对象集合。 A. 实体 B. 对象 C. 类 D. 类模板 4. 下列语言中, ( D ) 是一种混合型面向对象编程语言。 A. C语言 B. Java语言 C. Basic语言 D. C++语言 5. 下列不属于类的成员函数的是 (D )。 A. 构造函数 B. 析构函数 C. 缺省构造函数 D. 友元函数 6. 多态机制的作用是 ( B )。 A. 信息隐藏 B. 实现“一种接口,多种方法” C. 派生新类 D. 数据抽象 7. 合理地利用( B ), 既可以实现部分成员隐蔽,又能方便部分成员的继承,实现代 码的高效重用和扩充。 A.公有继承 B.保护继承 C.友员函数 D.私有继承 8. ( C )经过实例化而生成具体的类。 A.抽象类 B.函数模板 C.类模板 D.对象 9. 类的析构造函数是在 ( C ) 时调用的。 A.不自动调用 B.创建对象 C.删除对象 D.创建派生类对象 10.在公有继承的情况下,基类的( C)成员无法继承到派生类中。 A. 公有成员 B. 保护成员 C. 私有成员 D. 静态成员

2016面向对象分析与设计复习题

2016面向对象分析与设计复习题 一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 2 分,共20 分) 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是()的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中()是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 3.下列不属于面向对象技术的基本特征的是()。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是()。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 6. ()是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 7. ( ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图 和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 8.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之 间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 9.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统 中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 10. 使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 五. 试用UML对教学管理系统及相关的数据库系统进行分析和设计。学生选课系统一般包括(1)选课管理功能;(2) 成绩管理功能。试完成下列工作: (1)建立系统静态结构模型—画出系统用例图和类图;(10分) (2) 建立系统动态结构模型—画出系统序列图和协作图;(10分) (3)建立关系数据库逻辑模型。(10分) 【答案: (1) 系统用例图如下

(完整word版)面向对象分析与设计简答题

1、什么面向对象? 面向对象不仅是以些具体的软件开发技术与策略,而且以一套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。 2、软件开发方法学的基本方法有哪些? 1)软件工程和瀑布方法学2)新方法学:螺旋式、迭代式、递增式、合并式3)面向对象方法学:UML、RUP、XP 3、为什么需要OOA、OOD。 OOA就是运用面向对象的方法进行需求分析,OOA加强了对问题域和系统责任的理解,有利于人员之间的交流,对需求变化的适应性较强,很好的支持软件复用。 OOD就是运用面向对象的方法进行系统设计,OOD.符合人们习惯的思维方法,便于分解大型的复杂多变的问题;易于软件的维护和功能的增减;可重用性好;与可视化技术相结合,改善了工作界面。 4、从概念层次、规格层次、实现层次三个角度如何理解对象的概念? 从概念层次来看,一个对象就是一系列的责任; 从规格层次来看,一个对象是一系列可以被其他对象或该对象自己调用的方法;从实现层次来看,一个对象是一些代码和数据。 5、如何绘制类图和对象图?简述其步骤。 类图绘制:1发现类,找到备选类,确定候选类2关联分析,确定关联关系,多重性分析3职责分析4限定与修改,导航性分析,约束,限定符; 对象图绘制:1发现类和对象2对其细化,分析,确定关系。 6、简述重定义方法与重载的区别。 重定义:1参数列表必须完全与被重写的方法相同2返回类型必须一直域被重写的方法的类型相同3访问修饰符的限制一定要大于被重写方法的访问修饰符4重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查性异常:重载:1必须有不同参数列表2可以有不同的返回类型,只要参数列表不同即可3可有不同访问修饰符4可抛出不同的异常。 7.简述抽象方法与虚方法的联系与区别 虚方法有一个实现部分可以为子类实现有共同的方法,并为派生提供了覆盖该方法的选,抽象方法只是强制派生覆盖方法;抽象方法只能在抽象类中声明,而虚方法不是;抽象方法不能声明方法实体,虚方法可以;包含抽象方法的类不能实例化,但虚方法可以。 8、简述使用继承的规则。 1)、不要过度使用;2)、子类应是超类的一个类型;3)、子类应是超类的扩展; 4)、尽量少从具体类继承,最好继承接或抽象类。

(完整版)面向对象程序设计与面向过程程序设计的区别1

面向对象程序设计与面向过程程序设计的区别 想要知道面向对象程序设计与面向过程程序设计的区别,我们应先了解什么事面向对象程序设计,什么事面向过程程序设计,这样我们才能弄清他们之间的区别,下面我们就什么是面向对象程序设计和什么事面向过程程序设计展开论述。 面向对象的基本概念: (1)对象。 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。 (2)对象的状态和行为。 对象具有状态,一个对象用数据值来描述它的状态。 对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。 对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中 (3)类。 具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。 类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。 类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。 (4)类的结构。 在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。 ①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。 ②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。 (5)消息和方法。 对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。 类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。 (1)对象唯一性。 每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。 (2)抽象性。 分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。 (3)继承性。

面向对象系统分析与设计教学大纲

《面向对象系统分析与设计》教学大纲 一、课程的性质和任务 面向对象系统分析与设计课程是计算机科学与技术本科专业的一门重要的专业课。通过本课程的学习,使学生在已有的计算机软、硬件基础知识、程序设计知识、数据库和网络通信知识的基础上系统掌握面向对象系统分析与设计的基本方法和技术,并具有针对特定环境下的应用问题进行信息系统开发(包括系统分析、设计与实现)的能力。 二、课程的基本要求 1.掌握系统分析与设计的基本概念和方法。 2.掌握面向对象的基本概念。 3.掌握面向对象系统分析与设计的常用方法和UML统一建摸语言。 4.能运用面向对象系统分析与设计的基本技术方法和开发工具,承当软件 项目的开发,设计和管理。 三、课程的核心 1.基本概念:系统、系统分析与设计、面向对象基本概念(对象和类、属 性、消息、方法等) 2.基本方法:面向对象系统分析与设计方法(包括OMT方法、UML统一建模语言等)、项目管理方法 四、预备知识 在学习本课程之前,应具有计算机、网络和数据库的基础知识、并应至少掌握一门面向对象程序设计语言(如VC++、JAVA或VB),至少掌握一种数据库管理系统(如ORACLE、SQL SERVER或ACCESS)的使用。 五、教学环节 本课程由课堂教学、实验和课程设计等教学环节组成。针对本课程的特点:技术新、外文资料多,课堂教学采用双语教学方式,使用多媒体教学手段,将理论教学与案例讲解、实际系统演示相结合,使学生系统掌握本课程的基本理论知

识以及方法和技术;实验环节中要求学生学习并熟练掌握一种或几种流行的系统建模工具、数据库和编程语言以及项目管理软件的使用;课程设计环节包括设计题目的讨论、分析、设计和实现,通过课程设计使学生将理论应用于实践,加强学生对实际问题的分析和解决能力,以及团体协作和项目管理能力。通过这些教学环节,将学生培养成为基础理论扎实、动手能力强,并且能力全面的综合型人才。 六、教学内容 (一)课堂教学内容 第一章系统分析与设计概论 (Introduction to System Analysis and Design) 1.1系统分析与设计基本概念 (What is System Analysis and Design) 1.1.1 系统和信息系统 (System and Information System) 1.1.2 系统分析与设计 (System Analysis and Design) 1.1.3信息系统生命期和信息系统开发生命期 (System Life Cycle and the Process of System Development) 1.1.4 信息系统分析和设计的基本原则 (The Principles for System Analysis and Design) 1.2系统开发模型和方法 (System Development Models and Methods) 1.2.1 常用模型: 瀑布模型(Waterfall Model) 螺旋模型(Spiral Model) 喷泉模型(Fountain Model) 1.2.2 结构化系统分析与设计方法

面向对象分析与设计

1.面向对象的基本原则主要有:抽象、分类、封装、消息通信、多态性、行为分析和复杂性控制。 2.多态:一般类和特殊类可以有相同格式的属性或操作,但这些属性或操作具有不同的含义。 3.封装的目的是什么?在面向对象方法中封装的目的是如何达到的? 使对象能够集中而完整地对应并描述具体的事物,体现事物的相对独立性,增加了对象的内聚度。 对象的外部只允许通过由对象提供的外部可用的操作来访问其内部,这也降低了对象间的耦合度。 面向对象方法中的封装就是用对象把属性和操纵这些属性的操作包装起来,形成一个独立的单元。 4.面向对象的主要优点? ①改变了开发软件的方式。无论是系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可以直接映射到问题域。 ②使得客观世界到计算机的语言鸿沟变窄。 ③使分析与设计之间的鸿沟变窄 ④有助于软件的维护与复用 ⑤有助于提高软件的质量和生产率 5.UML2.4规范由四个部分组成:基础结构、上层结构、对象约束语言和图交换。 6.UmL2.4支持的模型图在逻辑上分为两大类:结构图(静态)和行为图(动态)。 结构图:类图、包图、对象图、组合结构图、构件图、部署图、外扩图。 行为图:用况图、顺序图、状态机图、活动图、交互图、交互概览图、通信图、定时图。 7.什么是OOA以及与OOD的区别? Object-Oriented Analysis,就是运用面向对象方法进行进行系统分析。强调运用面向对象方法,对问题域和系统责任进行分析与理解,找出描述问题域和系统责任所需要的对象,定义对象的属性、操作以及对象之间的关系,目标是建立一个符合问题域、满足用户需求的OOA模型。 而Object-Oriented Design,是针对系统的一组具体的实现条件,继续运用面向对象的建模语言进行系统设计。包括两个方面:①根据实现条件对OOA模型做某些必要的修改和调整②针对具体实现条件,建立人机界面、数据存储和控制驱动等模型。 关系:OOA和OOD追求的目标不同,但采用一致的概念、原则和表示法,OOD以OOA 为基础,只需必要的修改和调整,或补充某些细节,并增加几个与实现有关的相对独立部分。因此,OOA与OOD之间不存在像传统方法中那样的分析与设计之间的鸿沟,二者能紧密衔接,大大降低了从OOA过渡到OOD的难度和出错率。 8.软件中的分析面临的主要问题:对问题域和系统责任的正确理解、人与人之间的正确交流、如何应对需求的不断变化以及软件复用对分析的要求。 9.问题域:被开发系统的应用领域。系统责任:被开发系统应该具备的职能。 10.OOA模型?P19 OOD模型?P105 11.类图的主要构成成分:类、属性、操作、泛化、关联和依赖。 ①对象层:给出系统中所有反映问题域与系统责任的对象。 ②特征层:给出每一个类(及其所代表的对象)的内部特征,即给出每个类的属性和操作。 ③关系层:给出各个类(及其所代表的的对象)彼此之间的关系。 12.如何画用例图(注:要有用例的描述)?P25 13.用况图:是一副由参与者、用况以及这些元素之间的关系组成的图。 14.如何画类图?P50

相关文档
相关文档 最新文档