软件工程期末复习


一、单选、多选、判断

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 以确保路径
正确。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangkay88

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值