软件工程理论与实践第8期-6 面向对象分析

目录

6 面向对象分析

6-1 面向对象分析的基本概念

第1关:用例图的基本概念

第2关:类图的基本概念

第3关:顺序图的基本概念

第4关:活动图的基本概念

6-2 面向对象分析之用例图

第1关:用例图题目初体验

第2关:请根据系统案例分析来画出客户这个参与者

第3关:请画出客户参与者的所有用例

第4关:请根据系统案例分析来画出酒店工作人员这个参与者

第5关:请画出酒店工作人员参与者的所有用例

第6关:请根据系统案例分析来画出软件营销人员这个参与者

第7关:请画出软件营销人员参与者的所有用例

第8关:请根据系统案例分析来画出软件管理人员这个参与者

第9关:请画出软件管理人员参与者的所有用例

6-3 面向对象分析之类图

第1关:类图题目初体验

第2关:请画出客户类(包括属性和操作)

第3关:请画出酒店客房类(包括属性和操作)

第4关:画出客户类和酒店客房类之间的关系

6-4 面向对象分析之顺序图

第1关:顺序图题目初体验

第2关:请画出酒店工作人员角色(带有生命线)

第3关:请画出注册页面对象(带有生命线)

第4关:请画出房间库对象(带有生命线)

第5关:请画出酒店工作人员和注册页面之间的消息传递内容

第6关:请画出注册页面对象自身传递消息

第7关:请再次画出酒店工作人员和注册页面之间的消息传递内容

第8关:请画出注册页面对象和房间库对象之间的消息传递内容

6-5 面向对象分析之活动图

第1关:活动图题目初体验

第2关:请画出开始节点

第3关:之后进入网络,画出进入酒店管理系统主页的状态

第4关:下一步画出酒店业务状态

第5关:之后选择服务,画出订房服务状态

第6关:之后出现分支,状态分别为满房和有空房

第7关:之后分支汇合,汇合条件为无法预订和提交订房订单

第8关:下一步画出处理订单状态

第9关:结束,画出结束节点


6 面向对象分析

6-1 面向对象分析的基本概念

第1关:用例图的基本概念

任务描述
了解用例图(Use case diagram)的相关知识点,并练习相关选择题目,为之后的实操关卡打下坚实的基础。

相关知识
用例图的基本概念
含义:由参与者(Actor)、用例(UseCase)以及他们之间的关系构成的用于描述系统功能的动态视图成为用例图。其中用例和参与者之间的对应关系又叫做通讯关联,他表示参与者使用了系统中的哪些用例。用例图是从软件需求分析到最终实现的第一步,他显示了系统的用户和用户希望提供的功能,有利于用户和软件开发人员之间的沟通

用例图的参与者和用例
参与者:参与者是指存在于系统外部并直接与系统交互的人、系统、子系统或类的外部实体的抽象。如同所示

                         
用例:位于系统内部,用例是系统提供给参与者的功能。如图所示

 用例之间的重要关系
泛化
泛化关系代表一般与特殊的关系, 与继承类似.
在泛化关系中, 子用例继承了父用例的行为和含义, 子用例也可以增加新的行为和含义或覆盖父用例中的行为和含义.
包含
包含关系是指一个用例(基用例)的行为包含了另一个用例(被包含用例)的行为.
包含关系是依赖关系的版型, 但其含义更多.
扩展
扩展关系的基本含义与泛化关系类似,但对扩展用例有更多限制,即基本用例必须声明若干“扩展点”,扩展用例只能在扩展点上增加行为和含义。
基用例可以使用扩展用例的行为,但不是必须的;
扩展用例可以被基用例激活,进而将扩展用例的行为插入基用例中。

案例需求用例表

第2关:类图的基本概念

任务描述
了解类图(Class diagram)的相关知识点,并练习相关选择题目,为之后的实操关卡打下坚实的基础。

相关知识
类图简单介绍

1.类图分为三部分,依次是类名、属性、方法
2.以<<开头和以>>结尾的为注释信息
3.修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。
4.带下划线的属性或方法代表是静态的。

类图关系
1.依赖(Dependence) 
依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中使用了类B,其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用。类上面的图例中:People类依赖于Book类和Food类,Book类和Food类是作为类中方法的参数形式出现在People类中的。

2.关联(Association)
体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的。

3.聚合(Aggregation)
聚合关系是关联关系的一种,耦合度强于关联,他们的代码表现是相同的,仅仅是在语义上有所区别:关联关系的对象间是相互独立的,而聚合关系的对象之间存在着包容关系,他们之间是“整体-个体”的相互关系。

4.组合(Composition)
相比于聚合,组合是一种耦合度更强的关联关系。存在组合关系的类表示“整体-部分”的关联关系,“整体”负责“部分”的生命周期,他们之间是共生共死的;并且“部分”单独存在时没有任何意义。在下图的例子中,People与Soul、Body之间是组合关系,当人的生命周期开始时,必须同时有灵魂和肉体;当人的生命周期结束时,灵魂肉体随之消亡;无论是灵魂还是肉体,都不能单独存在,他们必须作为人的组成部分存在。

5.继承(Generalization)
继承表示类与类(或者接口与接口)之间的父子关系。在java中,用关键字extends表示继承关系。UML图例中,继承关系用实线+空心箭头表示,箭头指向父类。

6.实现(Implementation)
表示一个类实现一个或多个接口的方法。接口定义好操作的集合,由实现类去完成接口的具体操作。在java中使用implements表示。UML图例中,实现关系用虚线+空心箭头表示,箭头指向接口。

本案例对象分析表

第3关:顺序图的基本概念

任务描述
了解顺序图(Sequence diagram)的相关知识点,并练习相关选择题目,为之后的实操关卡打下坚实的基础。

相关知识
顺序图的构成元素

1.活动者:指用况中的活动者。
2.对象:指在用况中的内部对象。
3.生命线:在顺序图中的一个对象下面的竖线,用以显示这个对象的生命期。时间从上到下流过。生命线实际上显示了消息的顺序,在生命线之上的消息比在它之下的消息先发生。在生命线中的棒形方框表示的是活动生命线,用以强调一个对象只有在一个场景的部分中处于活动状态。
4.消息:指场景内由事件流定义的内部事件成为在对象和活动者或其他对象之间的消息。
同步消息——返回消息。同步消息假定有一个返回消息。同步消息用有实心的箭头表示;返回消息用虚线、箭头也不是实心来表示。
反身消息——消息的发送方和接收方是同一个对象。
异步消息——没有返回值的消息。用非实心箭头表示。
定时消息——对消息附加时间约束条件,包括:发送时间、接收时间、已用时间等。

本案例介绍
系统显示酒店当前的基本信息,酒店工作人员选择需要修改的项目,酒店工作人员输入当前待修改项目的值,系统显示修改过的酒店基本信息,酒店工作人员重复2~4步,直到所有待修改的项目完成,酒店工作人员提交修改过的酒店基本信息,系统记录新的酒店基本信息。以下是酒店工作人员在维护酒店基本信息时的过程图

第4关:活动图的基本概念

任务描述
了解活动图(Activity diagram)的相关知识点,并练习相关选择题目,为之后的实操关卡打下坚实的基础。

相关知识
活动图的相关介绍

活动图(Activity diagram)是一种描述系统行为的图,它把一项行为表示成一个可以由计算机、人或者其他执行者执行的活动,通过给出活动中的各个动作以及动作之间的转移关系来描述系统的行为。
组成元素主要包括:动作、活动、动作流、分支与合并、分叉与汇合、泳道、对象流。
1.动作:代表一个原子操作,仅有描述不做命名。
2.活动节点:是一系列动作,活动节点在图例上的表达方式与动作一样,他们之间的区分要借助编辑工具或者附件说明。
3.开始和终止:是两个标记符号,活动图必须有且仅有一个开始标记,一般至少有一个终止标记,有时候有多个终止标记,另外,存在一些特殊的无穷过程不存在终止标记。
4.控制流:两边都是活动(动作),他负责当一个动作或活动节点执行完毕后,将执行主体从当前已完毕的节点转移到过程的下一个动作或活动节点。
5.判断节点:进行逻辑判断并创造分支的一种方法,具有一个进入控制流和至少两个导出控制流。对于导出控制流,应该在箭头上附件控制条件。判断节点用一个菱形表示。
6.合并节点:将多个控制流合并,并统一导出到同一个离开控制流。注意:仅有逻辑意义而没有时间和数据上的意义,不需要互相等待或者数据同步啥的。同样是菱形表示,至少两个指向他的箭头,有且仅有一个由他发出的箭头指向其他动作或活动节点。注意:他的几个进入控制流之间是or的关系,只需要满足一个就好,不用全部满足!
7.泳道:将活动中的具体活动按照负责进行该活动的对象进行分区,一条泳道中的所有活动都由一个对象执行。
8.并发:指的是同一时间间隔中,系统内有两个或多个事件一起发生。在并发情况下,不可以对多个事件的发生顺序做预测。
9.分叉节点:是从线性流程进入并发过程的过渡节点,他拥有一个进入控制流和多个离开控制流,分叉节点的所有离开流程是并发关系,分叉节点在活动图中表示为一根粗横线。
10.结合节点:功能上与合并节点相似,但有关键区别。合并节点没有等待和同步,但是结合节点的各个进入控制流有并发关系,他们再系统中同时运行。在各个支流收束时,为了保证数据的统一性,先到达结合节点的控制流必须等待直到所有的流程全部到达这个结合节点后才继续进行,转移到离开控制流所指向的动作。也是用一根粗横线表示。
11.对象流:很少使用!当活动图中描述的过程具有一些对关键对象的属性要求时,通过添加对象流的放发可以在活动图中呈现操作的对象。如果想表现出对象流,必须先绘制泳道,且对象应该作为泳道的负责对象出现,在某些关键动作前后,设计人员可以通过加入对象的状态描述来呈现对象状态,描述文字应该简明扼要。
12.扩展区域:用来表示循环。具体做法:在活动图中围绕一个区域画一个虚线框来表示扩展区域。区域要有输入输出的定义,输入输出的集合表示为数组。如果扩展区域运行时可以并发执行,也有可能多次迭代并发执行,直到迭代工作执行完毕,集合中的每个元素对应的处理成一个输出元素,全部输出元素的集合对应输入时的顺序同样表示为一个数组,然后向下执行。

详细说明
状态依次为进入酒店管理系统主页、酒店业务主页、订房服务、满房(有空房)、处理订单。
开始之后进入网络,画出进入酒店管理系统主页的状态,下一步画出酒店业务状态,之后选择服务,画出订房服务状态,之后出现分支,状态分别为满房和有空房,在分支汇合时,汇合条件为无法预订和提交订房订单,下一步画出处理订单状态,最后结束。

6-2 面向对象分析之用例图

第1关:用例图题目初体验

A

第2关:请根据系统案例分析来画出客户这个参与者

闯关要求
本案例需求分析

第3关:请画出客户参与者的所有用例

第4关:请根据系统案例分析来画出酒店工作人员这个参与者

闯关要求
请使用starUML工具画出酒店工作人员参与者。将画好的模型保存到workspace/myshixun/submit/submit_step3/下,并命名为step3,格式为mdj。之后点击评测即可。

第5关:请画出酒店工作人员参与者的所有用例

闯关要求
请使用starUML工具画出客户这个酒店工作人员的用例。将画好的模型保存到workspace/myshixun/submit/submit_step4/下,并命名为step4,格式为mdj。之后点击评测即可。

第6关:请根据系统案例分析来画出软件营销人员这个参与者

闯关要求
请使用starUML工具画出软件营销人员参与者。将画好的模型保存到workspace/myshixun/submit/submit_step5/下,并命名为step5,格式为mdj。之后点击评测即可。

第7关:请画出软件营销人员参与者的所有用例

闯关要求
请使用starUML工具画出客户这个软件营销人员的用例。将画好的模型保存到workspace/myshixun/submit/submit_step6/下,并命名为step6,格式为mdj。之后点击评测即可。

第8关:请根据系统案例分析来画出软件管理人员这个参与者

闯关要求
请使用starUML工具画出软件管理人员参与者。将画好的模型保存到workspace/myshixun/submit/submit_step7/下,并命名为step7,格式为mdj。之后点击评测即可。

第9关:请画出软件管理人员参与者的所有用例

闯关要求
请使用starUML工具画出软件管理人员这个参与者的用例。将画好的模型保存到workspace/myshixun/submit/submit_step8/下,并命名为step8,格式为mdj。之后点击评测即可。

6-3 面向对象分析之类图

第1关:类图题目初体验

B

第2关:请画出客户类(包括属性和操作)

闯关要求
使用starUML工具,请画出客户类及其属性、操作,属性标出id即可(private),操作有维护个人基本信息、获取酒店信息、撤销订单、查看订单信息、提交订单、评价酒店服务(见下表)。

本案例对象分析表

第3关:请画出酒店客房类(包括属性和操作)

闯关要求
使用starUML工具,请画出酒店客房类的属性和操作。属性有id、hotelId(注意拼写)、status。操作有酒店客房的增删改查。

第4关:画出客户类和酒店客房类之间的关系

闯关要求
使用starUML工具,依次画出客户类和酒店客房类,再画出两者之间的单向关联关系(客户指向酒店客房)。

6-4 面向对象分析之顺序图

第1关:顺序图题目初体验

C

第2关:请画出酒店工作人员角色(带有生命线)

闯关要求
请画出酒店工作人员角色对象(带有生命线)。将画好的模型保存到workspace/myshixun/submit/submit_step1/下,并命名为step1,格式为mdj。

本案例介绍
系统显示酒店当前的基本信息,酒店工作人员选择需要修改的项目,酒店工作人员输入当前待修改项目的值,系统显示修改过的酒店基本信息,酒店工作人员重复2~4步,直到所有待修改的项目完成,酒店工作人员提交修改过的酒店基本信息,系统记录新的酒店基本信息。以下是酒店工作人员在维护酒店基本信息时的过程图

第3关:请画出注册页面对象(带有生命线)

闯关要求
请画出注册页面角色对象(带有生命线)。将画好的模型保存到workspace/myshixun/submit/submit_step2/下,并命名为step2,格式为mdj。

第4关:请画出房间库对象(带有生命线)

闯关要求
请画出房间库角色对象(带有生命线)。将画好的模型保存到workspace/myshixun/submit/submit_step3/下,并命名为step3,格式为mdj。

第5关:请画出酒店工作人员和注册页面之间的消息传递内容

闯关要求
在上一关的基础之上,画出酒店工作人员和注册页面之间的消息传递内容。酒店工作人员和注册页面之间的消息传递内容为:选择修改条目,单向消息传递。将画好的模型保存到workspace/myshixun/submit/submit_step4/下,并命名为step4,格式为mdj。

第6关:请画出注册页面对象自身传递消息

闯关要求
在上一关的基础之上,请画出注册页面对象自身传递消息,消息内容为:展示所选条目详情。将画好的模型保存到workspace/myshixun/submit/submit_step5/下,并命名为step5,格式为mdj。

第7关:请再次画出酒店工作人员和注册页面之间的消息传递内容

闯关要求
在上一关的基础之上,请画出酒店工作人员和注册页面之间的消息传递内容,消息内容为:输入项目新值。将画好的模型保存到workspace/myshixun/submit/submit_step6/下,并命名为step6,格式为mdj。

第8关:请画出注册页面对象和房间库对象之间的消息传递内容

闯关要求
在上一关的基础之上,请画出注册页面对象和房间库对象之间的消息传递内容,消息内容为:更新条目信息。将画好的模型保存到workspace/myshixun/submit/submit_step7/下,并命名为step7,格式为mdj。

6-5 面向对象分析之活动图

第1关:活动图题目初体验

A

第2关:请画出开始节点

闯关要求
请画出开始节点。将画好的模型保存到workspace/myshixun/submit/submit_step1/下,并命名为step1,格式为mdj。

第3关:之后进入网络,画出进入酒店管理系统主页的状态

闯关要求
请在第一关的基础之上,画出进入酒店管理系统主页的状态。其中,开始结点和酒店管理系统主页之间的消息为进入网络。将画好的模型保存到workspace/myshixun/submit/submit_step2/下,并命名为step2,格式为mdj。

第4关:下一步画出酒店业务状态

闯关要求
下一步画出酒店业务状态。将画好的模型保存到workspace/myshixun/submit/submit_step3/下,并命名为step3,格式为mdj。

第5关:之后选择服务,画出订房服务状态

闯关要求
之后选择服务,画出订房服务状态。将画好的模型保存到workspace/myshixun/submit/submit_step4/下,并命名为step4,格式为mdj。

第6关:之后出现分支,状态分别为满房和有空房

闯关要求
之后出现分支,状态分别为满房和有空房。将画好的模型保存到workspace/myshixun/submit/submit_step5/下,并命名为step5,格式为mdj。

第7关:之后分支汇合,汇合条件为无法预订和提交订房订单

闯关要求
之后分支汇合,汇合条件为无法预订和提交订房订单。将画好的模型保存到workspace/myshixun/submit/submit_step6/下,并命名为step6,格式为mdj。

第8关:下一步画出处理订单状态

闯关要求
下一步画出处理订单状态。将画好的模型保存到workspace/myshixun/submit/submit_step7/下,并命名为step7,格式为mdj。

第9关:结束,画出结束节点

闯关要求
结束,画出结束节点。将画好的模型保存到workspace/myshixun/submit/submit_step8/下,并命名为step8,格式为mdj。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值