[单选题]以下关于软件生存周期模型的叙述,正确的是()
正确答案 :A
在瀑布模型中,前一个阶段的错误和疏漏会隐蔽地带到后一个阶段
解析:本题考查软件生存周期模型的相关知识。 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程成为软件生存周期。一个完整的软件生存周期是以需求为出发点,从提出软件开发计划的那一刻开始,直到软件在实际应用中完全报废为止。软件生存周期的提出是为了更好地管理、维护和升级软件,其中更大的意义在于管理软件开发的步骤和方法。 软件生存周期模型又称软件开发模型(software develop model)或软件过程模型(software process model),它是从某个特定角度提出的软件过程的简化描述。软件生存周期模型主要有瀑布模型、演化模型、原型模型、螺旋模型喷泉模型和基于可重用构件的模型等。软件生存周期模型的主要目标是降低开发风险,提高软件品质,而非一味地提高开发速度。 瀑布模型是一个有着严格阶段划分的模型,这种模型要求完成一个阶段,才能开始下一个阶段的工作,先是需求分析,然后是设计、编码、测试。该模型最大的缺陷在于,一个阶段的错误若没有被发现,将隐蔽地带到下一个阶段,使下一个阶段接着出错,所以A选项的描述是正确的。 演化模型是根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称之为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。采用演化模型的开发过程,实际上就是从初始的原型逐步演化成最终软件产品的过程。演化模型特别适用于对软件需求缺乏准确认识的情况。
[单选题]在选择开发方法时,不适合使用原型法的情况是()
正确答案 :D
用户的数据资源缺乏组织和管理
解析:由于原型法开发需要适当的快速开发工具,需要用户密切配合,所以下列情况不适合使用原型法:①缺乏适用的原型开发工具。②用户不参与、不积极配合开发过程。③用户的数据资源缺乏组织和管理。④用户的软件资源缺乏组织和管理所以本题应选D。
[单选题]复用应该是每个软件过程都不可缺少的部分。下列制品,不属于复用候选的软件制品是()
正确答案 :D
用户需求
解析:在软件复用的过程中,有高级的复用,如项目计划和体系结构的复用;也有低层的复用,如代码复用和界面复用等。显然,用户需求是用户自己的对软件的一些要求和目标,这是不能复用的。
[单选题]以下关于软件构件及其接口的叙述,错误的是()
正确答案 :C
构件不允许外部对所支持的接口进行动态发现或调用
解析:本题考查软件构件的基本概念。软件构件是软件系统中具有一定意义的、相对独立的可重用单元。与对象相比,构件可以基于对象实现,也可以不作为对象实现。构件需要在容器中管理并获取容器提供的服务;客户程序可以在运行状态下利用接口动态确定构件所支持的功能并调用。
[单选题]对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。
正确答案 :C
信息隐藏
解析:面向对象的软件和用传统方法开发的软件有本质性不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。①局部化。局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。数据驱动方法围绕特定的数据结构局部化信息。在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(如模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(如模块耦合)。因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。此外,在操作(函数、方法)和类间的关系没必要是一对一的。因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。②封装。Berard定义封装为"一组项的包装(或捆绑在一起),(对传统软件的)低层封装例子包括记录和数组,而子程序(例如,过程、函数、子例程和段落)是封装的中层机制。"对OO系统,封装包含了类的责任,包括其属性(和针对聚合对象的其他类)和操作,以及由特定的属性值定义的类的状态。封装通过将测度的焦点从单个模块改变到数据(属性)和处理模块(操作)包而影响度量。此外,封装鼓励在高抽象层的测度。将此层次的抽象同传统的度量相比较,传统的着重于布尔条件的计数或代码行数。③信息隐蔽。信息隐蔽隐瞒(或隐藏)程序构件的操作细节,只将对访问该构件必需的信息提供给那些希望访问它的其他构件。良好设计的OO系统应该鼓励信息隐蔽,因此,指明隐蔽所达到程度的度量应该提供了对OO设计质量的一个指标。④继承。继承是使得某对象的责任能够传播到其他对象的机制,继承出现在类层次的所有层面上,通常,传统的软件不支持该特征。因为继承是很多OO系统的关键特征,所以很多OO度量是关注于它的。⑤抽象。抽象是使得设计者能够关注程序构件(数据或过程)的本质性细节而不需考虑低层细节的机制。如Berard所说,抽象是一个相对概念,当我们移向更高的抽象级别时,我们忽略了越来越多的细节,即我们提供了对概念或项的更一般化的视图;当我们移向抽象的低层时,我们引入了更多的细节,即我们提供了概念或项的更特定的视图。因为类是一种抽象,它可以在很多不同的细节级别上并以一系列不同的方式(例如,作为一个操作列表、作为一个状态序列、作为一系列协作)来观察,所以OO度量用类的测度(例如,每个应用的每个类的实例数、每个应用的参数化类数,以及参数化类和非参数化类的比率)来表示抽象。
[单选题]雇员类含有计算报酬的行为,利用面向对象的(),可以使得其派生类专职雇员类和兼职雇员类计算报酬的行为有相同的名称,但有不同的计算方法。
正确答案 :A
多态性
解析:本题是一个纯概念题。在面向对象技术中,多态考虑的是类与类之间的层次关系,以及类自身内部特定成员函数之间的关系问题,是解决功能和行为的再抽象问题。多态是指类中具有相似功能的不同函数用同一个名称来实现,从而可以使用相同的调用方式来调用这些具有不同功能的同名函数。这也是人类思维方式的一种直接模拟,例如,一个对象中有很多求两个数最大值的行为,虽然可以针对不同的数据类型,写很多不同名称的函数来实现,但事实上,它们的功能几乎完全相同。这时,就可以利用多态的特征,用统一的标识来完成这些功能。这样,就可以达到类的行为的再抽象,进而统一标识,减少程序中标识符的个数。
[单选题]企业信息系统往往是一个具有业务复杂性和技术复杂性的大系统,针对其建设,系统分析首先要进行的工作是(1)。系统开发的目的是(2)。
正确答案 :
解析:通常,软件开发项目是要实现目标系统的物理模型,即确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中,它是软件实现的基础。但是,目标系统的具体物理模型是由它的逻辑模型经实例化(即具体到某个业务领域)得到的。与物理模型不同,逻辑模型忽视实现机制与细节,只描述系统要完成的功能和要处理的数据。作为目标系统的参考,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统"做什么"的问题。结合现有系统(当前)分析,进行新系统设计的过程如图7-7所示。①获得当前系统的物理模型。当前系统可能是需要改进的某个已在计算机运行的数据处理系统,也可能是一个人工的数据处理过程。在这一步首先分析、理解当前系统是如何运行的,了解当前系统的组织机构、输入输出、资源利用情况和日常数据处理过程,并用一个具体模型来反映自己对当前系统的理解。这一模型应客观地反映现实世界的实际情况。②抽象出当前系统的逻辑模型。在理解当前系统"怎样做"的基础上,抽取其"做什么"的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。在物理模型中有许多物理因素,随着分析工作的深入,有些非本质的物理因素就成为不必要的负担,因而需要对物理模型进行分析,区分出本质的和非本质的因素,去掉那些非本质的因素即可获得反映系统本质的逻辑模型。③建立目标系统的逻辑模型。分析目标系统与当前系统逻辑上的差别,明确目标系统到底要"做什么",从当前系统的逻辑模型导出目标系统的逻辑模型。④建立目标系统的物理模型。根据新系统的逻辑模型构建出相应的物理模型。值得注意的是,原有系统可以是一个正在运行的软件系统,也可以是一个纯手工运作的流程。
[单选题]面向对象的设计模型包含以(1)表示的软件体系结构图,以(2),表示的用例实现图,完整精确的类图,针对复杂对象的状态图和用以描述流程化处理的活动图等。
正确答案 :
[单选题]基于构件的开发模型包括软件的需求分析定义、(1)、(2)、(3),以及测试和发布5个顺序执行的阶段。
正确答案 :
解析:本题考查基于构件的软件开发模型的基础知识。基于构件的开发模型利用模块化方法将整个系统模块化,并在一定构件模型的支持下复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。基于构件的开发模型融合了螺旋模型的许多特征,本质上是演化形的,开发过程是迭代的。基于构件的开发模型由软件的需求分析定义、体系结构设计、构件库建立、应用软件构建及测试和发布5个阶段组成。
[单选题]统一软件开发过程是一种基于面向对象技术的软件开发过程,其特点是"用例驱动,以架构为核心,迭代并增量"。统一软件开发过程定义了4种通用的开发阶段,它们按照过程顺序分别是:起始阶段、(1)、构建阶段和(2),其中在构建阶段主要产生的文档有(3)。
正确答案 :
解析:统一过程适合于大、中型项目的开发,可以分为4个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段。初始阶段的任务是为系统建立业务模型并确定项目的边界。在初始阶段,必须识别所有与系统交互的外部实体,定义系统与外部实体交互的特性。在这个阶段中所关注的是整个项目的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来说,初始阶段可能很短。细化阶段的任务是分析问题领域,建立健全的架构基础,淘汰项目中最高风险的元素。在细化阶段,必须在理解整个系统的基础上,对架构做出决策,包括其范围、主要功能和诸如性能等非功能需求,同时为项目建立支持环境。在构建阶段,要开发所有剩余的构件和应用程序功能,把这些构件集成为产品,并进行详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制操作,以优化成本、进度和质量。构建阶段的主要任务是通过优化资源和避免不必要的报废和返工,使开发成本降到最低;完成所有所需功能的分析、开发和测试,快速完成可用的版本;确定软件、场地和用户是否已经为部署软件做好准备。在构建阶段,开发团队的工作可以实现某种程度的并行。即使是较小的项目,也通常包括可以相互独立开发的构件,从而使各团队之间实现并行开发。当基线已经足够完善,可以安装到最终用户实际环境中时,则进入交付阶段。交付阶段的重点是确保软件对最终用户是可用的。交付阶段的主要任务是进行β测试,制作产品发布版本;对最终用户支持文档定稿;按用户的需求确认新系统;培训用户和维护人员;获得用户对当前版本的反馈,基于反馈调整产品,如进行调试、性能或可用性的增强等。根据产品的种类,交付阶段可能非常简单,也可能非常复杂。例如,发布现有桌面产品的新发布版本可能十分简单,而替换一个国家的航空交通管制系统可能就非常复杂。交付阶段结束时也要进行技术评审,评审目标是否实现,是否应该开始演化过程,用户对交付的产品是否满意等。
查看原题 查看所有试题