文章目录
- 一、单选、多选、判断
- 二、简答题
- 1、MVC体系结构
- 2、软件风险的分类
- 3、测试准则(教材P111- 5.2.3)
- 4、结构化分析的方法
- 5、面向对象设计的原则(SOLID)
- (1)单一职责原则
- (2)开放/闭合原则
- (3)里氏替换原则
- (4)接口隔离原则
- (5)依赖倒置原则
- 三、分析题
- 1、计算
- 2、绘制用例图
- 3、绘制UML类图
- 四、设计题
- 1、设计图书馆管理系统的软件结构。
- 2、设计图书馆管理系统的接口
一、单选、多选、判断
1、软件工程-阶段测试1
2、软件工程-阶段测试2
3、软件工程-阶段测试3
4、软件工程-阶段测试4
二、简答题
1、MVC体系结构
模型-视图-控制器(Model-View-Controller,MVC)是一种常见的体系结构风格。MVC被广泛应用与用户交互程序的设计中
MVC优点:
- 多个视图与一个模型相对应
- 具有良好的移植性
- 系统被分割为三个独立的部分,当功能发生变化时,改变其中一个部分就能满足要求
MVC缺点:
- 增加了系统设计和运行复杂性
- 视图与控制器连接过于紧密,妨碍两者的独立复用
- 视图访问模型的效率比较低
2、软件风险的分类
1、按照风险的影响范围分类
- 项目风险
- 技术风险
- 商业风险
这类风险威胁软件产品的生存力,也往往危及项目或产品,商业风险又分为(市场分险、策略风险、管理风险、预算风险、)
2、按照风险的可预测性分类
- 已知风险
- 可预测风险
- 不可预测风险
3、测试准则(教材P111- 5.2.3)
(1)所有的测试都应该能追溯到用户需求
(2)应该在测试开始之前的相当长时间,就指定出测试计划
(3)把Pareto原理应用于软件测试。
(4)测试应该从“小规模”开始,并逐步进行“大规模”测试
(5)穷举例测试是不可能的。
(6)为了达到最佳效果,应该由独立的第三方来从事测试工作
4、结构化分析的方法
(1)与用户沟通的方法
(2)设计软件原型
(3)绘制实体-关系图、数据流图、状态转换图
(4)使用数据字典
5、面向对象设计的原则(SOLID)
(1)单一职责原则
一个模块或类应仅有一个引起其变化的因素
换句话说,一个模块或类应该只实现一个或一种类型的业务职责
- 优点
使类或模块更加独立和稳定
也能方便地实现复用 - 缺点
设计类爆炸
类的封装性破坏
(2)开放/闭合原则
类或模块的代码对扩展是开放的,对修改是关闭的
当出现新需求时,只通过扩展已有的代码进行实现,而不是修改已有的代码
- 优点
可扩展性好
稳定性高 - 缺点
可读性差
代码测试困难
(3)里氏替换原则
代码设计中的子类对象能够完全替换掉其父类对象,而不需要改变父类的任何属性
客户端使用子类对象或父类对象,不需要提供额外的信息
- 优点
规范地使用继承
可扩展性好
稳定性高 - 缺点
限制了继承多态的灵活性
(4)接口隔离原则
如果接口中的行为不是业务内聚的,就需要按照业务进行分组,并将分组后的行为通过单独的接口定义,从而实现不同业务分组的隔离
- 优点
减少冗余行为
稳定性高
可复用性好 - 缺点
接口爆炸
可读性差
(5)依赖倒置原则
高层模块不应依赖低层模块,二者因该依赖于抽象
抽象不应该依赖于细节,细节应该依赖抽象
- 优点
抽象度高
稳定性高
可扩展性好 - 缺点
可读性差
代码测试困难
三、分析题
1、计算
【例题:数值更改】某公司计划采用 C 语言开发一款在线学习英语的软件,开发人员小李结合以往的开发经验,估算出学习英语单词功能模块的相关数据,如下:
①代码的最小平均规模:2000 行
②代码的最大平均规模:3000 行
③代码的最可能平均规模:2500 行
请结合以上信息,使用 Walston-Felix 模型来帮助小李估算学习英语单词功能模块的开发工作量。提示:
【答案】
预测代码行数:L=(2000+3000+4x2500)/6=2500
由 Walston-Felix 模型计算工作量:E=5.2 x (2500/1000)^0.91≈12(人月)
2、绘制用例图
【例题】某图书管理系统的功能如下:
①读者登录系统后,可以查询信息、预约图书和续借图书;
②图书管理员登录系统后,可以查询信息、管理读者信息和图书信息以及进
行借书和还书的操作;
③读者还书时,如果超过预期时间,则图书管理员要按照图书馆规定对读者
进行罚款;
④管理员登录系统后可以维护系统。
请分析需求并回答以下问题:
(1)请分析需求中的系统参与者有哪些?
(2)根据第(1)题的分析结果,进一步分析和每个参与者关联的系统用例。
(3)使用 UML 用例图可视化第(1)题和第(2)题的分析结果。
【答案】
(1)读者、图书管理员和管理员;
(2)读者:登录、预约图书、续借图书、查询信息;
图书管理员:登录、查询信息、管理读者信息、管理图书信息、借书和还书;
管理员:登录、系统维护。
(3)用例图参考图如下:
3、绘制UML类图
【例题】企鹅、狗和大雁都属于动物,所有的动物都有生命,每天都要进行新陈代谢。所有的企鹅都可以下蛋;每条狗都有名字和属于不同的品种,且都会吠叫;每只大雁都有羽毛且会飞翔,大雁是群居动物,每只大雁都属于一个雁群。雁群飞行时可以排成 V 形飞翔和一行飞翔。
请根据以上说明使用 UML 类图可视化领域类。
【答案】
四、设计题
某图书馆管理系统(LIB)描述:图书馆的系统用户包含后台管理员,前台管理员和读者。系统为所有用户提供注册和登录服务。后台管理员可以管理图书类别信息,管理图书信息,管理读者信息。管理某种信息一般包含对该类信息的添加,删除,修改和查询功能。前台管理员可以办理读者的借书,还书,续借,缴纳罚金,查询图书,查询读者借阅情况等业务。缴纳罚金时,系统会让读者选择用微信还是支付宝支付,读者选择其中之一后,系统显示对应支付方式的二维码给读者进行支付。读者可以在线查询自己的图书借阅信息,续借,查询图书信息。
1、设计图书馆管理系统的软件结构。
(1)请阅读和分析材料中需求,识别出该系统包含哪些功能,并按照父模块和子模块的结构进行说明。
【答案】
(不是每个模块都有子模块,父模块的冒号后为其包含的子模块)
注册、登录、借书、还书、续借、缴纳罚金、查询读者借阅信息。
管理图书类别:添加图书类别、删除图书类别、修改图书类别、查询图书类
别。
管理图书:添加图书、删除图书、修改图书、查询图书。
管理读者:添加读者、删除读者、修改读者、查询读者。
(2)根据题目(1)设计的结果,使用层次图可视化 LIB 的功能结构。
【答案】
2、设计图书馆管理系统的接口
(1)请使用线框图设计后台管理员对管理图书类别模块的用户接口(UI,UserInterface),并说明运用了哪些 UI 设计原则。
【答案】
本原型运用了结构化原则,简洁性原则,可视化原则,复用原则等 UI 设计
原则。
(2)请识别出该系统的外部接口,描述该接口的名称、功能、调用者和提供者。
【答案】
外部接口名称:支付
功能:LIB 系统发送读者及待付罚金等信息,连接到微信(支付宝)支付系
统,请求支付。支付后的结果返回给 LIB 系统。调用者:LIB 系统。
提供者:微信或支付宝支付系统。
(3)请设计一个该系统的内部接口,设计出该接口的名称、功能、调用者、提供者、输入参数、输出参数和异常状态码等。
【答案】
内部接口名称:查询图书信息
功能:根据图书名称查询书籍列表
调用者:借书模块
提供者:管理图书模块
输入参数:图书名称
输出参数:所有叫该名称的图书列表
异常处理代码:404 找不到,该请求链接不存在。请检查 URL 以确保路径
正确。