软件工程期末复习

news2024/11/30 14:51:48

文章目录

  • 一、单选、多选、判断
  • 二、简答题
    • 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 以确保路径
正确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87484.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

arduino-ide ESP32 开发

本来想用vscodePlatformIO 一直安装不成功,网不行。先用Arduino(后来用手机开热点,安装成功了,电信的局域网真差) 我的ESP开发版是CP2102驱动芯片,需要先安装驱动 CP210x USB to UART Bridge VCP Driver…

剑指 Offer 62. 圆圈中最后剩下的数字

文章目录题目思考代码和注释总结题目 0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组…

技术创新,她不断进取!冲在前端,开发是她!

单从数字比例上来看,前端开发工程师的女性占比相对整个行业来说较高。成为优秀的前端开发工程师,不论男女,你都可以!本期工作坊就想跟你聊聊,想要成为一名优秀的前端开发应该具备怎样的能力?女性的哪些独特…

还在用HttpUtil?SpringBoot 3.0全新HTTP客户端工具来了,用起来够优雅!

我们平时开发项目的时候,经常会需要远程调用下其他服务提供的接口,于是我们会使用一些HTTP工具类比如Hutool提供的HttpUtil。前不久SpringBoot 3.0发布了,出了一个Http Interface的新特性,它允许我们使用声明式服务调用的方式来调…

Grafana 集成 Prometheum

参考文章: linux 上搭建grafana_摸鱼第一人的博客-CSDN博客_linux安装grafana 目录 一、安装 Grafana 二、安装 Prometheus 三、Prometheus 集成 Grafana 一、安装 Grafana 1、从官网下载rpm包 Download Grafana | Grafana Labs 2、将下载好的包上传到linu…

开源博客项目Blog .NET Core源码学习(2:数据库结构分析)

项目采用17张表以支撑博客内容展示及后台管理功能,本文结合数据库表中的存储数据,学习每张表的用途及其中字段的意义(有部分字段暂时还不明白,后续学习代码时再逐步完善)。 序号表名用途1CategoryInfo保存文章栏目的定…

vulntarget靶场系列-a-writeup

网络配置外网WIN7:ip1: 192.168.127.91/255.255.255.0 ,gw:192.168.127.2 (NAT模式)ip2:10.0.20.98-vmnet1(仅主机模式)域主机成员:10.0.20.99-vmnet1(仅主机模式)10.0.10.111-vmnet2(仅主机模式)域控:10.0.10.110-vmnet2(仅主机模式)密码配置…

C++11标准模板(STL)- 算法(std::max_element)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 返回范围内的最大元素 st…

2022 12月15日 每日面试题(MyBatis)

&#x1f3e0;个人主页&#xff1a;不会写代码的满满 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是满满&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; 目前状况&#x1f389;&#xff1a;开学即将大三&#xff0c;目标就是半年内找到一份实…

【云计算与大数据技术】资源管理、调度模型策略的讲解

一、资源管理模型 集群资源管理模型通常由两个部分组成&#xff0c;即资源表示模型和资源分配模型&#xff0c;由于这两个部分是耦合的&#xff0c;所有优化集群资源管理时需要同时结合这两个部分考虑&#xff0c;资源表示模型用于描述集群资源的组织方式&#xff0c;是集群资…

【Contrastive Learning:IVIF】

CLF-Net: Contrastive Learning for Infrared and Visible Image Fusion Network &#xff08;LF-Net&#xff1a;红外与可见光图像融合网络的对比学习&#xff09; &#xff08;总结&#xff1a;就是更像谁就选谁&#xff09; 本文提出了一种基于对比学习的红外和可见光图像融…

透过ChatGPT的进化足迹,OpenAI传达了哪些信号?

古希腊神话中&#xff0c;一位名叫赫尔墨斯的神&#xff0c;会充当人神之间的信使&#xff0c;穿着带有双翼的飞鞋&#xff0c;行走在神明与人类之间。根据《荷马史诗》的记载&#xff1a;“在天神中&#xff0c;赫尔墨斯是最喜欢引导凡人前行的。”这句话用来形容OpenAI与AI的…

佳力奇IPO过会:拟募资11亿 西安现代与华控湖北是股东

雷递网 雷建平 12月13日安徽佳力奇先进复合材料科技股份公司&#xff08;简称&#xff1a;“佳力奇”&#xff09;日前IPO过会&#xff0c;准备在深交所创业板上市。佳力奇计划募资11.22亿元&#xff0c;其中&#xff0c;6.2亿元用于先进复合材料数智化生产基地建设项目&#x…

Google Cloud database options (关于GCP数据库怎么选择)

背景 GCP提供了几种您可以从中选择的数据库服务&#xff0c;可是究竟该用哪个呢&#xff1f; Cloud SQL:Cloud Spanner:BigQuery:Cloud Bigtable:Cloud Firestore:Firebase Realtime Database:Cloud Memorystore: from Google Cloud database options sort out by zhengkai.…

【自然语言处理】隐马尔科夫模型【Ⅱ】隐马尔科夫模型概述

有任何的书写错误、排版错误、概念错误等&#xff0c;希望大家包含指正。 由于字数限制&#xff0c;分成六篇博客。 【自然语言处理】隐马尔可夫模型【Ⅰ】马尔可夫模型 【自然语言处理】隐马尔科夫模型【Ⅱ】隐马尔科夫模型概述 【自然语言处理】隐马尔科夫模型【Ⅲ】估计问题…

14、TheFatRat木马生成工具-创建后门或payload

kail攻击主机&#xff1a; Kali 192.168.11.106靶机&#xff1a;windows server 2008 r2 192.168.11.134 x64 32位一、TheFatRat介绍 TheFatRat创建的后门或者payload&#xff0c;可以在Linux&#xff0c;Windows&#xff0c;Mac和Android上等多种平台上执行&#xff0c;可生…

九、JavaScript——数据类型_数值

一、数值 定义及规范&#xff1a; 数值 &#xff08;Number) -在JS中所有的整数和浮点数(小数) 都是Number JS中的数值并不是无限大的&#xff0c;当数值超过一定后会显示近似值&#xff0c;JavaScript表达的最大整数是&#xff1a;9007199254740992 Infinity 是…

设计模式总览——枯燥的知识又增加了

从今天开始呢&#xff0c;阿Q就带大家了解一下 java 的设计模式&#xff0c;并从中选出比较常用的几种设计模式进行总结。首先呢&#xff0c;先给大家说一下设计模式到底是什么。 设计模式 设计模式&#xff08;Design pattern&#xff09;代表了最佳的实践&#xff0c;通常被…

iOS备用机自动充电方案

搬到新加坡以后&#xff0c;我拥有了很多张手机卡&#xff1a;1张国内的电话卡&#xff0c;回国时使用1张新加坡电话卡&#xff0c;本地使用1张马来西亚电话卡&#xff0c;去马来西亚旅行时使用1张英国电话卡&#xff0c;去欧洲旅行时使用相对应的&#xff0c;我需要有备用机来…

DSP篇--C6701功能调试系列之 FLASH测试

目录 1、 FLASH介绍 2、 FLASH功能测试 调试的前期准备可以参考前面的博文&#xff1a;DSP篇--C6701功能调试系列之前期准备_nanke_yh的博客-CSDN博客 1、 FLASH介绍 FLASH作为EMIF的外设&#xff0c;对其操作就需要根据EMIF相关配置来确定FLASH的地址了。 一般地&#xff…