面向对象程序分析与设计期末总复习

基本上全是重点(CNU)

第一章 面向对象建模基础

选择题

1. 面向对象程序设计将描述事物的__________与对数据的操作封装在一起,作为一个相互依存、不可分割的整体来处理。

A、 信息

B、 数据隐藏

C、 数据抽象

D、 数据

2. ________是一种整体-部分关系,这种关系的语义为“有一个”关系。

A、 继承

B、 聚合

C、 依赖

D、 数据

3. 两个类之间存在着关联关系。而关联关系之间也存在一定的数量关系。每一个教师可以讲授多门课程,至少讲授一门课程。而一门课程也可以被多个教师讲授,至少被1个教师讲授。教师与课程之间的带量级的关联关系表示为________.

A、 教师1..*————————1..*课程

B、 教师1..*————————1课程

C、 教师1————————1..*课程

D、 教师0..*————————0..*课程

填空题

4. 建模就是采用____、____、____的方式,将系统的构成及其构成间的关系呈现给人们的一种技术方法。

答案: 表格化; 图形化; 公式化;

5. 车和轮胎是____关系,轮胎离开车仍然可以存在。

答案: 聚合;

判断题

6. 封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。

答案: 正确

简答题

7. 简述面向对象建模的过程

答案:
发现对象、对象的类化、类的特征化、类的结构化

​ 发现对象(Find Objects)。这是面向对象建模的起点,可以从问题域中发现对象,也可以从实现域中发现对象。当然,发现对象是对客观事物或主观事物进行抽象的过程,只抽象出当前开发软件系统所需要的对象和对象的信息。

​ 对象的类化(Classification of Object)。有了对象之后,将对象分类,这是降低复杂性,提高复用的方法。也是为了更好地认识问题、解决问题。

​ 类的特征化(Characterization of Class)。即确定类的属性和方法。对象的属性大部分成为类的属性,而职责成为类的方法。
​ 类的结构化(To establish Relationships between Classes)。类的结构化就是确定类之间的关系。UML提供了类之间关系的表示。

第二章 愿景

选择题

1.《斗罗大陆:魂师对决》是海南智虎网络科技有限公司开发的游戏,目标组织就是海南智虎网络科技有限公司,这属于目标组织的哪种情况? ( )

A、 第一种

B、 第二种

C、 第三种

D、 第四种

2. 研发部要添加一名 Java程序员,由人力资源部负责出面招人, 请问针对这名Java程序员,老大是()

A、 人力资源部经理

B、 研发部经理

C、 公司总经理

D、 Java程序员

填空题

3. 根据愿景的形式化定义,愿景可以用一句话来概括:在_______(老大)看来,软件系统应该给组织业务带来的________。

答案: 目标组织代表;改进;

4. 老大代表了目标组织,是最有“地位”的_______,是最优先照顾其利益的那个人。

答案: 涉众;

5. 在确定老大的时候,有几个要点需要注意:要点一:________。要点二:老大是买方。要点三 :老大不一定清楚系统好坏的度量指标。

答案: 老大是系统改进业务流程的那个组织的负责人;

判断题

6. 老大不是涉众。 ( )

答案: 错误

7. 老大是一个具体的人。 ( )

答案: 正确

8. 涉众是受系统影响的人或系统。 ( )

答案: 错误

简答题

9. 目标组织有几种情况?

答案:(建议加上例子)

​ 目标组织的第一种情况是:目标组织是软件系统的所有者和消费者,软件系统为目标组织的业务服务,软件系统的使用者是目标组织或者是目标组织的客户。

​ 目标组织的第二种情况是:目标组织是软件系统的消费者和使用者,但不是软件系统的所有者,软件系统为目标组织的业务服务。

​ 目标组织的第三种情况是目标组织是软件系统的所有者和消费者,软件系统既为目标组织自身的业务服务

​ 目标组织的第四种情况是,软件工程师既是音乐软件的生产者、所有者和使用者,同时也是音乐软件的目标组织、消费者和服务提供者。他开发的音乐软件是为自己个人使用和享受服务的,但同时也可以被其他音乐爱好者使用。因此,这款音乐软件可以被看作是一种面向个人用户的业务服务,也可以被看作是一种面向音乐爱好者的服务产品。

10. 如何确定组织的老大?

答案:

要点一 :老大是系统改进业务流程的那个组织的负责人。

​ 判断老大最重要的一点是其所负责的组织的业务流程被软件系统改进,这是老大引进软件系统的目的。

要点二:老大是买方。

​ 一般来说,目标组织是软件的购买者,而老大是最终签字同意购买软件的那个人。这里的“买”是广义的“买” ,不仅是付出金钱,也可以是付出声誉、官职、时间等。

要点三 :老大不一定清楚系统好坏的度量指标。

第三章 业务用例

选择题

1. 针对以下研究对象,财务人员最有可能是业务参与者的是() 。

A、 某省注册会计师考试委员会

B、 某市国税局

C、 公司人力资源

D、 公司财务部

2. 以医院为研究对象,以下是正确的业务用例的是()。

A、 患者→看病

B、 医生→诊治

C、 患者→挂号

D、 收费人员→收费

填空题

3. 业务流程的改进有三种:____、____、____。

答案:物理流变信息流;改善信息流转;封装领域逻辑

答案: 用半自动化的业务流程替代纯手工的业务流程;用半自动化和自动化的业务流程替代半自动化的业务流程;用全自动化的业务流程替代半自动化和自动化的业务流程;

4. 业务有三种类型,分别是:核心业务、____和____。

答案: 支持型业务;管理型业务;

判断题

5. 业务实体是组织中的非人脑系统,例如银行的点钞机。 ( )

答案: 正确

6. 业务参与者在组织之内。 ( )

答案: 错误

7. 业务参与者在系统之外。 ( )

答案: 错误

8. 消息代表责任分配而不是数据流动。 ( )

答案: 正确

第四章 需求

填空题

1. 系统用例规约的前置条件是用例开始前,系统需要满足的____。前置条件必须是系统能____到的。

答案: 约束;检测;

2. 用例的步骤和约束是____博弈的结果.

答案: 涉众利益;

3. 系统用例规约的后置条件是用例结束后,系统需要满足的____。后置条件必须是系统能____到的。

答案: 约束;检测;

第五章 分析

选择题

1. 在四色原型中,PPT类用______表示。

A、 灰色

B、 黑色

C、 淡绿色

D、 淡黄色

2. 状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑。()和()是因,()和()是果。

A、 现态,动作,条件,次态

B、 现态,次态,条件,动作

C、 条件,动作,现态,次态

D、 现态,条件,动作,次态

3. 四色法建模中, MI代表了()。

A、 角色

B、 PPT

C、 时刻-时段

D、 分类描述

4. 在四色原型中,MI类用()表示。

A、 灰色

B、 黑色

C、 淡红色

D、 淡黄色

填空题

5. 四色原型模式包括:____、____、____、____。

答案: MI原型;Role原型;PPT原型;Description原型;

6. FURPS+需求模型中F是____,U是____,R是____,P是____,S是____,+是____。

答案: Function;Usability;Reliability;Performance;Supportability;辅助的和次要的因素;

7. 类的命名应遵循以下几条原则:____、____、____、____。

答案: 应恰好符合这个类所包含的全部对象;应该反映每个对象个体而不是整个群体;使用规范的名词而不是俚语;使用英文描述;

8. BCE模式包含三个部分:____、____、____。

答案: 边界;控制;实体;

判断题

9. 事物从一个状态到另外一个状态的转化通常是即时的。 ( )

答案: 正确

解答题

10. 请简述四色原型模式

答案:

MI archetype,moment-interval,时标性对象,粉红颜色

img

Role archetype,角色原型,淡黄颜色

img

PPT archetype,party、place或thing的缩写,淡绿色,Party表示有自己正常的状态并且能够自主控制自己的一些行为。Place or thing表示不会说话没有行为的东西。

img

Description,灰色

img

11. 类的命名的原则是什么?

答案:

1)适合该类及其特殊类的全部对象实例

2)反映个体而不是群体

3)使用名词,或带有定语的名词 ,避免无意义的符号

4)考虑使用适当种类的语言文字对类命名。

12. 什么是BCE模式?

答案:

​ BCE是边界(Boundary)、控制(Control)、实体(Entity)的首字母,该模式是将软件系统中的类分成边界类、控制类和实体类。边界类用来隔离系统内外,通常负责接收并响应系统内外的信息。所以,参与者对象只能跟边界对象互动,不能直接发送消息给控制对象或实体对象。控制类用来控制用例执行期间的复杂运算或者业务逻辑(business logic)。实体类对应领域概念的类,主要用来保存问题领域中的重要信息,封装了跟数据结构和数据存储有关的变化。

第六章 系统架构设计

选择题

1. 方法的算法设计属于

A、 架构设计

B、 数据库设计

C、 界面设计

D、 类设计

2. 在.NET的多层架构中, ( )是为UI层提供一个一致对外的接口,使得对于BLL的使用更加容易。

A、 外观层

B、 实体层

C、 数据访问层

D、 业务逻辑层

填空题

3. 软件系统设计包括:____和____。

答案: 软件架构设计;软件详细设计;

4. RUP的“4+1 视图模型”包括:____、____、____、____、____。

答案: 用例视图;逻辑视图;实施视图;进程视图;配置视图;

5. MVC指的是____、____、____。

答案: Model;View;Controller;M代表模型(Model),V代表视图(View), C代表控制器(Controller)。

6. MVP 模式将 Controller 改名为 ____,同时改变了通信方向。

答案: Presenter;

7. MVVM 模式将 Presenter 改名为 ____,基本上与 MVP 模式完全一致。

答案: ViewModel;

8. 软件架构一般分成____、____、____三种。

答案: 逻辑架构;物理架构;系统架构;

9. 每个子系统对其他子系统的服务有两种通信方式:____和端对端通信.

答案: 客户端-服务器端;

10. C/S架构分称为____,分为____和____。

答案: 客户/服务器架构;客户端;服务器端;

11. B/S架构又称____。

答案: 浏览器/服务器架构;

12.三层架构的目的体现了“高内聚低耦合”的思想,从下至上分别为:____、____、____。

答案: 数据访问层;业务逻辑层;界面层;

13. SSH是____、____、____简称。

答案: Structs;Spring;Hibernate;

14.Android中的MVP框架由3部分组成:View负责____,Presenter负责____,Model提供____。

答案: 显示;逻辑处理;数据;Android中的MVP框架由3部分组成:View负责显示,Presenter负责逻辑处理,Model提供数据。

15. 对于.NET的MVP,表示层可以拆分为两个部分:____和____。

答案: 视图层;视图逻辑层;
.NET中的MVP中表示层可以拆分为两个部分:User Interface(简称UI)和Presentation Logic(简称PLogic)。

16. SSM框架是____、____和MyBatis的简称。

Spring;SpringMVC;

简答题

17. 请简述软件系统设计

答案:

​ 软件系统设计(Software System Design)包括软件架构设计(Software Architecture Design)和软件详细设计(Software Detail Design)。

​ 软件架构设计是对软件系统内的元素,及元素间关系的一种主观映射的产物。因此,不同的系统有不同的软件架构。
软件架构设计是软件开发中的一个关键环节,是软件系统质量的重要保证。因为软件系统所承担的交易的商业价值极高,这对于客户的商业经营和管理来说极为重要,因此,软件系统必须非常可靠和安全。

​ 并且,软件系统必须能够在用户的使用率、数量增加很快的情况下,保持合理的性能。同样,软件系统应该能够根据客户群的不同和市场需求的变化进行调整,对现有系统进行功能和性能的扩展。除此之外,一个好的软件架构必须使软件系统易于维护和易于使用。

​ 软件详细设计说明一个软件系统各个层次中的每个程序(每个模块或子程序),为程序员编码提供依据。也对软件系统所依赖于运行的硬件,包括操作系统、中间件、接口软件、可能的性能监控与分析等软件环境的描述,及配置要求进行说明和设计。软件详细设计也详细描述系统所受的内部和外部条件的约束和限制说明。包括业务和技术方面的条件与限制以及进度、管理等方面的限制。

18. 试简述RUP的“4+1 视图模型”。

答案:

​ 在 RUP(Rational Unified Process )中,该视图集称为“4+1 视图模型”。

​ 用例视图:包括用例和场景,这些用例和场景包括在架构方面具有重要意义的行为、类或技术风险。它是用例模型的子集。用例视图是“4+1 视图模型”中的“1”,并且居于中心位置,说明软件架构是以需求为中心的,其它四个视图都是以用例视图为基础的。

​ 逻辑视图:包括最重要的设计类、从这些设计类到包和子系统的组织形式,以及从这些包和子系统到层的组织形式。它还包括一些用例实现。它是设计模型的子集。前面系统设计简介中的架构设计就属于逻辑视图,它是系统分析师和系统设计师的主要工作之一。通过逻辑视图,可以设计出具体的类。

​ 实施视图:包括实施模型及其从模块到包和层的组织形式的概览。同时还描述了将逻辑视图中的包和类向实施视图中的包和模块分配的情况。它是实施模型的子集。程序员可以根据逻辑视图在集成开发环境(Intergrated Development Enviorenment,IDE)中创建项目,项目的结构包括包和类都与逻辑视图一致。

​ 进程视图:包括所涉及任务(进程和线程)的描述,它们的交互和配置,以及将设计对象和类向任务的分配情况。只有在系统具有很高程度的并行时,才需要该视图。在 Rational Unified Process 中,它是设计模型的子集。系统集成人员在创建任务时更多地是考虑性能、可伸缩性、吞吐量等非功能性需求。

​ 配置视图:包括对最典型的平台配置的各种物理节点的描述以及将任务(来自进程视图)向物理节点分配的情况。只有在分布式系统中才需要该视图。它是部署模型的一个子集。构架视图记录在软件构架文档中。

第七章 设计模式

选择题

1.设计模式中应______ 。

A、 针对具体实现编程,而不是针对接口编程

B、 针对接口编程,而不是针对具体实现编程

C、 平等使用接口和具体实现编程

D、 尽量不使用接口编程

2. ()建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。

A、 抽象工厂模式

B、 中介者模式

C、 组合模式

D、 观察者模式

填空题

3. 一个软件实体应当对 ____开放,对 ____关闭。

答案: 扩展;修改;

4. 高层模块不应该依赖 ____模块,它们都应该依赖 ____。抽象不应该依赖于 ____, ____应该依赖于抽象。要针对 ____编程,不要针对 ____编程。

答案: 低层;抽象;细节;细节;接口;实现;

5. 接口分为两种:____和 ____。

答案: 实例接口;类接口;

6. 设计模式根据其目的(模式是用来做什么的)可分为 ____, ____和 ____三种。

答案: 创建型模式;结构型模式;行为型模式;

7. ____模式将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作。

答案: 适配器;

判断

8. 一个软件应该对扩展关闭,对修改开放。

答案:错误;

第十章 数据库设计

填空题

1. CDM 指的是____。

答案: Conceptual Data Model;

2. PDM指的是 ____。

答案: 物理数据模型(Physical Data Model);

大题画图重点(30分)

某大学要开发一个学生宿舍管理系统,使用者为辅导员,宿管和学生,辅导员完成宿舍调整,学生每晚在系统里签到,宿管员查寝,请按以上内容,结合你的经验,完成以下任务:

​ (一) 画出一个简单的系统用例图,写出一个用例的用例规约。用例图最少包含一个用例,用例规约应包括前置条件、后置条件、基本路径、扩展路径、字段列表。(10分)

​ (二) 请根据该用例规约,画出该用例的BCE图。(10分)

​ (三) 请结合用例规约和BCE图,用四色图法,画出该用例的领域类图。要求类图中要包括BCE图中的类和方法(10分):

答案
​ (一) 参考答案

img

用例图2分,用例规约基本正确5分,细节完善3分

用例编号:us-1

用例名:调整宿舍

涉众利益:学生担心自己自己和要好的同学分不到一个宿舍,辅导员担心宿舍不够用

前置条件:系统已经登录

后置条件:调整结果已记录

关键路径

1.辅导员请求调整宿舍

2.系统反馈班级和宿舍信息

3.辅导员对学生宿舍进行匹配

4.系统保存调整信息

扩展路径

3a 宿舍人数超过4

3a1 反馈“最多4人”

3a2 返回

字段列表

1.辅导员=工号+姓名+所带班级列表

1.宿舍=楼号+楼层+房间号

2.班级=专业名+班级编号 如:软工工程19201

(二) 参考答案:BCE图结构正确5分,对象名字,消息正确5分。

img

(三) 参考答案:类图基本结构正确5分,类、属性、方法、关系正确5分。

img

拓展 (感谢不同专业同课程的同学送来的重点!)

1、 领域模型驱动设计内容有哪些?

1) 分层架构

2) 实体

3) 服务

4) 模块

5) 聚合

6) 工厂

7) 资源库

2、 领域建模常用的例图和序列图

img

img

img

3、什么是BCE模型

BCF模式(Boundary-Control-Fntity·Patters),BCF 是边界(Boundary)、控制(Control)、实体(Fntity)的首字母,该模式是将软件系统中的类分成边界类、控制类和实体类。边界类用来隔离系统内外,通常负责接收并响应系统内外的信息。所以,参与者对象只能跟边界对象互动,不能直接发送消息给控制对象或实休对象。控制类用来控制用例执行期间的复杂运算或者业务逻辑(businesslogic)。实休类对应领域概念的类,主要用来保存问题领域中的重要信息,封装了跟数据结构和数据存储有关的变化。

4、试简述软件系统设计

软件系统设计包括软件架构设计和软件详细设计。软件架构设计是对软件系统内的元泰及元素间的关系的·科主观映射的产物。软件详细设计包括类设计、界面没计和数据库设计。

5、如何确定组织的老大?

要点一:老大是系统改进业务流程的那个组织的负责人。判断老大最重要的一点是其所负责的组织的业务流程被软件系统改进,这是老大引进软件系统的目的。,要点二:老大是买方,一般来说,月标组织是软件的购买者,而老大是最终签字同意购买软件的那个人,这里的“买”是广义的“买”·,不仅是付出金钱,也可以是付出声誉.官职、时间等。

6、界面设计流程有哪些?

image-20230614194900399

7、试简述 RCP的“4+1”视图型。

用例视图:包括用例和场景。
逻辑视图;包括最重要的设计类、从这些设计类到包和子系统的组织形式,以及从这些包
和子系统到层的组织形式。
实施视图:包括实施模型及其从模块到包和层的组织形式的概览。
进程视图:包括所涉及任务(进程和线程)的指述,它们的交互和配置,以及将设计对象
和类向任务的分配情况。
配置视图:包括对最典型的平台配置的各种物理节点的描述以及将任务(米自进程视图)向物坪节点分配的情况。

8、 请简述 FURPS 需求模型。

FURPS 是功能(function)、易用性 (usability)、可度 (reliability)、性能(performmance)及可支持性(supportability)五个词英文前缀的缩写.功能性(Functional):特性、功能、安全件:可用性(Usability): 人性化因素、帮助、文档;

9、软件开发原型设计的原则有哪些?

可见原则;贴近场景原则;可控性原则;统一性原则;防错原则;易取原则;灵活高效原则;优美且简约原则;容错原则;人性化助原则

10、面向对象建模的过程是什么?

发现对象: 可以从问题域中发现对象,也可以从需求规约中发现对象对象的类化:有了对象之后,将对象分类。类的特征化:即确定类的属性和方法。类的结构化:类的结构化就是确定类之间的关系。

11、请简述职责链模式的优点。

降低耦合度
可简化对象的相瓦连接
增强给对象指派职责的灵活性
增加新的请求处理类很方便

12 、请简述建造者模的优点。

建造者模式的优点:
1)在建造者模式小,客户端不必知道产品内部组成的细节,将产品不身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。

2)每个具体建造者都和对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者,用户使用不同的具体建造者即可得到不同的产品对象。

3)可以更加精细地控制产品的创建过程。将复杂产品的创律步藏分解在不同的方法中,使得创建过程更加清晰,也更方便使用程序来控制创建过程。

4)增加新的具体建造者无须修改原有类库的代码,指挥者类针对抽象建造者类编程,系统扩展方便,符合“开闭原则”

13、请简述策略模式的优点

策略模式提供了对“开闭原则”的完美支持,用户可以在不修改原有系统的基础上选择算法或行为,也可以灵活址增加新的算法或行为。策略模式提供了管理相关的算法族的办法。“策略模式提供了可以普换继承关系的办法。使用策略模式可以避免使用多重条件转移语句。

14、类的命名的原则是什么?

类的名字应恰好符合这个类(和它的特殊类) 所包含的全部对象。类的名字应该反映每个对象个体,而不是整个群休。使用名词或带有定语的名词,使用规范的词汇,不用市井俚语。一般而言,在 OOA 时,类名、属性名和方法名都是使用中文描述。而在 OOD 时,类名、属性名以及方法名都使用英文表述。

15、 应题 一

某大学要改进教务考勤系统,组织是成都东软学院下面的一个部门教务部,老大是成都东软学院教务部部长,部长对考勒有三点不满意:一是班级上报考勤的效率不高,经常出错,准确性不高。这里使用效率和准确性这两个指标来插述班级上报考勤这个业务环节。二是教学管理者日前所了解的出勤率数据经常不准确,这旦使用出勒率这个指标来描述教学管班者了解考勤情况这个业务环节。三是教务部的考勤人员经常跟他抱怨,记录、汇总老勒数据工作量太大,费时费力。这里使用工作量这个指标来描述教务者勒人员整卫考勒数据这个业务环节。
1.写出“教务考勒人员>汇总班级考勒情况”用例的用例规约,用例规约应包括前置条件、后置条件、基本路径、扩展路径、宁段列表。

涉众利益:
部长:
为教学管理者了解出勤率提供准确的依据

减少教务考勒人员整理考勒数据的工作量

教务考勒人员:担心每天统计的考勒不准确部长批评

基本路径:
(1)教务考勒人员请求汇总班级考勤情况。(2)系统验证所有班级日考勤记录
(3)系统反馈汇总班级考勒情况界面
(4)教务考勒人员提交实际汇总班级口考勤记录
(5)系统验证实际汇总班级日考勒记录
(6)系统生成全校口孝勒记录
(7)系统反馈汇总班级考勒情况成功界面

扩展路径:
4a.教务考勤人员不提交所有班级日考勤记录,系统返回考勤管理界面

4b.没有班级口考勤记录,系统反馈“没有班级口考勤记录”

7a.系统反馈汇总班级考勒情况尖败界面

字段列表:
4)班级日考勤记录-班级名+班级总人次数+日期+星期+出勤+迟到+早退+旷课+病假+事假

6)全校日考勤记录-日期+星期+当日上课班级总数+当日上课学生总人次数+出勤+迟到+早退+B“课+病假+事假。

业务规则:
4.)班级总人次数=出勤+迟到+早退+广课+病假+事假。
6)当日上课学生总人次数=出勤+迟到+早退+广课+病假+事假。

非功能需求:
汇总班级考勤情况时间在 10 秒以内

设计约束:

wps23

  1. 请画出该用例问题域的结构化类图,使用四色原型模式标注

    略…………..