软件需求和结构_软件工程复习 3640组考题

7d234da6305ec013d1ed83702386b3cf.png

黑色字体是原本的答案,蓝色字体是补充整理后的答案,如果有错的话,我也没办法了……

复习第一组「36-40,36-40,8,8」

一、名词解释

36.基本路径测试

是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次

基本路径测试是结构性测试的一种,依据程序的逻辑结构,采用控制流程图来表达被测程序模型,揭示程序中的控制结构;通过合理的选择一组穿过程序的路径,以达到某种测试度量。

常见的路径测试策略有:路径覆盖、语句覆盖、条件覆盖和条件组合覆盖、分支覆盖和判定覆盖。

37.软件组织过程

组织过程类包括基础设施过程、改进过程以及培训过程。

软件组织过程是指那些与软件生产组织有关的过程。包括如下7个主要的过程:

管理过程

基础设施过程

改进过程

人力资源过程

资产管理过程

重用大纲管理过程:为组织的重用大纲主管而定义的活动,启动,领域评估,重用评估,策划,执行和控制,评审和评价。

领域工程过程:领域工程师的活动和任务,领域分析,领域设计,资产供应,资产维护。

38.软件度量

是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。

软件度量(software measurement)是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。

通过软件度量可以改进软件开发过程,促进项目成功,开发高质量的软件产品。

产品:软件开发过程中所生成的各种文档和程序。

过程:与软件开发有关的各种活动,如软件设计等。

资源:软件开发过程中所需支持,如人员、费用等。

39.适应性维护

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

适应性维护时为了使系统适应环境的变化而进行的维护工作。管理体制的改变、数据与信息需求的变更等都将导致系统不能适应新的应用环境。

如代码改变、数据结构变化、数据格式以及输入/输出方式的变化、数据存储介质的变化等,都将直接影响系统的正常工作。

因此有必要对系统进行调整,使之适应应用对象的变化,满足用户的需求。

40.类图

类图描述系统的静态结构,表示系统中的类以及类与类之间的关系。

类图是根据系统中的类以及各类之间的关系描述系统的静态图。

类图不仅显示系统内信息的结构,还描述系统内这些信息的行为。

它一个最重要目的就是为其他图(如顺序图、交互图)定义一个基础。类图由多个类以及这些类之间的关系组成。

二、简答

36.软件质量的含义是什么?

软件在使用时,能适合用户需要的目标程度。

什么是软件质量:

词典的定义是:① 典型的或本质的特征;② 事物固有的或区别于其他事物的特征或本质;③ 优良或出色的程度。

CMM对质量的定义是:① 一个系统、组件或过程符合特定需求的程度;② 一个系统、组件或过程符合客户或用户的要求或期望的程度。

软件的质量属性很多,如正确性、精确性,健壮性、可靠性、容错性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性、灵活性等。除此之外还可以列出十几个,新词可谓层出不穷。

37.如何安排软件开发进度,应该考虑哪些问题?

识别进度计划所有者

决定任务和里程碑

排序工作活动

任务历时评估

整合任务计划

审查批准进度计划

考虑:

  • 任务分配、人力资源分配、时间分配要与工程进度相协调

  • 任务分解与并行化

  • 工作量分布

目前,程序评估与审查技术(PERT)和关键路径方法(CPM)是两种比较常用的项目进度安排方法

38.什么是结构化分析,有什么特点? 32

是面向数据流进行需求的分析,遵循自顶向下、逐步求精原则。

主要特点是快速、自然和方便。成功率较高,发展较为成熟;简单、易掌握,适应于瀑布模型;特别适合于数据处理领域中的应用,对规模大的项目,特别复杂的应用不太适应。难于解决软件重用问题,难于适应需求的变化。

结构化方法是一种系统化的软件开发方法学、支持需求分子和软件设计。紧紧围绕"过程抽象""数据抽象""模块化"等基本软件设计原理和原则,给出了完备的符号术语,模型表示工具(表达式),自顶向下,逐层分解的过程指导。

主要有;结构化分析、结构化设计和结构化程序设计。

特点:

(1)基于功能分解设计的系统结构,从内部功能上模拟客观世界,具有面向功能、结构清晰、支持逐步求精的特点,使软件易于维护;

(2)结构化方法可以增加软件规格说明的可持续性和软件系统的可靠性,例如数据流程图容易理解,有利于开发人员与客户的交流;

(3)基于功能的设计使软件系统结构对功能的变化十分敏感,功能变化往往意味着重新设计,设计出的软件难以重用则会延缓开发的进程。

39.什么是边界值分析,与等价类划分有什么不同? 32

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。(1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。 

(2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

边界值分析是一种常用的黑盒测试技术。在设计测试用例时,选择输入和输出边界值进行测试。

等价类划分是在设计测试用例时,同时考虑有效等价类和无效等价类的设计。

两者不同在于,边界值分析着重于边界的测试,应选取等于、刚刚大于或刚刚小雨边界的值作为测试数据,而等价类划分是选取等价类中的典型值或任意值作为测试数据的。

40.举例说明什么是类的组装结构关系 32

如建立一个时钟类,这个类中的属性如秒、分钟、小时等,加上对属性的操作如秒记时,分钟记时,小时记时等,就构成一个类的组装结构关系。

类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。

类之间的关系有:依赖、泛化、关联(关联又分普通关联、聚合、组合)

(1)依赖关系:一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。

874f5f52f610e6a1b5a13c7cecd4764d.png

(2)泛化关系:一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的特征和行为;

比如老虎时动物的一种,既有老虎特性也有动物的共性。

d98d3e21883f194e839f4852ec0d40ae.png

(3)关联关系:一种拥有关系,使一个类知道另一个类的属性和方法;

如老师与学生,丈夫与妻子,既可以使双向的也可以是单向的。

fc4f4a924098a52c86f6db4f3979e28f.png

————扩展————

类通常可以分为三种,分别是实体类(Entity Class)、控制类(Control Class)和边界类(Boundary Class),下面对这三种类加以简要说明:

      (1) 实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。

      (2) 控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类,注册对应有一个用户注册类等。

      (3) 边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。

三、论述

8.论述需求工程的过程和方法,讨论其有效性 37

答:需求工程包括需求开发和管理,而需求开发又包括这几个过程:需求获取,需求分析,需求规格说明和需求验证。

在需求开发之前,还需要有一个知识培训的过程,需求工程也是一个项目工程,因此也包括了项目的管理。

对于这些过程,有以下方法可以采用。

1、知识培训:需求分析员培训、用户培训、开发人员培训;

2、需求获取:项目范围确定、用户确定、用例确定、系统事件和响应、获取方法、检查完善;

3、需求分析:绘制关联图、原型开发、需求优先顺序别、需求建模、数据字典创建、子系统。

在知识培训中,通过对三方的培训,可以使分析员提高沟通能力,理解并掌握需求工程技能,使用户明白需求重要性,能够准确描述需求,使开发人员对用户应用有所了解。

通过需求获取中的方法,可以明确项目目标、确定用户群,通过用例迅速明确项目功能需求,这些可以通过会议讨论,观察用户工作过程,问答式对话,诱发式需求诱导等实现。

而在需求分析阶段则是对用户的需求获取之后的一个粗加工过程,需要对需求进行推敲和润色以使所有涉众都能准确理解需求。分析过程首先需要对需求进行检查,以保证需求的正确性和完备性,然后将高层需求分解成具体的细节,创建开发原型,完成需求从需求获取人员到开发人员的过渡。

四、应用题

8.现在有一系统正在进行集成测试,模块A提供的文件接口能够读取txt格式的文本文件,不论该文件是否被其它进程使用。请补充完成如下测试用例中的(1)、(2)、(3)和(4)部分。 56

ee29e1b9af76e35369cd204dc3e818e8.png

解:

(1)预置条件:提前准备好A模块文件接口和打开文件B中的数据

(2)软件模块A的性能测试

txt格式文本文件路径

(3)操作步骤

1)制定集成测试计划

输入设计模型,设计人员设计集成测试用例和测试过程

2)实施集成测试

设计人员编制测试脚本,更新测试过程

设计驱动程序和装,实施人员负责实施驱动程序和桩

3)执行集成测试

输入:测试脚本和工作版本

输出:测试结构

测试人员负责执行测试并记录测试结构

4)评估集成测试

输入:集成测试计划测试结构,

输出:测试评估摘要

测试员负责会同及成员、编码员、设计员等评估此次测试,并生成测试评估摘要

(4)预期输入:

————扩展————

集成测试步骤:

准备集成测试计划。

准备集成测试场景和测试用例。

准备测试自动化脚本。

执行测试用例。

报告缺陷。

跟踪并重新测试缺陷。

重新测试和测试一直持续到集成测试完成。

6699e6b7b697e2317b7626dde583125c.png

07632c3f86140a3ec033b0b151b7645b.png

0fa6ff905dc40dc4de51bdb91a6271c6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值