当前位置: 首页 > news >正文

软考达人-案例分析

阅读以下关于 Web 应用设计开发的描述,

在答题纸上回答问题 1 至问题 3。
某公司拟开发一个网络约车调度服务平台,实现基于互联网的出租车预约与管理。公司的系统分析师王工首先进行了需求分析,得到的系统需求列举如下:

系统的参与者包括乘客、出租车司机和平台管理员三类;

系统能够实现对乘客和出租车司机的信息注册与身份认证等功能,并对乘客的信用信息进行管理,对出租车司机的违章情况进行审核;

系统需要与后端的银行支付系统对接,完成支付信息审核、支付信息更新与在线支付等功能;

针对乘客发起的每一笔订单,系统需要实现订单发起、提交、跟踪、撤销、支付、完成等业务过程的处理:

系统需要以短信、微信和电子邮件多种方式分别为系统中的用户进行事件提醒。

【问题1】(9分)

请说明微服务架构的优点和缺点。
我的回答
优点:将系统中各个模块按功能拆分,降低了系统的耦合度,有助于构件复用;后续维护更加简单,只需在对应微服务中进行;增强了系统的可扩展性,后续扩展只需新增微服务,无需更改依赖的关系;各微服务可外部扩展,后续程序规模扩大更加容易。

缺点:前期开发代码量较大,相较集中部署架构需要更多人力;对开发团队的要求更高

正确答案:
微服务优点:
(1)每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。
(2)微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。
(3)微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。
(4)微服务能使用不同的语言开发。
(5)去中心化。每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一数据库。

微服务缺点:
(1)很难在不采用分布式事务的情况下跨服务实现功能
(2)测试工作更加困难
(3)跨服务实现要求功能要求团队之间的紧密协作
(4)部署复杂

  • 优点:从“业务、团队、独立性、技术灵活性、数据管理”角度来描述。
  • 缺点:从“分布式事务、测试、部署复杂性、团队协作”角度来描述。

【问题3】(8分)答对4条即可

应用网关是实现微服务的主要技术之一,请简述应用网关的作用。

1、实现服务冗余,一个微服务对应多个ip地址,用户访问该服务时通过负载均衡获取服务
2、统一登记服务,优化配置,一次修改ip,全系统生效,也便于后续部署
3、实现权限校验,对应权限用户访问对应权限服务,提高系统的安全性
4、

标准答案:
1、提供统一入口 2、可以进行权限身份认证等安全管理 3、可以根据流量进行限流 4、数据缓存 5、性能监控等 6、异常重试 7、服务降级

阅读以下关于软件系统建模的叙述,

在答题纸上回答问题1至问题3。
【说明】
软考达人公司计划开发一套教学管理系统,用于加强教学管理服务。该教学管理系统基本的需求包括:
( )系统用户必须成功登录到系统后才能使用系统的各项功能服务;
( )管理员使用该系统管理专业、班级、教师、学生和课程等教学基础信息;
( )学生使用系统注册并选择专业,缴费后才能参与在线学习;
( )教师使用该系统发布模拟试卷;
( )学生在线做模拟试卷,在规定时间段内只能提交一次答卷;
( )教师使用该系统批阅答卷;
( )模拟考到期结束后,系统自动生成成绩单,管理员可以通过打印机打印成绩单。
项目组经过分析和讨论,决定采用面向对象开发技术对系统各项需求建模。

【问题1】(15分)

请根据题目所述需求,说明教学服务系统中有哪些参与者。并列举项目中使用的所有实体类。

参与者:管理员,学生,老师
实体类:管理员,学生,老师,专业,班级,课程,试卷,成绩单

【参考答案】

参与者有:系统用户、管理员、教师、学生、时间、打印机。
实体类有:系统用户、管理员、专业、班级、教师、学生、模拟试题、答卷、成绩单。

[!note] 注意
模拟试题和答卷不是一个实体

【问题2】(4分)

用例是对系统行为的动态描述,用例获取是需求分析阶段的主要任务之一。请指出在面向对象系统建模中,用例之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时, “选择专业”用例与“登录系统”用例之间、“参加模拟考试”用例与“批阅答卷”用例之间的关系分别属于哪种类型?

用例间的关系有 组合、聚集、继承、泛化、
包含、扩展、泛化、关联
“选择专业”用例与“登录系统”用例之间 为 选择专业必须登录系统,为包含关系
“参加模拟考试”用例与“批阅答卷”用例之间 为 老师批阅试卷之前需要需要学生参加模拟考试,为关联关系

正确答案:

用例之间的关系包括:泛化、包含、扩展。
“选择专业”用例与“登录系统”用例之间的关系为:包含关系。
“参加模拟考试”用例与“批阅答卷”用例之间的关系为:扩展关系。

方面 包含关系(include) 扩展关系(extend)
是否必然执行
触发条件 主用例执行时必然调用 满足条件才触发
用途 提取公用行为,避免重复 补充可选或条件行为
例子 登录系统被各种操作包含 考试后可能批阅答卷

【问题3】(6分)

类图主要用来描述系统的静态结构,是组件图和配置图的基础。请指出在面向对象系统建模中,类之间的关系有哪几种类型?

聚集 如类A和其他类聚集得到类B,类B不依赖于类A
组合 如类A和其他类组合得到类B,类B依赖于类A
继承 类A继承类B,说明类A是类B的子类。

各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

顺序 关系 UML符号 含义 例子
1 泛化(Generalization) 空心三角箭头 表示子类是父类的具体化(抽象-具体关系),强调概念继承和重用属性/方法 老虎是动物的一种,即有老虎的特性也有动物的共性。
2 实现(Realization) 虚线空心三角箭头 类实现接口,强调接口规范的实现 Printer 实现接口 IPrintable,必须提供 print() 方法。
3 组合(Composition) 实心菱形 强聚合,“整体-部分”关系,部分生命周期依赖整体 房子(House)房间(Room),房子销毁时房间也销毁。
4 聚合(Aggregation) 空心菱形 弱聚合,“整体-部分”关系,部分可以独立存在 班级(Class)学生(Student),学生可以不属于班级存在。
5 关联(Association) 实线 表示类之间有静态连接关系,可带多重性 教师(Teacher)课程(Course),一个教师可以教多门课程。
6 依赖(Dependency) 虚线箭头 表示一个类使用另一个类,关系是短暂和弱的,强调使用关系而非结构关系 考试系统(ExamSystem) 使用 打印机(Printer) 打印成绩单,系统不拥有打印机。

系统设计与建模

1、UML时序图的三种消息及其概念
同步消息:消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。

异步消息:消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。

返回消息:返回消息表示从过程调用返回。

2、系统分析设计过程中时序图和协作图两种交互图的选取原则

时序图的选取原则:

- 强调时间顺序:适用于展示对象之间消息传递的时间顺序和动态行为,描述系统中的事件发生顺序。

- 展示交互的时间线:清晰展示用例或场景中各对象在不同时间点的状态变化,帮助理解系统的时间维度行为。

- 描述复杂的交互场景:适用于多个对象和复杂交互的场景,通过时间线展示消息传递的先后顺序,使复杂交互过程易于理解。

协作图的选取原则:

- 强调对象间的关系:展示对象之间的链接和关系结构,适用于静态连接和通信路径的展示。

- 展示对象的结构关系:描述对象如何协作完成任务,强调对象之间的静态结构和协作方式。

- 突出对象间的通信:适用于展示对象间的通信和交互,而不是时间顺序,清晰展示对象之间的消息传递和关联关系。

3、UML时序图表示条件分支序列片段有哪些?

序列片段 含义 使用场景 示例标注
alt(Alternative) 条件分支,相当于 if…else… 有多种互斥条件时使用 [余额 > 100] → 扣费成功``[余额 ≤ 100] → 扣费失败
opt(Option) 可选分支,相当于 if(条件) 只有一个条件时使用 [用户已登录] → 显示欢迎页
loop(Loop) 循环执行,相当于 for / while 某交互重复执行 [i=1..n][while 条件]
par(Parallel) 并行执行 多个消息可以并发发生 并行处理:A→B,C→D
break(Break) 中断,退出序列 满足条件时提前终止 [错误发生] → 中断操作
region(Critical Region) 临界区,互斥执行 并发时只允许一个执行 临界区内的消息互斥
neg(Negative) 非法序列,表示禁止的交互 说明某些消息序列不应出现 [非法输入] → 拒绝处理
seq(Weak Sequencing) 弱顺序,允许部分交错 串行但允许局部并行 两个片段之间顺序保证,片段内部可交错
strict(Strict Sequencing) 严格顺序,完全串行 片段必须完全按顺序执行 先 A 完全结束,再执行 B
http://www.hskmm.com/?act=detail&tid=385

相关文章:

  • kettle插件-sqlserver cdc插件,从sqlserver获取实时数据so easy,早早下班
  • golang netpoll 底层原理
  • manim如何按绝对时间管理动画
  • MATLAB R2025a安装教程和资源(中文版)
  • Xmanager Power Suite使用教程 - Invinc
  • try hack me.md
  • Snapshot-based State Replication 基于快照的状态复制网络框架,快照同步
  • Transformer通俗讲解
  • Ubuntu 安装微信
  • Ubuntu 安装截图软件 flameshot
  • Kali连接postgreSQL失败(已解决)
  • 主存储器和cpu的链接
  • 7. LangChain4j + 记忆缓存详细说明 - Rainbow
  • 英语_阅读_water protection team_待读
  • 滑动窗口(不与单调队列结合的总结)
  • Codeforces Round 1048 (Div 2)
  • 9.9未完成
  • 9.9日总结
  • 202205_宁波市赛_Cr4ck2
  • GitHub Copilot代码审查大升级!路径级指令+组织级规范,开发者效率再提升!
  • 20250909 GOJ 模拟赛
  • 在AI技术唾手可得的时代,挖掘新需求成为制胜关键——某知名语音识别框架需求洞察
  • SOS dp(高维前缀dp)
  • 英语_阅读_raise awareness about water conservation_待读
  • 自我介绍
  • MQ
  • 微信消息模版推送
  • [豪の学习笔记] 软考中级备考 基础复习#5
  • 自我介绍+软工五问
  • 02020212 .NET Core重难点知识12-服务定位器、.NET依赖注入示例