软件工程相关知识点

1.什么是软件工程?它目标是什么?     

软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。     
软件工程目标:

  • 付出较低开发成本;
  • 达到要求的功能;
  • 取得较好的性能;
  • 开发的软件易于移植;
  • 只需较低的维护费用;
  • 能按时完成开发任务,及时交付使用;
  • 开发的软件可靠性高。     

2.软件开发中有哪几种过程模型?

软件开发中常见的软件过程模型有瀑布模型、喷泉模型、快速原型模型、螺旋模型、增量模型、统一过程模型等。

3.什么是软件生命周期?它有哪几个活动?

软件生命周期又称为软件生存周期系统开发生命周期,是软件的产生直到报废的生命周期。

周期内分八个阶段:

  • 问题定义
  • 可行性分析
  • 需求分析
  • 概要设计
  • 详细设计
  • 编码
  • 测试
  • 维护

4.软件工程三要素是什么?软件工程三要素之间的关系?

三要素:方法、工具和过程。

软件质量是软件工程的生命线软件工程质量保证基础质量管理促进了过程的改进,创造了许多行之有效的软件开发方法和工具。软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。方法支撑过程和工具,过程和工具又促进方法学的研究。

5.什么是需求分析?需求分析阶段的基本任务是什么?

需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。

基本任务:

  • 问题识别
  • 分析与综合,导出软件的逻辑模型
  • 编写文档

6.什么是软件生存周期模型?

生存周期模型:描述软件开发过程中各种活动如何执行的模型。对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型化技术的基础,也是建立软件开发环境的核心。

7.什么是软件危机?产生原因是什么?

软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机

产生原因:

  1. 软件规模越来越大,结构越来越复杂。
  2. 软件开发管理困难而复杂。
  3. 软件包开发费用不断增加。
  4. 软件开发技术落后。
  5. 生产方式落后,仍采用手工方式。
  6. 开发工具落后,生产率提高缓慢。

8.软件工程面临的问题是什么?

软件工程面临的问题:

  • 软件的费用
  • 可靠性
  • 可维护性
  • 软件生产率和软件的重用

9.详细设计的基本任务是什么?

  • 为每个模块进行详细的算法设计
  • 为模块内的数据结构进行设计
  • 对数据库进行物理设计
  • 其他设计
  • 编写详细设计说明书
  • 评审

10.详细设计有哪几种描述方法?

详细设计的描述方法:图形、表格和语言

其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,

语言常用过程设计语言(PDL)来作为工具。

11.什么是数据字典?简述数据字典与数据流图的关系。

数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。

数据字典与数据流图的关系:数据流图数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。 数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。

12.什么是软件配置管理?什么是基线?

软件配置管理,简称SCM(Software Configuration Management),是指一组管理整个软件生存期各阶段中变更的活动。软件配置管理技术可以使软件变更所产生的错误达到最小并最有效地提高生产率。

基线:是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。

13.说明面向对象的特征?

面向对象的特征是:

  1. 对象唯一性:每个对象都有自身唯一的标识,在对象生存期中,其标识不变,不同的对象不能有不同的标识。
  2. 分类性:是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。
  3. 继承性:是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
  4. 多态性:是指相同的操作或函数过程可以作用于多种类型的对象上并获得不同的结果。

14.软件测试需经过哪些步骤?

单元测试->集成测试->系统测试->验收测试

  1. 单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试;
  2. 集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策路组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确;
  3. 将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试;
  4. 验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买者展示该软件系统满足原始需求

15. 软件工程过程:PDCA循环

  • P (Plan) : 软件规格说明(Specification)。规定软件的功能及其使用的限制;
  • D (Do) : 软件开发。产生满足规格说明的软件;
  • C (Check) : 软件确认。通过有效性验证以保证软件能够满足客户的要求;
  • A (Action) : 软件演进。为满足客户的变更要求,软件必须在使用的过程中不断地改进。

16.模块的独立性是什么?

模块独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。

一般采用两个准则度量模块独立性,即单个模块的内聚模块间的耦合。

  • 内聚是单个模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。
  • 耦合是模块之间的互相连接的紧密程度的度量。
  • 模块独立性比较强的模块应是高内聚低耦合的模块。

17.什么是黑盒测试?什么是白盒测试?

 黑盒测试又叫功能测试,这是因为在黑盒测试中主要关注被测软件的功能实现,而不是内部逻辑。在黑盒测试中,被测对象的内部结构,运作情况对测试人员是不可见的,测试人员对被测产品的验证主要是根据其规格,验证其与规格的一致性。在绝大多数没有用户参与的黑盒测试中,最常见的测试有:功能性测试、容量测试、安全性测试、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试等。

白盒测试:是一种测试用例设计方法,在这里盒子指的是被测试的软件,白盒,顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作的,因此白盒测试需要你对系统内部的结构和工作原理有一个清楚的了解,并且基于这个知识来设计你的用例。

18.软件工程需求是什么?

软件需求的三个层次:

  • 业务需求:业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求
  • 用户需求:用户需求(user requirement)描述了用户使用产品必须要完成的任务。
  • 功能需求:系统分析员描述 开发人员在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。

功能需求是需求的主体,它描述的是开发人员如何设计具体的解决方案来实现这些用户需求(how),其数量往往比用户需求高一个数量级。

 

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星球奋斗者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值