admin管理员组

文章数量:1567016


一、名词解释

1.什么叫做软件生存周期P18

从设计该产品的构想开始到软件需求的确定,软件设计,软件实现,产品测试和验收,投入使用以及产品版本的不断更新,到该产品完全被市场所淘汰的过程。
软件生存周期
|三个时期 | 八个阶段 |
|-软件定义-|-问题定义 可行性分析 需求分析-| 系统分析
| 软件开发 | 概要设计 详细设计 编码和单元测试 综合测试 | 系统设计(前两个) 系统实现(后两个)
| 软件维护 |运行维护 |

软件生存周期模型:瀑布模型,快速模型,增量模型,螺旋模型,统一模型,敏捷模型(选择题)

设计题

1.行李托运费的算法为例说明判定表的组织方法。 假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定表可以清楚地表示与上述每种条件组合相对应的计算行李费的算法,如表所示。请画出流程图



解:问题分析:源点/终点,处理,数据存储,数据流
1)源点/终点:系统之外的实体(人,物,系统)
源点:仓库管理员
终点:采购员
2)处理:
需要报表->产生报表
处理日常事务->事务处理
3)数据存储:
订货信息
库存清单
4)数据流:
订货报表:零件编号、名称、数量……
事务:零件编号、事务类型、数量……
Step1:顶层数据流图——系统级

表1 订货系统顶层DFD图
构成:基本系统模型+源点+终点
一般采用自顶向下逐步细化的分层绘制方法
Step2:进一步分解——功能级

表2 订货系统0层DFD图

2.软件的定义和概念P3

软件是计算机系统中的一部分,是一系列程序,数据及其相关的文档集合。
(程序是按照特定的顺序组织的计算机数据和指令的集合,数据是程序正常执行的数据结构,文档是开发,使用和维护程序所需的图文资料。)

3.什么叫加工P50

加工称为数据处理,是对数据进行处理的单元,对数据流进行操作,描述完成什么加工。

4.对象是什么P196

对象是客观存在的,要研究的事和物。是问题域实体的抽象,一个对象由对象名,属性,操作三部分组成。

5.单元测试和静态测试 P140 P136

单元测试:对软件的基本组成单元进行测试,检查每个模块是否能独立正确的运行
静态测试:不运行被测试程序,仅通过分析和检查源程序的语法、结构、过程、接口来检查程序的正确性。

6.面向对象方法的概念

面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,

7.软件维护

软件维护活动是发生在产品的生存周期之内,在软件生存周期最终环节才进行软件维护,才能大力减少维护软件工作。
软件维护分为四个维护
1.改正性维护:在产品测试和验收的过程中没出现错误,却在使用中出现错误。
2.适应性维护:产品适应变化的运行环境。
3.完善性维护:增加新功能,使项目更加完善
4.预防性维护:提高产品的可靠性和可维护性

8.什么是继承,封装、多态

封装:把对象的属性进行封装,隐藏对象内部的细节。
继承:子类继承父类的属性方法等
多态:同一消息可以根据发送对象的不同而采用多种不同的行为方式

二、简答题

1.需求分析的步骤有哪些P69

1.需求获取:获取需求是需求收集的过程,做充分的调查研究。 问卷调查
2.分析建模。建立分析模型,将用户的需求信息进行分析,提取,归纳,抽象建立起描述目标系统的模型。
数据流图 er图 系统流程图 数据字典
3.需求描述。编制需求分析阶段各类文档
4.需求验证。验证以上的分析结果。

2.总体设计分为哪几步

1.设想供选择的方案
2.选取合理的方案
3.推荐最佳方案
4.功能分级
5.设计软件结构
6.数据库设计
7.制定测试计划
8.编写文档
9.审核复查

3.面向对象技术的三大机制是什么

封装
继承
多态

4.软件测试中应该遵循哪些原则

1.软件测试应该追溯到用户的需求
2.尽早进行软件测试
3.软件测试不是无限下去的
4.测试只能证明软件存在错误,不能证明软件没有错误
5.关注测试的集群现象
6.程序员应该避免检查自己的错误
7.尽量避免测试的随意性

5.数据流图包括哪几种成分

1.数据流,用箭头来表示数据流,箭头方向来表示数据流向,数据流名标示在数据流线上
2.加工。是对数据进行处理的单元
3.数据存储。若干数据数据元素组成,为数据处理提供输入/输出数据流提供存储。
4.外部实体:软件系统外部的实体(人员,组织或者其他系统软件)

6.面向对象的设计特点P255

1.模块化:一个模块通常为一个类或者对象。封装了事物的属性
2.抽象:类是对一组具有相似特征对象的抽象
3.信息隐藏:在面向对象方法中,信息隐藏是通过对象的封装性来实现的
4.低耦合:耦合值不同模块之间相互关联的过程
5.高内聚:一个模块内各个元素彼此结合的紧密程度
6.重用性:尽量使用已有的类

7.软件测试按测试分类分为哪几种

1.按测试方式分类
静态测试和动态测试(动态运行程序,检查运行效果和预期效果,静态,不运行程序)
2.测试方法分内
白盒测试 黑盒测试 灰盒测试
3.测试过程分类(重点,重点)
单元测试 :检查软件最小设计单元-模块,检查模块是否正常运行
集成测试 :把软件单元组合在一起测试他们的端口,是否符合设计
系统测试 :在实际的环境中检验是否正常运行
验收测试:对软件产品进行验证,是否满足需求规格说明书的验收标准
4.按照测试目的分类
功能测试 接口测试 用户界面测试 健壮性测试 性能测试 强度测试 压力测试 负载测试 安全性测试 可靠性测试 安全性测试 可靠性测试 恢复测试 安装卸载测试 兼容性测试 文档测试

8.简述如何养成良好程序设计风格

1.良好的代码设计,函数模块,接口,扩展性
2.编写的程序要符合软件工程的思想
3.源程序文档化
4.数据说明原则
5.语句构造原则,简单
6.输入输出原则
7.追求效率原则

**三、选择题

  • **1.面向对象程序设计语言必须具备的特征是( C )。

  • A. 可视性、继承性、封装性 B. 继承性、可复用性、封装性

  • C. 继承性、多态性、封装性 D. 可视性、移植性、封装性**
    2.类之间共享属性和操作的机制称为( D )。
    A. 多态 B. 动态绑定 C. 静态绑定 D. 继承 ```

    3.关于对象的叙述中,正确的是( D )。
    A. 对象只能包括数据(属性) B. 对象只能包括操作(行为) C. 对象一定有相同的属性和行为 D. 对象通常由对象名、属性和操作三部分构成
    4.软件部分的内部实现与外部可访问性分离,这是指软件的( C )。
    A. 继承性 B. 共享性 C. 封装性 D. 抽象性 ```

    5.面向对象方法中,对象模型描述了系统的( A )。
    A. 静态结构 B. 动态结构 C. 控制结构 D. 顺序结构

    6.面向对象方法中,使用对象和属性表示现实世界的实体及特征,下列属于对象和属性关系的是( A )。
    A. 汽车和颜色 B. 汽车和校车 C. 汽车和轿车 D. 汽车和客车
    1.为了解决软件危机,人们提出了用( D )的原理来设计软件,这是软件工程诞生的基础。
    A.数学 B.软件学
    C.管理学
    D.工程学
    2.软件测试的过程应该先进行( C ),再进行集成测试、确认测试,而后进行系统测试。
    A.性能测试 B.用户测试
    C.单元测试 D.功能测试
    3.软件开发小组的人员应该多多益善,这样才能更好更快地完成项目任务。这种做法违背了软件工程基本原理中的哪一条基本原理?( C )。 A.用分阶段的生命周期计划严格管理
    B.坚持进行阶段评审
    C.开发小组的人员应该少而精
    D.承认不断改进软件工程实践的必要性
    4.“90%的最终用户在第一次使用网银系统时,能在45秒内成功的完成转账交易。”这段话描述了系统非功能性需求的( A )方面特性。
    A.性能 B.易用性 C.容量
    D.可靠性

    1. ( A )是描绘系统函数之间调用关系的传统工具。
      A.软件结构图 B.数据结构 C.状态图 D.程序流程图

    2. 软件设计中划分模块的一个准则是( C )。
      A.低内聚低耦合 B.低内聚高耦合 C.高内聚低耦合 D.高内聚高耦合

    7.试判断下列叙述中,哪个是正确的( C )。 a.软件系统中所有的信息流都可以认为是事务流 b.软件系统中所有的信息流都可以认为是变换流 c.事务分析和变换分析的设计步骤是基本相似的
    A.a B.b
    C.c D.b和c

  1. ( A )是用户和设计交换最频繁的方法。 A.原型化方法 B.瀑布模型方法 C.螺旋模型方法 D.构件组装模型
    9.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言( D ) 。
    A.PASCAL B.VISUAL BASIC
    C.C++ D.汇编语言
    10.下面选项中与选择程序设计语言无关的因素是( A ) 。
    A.程序设计风格 B.软件运行环境
    C.软件开发的方法 D.项目的应用领域
    11.程序控制一般分为三种基本结构,即分支、循环和( D ) 。
    A.分块 B.分支 C.重复 D.顺序
    12.为了提高易读性,源程序内部应加功能性注释,用于说明( A ) 。
    A.模块总的功能 B.程序段或语句的功能
    C.模块参数的用途 D.数据的用途
    13.序言性注释的主要内容不包括( A ) 。
    A.数据的状态 B.模块的接口
    C.模块的功能 D.数据的描述
    14.软件测试可能发现软件中的( B ),但不能证明软件( ) 。
    A.所有错误 没有错误 B.错误 没有错误
    C.逻辑错误 没有错误 D.设计错误 没有错误
    15.下列几种逻辑覆盖标准中, ( A )能测试出被测程序中所有可能的路径 。
    A.判定 B.条件 C.判定/条件 D.路径
    16.软件生命周期的最后一个阶段是( B ) 。
    A.书写软件文档
    B.软件维护
    C.稳定性测试
    D.书写详细用户说明
    17.通常在软件的活动中无须用户参加的是( C ) 。
    A.需求分析
    B.维护
    C.编码
    D.测试
  2. 详细描述软件的功能、性能和用户界面,使用户了解如何使用软件的文档是( D ) 。
    A.概要设计说明书
    B.详细设计说明书
    C.用户需求说明书
    D.用户手册
    19.软件维护工作的最主要部分是( C ) 。
    A.校正性维护
    B.适应性维护
    C.完善性维护
    D.预防性维护
    判断题
    1.软件开发的主要任务是写程序。( 错 )
    2.程序设计风格指导原则提出,尽量多使用临时变量。( 错 )
    3.测试只能证明程序有错误,不能证明程序没有错误。( 对 )
    4.为了加快软件维护作业的进度,应尽可能增加维护人员的数目。( 错 )
    5.系统流程图的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件。( 对 )****

一、填空题
10. 基于软件的功能划分,软件可以划分成_系统软件_______、支撑软件_、应用软件______三种。
11. 数据流图的四种基本成分:数据流
____、数据处理______、数据存储______和__外部实体____。
12. 结构化分析方法是面向___数据流_____进行需求分析的方法。
13. 大型软件测试包括_单元测试_______、集成测试____、系统测试______、 验收测试______四个步骤。
5.结构化设计中以数据流图为基础的两种具体分析设计方法是__变换分析______和___事务分析设计
___。
14. 软件包括_程序_____、数据_____及说明程序的_文档集合____。
7.在画分层的DFD时,父图与子图的输入输出数据流要 平衡____。
8.需求分析阶段产生的最重要的文档是__需求规格说明书________。
9.被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为__静态测试____。
10.为了提高程序的易读性,同时减少错误,提高软件开发效率,编码时注意养成良好的_程序设计风格___。
11.结构化分析方法的分析策略是_自顶向下,逐步求精__。
12.数据流图中的箭头表示_数据流_____。软件结构图中的箭头方向表示__模块调用____。
15. 软件设计阶段一般划分为_概要设计______和___详细设计____两个阶段。
14.模块的内聚__是从功能的角度来度量模块内的联系,功能内聚___是度量模块之间联系的程度。
15.软件生存期中时间最长的是_软件维护
_ 阶段。

本文标签: 软件工程期末