软件工程练习题

名词解释

软件工程

软件工程是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。

软件生命周期

一个计算机软件从功能确定、设计到开发成功投入使用,并在使用过程中不断修改、增补和完善,直到停止该软件的全过程。

数据流图

数据流图是结构化分析的基本工具,它描述了信息流和数据转换。

结构化分析方法

结构化分析方法(Structured Method,结构化方法)是一种软件开发方法,一般利用图形表达用户需求,强调开发方法的结构合理性以及所开发软件的结构合理性。

内聚度

内聚度是前述信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。内聚度按其高低程度可分为7级,内聚度越高越好。

耦合度

耦合性(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量,是指一程序中模块及模块之间信息或参数依赖的程度

功能内聚

功能内聚指模块内所有元素共同完成一个功能,缺一不可,因此模块不能再分割

校正性维护

在软件交付使用后,由于开发时测试得不彻底或不完全,在运行阶段会暴露一些开发时未能测试出来的错误。为了识别和纠正软件错误,改正软件性能上的缺陷,避免实施中的错误使用,应当进行的诊断和改正错误的过程,这就是改正性维护。

适应性维护

随着计算机技术的飞速发展和更新换代,软件系统所需的外部环境或数据环境可能会更新和升级,如操作系统或数据库系统的更换等。为了使软件系统适应这种变化,需要对软件进行相应的修改,这种维护活动称为适应性维护。

完善性维护

在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。

软件配置管理

软件配置管理(Software Configuration Management),又称软件形态管理、或软件建构管理,简称软件形管(SCM)。界定软件的组成项目,对每个项目的变更进行管控(版本控制),并维护不同项目之间的版本关联,以使软件在开发过程中任一时间的内容都可以被追溯,包括某几个具有重要意义的数个组合。 

开放封闭原则

开放封闭原则(OCP,Open Closed Principle)是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。其他的设计原则,很多时候是为实现这一目标服务的,例如以Liskov替换原则实现最佳的、正确的继承层次,就能保证不会违反开放封闭原则。

简答题

什么是软件生命周期?分为哪几个阶段?  

一个计算机软件从功能确定、设计到开发成功投入使用,并在使用过程中不断修改、增补和完善,直到停止该软件的全过程。

阶段:问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段

简要说明瀑布模型的主要思想。

核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。

简要说明增量(渐增)模型的主要思想。

把软件产品作为一系列增量构件来设计、编码、集成和测试,在项目开发过程中,以一系列的增量方式来逐步开发系统。

快速原型法的基本思想是什么?适用于哪些项目的开发?

快速原型模型是指在软件开发者在获取一组用户基本需求定义后,利用高级软件工具可视化的开发环境,快速地建立一个目标系统的最初版本(可运行的系统),并把它交给用户试用、补充和修改,再进行新版本开发。反复进行这个过程,直到得出系统的 “最优解”,即用户满意为止的一种方法。通过多次与用户交互后,可以获取用户最真实的需求。

适用于需求模糊的小型软件开发

假设你负责某种软件的研发,由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件开发模型或方法?为什么?

对这个项目的重要要求是,要严格按照已公布的日期完成产品开发,因此,要着重考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件是可以并行完成工作,因此可以加快开发进度。

另外这个项目是成熟的产品,因此存在旧版本,旧版本相当于一个原型,通过收集用户对旧版本的反映,比较容易确定对新版本的需求,没有必要再专门再建立一个原型系统来分析用户的需求;第二该公司的开发人员对文字处理软件很熟悉,有相关经验,所有具备采用增量模型开发新版本时精细划分的技术水平;第三该软件今后还可能开发更新的版本,所以应该设计成开放式,以便日后改进和扩充。

综上所述,比较适合采用增量模型。

可行性分析报告主要包括哪些内容?

技术可行性、经济可行性、运行可行性、法律可行性

结构化分析方法的主要思想是什么?有哪些常用的工具?

主要思想:面向数据流的分析方法,自顶向下、逐步求精

工具:数据流图(DFD),数据字典(DD),结构化语言、判定表和判定树

需求规格说明书主要包括哪些内容?

需求规格说明书的主体包含功能需求描述及非功能需求描述两部分

需求分析阶段的主要任务是什么?应交付哪些成果?

任务:描述软件的功能和性能,需求不单单是功能需求,还有非功能需求

成果:需求规格说明书

软件总体设计阶段的主要任务是什么?需要提交哪些文档?

任务:概要设计、详细设计

文档:概要设计说明书、详细设计说明书

概要设计说明书主要包括哪些内容?

1、引言

1.1编写目的

1.2项目背景

1.3定义

1.4参考资料

2、任务概述

2.1目标

2.2运行环境

2.3需求概述

2.4条件与限制

3、总体设计

3.1处理流程

3.2总体结构和模块外部设计

3.3功能分配

4、接口设计

4.1外部接口

4.2内部接口

5、数据结构设计

5.1逻辑结构设计

5.2物理结构设计

5.3数据结构与程序的关系

6、运行设计

6.1运行模块的组合

6.2运行控制

6.3运行时间

7、出错处理设计

7.1出错输出信息

7.2出错处理对策

8、安全保密设计

9、维护设计

结构化设计的主要思想是什么?其设计结果是什么?

主要思想:自顶向下、逐步细化

软件详细设计说明阶段的主要任务是什么?需要提交哪些文档?

主要任务是将分析阶段获得的需求说明转换为计算机可实现的设计、完成系统的数据结构和程序结构设计、对模块内部的过程进行设计。

提交文档:详细设计说明书

详细设计说明书主要包括哪些内容?

1、引言

1.1编写目的

1.2项目背景

1.3定义

1.4参考资料

2、总体设计

2.1需求概述

2.2软件结构

3、程序描述

3.1功能

3.2性能

3.3输入项目

3.4输出项目

3.5算法

3.6程序逻辑

3.7接口

3.8存储分配

3.9限制条件

3.10测试要点

在软件编码阶段强调编码规范的目的是什么?请任举两条基本的编码规范。

目的提高编码质量,避免不必要的程序错误,增强程序代码的可读性、可重用性和可移植性。

简述软件维护的工作流程。

(1)维护申请
(2)制定维护计划
(3)进行维护活动
(4)建立维护文档
(5)复审/评价维护

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值