软件工程期末复习

#选择判断题知识点

1.可行性研究的定义,它的输入和输出是什么?
初步了解系统应解决的问题,问题是如何提出的,设想如何才能解决问题满足要求,了解问题的结构。

在这里插入图片描述
在这里插入图片描述

2.软件概要设计的输入和输出是什么?
信息流的类型分为两类
1.变换流:信息–>系统–>外换内–>加工–>内换外–>离开。
变换型系统结构图:输入,变换中心,输出。
2.事务流:信息–>输入–>处理–>输入类型选动作–>执行

3.软件概要设计模块划分的准则。
高内聚低耦合

4.软件测试的工作内容,软件测试的目的?
(1)测试是为了发泄程序中的错误而执行程序的过程
(2)好的测试方案是极可能发现迄今为止未发现的错误的测试方案
(3)成功的测试使发现了至今为止未发现的错误的测试

5.单元测试的目的?
在编写出源程序代码并通过了编译程序的语法检查后,就可以用详细设计描述作指南,对重要的执行通路进行测试,一边发现模块内部的错误。单元测试是编写测试代码,用来检测特定的、明确的、细颗粒的功能。
单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的。
单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复、改进或重构之后的正确性。

6.软件工程的实现阶段的工作内容?软件编码的工作内容?
软件工程期末复习_第1张图片

7.白盒测试常用的逻辑覆盖中,覆盖标准从弱到强依次是?
1.语句覆盖
2.判定覆盖
3.条件覆盖
4.判定/条件覆盖
5.条件组合覆盖
6.路径覆盖

8.需求分析的特点?
软件工程期末复习_第2张图片

9.面向对象编程思想中,什么是多态?
复用对象,程序运行时同一个对象表现出不同的行为

10.静态测试的特点?
(1)静态测试不需要运行程序,即不需要设计测试用例和分析运行结果等;
(2)静态测试可以发挥人的思维优势,用人的思维来解释和理解程序;
(3)静态测试对人的要求较高,只有具有丰富编程经验的人员才具有静态测试的能力;
(4)静态测试的运行成本不要,容易实现,往往在软件测试中首先被运用。

11.黑盒测试的特点?
黑盒测试着重测试软件功能,与白盒测试互补,很可能发现白盒测试不易发现的其他类型的错误:
(1)功能不正确或遗漏了功能
(2)界面错误
(3)数据结构错误或外部数据库访问错误
(4)性能错误
(5)初始化和终止错误

12.软件工程是怎么出现的?
软件工程期末复习_第3张图片
软件工程期末复习_第4张图片

13.数据流图的基本符号包括?
软件工程期末复习_第5张图片

14.软件设计分哪两个阶段?
1、概要设计,主要包括:结构设计、接口设计、全局数据结构设计、过程设计。
2、详细设计。 软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。

15.软件测试的流程?
1.模块测试:模块测试的目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试,在这个测试步骤中发现的往往是编码和详细设计的错误。
2.子系统测试:是把经过单元测试的模块放在一起形成一个子系统来测试。模块相互间的协调和通信是这个测试过程中的主要问题,因此,这个步骤着重测试模块的接口。
3.系统测试:是把经过测试的子系统装配成一个完整的系统来测试,通常成为集成测试。
4.验收测试:也称确认测试,目的是验证系统确实能够满足用户的需求,在这个测试步骤中发现的往往是系统需求说明书中的错误。
5.平行运行:同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。

16.数据流图中,数据流的起点和终点是什么?
正方形或(立方体)表示数据的源点或者终点;
一个数据流图中可以有多个“起点”、“终点”,所谓“起点”、“终点”实际上是输入的外部项和输出的外部项。一个流图可以有多个外部项输入信息,也可以向多个外部项输出信息。

17.螺旋模型的特点?
开发对应阶段可发现设计与需求不足,项目完成度高,对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标,减少了过多测试(资金)或测试不足(产品故障多)所带来的风险,但是开发周期比其他模型长,设计人员、开发人员、客户的连携频率高,主要适用于内部开发的大规模软件项目。

18.非功能性需求有哪些?分别怎么理解?
非功能性需求,指的是信息系统中保证性能、系统可靠性、可扩展性要求等方面相应的需求要素。
一:性能方面:
1.响应时间:分日常交互类、日常查询类、批量交易分别考虑。
2.用户数:用户数要考虑用户数的增长情况,有以下指标:总用户数、峰值在线用户数、峰值并发用户数、平均在线用户数、平均并发用户数。
3.吞吐量:系统交易量的估算。指标有年交易笔数(笔/年)、高峰期交易笔数(笔/天)。
4.数据存储量:每年的数据存储容量(G)及未来几年该数量的预期(增长)值。指标包括累计存储容量(G)、年增长(G)。
二、系统可靠性:一般是窗口业务应在从星期一到星期五的所有工作日的工作时间是可以使用的;其它业务应满足7×24小时可以使用;
三、可扩展性:可实现负载均衡;日后若信息量较大,则系统可相应增加服务器实现扩展。

19.软件工程中,需求分析做什么?
软件工程期末复习_第6张图片

明确用户需求。

20.Jackson设计方法是什么?
⑴分析并确定输入和输出数据的逻辑结构,并用Jackson图描绘;
⑵找出输入和输出数据结构中有对应关系的数据单元;
⑶从描绘数据结构的Jackson图导出描绘程序结构的Jackson 图;
⑷列出所有操作和条件,并把它们分配到程序结构图的适当位置;
⑸用伪码表示程序。

21.软件调试途径中,原因排除法包括?
原因排除法又可分为归纳法和演绎法。

22.维护阶段的文档有什么?
软件问题报告表,软件修改报告

23.软件维护工作主要部分?
完善性维护占全部维护活动的50%66%,改正性维护占17%21%,适应性维护占18%~25%。其他维护活动占4%。

24.软件生命周期各个阶段的花费占比大概怎样?
时间:需求分析 : 20%
设计、开发与测试: 20%
工程维护:60%

  1. UML 的静态视图包括?
    类图,对象图和包图。

#简答题

1.软件危机的理解?
⑴ 软件开发成本和进度的估计很不准确。
⑵ 用户对开发的软件系统常常不满意。
⑶ 软件产品的质量往往靠不住。
⑷ 软件没有适当的文档资料,软件不可维护。
⑸软件开发成本逐年上升,软件开发生产率跟不上计算机应用。

2.软件工程的理解,它有哪些特性?
软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把正确的管理技术和最好的技术方法结合起来,以经济地开发出高质量的软件并有效地进行维护,这就是软件工程。
特性:
⑴软件工程关注于大型程序的构造
⑵软件工程的中心课题是控制复杂性
⑶软件经常变化
⑷开发软件的效率非常重要
⑸和谐地合作是开发软件的关键
⑹软件必须有效地支持它的用户
⑺软件工程师的领域知识影响其创造产品

3.需求分析。
需求分析:软件分析员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。
基本任务:
⑴问题识别,软件分析员和用户确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。
⑵分析与综合,导出软件的逻辑模型 。
⑶编写文档,包括编写"需求规格说明书",“初步用户使用手册”,“确认测试计划”,“修改完善软件开发计划” 。

4.软件测试的准则。
(1)所有测试都应该能追溯到用户需求。
(2)应该远在测试开始之前就制定出测试计划。
(3)把Pareto原理应用到软件测试中。
(4)应该从“小规模”测试开始,并逐步进行“大规模”测试。
(5)穷举测试是不可能的。
(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。

5.面向对象方法学优点分析。
⑴与人类习惯的思维方法一致
⑵稳定性好
⑶可重用性好
⑷较易开发大型软件产品
⑸可维护性好

6.软件生存周期各个阶段的简述。
软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。

  1. 软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析
  2. 开发时期:总体设计、详细设计、编码和单元测试、综合测试。
  3. 维护时期:主要任务是使软件持久地满足用户的需要。
    ·问题定义:要解决的问题是什么
    ·可行性研究:对于上一个阶段所确定的问题有行得通的解决方法吗?
    ·需求分析:为了解决这个问题,目标系统必须做什么
    ·总体设计:概括地说,应该怎样实现目标系统?
    ·详细设计:应该怎样具体地实现这个系统?
    ·编码和单元测试:写出正确的易理解,容易维护的程序模块
    ·综合测试:通过各种类型的测试(及相应的调试)使软件大道预定的要求
    ·软件维护:通过各种必要的维护活动使系统持久地满足用户的需要
    7.黑盒测试、白盒测试、单元测试。
    (1)黑盒测试:是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常工作。黑盒测试又称为功能测试。
    (2) 白盒测试:是按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试又称为结构测试。
    (3)单元测试:单元测试集中检测软件设计的最小单元——模块。单元测试主要使用白盒测试技术,而且对多个模块的测试可以并行地进行。

8.软件概要设计、详细设计的任务?
概要设计(总体设计)任务:
①划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等;
②设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

详细设计任务:
⑴为每个模块确定采用的算法;
⑵确定每一模块使用的数据结构;
⑶确定模块接口的细节;
⑷编写过程设计说明书;
⑸设计每一模块的测试用例。

你可能感兴趣的:(软件工程,软件工程,单元测试)