数据结构论坛

注册

 

发新话题 回复该主题

软件工程复习1620组考题 [复制链接]

1#

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

复习「16-20,16-20,4,4」考题组

一、名词解释

16.路径覆盖

路径覆盖要求设计足够多的测试用例,在白盒测试法中,覆盖程度最高的就是路径覆盖,因为其覆盖程序中所有可能的路径。

在一个控制流图中,路径是由链组成,包含一串指令或语句,设计足够多的测试用例,执行所有可能穿过程序控制流程的路径,尽可能覆盖程序中的所有可能的路径。

17.软件生存周期

软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。

18.基线

是一个软件配置管理的概念,它能够帮助我们在不严重阻碍合理变更的条件下控制变更,IEEE中这样定义基线:已经通过正式审评和批准的规格说明或产品,他可以作为进一步开发的基础,并且只有通过正式的变更控制规程才能修改它

19.控制耦合

当操作A调用操作B,并且向B传递了一个控制标记时,就会发生此种耦合

控制耦合:如果一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能。

20.协作图

协作图表示一组对象之间的动态协作关系,反映收发消息的对象的结构组织。

协作图是动态图的另一种表现形式,强调参加交互的各对象结构的信息。协作图是一种类图,包含类元角色和关联角色,而不仅仅是类元和关联。协作图强调参加交互的各对象的组织。

二、简答

16.什么是CMM关键过程域,举例说明其含义。

关键过程域是指一系列相互关联的操作活动,这些活动反映了一个软件组织改进过程时必须集中精力改进的几个方面。换句话说,关键过程域标识了达到某个成熟度等级时所必须满足的条件。

如软件成熟度模型中第4级(管理级)有2个关键过程域,主要的任务是为软件过程和软件产品建立一种可以理解的定量的方式。

关键过程域是定义成熟度等级的主要构造块,每一个关键过程域是一组相关的活动,通过它们的共同执行来达到一组目标。关键过程域标识了为达到一个成熟度级别而必须强调的问题。

例如:CMM2级中的关键过程域软件项目规划,涉及工作量估算,必要承诺的建立,以及工作执行计划的定义。

17.影响软件成本的主要因素有哪些具体方面?

软件的规模、复杂度、开发工具、开发人员的业务素质、软件工程管理水平及开发工作环境等。

从系统软件生命周期构成的两阶段即开发阶段和维护阶段看,系统软件的成本由开发成本和维护成本构成。

其中开发成本由软件开发成本、硬件成本和其他成本组成,包括了系统软件的分析/设计费用(含系统调研、需求分析、系统分析)、实施费用(含编程/测试、硬件购买与安装、系统软件购置、数据收集、人员培训)及系统切换等方面的费用;

维护成本由运行费用(含人工费、材料费、固定资产折旧费、专有技术及技术资料购置费)、管理费(含审计费、系统服务费、行政管理费)及维护费(含纠错性维护费用及适应性维护费用)。

18.画数据流图原则是什么?

(1)明确系统界面。

(2)自顶向下逐层扩展。

(3)合理布局。

(4)数据流图绘制过程,就是系统的逻辑模型的形成过程,必须始终与用户密切接触,详细讨论,不断修改,也要和其他系统建设者共同商讨一求一致意见。

数据流图是一种最常用的结构化分析工具,它从数据传递和加工角度,以图形的方式刻画系统内的数据运动情况。

画数据流图的原则是:

1)确定系统的输入和输出

2)由外向里画系统的顶层数据流图

3)自顶向下逐层分解,画出分层数据流图

19.什么叫基本路径测试,如何确定基本路径?

实际程序中路径是个很庞大的数字,所有路径覆盖是不现实的,测试中把路径数压缩在一定范围内,称为基本路径测试。

在程序控制流图的基础上,通过分析控制构造的环路复杂性测度,导出基本可执行路径的基本集合。

从一个程序的入口开始,执行所经历的各个语句的完整过程。

在不能保证做到所有路径覆盖的前提下,需要对路径数量进行压缩,如果可以保证程序中每一个可执行的路径可以至少运行一次,则这种测试方法就是通常所说的基本路径测试方法

如何确定基本路径:

画出程序的控制流图计算环路复杂度,得到独立路径条数,条数为基本路径测试法所必须的测试用例数目的上界导出基本路径集,确定程序的独立路径根据3设计测试用例的输入数据和预期输出

20.简述USE/CASE的作用。

(原作答有问题)

用例图由一组用例、参与者以及它们之间关系所组成。一个系统的用例图反映了整个系统提供的外部可见服务和工作范围。

用例图的作用:

(1)清晰表达用户的需求:由专门描述可被最终用户,分析人员和测试人员看到的系统行为的用例组成,分析人员使用用例图来描述用户的需求,与用户和设计人员交流,最终用户使用用例视图来理解要完成的系统的功能,确认是否符合自己的要求,测试人员根据用例图来验证实现后的系统是否符合用户的需求。用例图从一定程度上驱动了需求分析后各个阶段的开发工作。

(2)很好描述系统需求:用例图还应注意清晰的定义系统边界,从执行者的角度来命名用例,避免与执行者的名字不一致,避免与执行者之间的关系太复杂等。用例可以很好的描述系统需求,但是有些场合用例来描述是不适合的,这就需要用来文档描述,

——扩展————

(图片来自网络)

三、论述

4.结合软件工程要素,论述面向对象方法的思想

答:软件工程的方法(开发方法)、工具(支持方法的工具)、过程(管理过程)称为软件工程的三要素。方法支撑过程和工具;过程和工具促进方法学的研究。

面向对象方法(Ohject--OrientedMethod,OOM)是一种运用对象、类、消息传递、继承、封装、聚合、多态性等概念来构造软件系统的软件开发方法。

它的优点是:所开发的程序是面向对象程序,直接描述客观世界的对象及其相互关系;具有模块性、继承性和类比性;可广泛支持对象的重用;十分有利于开发过程的质量控制;极大地减小了系统维护的复杂程度。

缺点是:面对大型系统时,若缺乏整体系统设计划分,易造成系统结构不合理、各部分关系失调等问题;只能在现有业务基础上进行分类整理,较难从科学管理角度进行理顺和优化;需要一定的软件支持环境。

因此,通过三要素的关系可以看出,面向对象方法决定了它需要一定的开发工具和严格合理的管理过程来支持,同时,在这两个条件得到满足的情况下,面向对象的方法将能够极大的方便、优化工程的开发以及管理维护。

软件工程要素包含:方法(开发方法)、工具(支持方法的工具)、过程(管理过程)三要素。方法支撑过程和工具;过程和工具促进方法学的研究。

面向对象(Object+oriented,简称OO)方法是以面向对象思想为指导进行系统开发的一类方法的总称。以对象为中心,以类和继承为构造机制来抽象现实世界,并构建相应的软件系统。

面向对象方法包括面向对象分析、面向对象设计和面向对象程序语言。

(1)面向对象分析(OOA)

面向对象分析阶段是通过行为分析法认定对象及他们之间的关系。面向对象的分析模型通常使用UML的建模方法进行建模。

常用的工具如:用例图、类图、顺序图、活动图

(2)面向对象设计(OOD)

是OO方法中一个中间过渡环节。主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。即确定对象结构、属性、方法等内容,对之前的模型进行优化等。

(3)面向对象编码(OOP)

一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

面向对象方法遵循的基本原则有:

(1)抽象:抽象是指从事物中舍弃个别的、非本质的特征,而抽取共同的本质特征的做法。

(2)分类:按照某种原则划分出事物的类别,以便有助于认识复杂世界。在面向对象中分类就是把具有相同属性和方法的对象化为一类,用类作为这些对象的抽象描述。分类实际上是把抽象原则运用于对象描述时的一种表现形式。

(3)封装:封装就是用对象把属性和和操纵这些属性的操作包装起来,形成一个独立的实体单元,体现了事物的相对独立性。另一个含义则是信息隐蔽,即外界不能直接存取对象的内部属性以及隐藏起来的内部操作,外界也不用知道对象操作的内部实现细节。

(4)多态性:多态性是指在具有继承关系的类层次结构中可以定义同名的操作或者属性,但是这些属性和操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。

面向对象方法

对于面向对象方法的程序设计,其唯一组成是对象,对象之间的关系构成了程序的基本框架。由于对象是一个数据、功能统一的实体,故开发人员需要实现对象内部的数据结构与算法,不过显然实现难度比一个完整的程序要小很多。之后的

分享 转发
TOP
发新话题 回复该主题