可视化建模与UML习题集升级版 下载本文

专题一&专题二:UML概述&面向对象基础

一、单项选择题

1、组成UML构造块三大要素为:( B )

A、事物、元素、关系 B、事物、关系、图形 C、事物、组件、图形 D、事物、图形、结构 2、UML中的事物分为哪几类?( A )

A、结构、行为、分组、备注等四类事物 B、结构、图形、行为、分组等四类事物 C、类、行为、分组、备注等四类事物 D、分组、备注、结构、图形等四类事物 3、UML中的关系分为哪几种?( C )

A、依赖关系、类关系、一般化关系、合作关系 B、依赖关系、泛化关系、实现关系、继承关系 C、依赖关系、关联关系、泛化关系、实现关系 D、依赖关系、关联关系、泛化关系、合作关系 4、所谓的4+1视图是指( A ) A、Design View、 Interaction View、 Implementation View、Deployment View、useCase View B、Interaction View、 Implementation View、Deployment View、Customer View、useCase View C、Interaction View、 Implementation View、Deployment View、 Process View、useCase View D、Design View、 Interaction View、 Implementation View、 Process View、useCase View 5、在UML中属于静态视图的是( D )

A、顺序图、协作图、包图、类图 B、对象图、类图、构件图、包图 C、顺序图、用例图、对象图、类图 D、对象、类图、构件图、部署图 6、下列关于UML叙述正确的是( D )

A、UML是一种语言,语言的使用者不能对其进行扩展 B、UML仅是一组图形的集合

C、UML仅适用于系统的分析与设计阶段 D、UML是独立于软件开发过程的

7、下列描述中,哪个不是建模的基本原则( D ) A、要仔细的选择模型

B、每一种模型可以在不同的精度级别上表示所要开发的系统 C、模型要与现实相联系

D、对一个重要的系统用一个模型就可以充分描述 8、下列描述中,哪个不是软件与硬件的区别(D ) A.软件是被开发或设计的,而不是被制造的; B.软件不会“磨损”,但会“退化”;

C.软件的开发至今尚未摆脱手工艺的开发方式; D.软件开发与硬件开发的流程一样。

9、UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中( B )是面向对象系统建模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择( A );当需要说明体系结构的静态实施视图时,应该选择( D )。

(1). A.组件图 B.类图 C.对象图 D.部署图 (2). A.组件图 B.协作图 C.状态图 D.部署图 (3). A.协作图 B.对象图 C.活动图 D.部署图

10、Blue软件公司就目前的“通信网关”项目中存在的质量问题,召开了一次产品质量问题鉴定会,会议得出的结论是:该系统的质量问题是由于系统设计阶段未能正确地设计产品

的类图而导致的。请问以下哪个项目成员应该为问题负主要责任。 ( B ) A软件开发工程师 B系统架构师 C系统分析员 D 软件测试工程师 11、对象技术是( A )

A、一系列指导软件构造的原则 B、一种新的已被认可的理论

C、Grady Booch发明的一种新的动态的语言 D、仅仅基于模块化的原则

二、填空题

1、UML是 Unified Modeling Language 的英文缩写。

2.UML中的图分为:__类图__、对象图、_构件图__ 、用例图_、活动图、__状态图___、协作图、_顺序图__、 部署图九种。

三、简答题?

1.什么是建模?为什么要建模? 模型是现实的简化。 我们建模是为了能够更好的理解我们正在开发的系统 2.UML包括哪些组成部分?

UML包括三个主要部分:构造块、规则以及公共机制 3.什么是面向对象?面向对象的特点是什么?

4.UML图有哪些?其中哪些是静态图?哪些是动态图?

UML图包括:类图、构件图、用例图、状态图、顺序图、对象图、活动图、协作图、部署图

其中,类图、构件图、对象图、部署图是静态视图 用例图、状态图、顺序图、活动图、协作图是动态图

专题三:类图(对象图、包图)

一、单项选择题

1.UML中类的有三种,下面哪个不是其中之一( D ) A.实体类 B.边界类 C.控制类 D.主类

2.在UML中,类之间的关系有一种为关联关系,其中多重性用来描述类之间的对应关系,下面哪个不是其中之一( D ) A. 0….1 B. 0….*

1

C. 1….* D. *….*

3.通常对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不是UML中的类成员访问限定性( C ) A.公有的(public)

B.受保护的(protected) C.友员(friendly) D.私有的(private) 4、在一个课程注册系统中,定义了类CourseSchedule和类Course,并在类CourseSchedule中定义了方法add(c:Course)和方法remove(c:Course),则类CourseSchedule和类Course之间的关系是:( C )

A、泛化关系 B、组成关系 C、依赖关系 D、包含关系 5、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是( )关系。( C )

A、 实现 B、关联 C、 依赖 D、 泛化 6、在UML2.0版本中的图形表示方式中,“包”的表示方式是下列图形中的哪一个 ?(A)

组件1 A、 B、 C、 7、在UML中下列图形代表什么关系?( A )

D、

A、组成关系 B、 依赖关系 C、聚集关系 D、泛化关系 8、在UML中下列图形代表什么关系?( D )

A、一般化关系 B、 依赖关系 C、聚集关系 D、泛化关系 A B C D 9、汽车(Car)由轮子、发动机、油箱、座椅、方向盘等组成。那么car类和其他类(Wheel、Engin、Tank、Chair、SteeringWheel)之间的关系是:( D ) A、泛化关系(Generalization) B、实现关系(Realization) C、包含关系(Inclusion) D、组合关系(Composition) 10.在下面的图例中,哪个用来描述注释( D )

2

A B C D

11.关于包的描述,哪个不正确(E )

A.和其他建模元素一样,每个包必须有一个区别于其他包的名字; B.包中可以包含其他元素,比如类、接口、组件、用例等等; C.包的可见性分为:public、protected、private;

D.引入(import)使得一个包中的元素可以单向访问另一个包中的元素; E.导出(export)使的一个包中的元素可以单向访问另一个包中的元素;

12、消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务,一个消息通常包括:(C)

A、发送消息的对象的标识、调用的发送方的操作名和必要的参数 B、发送消息的类名和接收消息的类名

C、接收消息的对象的标识、调用的接收方的操作名和必要的参数 D、接收消息的类名

13、在一个网络游戏系统中,定义了类Cowboy和类Castle,并在类Cowboy中定义了方法open(c:Castle)和方法Close(c:Castle),则类Cowboy和类Castle之间的关系是:??( A )

A、依赖(dependency)关系 B、组成(composition)关系 C、泛化(generalization)关系 D、包含(include)关系 14、根据下面的代码,判断下面那些叙述是正确的?( A )

public class HouseKeeper{

private TimeCard timecard; public void clockIn(){ timecard.punch(); } }

A、类HouseKeeper和类TimeCard之间存在关联(Association)关系; B、类HouseKeeper和类TimeCard之间存在泛化(Generalization)关系; C、类HouseKeeper和类TimeCard之间存在实现(Realization)关系; D、类HouseKeeper和类TimeCard之间存在包含(Inclusion)关系

15、UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请将合适的关系填写在下

列描述的(D )中。

① 用例及其协作之间是(A )关系。

②类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是( C)关系。

③在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是(B )关系。

④森林和树木之间是( E)关系。关系。

⑤在MFC类库中,Window类和DialogBox类之间是(D )

3

A 实现 B 关联 C 依赖 D 泛化 E 聚合

16、已知类A需要类B提供的服务,下列所描述的四种情况中,哪种情况不好把类A和类

B之间的关系定义成依赖关系 ( D )

A、类A中存在两个操作都需要访问类B的同一个对象

B、类A的某个操作内部创建了类B的对象,而其他操作均与类B无关 C、类A的某个操作其参数是类B的对象,而其他操作均与类B无关 D、类B是一个全局变量 17、“一个研究生在软件学院做助教(teaching assistant),同时还在校园餐厅打工做收银员(cashier)。也就是说,这个研究生有3种角色:学生、助教、收银员,但在同一时刻只能有一种角色。”

根据上面的陈述,下面哪个设计是最合理的?(B)

PersonPerson<<接口>>PersonRole0..1StudentTeachingAssistantCashierStudentTeachingAssistantCashier

A B

Student<<接口>>Cashier<<接口>>TeachingAssistant<<接口>>StudentTeachingAssistantCashierPersonPerson

C D

18、类X与类Y有许多的属性,但是它的行为与类Y稍微有所不同;这时可以认为类X是

类Y的一种特例;则类X和类Y之间是( A )关系。

A 、泛化关系 B、 关联关系 C、 依赖关系 D、 实现关系 19、关于类和对象的关系,下列说法中哪个是错误的 ( B )

A、每个对象都是某个类的实例

B、每个类某一时刻必定存在对象实体 C、类是静态的描述 D、对象是动态的实例

二、填空题

4

1.下图中类的名字是:__login__类中的成员属性是:sname_、spass__ 类中的行为(方法)是:____checkuser()____。

2、在UML中分组元素是 包 。

3、在UML模型图中,最适合用来设计数据库大纲的图形是 类图 。 4、在对系统建模时、接口可分为 提供接口 、 所需接口 。

5、下图所表示的含义是WashingMachine 实现 了接口ControlKnob,Person 使用 了接口ControlKnob

三、简答题

1、在UML建模中使用“包”是为了达到怎样的效果?

在UML中,包是分组事物的一种,它是建模时用来组织模型中的元素的,在系统运行时并不存在包的实例。包在开发大型软件系统时是一个非常重要的机制,它就象一个“容器”,可用于组织模型中的相关元素以便更容易理解。

2、下图显示了某个学校课程管理系统的部分类图,其中一个学生(student)可以知道所有注册课程的教师(instructor),一个教师也可以知道所有注册课程的学生。

现在提出一个新的需求:\一个教师也可以是某些课程的学生\,那么下面设计A~C中哪一个是最好的?为什么? 设计A:

设计B:

5

. 设计C:

答案: 设计C最好。 理由:

设计A方案:应用了自身关联,可以实现新的需求,但是不便于扩展。 设计B方案:不能实现新的需求。

设计C方案:应用开闭原则,实现了新的需求,并且便于扩展。

3、 请为下面这段编译正确的代码,补充类图。 pulic class Student{ private String name;

public void setName(String name){ this.name=name; }

public String getName(){ return this.name; } }

4、 请参考下图,回答问题:

6

图A.2

1) 图中的实体类为____书籍、书目____ 2) 图中的控制类为_____书籍管理_____ 3) 图中的边界类为_____借书界面_____

4) “借书界面”类中的成员属性有___susername、spass___

四、根据下面的陈述画出类图

1)学生包括本科生、研究生两种。

2)研究生的一部分利用课余时间担任助教。 3)教师包括讲师和教授两种。

4)一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。

7

五、按如下描述画出一个自治机器人的类图。这张图的焦点是聚集在那些让机器人在路上行走的机制所对应的类上。你可以发现一个虚类Motor和两个从它派生出来的类:SteeringMotor和MainMotor。这两个类都从它的父亲Motor继承了五个方法:move()、stop()、resetCounter()、statues()、distance()。这两个类又是另一个类Driver的一部分。类PathAgent和Driver有一个1对1的关系,和CollisionSensor有1对n的关系。 【问题:】综上所述请你用UML来绘制分析类图 。

六、请根据以上题目描述,给出系统的UML类图设计方案,并用Java代码予以实现。

系统名称:农夫果园游戏系统

人物角色:农夫(Farmer)、市场调查员(Inquirer)、农场主(Boss) 系统实物:各种果树(Fruit)、果园(Garden)

功能需求:1、农夫可以根据市场行情种植各种水果;

8

2、市场调查员可以了解市场行情;

3、农场主可以向农夫、市场调查员发布命令

4、各种果树都具有种植(plant)、成长(grow)、收获(harvest)行为; 5、果园是人物和实物进行交易的经营场所。

Java代码: public class Fruit { }

public class Apple extends Fruit{ }

public class Grape extends Fruit { }

public class Farmer { }

public Fruit plant(String message){ }

if (message.equals(\ else

return new Grape();

return new Apple();

public void plant(){

}

public void grow(){

}

public void harvest(){

}

9

public class Inquier {

public String inquire(){ } }

public class Boss { }

public class Garden { }

private Boss boss; private Farmer farmer; private Inquier inquier; private Fruit fruit;

public String command1(Inquier inquier){ }

public Fruit command2(Farmer farmer,String message){ }

return farmer.plant(message); return inquier.inquire(); return \

专题四:用例图

一、单选题

1、用例图是从谁的角度出发对如何使用系统进行描述的?( A )

A、用户 B、系统分析师 C、系统设计师 D、程序员

<>2、在UML2.0版本中。表示是用例间什么关系( D )

A、 关联关系 B、依赖关系 C、扩展关系 D、包含关系

3、用例图展示了外部参与者与系统所提供的用例之间的连接,UML中的外部参与者是指( D ) A.人员 B.单位 C.人员或单位 D.人员或外部系统 4、在UML的用例图图形表示方式中,“角色.”的表示方式是下列图形中的哪一个( D )

组件1A、 B、 C、 D、

5、包含关系是在下面哪种关系的基础上构造的?( B )

A、组成关系 B、 依赖关系 C、聚合关系 D、泛化关系

10

6、在用例之间,会有三种不同的关系,下列哪个不是他们之间可能的关系(D ) A.包含(include) B.扩展(extend) C.泛化(generalization) D.关联(connect)

7、在ATM自动取款机的工作模型中(用户通过输入正确的用户资料,从银行取钱的过程),下面哪个是“Actor”( A )

A.用户 B.ATM取款机 C.ATM取款机管理员 D.取款 8、用例(usecase)用来描述系统在对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“核查客户帐号”之间是 ___ 关系。( A ) A.包含(include) B.扩展(extend) C.分类(classification) D.聚集(aggregation) 9、系统分析员Analyst在做储蓄系统的需求开发时,发现:①“取款”用例、②“查询余额”用例、③“更改密码”用例都要使用④“验证卡号和密码”用例的功能。那么①②③3个用例与用例④的关系是( D ) A、使用关系 B、扩展关系 C、组成关系 D、包含关系 10、在电影院管理系统中,有3个用例,分别是“购买电影票”、“预定电影票”、“登记电影制片厂”,其中“购买电影票”是高风险、高业务价值的用例;“预定电影票”是低风险、高业务价值的用例;“登记电影制片厂”是低风险、低业务价值的用例。在开发时准备采用迭代式开发,先实现其中的一个用例,那么首先应实现哪个用例?( C ) A、“登记电影制片厂”用例 B、 “预定电影票”用例 C、“购买电影票”用例 D、3个用例中的任意一个都可以

11、Mentor是一家集团公司,业务范围涉及到制造业、服务业和高科技产业,最近公司准备实施企业资源规划系统(ERP),因此委托Butterfly公司负责该项工作。Butterfly公司的专家为了能更好地了解该公司目前业务资源的使用情况,决定建立UML模型与以阐释,那么Butterfly的专家应该建立哪种模型图?( A ) A、用例图 B、类图 C、业务对象图 D、顺序图 12、下列选项中,那些是用例描述应该包含的内容(多选)( ABCE ) A、概述 B、 基本事件流

C、可选事件流 D、对象模型 E、前置条件

二、简答题

1.什么是参与者?如何确定系统的参与者?

2.什么是用例?如何确定系统的用例?

3.用例之间有哪些关系?对每一种关系,请举出一个实际的例子,并画出用例图。 4.说明在Browser中删除一个模型元素和在Diagram中删除一个模型元素的区别。

在Browser中删除一个模型元素将同时删除所有的Diagram中对它的引用,该模型元素奖真正从模型文件中删除。

在Diagram中删除的模型元素不一定真正在模型文件中被删除,而只是从当前的图中被删除。

5.Use-Case 模型可以包括哪些内容,列举至少3种。 参与者、用例、用例描述文档

11

三、分析题

1、某电话公司决定开发一个管理所有客户信息的交互式网络系统。系统功能如下:

浏览客户信息:任何使用Internet的网络用户都可以浏览电话公司所有的客户信息(包括姓名、住址、电话号码等)。

登录:电话公司授予每个客户一个账号号。拥有授权账号的客户,可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册。

修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。

删除客户信息:只有公司的管理人员才可以删除不再接受公司服务的客户的信息。

【问题】在需求分析阶段,采用用例图描述系统功能需求,如上图所示,请指出图中的A、B、C和D分别是哪个用例? 1、A 浏览客户信息 B 修改个人信息 C 登录系统

D 删除客户信息

2、 请仔细阅读下图,描述该图的基本含义: 该图的基本含义:

2、该用例图描述的是图书馆管理系统中管理员对书籍和书目的管理流程。在这个流程中,

12

管理员这个Actor与用例删除书目、删除书籍、修改书籍信息、新增书籍之间能通过消息传递发生关联,而图书查询这个用例与删除书目、删除书籍、修改书籍信息这三个用例之间有被包含的关系,也就是说,在删除书目、删除书籍、修改书籍信息用例发生的过程前,需要进行图书查询。新增书目这个用例与新增书籍这个用例也是被包含的关系。

四、在医生的办公室里接待员、护士和医生使用病人记录和计划安排系统。当病人第一次来这里看病时,接待员使用该系统来输入病人信息,并且他们安排所有的预约。护士使用系统来跟踪病人每次看病的结果并输入护理病人的信息,如医疗和诊断。护士也可以访问这些信息以打印病人诊断结果或病人看病历史。医生主要用这个系统来查看病人的病史,偶尔也输入病人的医疗信息,但通常他让护士输入这些信息。

【问题】根据上面的陈述,请你分析出参与者和用例,并绘制出用例图。

打印诊断结果

打印看病历史

五、网络在线售票订位系统的功能如下:

客户有一般客户和企业客户两种,可以建立在线订位事件、事件确认,执行在线信用卡付费、个人或团体账号修改和管理、在线个人事件查询;系统操作者可以建立在线销售订位事件、查询目前销售订位状况、个人或团体账号修改和管理;系统设计者可以建立在线售票订位事件、查询目前销售订位情况、在线系统维护和功能增加、系统环境设置。

【问题】请依照上述描述,并绘制出需求用例模型

护士查询病人信息输入护理病人信息医生接待员安排预约输入病人信息 13

查询订位状况客户付费查询个人事件一般客户企业客户订位系统操作人员查询订位状态系统维护人员维护系统设置系统环境

六、大学选课系统是与学生有着紧密联系的系统。学生可以登录该系统选修课程,查看分数。教授可以登录到系统选择课程授课,提交学生成绩。学校另有一个系统里面保存有课程目录信息,选课系统需要和课程目录系统通讯以取得课程目录信息。

【问题】对该“大学选课”系统进行面向对象分析并运用UML建模设计出用例图。

14

查看分数学生选修课程登录课程目录系统选择课程授课教授提交学生成绩

七、基于WEB的网上购物系统越来越受到人们的关注,例如小型电子商务订单处理系统,使得客户可以给购物车添加项目,查看购物车,查看具体项目,购买商品,删除购物车中的项目,浏览商品,提供反馈单;库房经理可以进行盘点,返回库房项目,提供订单;采购经理可以增加销售的新项目,删除销售项目,购买库存。

【问题】对该“订单处理系统”进行面向对象分析并运用UML建模设计出用例图。

15

购买商品查看购物车添加项目到购物车浏览商品查看具体项目客户提供反馈意见删除购物车中项目提供订单删除销售项目返回库房项目采购经理增加销售新项目库房经理购买库存盘点

专题五:活动图

一、单选题

1.下面哪个不是活动图中的基本元素( D ) A.状态、分支 B.转移、汇合 C.泳道、转移 D.用例、状态

2、下列所绘制的模型片段、属于何种图形?( B )

输入统计信息显示处理信息执行数据统计显示完成统计信息

A、状态图 B、 活动图 C、 协作图 D、顺序图

3、如果要对一个学院课程注册系统中的三个主要角色学生、教授、教务长的工作流程建模,那么需要使用下面的哪个图?( A )

A、活动图 B、类图 C、交互图 D、部署图

16

4、在UML中,用来表示企业业务的工作流。这种图显示出工作流中的步骤、决策点,以及完成每一步骤的角色和对象。这种图形是( A )

A.活动图 B.业务图 C.用例图 D.交互图 5、在下面的图例中,哪个用来描述活动(activity)( A ) A B C D

6、在UML中,_D _把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。

A.组合活动 B.同步条 C.活动 D.泳道

7、Innovation公司正在为Rose开发插入件,使得Rose可以把OOA/OOD模型以各种图形格式导出,如JPEG格式、BMP格式、GIF格式等。在导出时,会根据不同的算法来生成相应的图形文件,这些算法很复杂。为了描述这些算法,在下面这些图中,哪个图是最合适的?(A ) A、活动图 B、类图 C、交互图 D、部署图

8、Satopia是一家大型公司,由于公司业务的扩大,准备对公司已有的软件系统进行升级,因此委托Object公司负责该项工作。Object公司的专家建议在对系统升级前和Statopia公司的高层管理人员开一次讨论会,以便能更好地了解目前所使用的软件系统。那么在这次讨论会中,下面几个图中哪个图是最有用的?( C )

A、状态图 B、部署图 C、活动图 D、顺序图 二、简答题

1.什么是动作状态?什么是活动状态?它们有什么区别?

1、对象的动作状态是活动图最小单位的构造块,表示原子动作。

? 动作有三个特点:

? 原子性,即不能被分解为更小部分;

? 不可中断的,即一旦开始就必须运行到结束 ? 瞬时的,即动作状态所占用的处理时间通常是极短的,甚至是可以被忽略的。

? 相比动作状态,活动状态能够被进一步分解,它的活动可以由其他的活动图表示。

活动状态不是原子的,可以被中断。

? 在UML中,动作状态和活动状态的图标没有区别。 2.请参考下图,回答问题:

17

(1)在该图中,有几种不同角色:

(2)请找出客户在该流程过程中相关活动内容: 答:(1)角色:客户、销售员、仓库管理员 (2)客户活动:查看商品、查看单据、存款

三、某公司在线购物的控制流程为:

A、接受在线订购:客户在线下单采购公司产品。 动作(Action):在线输入采购清单 B、动作(Action):客户服务部接收到定单,检查定单是否正确

正确 执行动作C

不正确 执行动作:发出一封订购失败的EMIAL给客户,请客户检查订单:执行动作结束。

C、同步动作:订单转仓管部出货

订单转财务部门收款处理 D、确认客户收到采购的货品

正确:执行动作 E 不正确:执行动作 D E、确认客户已完成收货付款 正确:执行动作F 不正确:执行动作E

F、确认送货人员将收到的款项交于财务部 正确:执行动作G 不正确:执行动作F G、财务部门做订单结案处理 H、结束 【问题:】请你利用UML的活动图设计执行动作的活动图

18

客户在线输入采购订单客户服务部收到订单,并检查是否正确[ 不正确 ][ 正确 ]订单转仓管部出货订单转财务部收款处理向客户发送定购失败Email

确认客户收到货物[ 不正确 ][ 正确 ]确认完成付款[ 不正确 ][ 正确 ]确认款到财务部[ 不正确 ][ 正确 ]财务部订单结案处理四、过程:一个咨询公司会见一个客户时的业务过程

1、公司业务员打电话给客户,确立约定。

2、如果约定在公司内,公司技术人员为会议准备会议室。 3、如果约定在公司之外,咨询顾问就要用电脑准备一份陈述报告 4、咨询顾问和业务员与客户在约定的时间和地点见面。 5、业务员随后给他们准备好会议用纸

6、如果会议产生了一个问题陈述,咨询顾问就根据问题陈述建立编写一个提案并把该提案发给客户。

【问题】请设计上述过程的活动图。

19

五、在银行系统的分析与设计中,当用户想从自己的账户中取钱时,需要登录系统,启动取款用例。其步骤如下:

(1)系统提示用户输入用户姓名、用户的id号、账号和取款金额。

(2)用户输入相关信息后提交,系统确认账户是否存在并有效,若账户不存在或无效,显示提示信息,用户可以重新输入或终止该用例。

(3)系统确认账户中的存款金额是否足够支付所取款项,若账户中的存款金额不足,显示提示信息,用户可以重新输入金额或终止该用例。 (4)系统建立取款事件记录,并更新账户的相关信息。 【问题:】请设计出取款用例的执行动作的活动图。

打电话约定客户准备陈述报告准备会议室与客户见面准备会议用纸建立提案将提案发给客户

20

提示用户输入信息用户输入信息提交显示错误提示信息no确认账号是否存在并有效yesno确认余额是否足够yes建立取款记录保存记录更新账户

专题六:状态图

一、单选题

1、在使用UML建模时,若需要描述跨越多个用例的单个对象的行为,使用__D__是最为合适的。

A.协作图(Collaboration Diagram) B.序列图(Sequence Diagram) C.活动图(Activity Diagram) D.状态图(Statechart Diagram)

2.状态是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件时的一个条件或状况,下面哪个不是状态的基本组成部分(F )

A.名称 B.进入/退出动作 C.内部转换 D.子状态 E.延迟事件 F.外部转换 3.转换是两个状态间的一种关系,表示对象将在当前状态中执行动作,并在某个特定事件发生或某个特定的条件满足时进入后续状态。下面哪个不是转换的组成部分(F ) A.源状态 B.事件触发 C.监护条件 D.动作 E.目标状态 F.转换条件

4、事件(event)表示对一个在时间和空间上占据一定位置的有意义的事情的规格说明,下面哪个不是事件的类型( E )

A. 信号 B.调用事件 C. 变化事件 D. 时间事件 E.源事件

21

5、Coolsoft准备为Mergon银行开发一个自助ATM服务系统AutoCard,AutoCard的具体需求如下:

AutoCard将使用三个插槽,第一个插槽用于系统送出新的信用卡,第二个插槽用于在向信用卡中加钱时插入信用卡,第三个插槽用于在向信用卡中存钱时插入纸币。系统运行时会显示一个界面,界面中有三个选项:(1)获取新的信用卡;(2)为信用卡加钱;(3)打印存款凭条。选项1允许用户获得一张新的信用卡。新的信用卡在使用前必须先存钱。选项2允许用户为新卡或旧卡加钱,这时要求把信用卡插入第二个插槽中,把纸币插入第三个插槽中。选项3允许用户打印与存钱活动有关的收据,或打印信用卡最近一次使用情况的收据。在开发AutoCard系统完成上述功能时,下面几个图中哪个图是最有用的?( D ) A 、构件图 B、部署图 C、活动图 D、状态图 二.简答题

1.状态图在哪些重要方面与类图、对象图或用例图有所不同? 略

2.什么是活动图?什么是状态图?

活动图描述从活动到活动的流。

状态图描述一个对象所处的可能状态以及状态之间的转换, 3.什么是状态机?状态机由哪几部分组成? 略

4.比较活动图和状态图。

比较活动图和状态图

(1) 活动图和状态图描述的重点不同:

? 活动图描述的是从activity到activity的控制流,而状态图描述的是对象的状态及状态之间的转移。

(2) 活动图和状态图使用的场合不同:

? 对于以下几种情况可以使用活动图:

? 分析用例

? 理解涉及多个用例的工作流 ? 处理多线程应用

? 对于下面的情况要使用状态图:

? 显示一个对象在其生命周期内的行为。

5.引发状态转换的事件主要有哪些。

(1) Call event (调用事件)

(2) Change event (变化事件) (3) Time event (时间事件) (4) Signal event (信号事件) 6.请参考下图,回答问题:

22

1. 该图中有几种状态,分别为___________________________________ 2. 请描述线程的基本运行过程_____________________________ 答: 1)三种状态:就绪、运行、阻塞

2)线程的基本运行过程:

首先,线程处于就绪态,当取得CPU时间片,进入运行状态;如果正常运行,则直到运行结束;如果运行中CPU时间片用完,则返回就绪态;如果运行中不满足所需资源,则进入阻塞状态,当系统满足资源时,重新进入就绪状态。

三、当手机开机时,它处于空闲状态(idle) ,当用户使用电话呼叫某人(call someone)时,收集进入拨号状态(dialing)。如果呼叫成功,即电话接通(connected),手机就处于通话状态(working);如果呼叫不成功(can’t connect),例如对方线路有问题,关机 、拒绝接听。这时手机停止呼叫,重新进入空闲状态,手机进入空闲状态下被呼叫(be called ),手机进入响铃状态(ringing);如果用户接听电话(pick),手机处于通话状态;如果用户未做出任何反应(haven’t acts ),可能他没有听见铃声,手机一直处于响铃状态,如果用户拒绝来电(refused),手机回到空闲状态(idle)。 【问题:】请按以上描述绘制出使用手机的状态图。

呼叫不成功空闲呼叫某人拨号呼叫成功拒绝接听被呼叫响铃通话结束接听电话通话未做出反应

23

四、电梯开始处于空闲状态(idle),当有人按下按钮要求使用电梯时(事件 is required发生),电梯进入运行状态(run)。如果电梯的当前楼层比想要的楼层高时(护卫条件[currentFloor>desiredFloor]成立),电梯进入下降状态(moving down);反之,如果电梯的当前楼层比想要的楼层低时(护卫条件[currentFloor

[ is required ]run[ currentFloor>desiredFloor ]move up[ currentFloordesiredFloor ][ no more request ][ time out ]stopmoving downidlemove down[ currentFloor=desiredFloor ]

习题七:交互图(顺序图、协作图)

一、单选题

1、顺序图的组成要素有哪些?( C )

A、对象、转换、消息 B、对象、转换、动作状态

C、对象、生命线、激活、消息 D、对象、使用案例、动作状态

2、顺序图是强调消息随时间顺序变化的交互图,下面哪个不是用来描述顺序图的组成部分( E )

A.类角色 B.生命线 C.激活期 D.消息 E.转换 3、关于协作图的描述,下列哪个不正确( D)

A.协作图作为一种交互图,强调的是参加交互的对象的组织;

B.在ROSE工具中,协作图可在顺序图的基础上按“F5”键自动生成; C.协作图中有消息流的顺序号; D.协作图是顺序图的一种

4、下列四个选项中,哪个不会出现在协作图中:( B ) A.对象 B.控制焦点

24

C.消息

D.对象间的连接

5、下列四个选项中,哪个不会出现在顺序图中:( D) A.对象 B.控制焦点 C.消息

D.对象间的连接

6、在UML中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换。消息序列可用两种图来表示,强调消息时间次序的图称之为 __(1)_C_ ,该图的特点是 __(2)A__ ,强调参加交互的对象的组织图称之为 __(3)D__ 。

(1) A.活动图(activitydiagram) B.状态图(statechartdiagram)

C.顺序图(sequencediagram) D.协作图(collaborationdiagram)

(2) A.有生命线及控制焦点,重点在消息的时间顺序上

B.有路径有顺序号,为了一个消息的时间顺序给消息加数字前缀 C.是对系统、子系统或类的行为建模

D.本质上是一个流程图,显示从活动到活动的信息流

(3) A.活动图(activitydiagram) B.状态图(statechartdiagram)

C.顺序图(sequencediagram) D.协作图(collaborationdiagram)

7、在UML中,以下关于顺序图和协作图的叙述哪个是正确的?( A ) A、这两种图是同构的,所以可以互相转换 B、这两种图是异构的,所以不可以互相转换

C、这两种图均强调对象行为的事件顺序,常用于对反应式系统建模

D、这两种图是均专注于系统的动态视图,由于状态无法确定,所以不可以互相转换 8、系统架构师Bob在分析面向对象的课程注册系统的“注册课程”用例时,得到了一组协作关系复杂的类,下面哪种图可以描述该用例中多个对象之间的相互协作关系以及协作过程中的行为次序?( A ) A 、顺序图或者协作图 B、状态图 C、对象图 D、用例图

9、UML中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换。消息序列可用两种类来表示,分别是( D ) A.状态图和顺序图 B.活动图和协作图 C.状态图和活动图 D.顺序图和协作图

10、在UML的图形中,顺序图是强调的是交互的时间顺序,即顺序图是按照 布图;协作图强调的是交互的语境和交互的对象的整体组织,即协作图是按照 布图。( B) A、空间组织 时间顺序 B、时间顺序 空间组织 C、对象关系 组织关系 D、组织关系 对象关系 二、简答题

1.什么是顺序图,顺序图是由那些部分组成?

顺序图是一种交互图形,顺序图的重点是完成某个行为的对象类和这些 对象类之间所传递的消息的时间顺序

它是由 对象类角色 、生命线 、激活期、消息组成。 2.什么是协作图,协作图是由那些部分组成?

协作图包含一组对象以消息交换为纽带的关联,用于描述系统的行为是如何有 系统的

25

成分合作实现的 。

对象类角色 、关联角色、消息 3. 交互图形有那些特征?

交互图形主要用于对Use case中的控制建模,一般情况下,一个交互图形表达单个Use case的行为,他表示出该Use case中若干个实例对象和对象之间所传递的消息,交互图形有效的帮助人们观察和理解系统内部的协作关系和过程行为。

4. 在顺序图中怎样表示对象的创建、激活、休眠和销毁?请举例说明。

一个对象可以在交互中创建 。如果一个对象可以在交互中创建,则该对象的生命线就从收到一个标有构造型 <>的创建消息之时开始 。

激活期又称为控制焦点,表示对象执行一个动作的期间,也即对象的激活的时间段。在顺序图中,激活期由位于生命线上的一个窄矩形框表示,激活期窄矩形框的上端与动作的开始时间齐平,下端与动作的完成时间齐平。

休眠 表示一个对象在某一个消息执行时,不在接收和发送消息。则我们称该对象处于休眠状态。

一个对象可以在交互中销毁,如果一个对象可以在交互中销毁,则该对象的生命线就从收到一个标有构造型 <的创建消息之时终止 。

:客户机:JDBC代理服务器<> :事务setAction(a.d.o)setyalue(d,2.5)setvalue(a,\已提交消息1对数据库的JDBC接口的访问

5. 在一张顺序图中需要绘制出系统的全部活动者吗? 不需要

6. 角色和对象有什么区别?请举例说明 。

对象是对象类的实例,用于模型化特定的实体,对象是唯一的,可标识的。每一个对象都是不同的,及时他们有相同的属性。

角色又分对象类角色和关联角色

对象类角色是交互中对象类角色可起的作用,代表参与交互的对象。 关联角色代表关联路径规定在交互中对象之间的链接的角色类型。 7. 一个消息包含什么内容?怎样表示消息?请举例说明。

消息表示对象之间的通信,在顺序图中消息用于对象角色之间的一条水平箭头直线表示,消息箭线从源对象指向目标对象其上标有消息的内容标签,消息将触发接受消息对象中特定的操作。

26

消息的内容标签格式如下

序号 [保护条件 ]* [ 循环]返回表:=操作名(参数表)

普通消息调用消息或者嵌套消息并发消息返回消息

8. 怎样从uese case模型转换获得设计模型。 1) 确定用例文档的上下文, 2) 找出参与交互的对象类角色,把他们横向排列在顺序图的顶部,最重要的对象安置在最

左边,交互密切的对象尽可能的相邻,在交互中创建的对象在垂直方向应安置在 其被创建的时间点处。

3) 对每一个对象设置一条垂直向下的生命线, 4) 从初始化交互的消息开始,自顶向下的在对象的生命线上安置消息,注意用箭头的形式

区别同步消息和异步消息,

5) 在生命线上绘制处对象的激活期,以及对象的创建或者销毁的构造型标记 6) 根据消息之间的关系,确定循环结构机器循环参数和出口条件 9. 请参考下图,回答问题: i.

ii.

在该图中,第三个步骤中的消息是如何传递的? 获取书籍信息这个消息

27

该图在UML中属于什么类型的图? 顺序图

答:1、交互图形的顺序图

2、书籍管理对象发消息给书籍对象调用获取书籍信息的方法

三、用户在ATM(自动取款机)提取1000元人民币的最理想场景(卡内有余额,密码...........5000.......1234)如下描述 .....

开始用户(张三)将银行卡插入到读卡器,读卡器读卡号,打开张三的账目对象,并初始化屏幕,屏幕提示输入PIN(密码),张三输入密码(1234),然后系统验证密码与帐户对象,发出相符的信息。ATM屏幕向张三提供选项,张三选择取款,然后屏幕提示张三输入取款金额,他选择了1000元RMB,系统启动账目对象进行核实,之后从帐户中取钱;系统启动一系列的账目对象要完成的过程。首先,验证张三的帐目至少有1000元RMB ,然后从中扣除1000元RMB,再让吐钱机提供1000元RMB现金,另外还需要让票据打印机提供取款凭据,最后让读卡器退卡。 【问题:】请你利用UML的动态视图中的顺序图对在ATM取款最理想的场景进行建模

: 客户1: 插卡2: 读卡号3: 屏幕初始化4: 提示输入密码5: 输入密码6: 验证密码7: 选取钱,输入金额8: 提交金额9: 验证金额10: 扣钱 : 读卡器 : ATM屏幕 : 账户 : 取钱机 : 打印机11: 提钱12: 打印票据13: 退卡

四、对于一个网上商店,顾客购买一件商品的过程如下:顾客上网浏览查询商品的分类目录,找出所需商品。顾客决定购买。给出自己信用卡和送货地址,商店检查信用卡的有效性、确

28

认成交,并确定发货时间,发出发货通知,同时商店发出确认成交的电子邮件给顾客。请分析出该系统的Uese case模型图,绘制出相应的顺序图和协作图。

按名查找浏览商品目录选购商品取消订货顶层包::主角1跟踪当前订货付款结帐

网上超市顶层包::主角21:订购商品2:检查订购信息 计算总价3:显示订购信息4:确认订货存储订购信息6:付款结帐

五.下面是关于一个公司的人事信息管理系统的需求简单描述,试建立其相应的UESE CASE, 该人事管理信息系统的用户是公司的人事干部、公司领导。系统拥有人事档案库,保存员工的人事信息。包括姓名、性别、出生日期 、文化程度、学位、职称、岗位、聘任时间、任期、工资、津贴、奖惩记录、业绩、论著、家庭情况等。系统提供的服务有:人事信息管理 ,包括人事调动与聘任、职称评定、奖惩等 ;可以按照规定的权限查询人事信息,生成与输

29

出统计报表。该人事管理系统每月向公司的财务系统提供员工的工资、津贴等数据。 根据分析的Uese case模型图建立相应的顺序图和协作图 。

分配基本信息权限分配工号管理员工基本信息<><>管理员工政治面貌<>顶层包::人事档案专职管理员管理员工家庭信息<>员工档案信息综合查询<><>人力资源统计与分析管理员工的社会关系管理员工工作简历 管理员human resource form rybmhuman resource rybmhuman resource data rybmdatabase1:seleectedAddpresentBlankforminputsubmitcreateinsertinsertreturnMsgShowSuccessInfo

30

专题八:构件图、部署图

一、单选题 1、在UML2.0版本中的图形表示方式中,“构件”的表示方式是下列图形中的哪一个 ?(C )

组件1 A、 B、 C、 D、 2、软件构件是软件系统的一个什么单元。( A )

A、物理 B、 逻辑 C、顺序 D、实现 3、在UML的部署图表示方式中,“节点(Node)”的表示方式是下列图形中的哪一个?( B )

组件1A、 B、 C、 4、下列所绘制模型片段属于哪类图形?( C )

<> D、

Execcuting_servermainPro.execompany.exe<>Database_Server A、状态图 B、 活动图 C、 部署图 D、顺序图 5、构件图用于对系统的静态实现视图建模,这种视图主要支持系统部件的配置管理,通常可以分为四种方式来完成,下面哪种不是其中之一( E )

A.对源代码建模

B.对可执行体的发布建模 C.对物理数据库建模 D.对可适应的系统建模 E.对事物建模

6、在部署模型中,不属于节点类型的选项是( A ) A、系统进程

B、物理运行时的计算资源 C、处理器节点 D、设备节点

二、填空题

1、设计系统的静态实现视图是 构件图 ,设计系统的静态部署视图是 部署图 。 2、部署图中的节点可以分为两种类型: 设备 和 处理器

3、 构件图 和 部署图 用于对面向对象系统的物理方面建模进行描述的两种图形。 三、简答题

31

1、 构件和类有何区别?类有实例对象,组件能否实例化?

构件是 系统中可以进行替换的物理部分,它包装了实现并且提供一组接口的实现,构件是可以复用的单元,具有非常广泛的意义,每个构件可能包含很多类并实现很多接口,构件的模型表明如何把类和接口分配给构件。

构件很多方面和类相似,都有名称,都有实例,否能实现接口,都存在着联系,但是构件和类有这实质性的区别,构件代表物理事物,而类代表事物的逻辑抽象,因此构件可以用于部署图的节点,而类不能,,一般构件只有操作,外界只能通过接口接触它们,而类直接有属性和操作。

构件是一组逻辑单元的物理实现。一个类可以由一个或者多个构件实现,因此构件和类是一中依赖关系。

构件拥有类,类就不存在了,则包含他的组件就不存在了,因此构件和类可以用依赖关系表示。

2、 构件有哪些类型?请举例说明 。

配置构件 动态链接库(*.DLL) 执行程序(*.EXE)java Beans 工作产品构件 源程序文件 ,数据文件 , 执行构件 COM+的一个对象

3、 构件和对象有何区别,有何联系。

节点是存在于运行期间的系统物理元素,节点代表计算机组员。通常为处理器或者其他硬件设备,系统的构件可以配置在节点上。通过开发得到的软件系统的构件和 重用模块,必须配置在某些硬件上予以执行。

对象是类的实例,用于模型化特定的实体。对象是唯一的,可标识的。

4、 试用构件为访问关系数据库的 API(Application Programming Interface应用编程接口)

建立模型。

客户端浏览器《internet》Web浏览器DateBase服务器HTTP服务器Apache服务器打印机 四、下面是关于一个公司的人事信息管理系统的需求简单描述,试建立其相应的UESE CASE, 该人事管理信息系统的用户是公司的人事干部、公司领导。系统拥有人事档案库,保存员工的人事信息。包括姓名、性别、出生日期 、文化程度、学位、职称、岗位、聘任时间、任期、工资、津贴、奖惩记录、业绩、论著、家庭情况等。系统提供的服务有:人事信息管理 ,包括人事调动与聘任、职称评定、奖惩等 ;可以按照规定的权限查询人事信息,生成与输出统计报表。该人事管理系统每月向公司的财务系统提供员工的工资、津贴等数据。该系统采用C/S(客户机/服务器)模式,试绘制相应的构件图和部署图。

32

员工信息管理《internet》Web浏览器DateBase服务器应用服务器Apache服务器员工信息统计 五、对于一个网上商店,顾客购买一件商品的过程如下:顾客上网浏览查询商品的分类目录,找出所需商品,顾客决定购买。给出自己信用卡和送货地址,商店检查信用卡的有效性、确认成交,并确定发货时间,发出发货通知,同时商店发出确认成交的电子邮件给顾客。请分析出该系统的Uese case模型图 。该系统采用浏览器/应用服务器/数据库 服务器,试绘制相应的构件图和部署图。

windows客户端用户界面Web服务器订货处理数据管理结帐商贸库 《可视化建模与UML》课程设计题目

以下设计题目任选其一:

1、 图书管理系统

33

某单位资料室需要建立一个图书管理系统,初步的需求如下:

1) 资料室有图书管理员若干名,他们负责已购入图书的编目和借还工作,每名图书管

理员的信息包括工号和姓名; 2) 读者可在阅览室读书,也可通过图书流通室借还书,读者信息包括读者的ID、姓名、

电话和Email,系统为不同读者生成不同的读者ID;

3) 每部书在系统中对应唯一的一条图书在版编目数据(以下简称书目),书目的基本

信息包括ISBN号、书号、作者、出版商、出版年月,以及本资料室拥有该书的册数(以下简称册数),不同数目的ISBN号不相同; 4) 资料室对于同一数目的图书可拥有多册(本),图书信息包括图书ID、ISBN号、存

放位置、当前状态,每一本书在系统中被赋予唯一的图书ID;

5) 一名读者最多只能借阅十本图书,且每本图书最多只能借两个月,读者借书时需要

由图书管理员登记读者ID、所借图书ID、借阅时间和应还时间,读者还书时图书管理员在对应的借书信息中记录归还时间; 6) 当某书目的可借出图书的数量为零时,读者可以对其进行预约登记,即记录读者ID、

需要借阅的图书的ISBN号、预约时间。 数目与对应图书的信息如下表所示:

34

2、 便携式心电记录仪(嵌入式系统)

嵌入式系统“便携式心电记录仪”具有以下的特点:可以存储20个心电波(ECGWave),每个心电波的长度由内存的大小来决定。具有屏幕菜单,使用方便。可以设置闹铃,提示用户时间到。具有LCD显示器可以显示心电波形、心电波形的记录时间和记录日期、当前时间和当前日期。当前的时间和日期问题出现在显示器上。显示器还显示电池使用情况指标。当电量不足时,系统发出蜂鸣声提醒用户。具有待用模式(Stand-by Mode),这样可以节省能量。当不用时,系统关闭外设;当用户随便按一个按键时,系统激活,返回正常工作状态。(注:本题目需要绘制主要对象的状态图) 3、 网上选课系统

参考东软信息学院网上选课系统,以下列出简单需求: 1) 教务管理人员维护专业、课程、学生、教师信息

2) 教务管理人员按照专业、年级制定开课计划,开课计划包括开设的课程,选修的最

低学分要求、对应的授课教师等

3) 学生在指定的时间进行网上选课,在此期间可以修改选课,但是一旦选课结束就不

允许再修改了。

4) 教务管理人员在选课结束后可以查看选课的统计结果 5) 期末,授课教师可以录入学生成绩 6) 学生可以查询自己的选课情况 7) 学生可以查询自己的成绩 4、 “J-QQ”—即时通信软件

需要跟老师当面沟通,经老师许可后才能做为大作业题目。 HNS软件学院随着学校规模的扩大,各师生之间的交流变得越来越困难。为方便学校师生之间的交流,经学院系统分析部研究决定为学院开发一套即时通信软件——“J-QQ”。它能在学院校园网中提供即时交流的能力,同时还具有“好友管理”、“群聊”和“用户管理”等功能。

为了提高该应用系统的可靠性和重用性,决定在本次项目中采用面向对象技术来设计和实现该应用系统。同时,通过UML语言对系统进行需求建模、架构建模和应用建模以确保系统的正确性。现要求作为本次项目组中成员的你在完成该系统的需求收集的基础上运用你所学习的有关建模和网络程序设计方面的知识,参于完成该系统的建模工作。

在对现有的较为流行的即时通讯软件“腾讯QQ”进行业务分析的前提下,对学院的部分教师和学生进行需求收集和整理。现决定在本次项目中需要实现的功能如下:

①注册功能:

主要实现申请 “J-QQ”系统账号的功能。在本系统中,要实现即时交流就必须要拥有合法的账号才能进行。一个新的用户在提交自己的一些描述信息的前提下(如:用户的姓名、昵称、性别等信息),由服务器为其分配一个唯一的“J-QQ”账号。

②客户登录功能:

主要实现从客户端登录“J-QQ”系统。其工作过程是:客户在登录时需要给出客户的账号和口令,并将账号和口令送服务端进行身份验证,当验证通过时服务器将该用户的好友信息发回客户端。

③维护好友信息功能:

35

主要实现添加好友功能。在本系统中客户只能与好友聊天,所以在与某位用户聊天之前必须先将该好友添加到好友列表中。其主要工作过程是:首先输入好友的账号,然后由客户端提交到服务器,再由服务器询问该客户是否同意将他加为好友,当得到许可后就完成了好友的添加。

④删除好友功能:

主要实现从好友列表中删除好友的功能。当你不愿意再与某个好友聊天,可以将该好友从好友列表中删除。其工作过程是:首先选择一个待删除的好友,然后向服务器端提出删除好友的请求,当服务器许可即完成好友的删除操作。

⑤私聊

主要实现好友间单独聊天的功能。其主要过程是:用户首先从好友列表中选择一个好友,然后打开私聊窗口,通过该聊天窗口来实现与好友之间的交流。

⑥群聊

主要实现与所有好友群聊的功能。其主要过程是:首先打开群聊窗口,用户输入群聊信息并由客户端转交到服务器中,服务器则根据该用户的好友列表群发到所有好友的客户端。

⑦好友上下线提示(附加功能)

主要实现好友上下线提示,也就是说当好友上线时会自动通知其所有已上线的好友,当其下线时也需要自动通知其所有在线的好友。其主要工作过程如下:当好友上线时,服务器会自动取出当前用户的好友列表,并根据该列表对其好友分别进行通知。当用户下线时就会向服务器传送下线命令,再由服务器将好友下线命令转发给其好友。

⑧用户管理

主要实现用户信息修改的功能。其主要过程是:用户通过客户端程序中的用户信息修改窗口来实现用户个人信息的修改,当信息修改确定后就将该用户的信息传送至服务器,由服务器完成用户信息的更新操作。注意:用户信息一旦修改成功,其在线好友只能重新登录后,才会显示更新后的个人信息。 5、 网络游戏(如棋牌类等) 自行设定需求

36