搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
weixin_40725706
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【项目实战课】基于HuggingFace的Bert情感分析实战
2
大模型微调5种方法你想知道的都在这里了
3
百度新突破!商业可行性已验证!EgoVM:轻量级矢量化地图解析~
4
【UVM基础】5、sequence、sequencer、item、driver_sequence item
5
贪心算法_贪心算法 和最优解的偏差
6
API接口漏洞利用及防御_api接口未授权访问漏洞
7
AMD电脑安装TBC(Trimble Business Center)_affinity not supported,using "disabled
8
elk + filebeat + kafka实验和RSync同步
9
Duilib是一个开源 好用的界面库 这是一个简单的入门学习demo_duilib demo
10
Docker: docker image常用命令实战
当前位置:
article
> 正文
计算机考研复试常问问题 软件工程篇_软件工程复试
作者:weixin_40725706 | 2024-08-04 10:40:01
赞
踩
软件工程复试
1、什么是软件工程?
软件工程是
指导计算机软件开发和维护的一门工程学科
,即利用工程的概念、原理、技术和方法来开发和维护软件。
主要的方法:结构化方法、面向对象方法、原型方法等。
软件工程三要素:方法、工具和过程。
2、软件的生命周期
又称软件生存周期,即软件的产生到报废的整个过程。
包括:
问题定义
:弄清楚用户需要计算机解决什么样的问题。
可行性分析
:从多个方面考量该软件的可行性。
需求分析
:弄清楚用户对软件系统的全部需求。
开发阶段
:设计、实现和测试。
维护
:纠错性维护、适应性维护、完善性维护和预防性维护。
3、软件过程
为了获得高质量软件所需要完成的一系列任务的框架,规定了完成各项任务的工作步骤。
4、软件需求分析的任务
定义和描述目标系统需要做什么。
具体任务:
获取需求
从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题。
分析需求
对问题进行分析抽象,并建立目标系统的逻辑模型。
将需求文档化
需求规格说明书、用户使用手册和测试计划。
需求验证
对需求分析的成果进行评估和验证。
5、软件开发过程模型
瀑布模型
将软件生存周期的各项任务规定为固定顺序连接的若干阶段,就像瀑布一样,最终得到软件产品。
快速原型模型
快速地建立一个能够反映用户主要需求的原型系统,再根据用户的反馈来完善系统。
增量模型
把一个待开发的软件系统模块化,把每个模块作为一个增量组件,分批次地对其进行分析、设计、编码和测试。
不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
螺旋模型
可以看作是在每个阶段前都增加了风险分析过程的快速原型模型。
喷泉模型
是面向对象的软件开发过程。
6、结构化分析方法和结构化设计方法
结构化分析方法
:一种面向数据流的需求分析方法。采用自顶向下、逐层分解的方法建立系统的处理流程,即把大问题逐步分解为若干容易解决的小问题。
结构化设计方法
:一种面向数据流的设计方法,目的在于确定软件的结构。在结构化分析的基础上,进一步把问题自顶向下、逐步求精和模块化。
7、软件测试
目的:发现程序的错误。
方法:静态测试和动态测试。
静态测试:不运行被测软件,只是静态地检查程序代码、界面或文档是否存在错误。
动态测试:通过运行程序发现错误,分为黑盒测试法、白盒测试法、灰盒测试法。
黑盒测试
把测试对象看作一个黑盒子,不考虑程序内部的处理过程,只考虑输入对于输出的正确性,即依据需求规格说明书,检查程序是否满足功能要求。
白盒测试
把测试对象看作一个打开的盒子,不仅检查程序是否满足功能要求,还检查其内部逻辑结构是否有错。
灰盒测试
一种介于白盒测试与黑盒测试之间的测试,它不仅关注输出对于输入的正确性,同时也关注程序内部表现,但这种关注不像白盒测试那样详细,只是通过一些现象、事件以及标志来判断程序内部的运行状态。
8、白盒测试有哪些覆盖?
软件中的某些语句或者成分未被使用到。
语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖。
9、软件系统的四个测试阶段
单元测试
:针对每个单元进行测试,以保证每个模块能正常工作。
集成测试
:将测试过的模块组装起来进行测试。
系统测试
:检验软件产品是否能与系统的其他部分协调工作(如数据库)。
验收(用户)测试
:用户在自己的环境中对软件进行测试。
10、选择一种程序设计语言的主要依据
为了减少程序测试与维护的成本,选用的高级语言应该
有理想的模块化机制,以及可读性好的控制结构和数据结构
。
为了便于调试和提高软件可靠度,选用的语言
能在编译过程中尽可能多地发现错误
。
为了降低软件开发和维护成本,选用的语言应该
有良好的独立编译机制
。
其他因素:
系统用户的需求、可以使用的编译程序、可以得到的软件工具、系统规模、程序员的知识、软件移植性要求和软件的应用领域等。
11、软件的维护
目标:通过必要的维护工作使得系统能持久地满足用户的需求,为用户创造更多的效益。
分类
纠错性维护
:纠正软件中潜在的错误。
适应性维护
:使软件适应外部环境的变化。
完善性维护
:为满足用户新的需求,而对软件进行增进。
预防性维护
:为方便以后的维护而进行的维护。
12、提高软件质量的主要措施
复审
:在软件生命周期每个阶段结束之前,都采用一定的标准对该阶段产生的软件配置成分进行检测。
复查
:检查已有的材料,以判定在软件生命周期某个阶段的工作能否开始或继续。
管理复审
:向管理人员提供有关项目的总体情况,以便他们从管理角度对开发工作进行审查。
测试
:包括单元测试、集成测试、系统测试和验收测试。
13、面向对象如何实现模块独立性?
面向对象使用
对象、类和消息
来实现模块独立性。
14、耦合和内聚
耦合
:又称块间联系。指软件系统各模块之间相互联系的紧密程度。模块之间联系越紧密,其耦合性就越强,模块的独立性就越差。相反其耦合性就越弱
(低耦合)
。
内聚
:又称块内联系。指一个模块内的元素相互联系的紧密程度。若一个模块内的各元素之间联系紧密,则内聚性就高
(高内聚)
。
15、面向对象和面向过程开发的区别
面向过程
:以过程为核心,强调事件的流程和顺序。
思想:需要实现一个功能的时候,看重的是开发的过程和步骤,每一个步骤都需要自己亲力亲为。
例如:吃饭。需要买菜、洗菜、切菜、煮饭、炒菜...
面向对象
:以对象为中心,强调事件的角色和主体。
思想:需要实现一个功能的时候,看重的并不是过程和步骤,而是关心的是对象,对象能做什么。
例如:吃饭。找饭店,饭店提供饭菜,我们不需要关心煮饭做菜的过程。
16、对象、类和消息
对象
:现实生活中的实体。
类
一类具有相同属性和行为的对象的抽象,类描述了这类对象的特征和行为。
类由属性和方法组成。
属性
:类中的数据成员,即对象共有的特征。
方法
:类中操作属性的过程,即对象共有的行为。
消息
:对象之间进行通信的手段。
17、面向对象分析设计的模型
步骤:获取需求、整理需求、建立模型(对象模型、动态模型、功能模型)
对象模型
:类以及对象之间关系的映射,描述了系统的静态结构。
动态模型
规定了对象的动态行为。
包括:状态图和事件跟踪图。
状态图
:用来描述每一类对象的动态行为。
事件跟踪图
也称为脚本,是完成系统中某个功能的一个事件序列。
脚本通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件。
功能模型
指明了系统应该做什么,更直观地反应了用户对目标系统的需求。
通常由一组数据流程图表示。
18、UML里面有哪些图?
静态建模机制
用例图
:描述系统功能。
类图
:描述所定义的类。
对象图
:描述各个类在某一时间点上的实例。
动态建模机制
活动图
:描述一个操作的执行过程中所完成的工作。
状态图
:描述一个特定对象的所有可能的状态及其引起状态改变的事件。
序列图(顺序图)
:模拟对象之间的交互。
协作图
:描述对象协作关系。
UML物理框架机制
构件图
:描述各种软件构件之间的依赖关系。
部署图
:描述了一个系统运行时的硬件结点。
19、数据字典
系统中所使用的所有数据元素定义的集合。
作用:就像一个字典,用于查询在开发或维护系统时,遇到的无法理解的各种数据结构、类型定义等。
20、数据流图
以图形的方式描述数据在系统中的逻辑流向和逻辑变换过程,即数据输入到输出的转换过程。
【注】数据流程图:通过图形的方式描述信息的来龙去脉和实际流程。
很多资料中,数据流程图也叫数据流图。
21、软件危机
指软件在开发和维护的过程中出现一系列严重的问题。
表现
软件的开发成本和进度常常估计不准确。
用户对已经开发出来的软件不满意。
软件没有合适的文档资料。
软件成本在公司的总成本中所占的比例逐年上升。
软件产品的质量常常不可靠。
原因
用户对软件需求的描述不精确。
软件开发人员对用户需求的理解有偏差。
缺乏处理大型软件项目的经验。
缺乏有力的指导和有效的开发工具的支持。
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop博客】
推荐阅读
article
python
多线程
处理
文件
流_
python
文件
流
处理
...
接下来,我们在服务层实现import_thinks方法,这段代码是一个导入方法 `import_thinks`,它接收文...
赞
踩
article
上手
GitHub
_
git
for
windows
provides
a
bash
emulatio...
本文为《
GitHub
入门与实践》的读书笔记目录基本概念版本控制集中型分散型msysGit (Windows安装Git)G...
赞
踩
article
开天
N80z
笔记本电脑
装
双系统
(已预装了正版麒麟)_开天
n80z
支持
win7
...
本文详细描述了如何在开天
N80z
笔记本上安装
双系统
,包括使用U盘启动、分区调整、引导修复、BIOS设置,以及如何在Win...
赞
踩
article
如何有效
的
谈
薪资
_
公司
缺人谈
薪资
...
1 打听工资
的
范围,心里有数,2 了解同等
公司
范围
的
薪资
,猎头,熟人,打听
公司
的
缺人
的
紧急程度,职位
的
紧急程度,如果紧急...
赞
踩
article
python
流式
下载_
GitHub
- nutalk/
python
-
stream
: 更优雅的
流式
数据...
python
-
stream
说明数据
流式
框架, 可用作数据清洗, 数据预处理, 数据迁移等应用场景更优雅的
流式
数据处理
方式...
赞
踩
article
基于
SpringBoot
+
Vue
简易
在线
协作
办公
套件
系统
设计和实现(源码+LW+部署讲解)_
基于
vu...
本
系统
是一个
基于
JavaWeb
的
简易
在线
协作
办公
套件,旨在提供一个高效、便捷
的
在线
办公
环境。
系统
主要包括员工,紧急公告,...
赞
踩
article
Selenium
与
WebDriver
:
Errno
8 Exec格式错误的多种
解决方案
_
chrome
...
在使用
Selenium
和
WebDriver
进行网页自动化时,可能会遇到各种错误。其中一个常见问题是执行格式错误(Errn...
赞
踩
article
23
岁
那年
你正
处在
哪个
状态
?
现在
呢?_
23
岁
的
人生
状态
...
23
岁
那年
你正
处在
哪个
状态
?
现在
呢? 我,
23
岁
,应届毕业生。生活,工作,爱情都处于
人生
的低谷,一穷二白,一无所有,一...
赞
踩
article
论文
写
作-
算法
伪
代码
_
论文
中的
算法
伪
代码
怎么
写
...
论文
写
作
_
论文
中的
算法
伪
代码
怎么
写
论文
中的
算法
伪
代码
怎么
写
1.需要说明输入、输出; 2...
赞
踩
article
Python
数据
持久层
ORM
框架
SQLAlchemy
模块_
python
orm
框架
...
SQLAlchemy
:强大的
数据
库抽象层,简化
ORM
操作,提供高效查询接口,支持多种
数据
库引擎。解锁
数据
交互潜能,助力开...
赞
踩
article
基于
SpringBoot
+
Vue
的
图书
借阅
管理系统
(
源码
+文档+部署+讲解)...
近年来,科技飞速发展,在经济全球化
的
背景之下,互联网技术将进一步提高社会综合发展
的
效率和速度,互联网技术也会涉及到各个领...
赞
踩
article
别在说
自己
不知道
docker
了
,
全文
通俗易懂
的
给你说明白
docker
的
基础
与底层原理_
docker
架...
Docker 是一个开源
的
应用容器引擎
,
基于Go语言进行开发实现并遵从Apache2.0 协议开源
,
基于 Linux 内...
赞
踩
article
linux
安装
rabbitmq
...
rabbit是使用erlang语言开发的,所以我们需要先进行erlang的安装,版本也要对的上,本次以安装为最新版的安装...
赞
踩
article
X
服务器
远程连接问题解决:Bad
displayname
““‘或
Missing
X
server
...
Missing
X
server
or
$
DISPLAY
,('failed to acquire X connectio...
赞
踩
article
多
分类
逻辑
回归
(
Multinomial
Logistic Regression)_
多
分类
logist...
前言
分类
从结果的数量上可以简单的划分为:二
分类
(Binary Classification)
多
分类
(Multinomi...
赞
踩
article
SpringBoot
+
Vue
图书
(
图书
借阅
)
管理系统
-附项目源码与配套文档...
本论文阐述了一套先进的
图书
管理系统
的设计与实现,该系统采用Java语言,结合现代Web开发框架和技术,旨在为
图书
馆提供高...
赞
踩
article
深度
学习之
OpenCV
的
DNN
模块_
opencv
dnn
...
OpenCV
的
DNN
模块提供以下主要功能:1.加载和运行
深度
学习模型:支持从各种框架导入预训练的
深度
学习模型,并在Ope...
赞
踩
article
vue实现
电子
签名
、
图片
合成
、及
预览
功能
_前端怎么把
签名
生成的临时地址展示
图片
...
本文介绍了
电子
签名
、
图片
合成
、及
预览
功能
_前端怎么把
签名
生成的临时地址展示
图片
前端怎么把
签名
生成的临时地址展示
图片
...
赞
踩
article
linux
之ip
命令
...
文件配置网络可能不会生效,因为它们可能会覆盖这些配置。在这种情况下,你需要确保使用正确的工具来配置和管理网络。是 Lin...
赞
踩
article
为何
优秀
的
程序员
不断离开?
_
程序员
离职
前兆...
所谓“死海效应”,就是指有些互联网公司过于注重挽留人才,以至于他们无意中挽留了很多平庸
的
人才,反而迫使
优秀
的
人才
离职
。以...
赞
踩
相关标签
python
开发语言
git
github
电脑
c++
python流式下载
spring boot
vue.js
后端
简易在线协作办公套件系统
selenium
测试工具
WebDriver
Errno 8
Chrome
ChromeDriver
爬虫代理
职业生涯
算法
oracle
ORM
数据持久层
数据库
docker