当前位置:文档之家› 软件工程概论简答题

软件工程概论简答题

软件工程概论简答题
软件工程概论简答题

一、概述

1.软件工程过程有哪几个基本过程活动?试说明之。

解答:软件工程过程的基本过程活动有4步:

· P (Plan) : 软件规格说明。规定软件的功能及其运行的限制;

· D (Do) : 软件开发。产生满足规格说明的软件;

· C (Check) : 软件确认。确认软件能够完成客户提出的要求;

· A (Action) : 软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。

2.试说明“软件生存期”的概念。

解答:软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。这就是软件的生存期。它分为6个阶段:(1) 软件项目计划:在这一步要确定软件工作围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。根据有关成本与进度的限制分析项目的可行性。

(2) 软件需求分析和定义:在这一步详细定义分配给软件的系统元素。可以用以下两种方式中的一种对需求进行分析和定义。一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。

(3) 软件设计:软件的设计过程分两步走。第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。第二步做详细设计,考虑设计每一个模块部件的过程描述。经过评审后,把每一个加细的过程性描述加到设计规格说明中去。

(4) 程序编码:在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。

(5) 软件测试:单元测试检查每一单独的模块部件的功能和性能。组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。确认测试检查所有的需否都得到满足。在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。

(6) 软件维护:为改正错误,适应环境变化及功能增强而进行的一系列修改活动。与软件维护相关联的那些任务依赖于所要实施的维护的类型。

3.试论述瀑布模型软件开发方法的基本过程,比较它的优点和缺点。

解答:瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。

瀑布模型为软件开发和软件维护提供了一种有效的管理图式。根据这一图式制定开发计划、进行成本预算、组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品及时交付,并达到预期的质量要求。

瀑布模型的缺点是缺乏灵活性,特别无法解决软件需求本身不明确或不准确的问题。这些问题的存在对软件开发会带来严重影响,最终可能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才有所察觉。面对这些情况,无疑需要进行返工或是不得不在维护中纠正需求的偏差。但无论上述哪一种情况都必须付出高额的代价,并将为软件开发带来不必要的损失。

4.试说明演化模型软件开发方法的基本过程,比较它的优点和缺点。

解答:由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。因此,可以先做试验开发,其目标只是在于探索可行性,弄清软件需求;然后在此基础上获得较为满意的软件产品。通常把第一次得到的试验性产品称为“原型”。

演化模型从需求分析开始。软件开发人员与用户一起定义待开发软件系统的总目标,定义需求,确定软件的工作围。然后快速设计软件中对使用者可见部分的表示,进而建造原型,再让用户或客户评估原型,根据评估结果,修改和细化待开发软件系统的需求,使之满足用户的需求。这个过程是一个迭代的过程。

演化模型的优点是:

·演化模型能够得到更好的软件需求,它不仅能够处理模糊的需求,而且开发人员与用户可通过原型充分进行交流;·演化模型给用户提供了机会,以更改用户原来设想的不尽合理的最终系统;

·演化模型使得开发出来的最终系统更容易维护,对用户更友好;

·演化模型可以降低总的开发费用,缩短开发时间。

演化模型的缺点是:

·对于开发人员不熟悉的领域,演化模型可能误导开发者把系统的次要部分当作主要框架,作出不切题的原型;

·原型过快地收敛于需求集合,使得某些基本方面被忽视;

·长期在原型环境下开发,只注意得到令人满意的原型,容易“遗忘”用户环境与实际客户环境之间的差别。

5、软件工程包括哪些基本要素?请简要说明这些要素及其作用。

答案要点:软件工程包括过程、方法和工具三个要素。

软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理,从而将人员、技术、组织与管理有机地结合在一起,实现在规定的时间和预算开发高质量软件的目标;

.软件工程方法为软件开发提供了“如何做”的技术,通常包括某种语言或图形的模型表示方法、良好的设计实践以及质量保证标准等;

. 软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成。现有的软件工具覆盖了从需求分析、系统建模、代码生成、程序调试和软件测试等多个方面,形成了集成化的软件工程开发环境 CASE。

6. 软件与其他工程学科所产生的制品有什么根本区别?答案要点:

(1)软件是人类思维和智能所延伸的产物,其数据、状态和逻辑

关系的组合以及人类思维的复杂性和不确定性导致它本身具有极高的复杂性;

(2)软件具有不可见性,它是抽象的,形式化和逻辑化的。(3)软件具有可变性,有用的软件需要不断地修改和扩展,但是频繁的修改可能导致软件的退化;

(4)软件的开发在很大程度上依然是手工作坊式的,难以实现工厂化的生产。

7. 软件工程是以系统的、可控的、有效的方式产生高质量的软件,请说明你对“高质量软件”含义的理解。

软件质量是软件产品与明确的和隐含的需求相一致的程度,它通常由一系列的质量特性来进行描述,包括正确性、可靠性、有效性、可用性、复用性、可维护性、可移植性等。例如,除了要求软件正确运行之外,人们可能还希望软件运行的响应时间符合要求、软件使用方便快捷、程序代码易于理解等,而“程序代码易于理解”往往是一种用户没有明确提出的需求,但却是影响软件演化的重要因素。

8. 某大学准备开发一个新的学生注册选课系统,以替换一个现有的系统。请设计一个适用于该系统开发的过程模型,并进一步描述该模型。答案要点:

假设原有的学生注册课程系统是由学生手工提交书面选课单,教师手工提交成绩单,教务管理人员在客户端录入学生选课结果和课程成绩;而在新的选课系统中,所有用户在自己的计算机上通过Internet 访问和操作该系统,该软件系统需要更新服务器和数据库等系统,并扩充一些新功能和提高系统性能。

从该系统的具体情况来看,系统的需比较容易明确的,整个系统的结构需要重新设计,但是原有的遗留系统中有些部分是可以重用的,因此我们可以采用组件模型实施软件开发:

系统需求分析:由于该系统是现有系统的扩展,因此首先可以经过一个简单的需求分析阶段,从而确定新系统的需求。

遗留系统分析:在需求确定的基础上,开发人员分析遗留系统并研究新系统的总体结构,选择重用原有的课程信息管理部分,重新开发选课部分,必要时适当修改系统需求,最终确定系统需求和总体结构。

设计开发阶段:开发人员进一步设计相关子系统,将原有的课程信息管理部分封装为子系统,重新开发学生选课子系统,并实现与外部付费系统的接口。

系统测试阶段:开发人员将所有子系统集成在一起,交给测试人员开始全面的功能测试和性能测试。根据所报告的测试问题,开发人员调试和修改程序。

系统交付阶段:测试通过后,开发人员将系统及其相关文档交付用户验收。

四、需求分析

四、问答题

1、在软件需求分析时,首先建立当前系统的物理模型,再根据物

理模型建立当前系统的逻辑模型。试问:什么是当前系统?当前系统的物理模型与逻辑模型有什么差别?解答:所谓当前系统可能是需要改进的某个已在计算机上运行的数据处理系统,也可能是一个人工的数据处理过程。当前系统的物理模型客观地反映当前系统实际的工作情况。但在物理模型中有许多物理的因素,随着分析工作的深入,有些非本质的物理因素就成为不必要的负担,因而需要对物理模型进行分析,区分出本质的和非本质的因素,去掉那些非本质的因素即可获得反映系统本质的逻辑模型。所以当前系统的逻辑模型是从当前系统的物理模型抽象出来的。

2、可行性研究主要研究哪些问题?试说明之。

解答:可行性研究主要做4个方面的研究:经济可行性:进行成本∕效益分析。从经济角度判断系统开发是否“合算”。技术可行性:进行技术风险评价。从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。法律可行性:确定系统开发可能导致的任何侵权、妨碍和责任。方案的选择:评价系统或产品开发的几个可能的候选方案。最后给出结论意见。

3、数据流图的作用是什么?它有哪些基本成份

数据流图的基本成份有4种:

4、Petri网可以描述计算机软件系统的执行。现有一个程序如下(类似于Pascal语言)

L : S1;

WHILE P1 DO

BEGIN

IF P2 THEN S2

ELSE S3;

COBEGIN

S4;

S5;

S6;

COEND

END;

GOTO L;

其中,P1和P2为逻辑表达式,S1,S6是单个执行语句,COBEGIN 和COEND是并行执行开始和并行执行结束(即S4,S5和S6语句并行执行)。试用Petri网描述这段程序的执行过程

解答:采用条件∕事件网(C∕E网,C―Condition, E―Event)式Petri网。其定义如下:

①当事件e激发时条件c开始成立,则称c是e的后继。此关系用“”表示;

②当事件e激发时条件c消失成立,则称c是e的前驱。此关系用“”表示;

③当事件e激发时条件c不受影响,则c和e之间没有前驱、后继关系,无边。

根据定义,给定程序的C∕E网如下:

5、软件需求分析说明书主要包括哪些容?

解答:软件需求规格说明是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。

软件需求规格说明的框架如下:

6. 需求工程包括哪些基本活动?每一项活动的主要任务是什么?答案要点:

需求工程分为需求开发和需求管理两个部分,而需求开发又可进一步分为需求获取、需求分析、规格说明和需求验证四个阶段。这些基本活动的主要任务包括:

(1)需求获取:采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。(2)需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。

(3)需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。

(4)需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰性。

(5)需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。

7. 请比较本章介绍的几种主要需求获取技术,说明每一种技术的优缺点和适用场合。答案要点:

(1)用户面谈

优点:可以与项目相关人员一对一地进行交谈和讨论;具有私密性,使被访者可以直率地和无隐瞒地回答问题;便于探查一些附加信息或反馈信息;有利于与客户建立良好的关系。

缺点:面谈是一种非常费时和高成本的方式;难以解决不同的项目干系人之间的冲突和矛盾;

在地理位置相距较远的情况下很难实施。

适用场合:适用于在初步理解整体概念的情况下讨论和交流一些细节问题。

(2)需求专题讨论会

优点:有助于了解系统需求;有利于共享系统开发的成果;给用户一种主人的感觉;

可以与足够多的项目干系人进行讨论和交流,且节省时间;支持头脑风暴式的讨论。

缺点:需要占用参与人员比较长的整块时间;主持人的能力和会议的准备工作必须是非常好的,否则结果很糟。

适用场合:适用于讨论和审查软件系统方案和模型,解决不同项目干系人之间的冲突和矛盾。

(3)观察用户工作流程

优点:通过直接观察的方式提取用户或系统的特性;有助于理解难以用语言描述清楚的复杂业务。

缺点:观察可能使用户紧,从而表现得与往常不同。

适用场合:适用于理解难以用语言描述清楚复杂业务过程。

(4)原型化方法

优点:通过一个可以运行的软件原型直观地理解和澄清问题,便于使开发人员与用户达成共识。

缺点:用户容易产生误解,认为软件系统可以在原型的基础上很容易地构建,但实际上该原型的部结构和程序质量比较差。

适用场合:适用于用户需求不明确或描述不清楚的情况。

8. 哪些人应该参与需求评审?请画出一个需求评审的组织过程模型。答案要点:

通常情况下,参与需求评审的人员应该包括需求分析员、项目经理、体系架构设计师、软件设计工程师、系统测试工程师、质量保证员、用户或市场代表、文档编写人员、领域专家和技术支持代表。

9. 在某些紧急情况下,软件可能在需求变更请求被批准之前就进行修改。请给出一个修改过程模型,确保需求文档和系统实现不会产生不一致。答案要点:

一般来说,应该尽量避免在需求变更请求被批准之前就直接修改程序的情况,这很容易导致变更失控而且需求描述与系统实现不一致。一旦出现这种情况,必须在系统变更完成后重新执行需求跟踪控制。

五、面向对象

四、问答题

1、什么叫面向对象?面向对象方法的特点是什么?为什么要用面向对象方法开发软件

解答:关于“面向对象”,有许多不同的看法。Coad和Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。面向对象方法的特点是:

·方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。

·从生存期的一个阶段到下一个阶段的高度连续性,即生存期后一阶段的成果只是在前一阶段成果的补充和修改。

·把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成到生存期的相应阶段。

使用面向对象方法开发软件的好处是:

·开发方法的唯一性,开发阶段的高度连续性,表示方式的一致性;

·问题空间实体的自然表示,减轻了设计者的负担,在设计系统之初不必考虑一个很完整的解决方案。

·建立稳定的系统结构,可促进复用性,易于维护,易于修改,可合理利用共同性,减少复杂性。

2、什么是“对象”?识别对象时将潜在对象分成7类,试给出这7类对象的名称,并举例说明解答:对象的定义:·对象是面向对象开发模式的基本成分,是现实世界中个体或事物的抽象表示。

·每个对象可由一组属性和它可以执行的一组操作来定义。

可能的潜在对象有7类:

①外部实体:它们产生或接受为目标系统所使用的信息。如各种物理设备、使用人员、其它相关的子系统。

②事物:问题的信息域所涉及的概念实体。如各种报告、显示、文字、信号、规格说明等。

③事件:系统运行时发生的并需要系统记忆的事件。如状态转换、物理运动等。

④角色:与系统有交互的各种人员所扮演的角色。如经理、工程师、销售人员等。

⑤场所或位置:建立系统整体环境或问题上下文的场所、位置。如基于计算机的系统的安装场所等。

⑥部门等。组织,组织机构:与应用有关的组织机构。如

⑦结构:定义由一组成分对象组成的聚合对象,或在极端情况下,定义对象的相关类。如传感器、四轮驱动车、计算机等。

3、什么是“类”?“类”与传统的数据类型有什么关系?有什么区别解答:把具有相同特征和行为的对象归在一起就形成了类。类成为某些对象的模板,抽象地描述了属于该类的全部对象的属性和操作。属于某个类的对象叫做该类的实例。对象的状态则包含在它的实例变量,即实例的属性中。类定义了各个实例所共有的结构,类的每一个实例都可以使用类中定义的操作。实例的当前状态是由实例所执行的操作定义的。

类,就它是一个数据值的聚合的意义上来看,与Pascal中的记录或C中的结构类似,但又有差别。类扩展了通常的记录语义,可提供各种级别的可访问性。也就是说,记录的某些成份可能是不可访问的,而这些成份对于本记录型来说具有可访问性。类不同于记录,因为它们包括了操作的定义,这些操作与类中声明的数据值有相同的地位。

4、基于复用的面向对象开发过程分为哪几个阶段?每一个阶段需要做哪些事情 ? 解答:基于复用的面向对象开发过程分为6个阶段,如图中虚线框所围。

①论域分析:论域分析开发问题论域的模型。论域分析应当在应用分析之前进行,我们在了解问题之前应当对问题敞开思想考虑,考察问题论域的一个较宽的围,分析覆盖的围应比直接要解决的问题更多。

②应用分析:应用(或系统)分析细化在论域分析阶段所开发出来的信息,并且把注意力集中于当前要解决的问题。因为通过论域分析,分析人员具有了较宽的论域知识,因而能开发出更好的抽象。

③高层设计:在一个纯面向对象环境中,软件体系结构设计与类设计常常是同样的过程,但还是应当把体系结构设计与类的设计分开。在高层设计阶段,设计应用系统的顶层视图。这相当于开发一个代表系统的类,通过建立该类的一个实例并发送一个消息给它来完成系统的“执行”。

④类的开发:根据高层设计所标识的对各个类的要求和类的规格说明,进行类的开发。因为一个应用系统往往是一个类的继承层次。对这些类的开发是最基本的设计活动。

⑤实例的建立:建立各个对象的实例,实现问题的解决方案。

⑥组装测试:按照类与类之间的关系组装一个完整的应用系统的过程中进行的测试。各个类的封装和类测试的完备性可减少组装测试所需要的时间。

5、按照类生存期,类的开发有哪几种方式?每一种方式需要做哪些事情?

解答:按照下图所示的类生存期,类的开发有三种方式。(1) 既存类的复用

只要有可能就应复用既存类。为了达到此目的,开发人员必须能够找到这样一些类,它们都能选用来提供所需要的行为。有时应用要解决的问题与以前遇到的一些问题密切相关,因此那些问题中定义和实现的类可以复用。然而,多数照原样复用被限制在低层上最基本的类,像基本数据结构。对于较一般的结构,可以在实例化时,使用参数来规定它们的行为。

(2) 从既存类进行演化

多数复用情况是一个类已经存在,它提供的行为类似于要为新类定义的行为。开发人员可以使用既存类做为定义新类的起点。新类将根据既存类渐进式地演变而成。这样,在开发一个新类时,只需要花费较少的工作量就能复用许多既存类,得到所需要的新类。演化可以是横向的,也可以是纵向的。横向的演化导致既存类的一个新的版本,而纵向的演化将从既存类导出新类。我们在这里将主要讨论类的纵向渐进式开发。

①渐进式设计。设计既存类的一个特殊化类。通过确定新类中打算要的所有成员,设计者可以确定哪些追加的行为可以加到类中去,哪些既存的行为应当重新实现。

②渐进式实现。许多实现可以从既存类直接继承;有时可以仅使用很少的新代码就能利用既存类的实现,而这些新代码必须当做老方法的上文或下文进行编写。此外,在渐进式设计阶段增加的那些行为也必须实现。

③渐进式测试。在测试中最花费时间的就是测试用例的生成。许多新类的测试用例可以从既存类的测试用例组中得到。新类的某些部分因为在测试既存类时已经测试过,因此可以不再需要测试。(3) 从废弃型进行开发

这个分支仅在不得已的情况下使用。任何一个类,只要它的开发不涉及既存类,就可看做是一个新的继承结构的开始。因此,将建立两种类:一种是抽象类,它概括了将要表达的概念;另一种是具体类,它要实现这个概念。

①设计。设计阶段需把分析阶段所产生的界面当做输入,并确定类的其它属性。设计给出类的所有细节。这个阶段的输出是有关类

的属性的足够的细节,可支持它们的实现。单个类的设计包括构造数据存储,它是类定义的核心。其部表示还包括一些私有函数,它们实现了共有操作的某些部分。单个类的低层设计还涉及一些重要联系,如继承和组装关系。

②实现。通过变量的声明、操作界面的实现及支持界面操作的函数的实现,可实现一个类的预期行为和状态。在变量中存储的数据通常是其它类的实例,它们提供了为该类的开发所需的服务。

③测试。单个的类为测试提供了自然的单元。如果类的定义提供的界面比较狭窄,那么穷举测试就有可能实现。类的测试在最抽象的层次开始,沿继承联系继续向下进行,新的类可以很容易地完全地被测试,而已经测试过的部分就不需要从新测试了。

(4) 求精和维护

传统的维护活动是针对应用的,而求精过程则是针对类,并把类在一起的结构的。因为我们利用抽象进行开发,因此,维护部分在任一时间都能修改这些抽象。随着经验的增长,我们可以够标识抽象的抽象,使得继承结构通过泛化增加新的层次,即在既存的根类之上增加新的层次。

8、建立分析和设计模型的一种重要方法是UML。试问UML是一种什么样的建模方法?它如何表示一个系统

解答:UML叫做统一的建模语言,它把Booch、Rumbaugh和Jacobson 等各自独立的OOA和OOD方法中最优秀的特色组合成一个统一的方法。UML允许软件工程师使用由一组语法的语义的实用的规则支配的符号来表示分析模型。

在UML中用5种不同的视图来表示一个系统,这些视图从不同的侧面描述系统。每一个视图由一组图形来定义。这些视图概述如下:·用户模型视图:这个视图从用户(在UML中叫做参与者)角度来表示系统。它用使用实例(use case)来建立模型,并用它来描述来自终端用户方面的可用的场景。

·结构模型视图:从系统部来看数据和功能性。即对静态结构(类、对象和关系)模型化。

·行为模型视图:这种视图表示了系统动态和行为。它还描述了在用户模型视图和结构模型视图中所描述的各种结构元素之间的交互和协作。

·实现模型视图:将系统的结构和行为表达成为易于转换为实现的方式。

·环境模型视图:表示系统实现环境的结构和行为。

通常,UML分析建模的注意力放在系统的用户模型和结构模型视图,而UML设计建模则定位在行为模型、实现模型和环境模型。10、在类的设计中需要遵循的方针是什么?三个主要的设计准则:抽象、信息隐蔽和模块化如何才能作到

解答:在设计类时需要遵循的方针是:

·信息隐蔽:通过信息隐蔽可保护类的存储表示不被其它类的实例直接存取。

·消息限制:该类实例的用户应当只能使用界面提供的操作。·狭窄界面:只有对其它类的实例是必要的操作才放到界面上。

·强聚:模块部各个部分之间应有较强的关系,它们不能分别标识。

·弱耦合:一个单独模块应尽量不依赖于其它模块。

·显式信息传递:两个类之间的交互应当仅涉及显式信息传递。

·派生类当做派生类型:每个派生类应该当做基类的特殊化来开发,而基类所具有的公共界面成为派生类的共有界面的一个子集。·抽象类:某些语言提供了一个类,用它做为继承结构的开始点,所有用户定义的类都直接或间接以这个类为基类。

为了在类的设计中做到抽象、信息隐蔽和模块化:

以类作为系统的基本模块单元,通过一般化―特殊化关系和整体―部分关系,搭建整个系统的类层次结构,实现数据抽象和过程抽象;

将数据和相关的操作封装在类部,建立共有、私有和子类型等存取级别,将数据表示定义成为类的私有成员,实现信息隐蔽。

通过建立类属性(类模板),将某些有可复用要求的类设计成在数据类型上通用的可复用的软件构件,这样有助于实现模块化。

11、解答:在类的通过复用的设计中,主要的继承关系有两大类:

①配置:利用既存类来设计类,可能会要求由既存类的实例提供类的某些特性。通过把相应类的实例声明为新类的属性来配置新类。例如,一种仿真服务器可能要求使用一个计时器来跟踪服务时间。设计者不必开发在这个行为中所需的数据和操作,而是应当找到计时器类,并在服务器类的定义中声明它。

但如果使用既存类的部表示来做为新类的部表示的一部分,这是一种“针对实现”的继承方式,这种继承方式不好。例如,考虑使用继承来实现一个Circle类。Point类可支持Circle类的一部分实现。为了定义一个圆,我们只需要定义一个点和一个值,做为圆的圆心和半径。把Point当做子类,Circle类不但能得到由x和y提供的圆心,而且还能得到一个操作,让圆能够自由移动。但这样做,我们失去了抽象。

②演变:要开发的新类可能与一个既存类非常类似,但不完全相同。此时可以从一个既存类演变成一个新类,可以利用继承机制来表示一般化―特殊化的关系。特殊化处理有三种可能的方式。

软件工程试题与答案-(20)

软件工程期末试卷(A) 说明:本试卷为04级计算机专业(专升本)软件工程期末试卷,总计100分,时间100分钟 一、选择题:(每题1分,共20分)(将答案写在题号前的()中) ( C )1. 软件是()。 A. 处理对象和处理规则的描述 B. 程序 C. 程序及其文档 D. 计算机系统 ( B )2. 软件需求规格说明的内容不应包括()。 A. 主要功能 B. 算法的详细描述 C. 用户界面及运行环境 D. 软件的性能 ( B )3. 程序的三种基本控制结构是()。 A. 过程、子程序和分程序 B. 顺序、选择和重复 C. 递归、迭代和回溯 D. 调用、返回和转移 ( D) 4. 面向对象的分析方法主要是建立三类模型,即( )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体 B) 控制、联系、对象 C) 实体、联系、属性 D) 实体、属性、操作 ( A ) 6. 各种软件维护的类型中最重要的是( )。 A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护 ( B ) 7.软件测试的目标是()。 A. 证明软件是正确的 B. 发现错误、降低错误带来的风险 C. 排除软件中所有的错误 D. 与软件调试相同 ( D )8.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测试 D.软件维护 ( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 ( D )10、详细设计的基本任务是确定每个模块的( )设计 A.功能 B.调用关系 C.输入输出数据 D.算法 ( A )11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:() A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据 ( D )12.下面几种白箱测试技术,哪种是最强的覆盖准则() A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖 ( A )13.面向数据流的设计方法把()映射成软件结构。

软件工程导论期末考试题

一、单项选择题 1.适合于面向对象方法学的软件生存周期模型是( B ) A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 2.从实用角度看,数据规范化程度在大多数场合选用第( C )范式。 A. 1 B.2 C.3 D.5 3. 可行性分析研究的目的是( A )。 A.项目值得开发否 B.争取项目 C.开发项目 D.规划项目 4. 模块的内聚性最高的是 ( D ) A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚 5.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( B ) A. 软件工程 B. 软件危机 C. 软件周期 D. 软件产生 6. 需求分析阶段的任务是确定( D ) A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能 7. 完整的软件结构通常用( B )图来表示。 A. IPO 图 B. HIPO 图 C.PAD 图 D.DFD 图 8. 在白盒法技术测试用例的设计中( A )是最弱的覆盖标准。 A.语句 B.路径 C.条件组合 D.判定 9?对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合 B.隐藏 C.封装 D.抽象 10. 在数据流图中,圆代表( C )。 A.源点 B.终点 C.加工 D.模块 11. 模块内聚度越高,说明模块内各成分彼此结合的程度越( B )。 A.松散 B.紧密 C.无法判断 D.相等 12. 软件测试方法中,黑盒、白盒测试法是常用的方法,其中黑盒测试主要用于测试( B )。 A.结构合理性 B.软件外部功能 C.程序正确性 D.程序内部逻辑 13. 面向对象开发方法中, ( C )是占主导地位的标准建模语言。 A.Booch 方法 B.Coad 方法 C.UML 语言 D.OMT 方法 14. 软件需求分析的主要任务是准确地定义出要开发的软件系统是( C ) A.如何做 B.怎么做 C.做什么 D.对谁做 15. 结构化程序设计的一种基本方法是( C ) A.筛选法 B.迭代法 C.逐步求精法 D.递归法 二、填空题 1. 目前使用最广泛的软件工 程学方法分别是传统方法学和(面向对象方法学 ) )和事务流。 文档 ) 。 ( 重复 )三种结构。 自顶向下 的集成测试方法,对软件结构中下层使 6. 软件维护包括 ( 改正性维护 )、适应性维护、完善性维护、预防性维护。 7. 面向对象方法学建模得到的三个基本子模型是 (对象建模 ) .动态模型、功能模型。 8. 复杂大型问题的对象模型通常由主题 2. 数据流图中信息流的类型有(变换流 3. 软件的定义是:软件 =程序+数据+ 4. 经典结构程序设计包括顺序、选择和 5. 集成测试时对软件结构中上层使用 用 ( 自底向上 ) 的集成测试方法。

土木工程概论试题及参考答案

土木工程概论试题及参考 答案 Newly compiled on November 23, 2020

土木工程概论期中测试题 一、单项选择题(共10题,每题2分,共20分) 1、_________是建造各类工程设施的科学技术的总称。 ( ) A、铁路工程 B、基本建设 C、土木工程 D、公路工程 2、________向轻质、高强、多功能化发展。 ( ) A、工程材料 B、土木工程 C、技术 D、设计 3、_______是由胶凝材料、细骨料和水等材料按适当比例配制而成的。( ) A、混凝土 B、砂浆 C、钢筋混凝土 D、三合土 4、只能在空气中硬化的称为____胶凝材料,如石膏。 ( ) A、水硬性 B、湿硬性 C、气硬性 D、干硬性 5、通常把位于天然地基上、埋置深度小于_______m的一般基础(柱基或墙基)称为天然地基上的浅基础。 ( ) A、4 B、5 C、6 D、7 6、桥梁是________工程中的重要组成部分,由正桥、引桥和导流等工程组成。 ( ) A、公路建筑 B、房屋建筑 C、河流治理 D、水利建设 7、_________是指承托基础的场地。 ( ) A、承台 B、条型基础 C、桩基础 D、地基 8、_________指由梁和柱刚性连接而成骨架的结构。 ( ) A、剪力墙 B、筒体结构 C、框架结构 D、混合结构 9、__________是双向行车道、中央设有分车带、进出口一般全控制或部分控制,为城市大量、长距离、快速交通服务。 ( )

A、快速道 B、主干道 C、次干道 D、支道 10、公路路基的_________形式有路堤、路堑和半填半挖三种。 ( ) A、功能 B、结构 C、平面布置 D、横断面 二、填空题(共10题,每空2分,共30分) 1、土木工程的发展经历了古代、近代和_______________三个阶段。 2、普通混凝土是由水泥、 _____________、细骨料、和 __________拌合,经硬化而 成的一种人造石材。 3、将上部结构的荷载传给土地基,连接上部结构与地基土的下部结构称为 __________。 4、浅基础一般分为单独基础、___________、伐板基础和箱形基础、壳体基础。 5、梁和板都是工程结构中的 _____________构件。 6、高层与超高层建筑结构的主要结构形式有_____________,框架剪力墙结构、 ________________、框支剪力墙结构、筒体结构等。 7、当前我国的公路等级按照其使用任务、功能和适应的交通量分为 ___________个 等级。 8、按结构体系和受力特点,桥梁可以划分为_________、索、__________三大基本体 系和组合体系。 9、铁路是由__________、轨道、____________组成。 10、建筑构造的设计原则是:技术适宜、____________、美观大方、___________。 三、判断题(正确的划√,错误的划×共5题,每题2分,) 1、按照桥梁主要承重结构所用材料分为:圬工桥、钢筋混凝土桥、预应力混凝土 桥、钢桥和斜拉桥等。 ( )

软件工程 简答题复习题(带答案)

n n g a r 第一章 1,与计算机硬件相比,计算机软件有哪些特点? 软件的特点如下。 1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来 了解它的功能、特性和质量等。 2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过 程中,渗透了大量的脑力劳动。 3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问 题。 4)软件的开发和运行必须依赖于特定的计算机系统环境。 5)具有可复用性。 3,什么是软件危机?什么原因导致了软件危机? 软件危机的现象如下。 1)预算,项目一再拖延。 2)需求,开发的软件不能满足用户的要求,项目成功率低。 3)软件工程方法,软件可维护性差、软件质量差、可靠性差。 4)开发工具落后,手工方式,开发效率低。 所有导致软件危机的原因,都与软件本身的产品特点相关。 1)软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软 件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升 高。 2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。 3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法 做到准确估算,生产过程不易控制。 4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成 本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得 多。 5,请简述软件工程研究的内容。

n d A i 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实 施、系统维护、版本升级等。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。软件支持过程由所支持的CASE 工具组成,常用的CASE 工具有Power Designer 和Rational Rose 等。 7,请简述软件工程的目标、过程和原则。 目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开 发。 1)软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效 率、高效益)。2)实现目标的过程即完成产品加工的过程,包括:基本过程、支持过程和组 织过程。 3)进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的 开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程 的管理。 9,请简述现代软件工程与传统软件工程显著的区别和改进。 1)传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向 对象技术为标志。 2)不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中, 采用面向对象的思维方式,更加完整、自然地反映客观世界。3)采用架构技术,开发效率、产品质量得到了极大提高。 4)更注重团队开发和管理,融入更多、更新的管理理念和手段,如RUP 模型、 XP 模型、过程改进、能力成熟度模型、配置管理等。 第二章 1,如何理解软件生命周期的内在特征?

软件工程导论简答题大全

1.软件工程的七条基本原理是什么? 答:软件工程的七条基本原理是: 用分阶段的是的生存周期计划严格管理; 坚持进行阶段评审; 严格实施的产品控制; 采用现代程序技术; 结果应能清楚地审查; 开发小组的成员应该少而精; 承认不断改进软件工程的必要性。 2.良好的编码风格应具备哪些条件? 答:应具备以下条件: (1)使用标准的控制结构; (2)有限制地使用GOTO语句; (3)源程序的文档化(应具备以下内容) ①有意义的变量名称——“匈牙利命名规则”。 ②适当的注释——“注释规范”。 ③标准的书写格式: ——用分层缩进的写法显示嵌套结构的层次(锯齿形风格); ——在注释段的周围加上边框; ——在注释段与程序段、以及不同程序段之间插入空行; ——每行只写一条语句; ——书写表达式时,适当使用空格或圆括号等作隔离符。 (4)满足运行工程学的输入输出风格。 3.简述文档在软件工程中的作用。 答: (1) 提高软件开发过程的能见度 (2) 提高开发效率 (3) 作为开发人员阶段工作成果和结束标志 (4) 记录开发过程的有关信息便于使用与维护; (5) 提供软件运行、维护和培训有关资料; (6) 便于用户了解软件功能、性能。 4.可行性研究包括哪几方面的内容? 答: (1)经济可行性:是否有经济效益,多长时间可以收回成本; (2)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足; (3)运行可行性:系统操作在用户内部行得通吗? (4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。 5.结构化的需求分析描述工具有哪些? 答:有数据流图(DFD)、数据字典(DD)、判定表、判定树、结构化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制说明(CSPEC)、状态转换图(STD)和实体—关系图(E—R)等。 6.一般面向对象分析建模的工具(图形)有哪些?

软件工程导论》期末考试试题与答案

《软件工程导论》期末考试-试题与答案 一、填空题 1.软件工程中的结构化分析 SA 是一种面向________的分析方法。 2.软件模块独立性的两个定性度量标准是_________________。 3.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个________的过程。 4. ________和数据字典共同构成了系统的逻辑模型 5. ___________是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数据类,据此导出测试用例。二、单选 题 1.在软件危机中表现出来的软件质量差的问题,其原因是_______。A.软件 研发人员素质太差B.用户经常干预软件系统的研发工作C.没有软件质量标 准 D.软件开发人员不遵守软件质量标准2.在软件质量因素中,软件在异常条件下仍能运 行的能力成为软件的_____。A.安全性B.健壮性C.可用性D.可靠性 3.在下列测试技术中,______不属于黑盒测试技术。A.等价 划分B.边界值分析C.错误推测D.逻辑覆盖 4.软件工程方法是在实践中不断发展着的方法,而早期的软件工程方法主要是指______。A.原型化方法B.结构化方法C.功能化方法D.面向对象方法 5. ______是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是 隐蔽的,外界只能通过有限的接口与对象发生联系。A.多态 B.继承C.封装D.消息 6. Jackson 方法是在软件开发过程中常用的方法,使用 Jackson 方法时可以实现______。A.从数据结构导出程序结构B.从数据流图导出初始结构图C.从模块结构导出数据结构D.从模块结构导出程序结构 7.软件测试时为了________而执行程序的过程。A.纠正 错误B.发现错误 C.避免错误 D.证明错误 8.在软件系统中,一个模块应具有什么样的功能,这是由_____决定的。A.总体 设计B.需求分析C.详细设计D.程序设计 9.面向对象分析是对系统进行_________的一种方法。A.需求 分析B.程序设计C.设计评审D.测试验收 10.软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而 且影响软件的_______。A.可理解 性B.可维护性C.可扩展性D.可 移植

土木工程概论简答题论述题大全及答案

论述题(共2题,每题7分,共14分) 1、试述高层结构的主要结构形式及特点? 答:8层及8层以上者称为高层建筑。高层结构的主要结构形式有:框架结构,框架—剪 力墙结构,剪力墙结构,框支剪力墙结构,筒体结构等。 ①框架结构 框架结构因其受力体系由梁和柱组成,用以承受竖向荷载是合理的,在承受水平荷载方面 能力很差。因此仅适用于房屋高度不大、层数不多时采用。 ②框架—剪力墙结构 剪力墙即为一段钢筋混凝土墙体,固其抗剪能力很强,故称为剪力墙。在框架—剪力墙结 构中,框架与剪力墙协同受力,剪力墙承担绝大部分水平荷载,框架则以承担竖向荷载为主,这样,可以大大减小柱子的截面。 ③剪力墙结构 当房屋的层数更高时,横向水平荷载已对结构设计起控制作用,如仍采用框架—剪力墙结 构,剪力墙将需布置得非常密集,这时,宜采用剪力墙结构,即全部采用纵横布置的剪力墙组成,剪力墙不仅承受水平荷载,亦用来承受竖向荷载。 ④框支剪力墙结构 两种建筑的功能完全不同,为完成这两种体系的转换,需在其交界位置设置巨型的转换大 梁,将上部剪力墙的荷载传到下部柱子上。这种结构体系,我们称之为框支剪力墙体系。 ⑤筒体结构 筒体结构是由一个或多个筒体作承重结构的高层建筑体系,适用于层数较多的高层建筑。 筒体结构可分为框筒体系、筒中筒体系、桁架筒体系、成束筒体系等。 2、试述建筑结构必须满足哪些功能要求? 答:结构的功能要求 结构在规定的设计使用年限内应满足下列功能要求: (1)安全性 在正常施工和正常使用时,能承受可能出现的各种作用。 在设计规定的偶然事件(如地震、爆炸)发生时及发生后,仍能保持必需的整体稳定性所谓 整体稳定性,系指在偶然事件发生时及发生后,建筑结构仅产生局部的损坏而不致发生连续

软件工程课后习题测验简答题

第一章: 三、简答题 1.软件产品的特性是什么? 答:●软件是一种逻辑产品,具有无形性; ●软件产品的生产主要是研制;主要是脑力劳动; ●软件不存在磨损和老化问题,但存在退化问题; ●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式; ● 软件具有“复杂性”,其开发和运行常受到计算机系统的限制。 2. 软件发展有几个阶段?各有何特征? 答:①程序设计阶段。 硬件特征:价格贵、存储容量小、运行可靠性差。 软件特征:只有程序、程序设计概念,不重视程序设计方法。 ②程序系统阶段。 硬件特征:速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。 软件特征:程序员数量猛增,开发人员素质低。 ③软件工程阶段。 硬件特征:向超高速、大容量、微型化及网络化方向发展。 软件特征:开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。 3.什么是软件危机?其产生的原因是什么? 答:“软件危机”(Software Crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。软件危机主要表现在两个方面: (1) 软件产品质量低劣,甚至开发过程就夭折。 (2)软件生产率低,不能满足需要。 4.什么是软件过程?有哪些主要的软件过程模型?它们各有哪些特点? 答:软件过程是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。软件过程模型是对软件开发实际过程的抽象和简化,是描述软件开发过程中各种活动如何执行的模型,因此又称为软件开发模型。 主要的软件过程模型有:瀑布模型、增量模型、螺旋模型、喷泉模型和基于知识的模型等。 ⑴瀑布模型是经典的软件开发模型,将软件开发活动中的各项活动规定为依线性顺序连接的若干阶段,它简单易用,在消除非结构化软件、降低软件的复杂性、促进软件开发工程化方面起了很大的作用。但在软件开发实践中也逐渐暴露出它的缺点。它将一个充满回溯的软件开发过程硬性分割为几个阶段,无法解决软件需求不明确或者变动的问题。 ⑵增量模型是一种非整体开发的模型。根据增量的方式和形式的不同,分为基于瀑布模型的渐增模型和基于原型的快速原型模型。该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。 ⑶螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:制定计划、风险分析、实施工程、客户评估。 ⑷喷泉模型用于采用对象技术的软件开发项目。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。软件开发过程有4

软件工程简答题复习题(带答案)

第一章 1,与计算机硬件相比,计算机软件有哪些特点? 软件的特点如下。 1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了 解它的功能、特性和质量等。 2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程 中,渗透了大量的脑力劳动。 3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问 题。 4)软件的开发和运行必须依赖于特定的计算机系统环境。 5)具有可复用性。 3,什么是软件危机?什么原因导致了软件危机? 软件危机的现象如下。 1)经费超出预算,项目一再拖延。 2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。 3)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。 4)开发工具落后,手工方式,开发效率低。 所有导致软件危机的原因,都与软件本身的产品特点相关。 1)软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软件 产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。 2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。 3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做 到准确估算,生产过程不易控制。 4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成 本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得 多。 5,请简述软件工程研究的内容。 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。 软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和

软件工程导论-期末题库(完整版)

1.填空题 1.一般来说,可以从__一致性__、_完整性___、_现实性____和_有效性___四个方面验证软件需求的正确性。 2.IPO图是_输入、处理和输出图_的简称,它是美国IBM公司发展完善起来的一种图形工具。 3.系统流程图是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的_____信息流动_____情况。 4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点。 5.软件测试的步骤按顺序分别是:___单元测试_____、子系统测试、系统测试(子系统和系统测试通常称为集成测试)、__确认测试__和_____系统测试(集成测试)____ 6.软件生命周期一般可分为_问题定义_、可行性研究、_需求分析_、设计编码、_测试_、运行与维护阶段。 7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性____、__法律可行性___和抉择。 8.在结构化设计中,HIPO图应用在总体设计阶段,由IPO图和_层次图_两部分组成。9.复杂问题的对象模型通常由下述五个层次组成:主题层、___类与对象_层、__结构___层、_属性_层和__服务_层。 10.实施精化设计的目标是基于模块的“高内聚低耦合”的原则,提高模块的_独立性。11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。 12.面向对象的数据存储管理模式分为__文件__、_关系数据库__和__面向对象数据库___三种。 13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。 14.软件工程三要素包括_方法_、__工具___和__过程___,其中, _过程_支持软件开发的各个环节的控制和管理。 15.类构件的重用方式有_实力重用__、__继承重用______和_ 多态重用__三种。16.能力成熟度模型分为5个等级:初始级、____可重复____级、__已定义___级、____已管理__级和__优化____级。 2.判断题 1. 向滞后的项目中增加人手会使得项目更加滞后。(T)

软件工程复习题及答案

2006-2007-2软件工程复习 一、单项选择题(20选10) 1. 结构化分析的主要描述手段有( B )。 A. 系统流程图和模块图 B. DFD图、数据词典、加工说明 C. 软件结构图、加工说明 D. 功能结构图、加工说明 2. 用于表示模块间的调用关系的图叫( D )。 A.PAD B.SC C.N-S D.HIPO 3. 在( B )模型中是采用用例驱动和架构优先的策略,使用迭代增量建造方法,软件“逐渐”被开发出来的。 A.快速原型 B. 统一过程 C.瀑布模型 D. 螺旋模型 4. 常用的软件开发方法有面向对象方法、面向( A )方法和面向数据方法。 A. 过程 B. 内容 C. 用户 D. 流程 5 从工程管理的角度来看,软件设计分两步完成( D )。 A. ①系统分析②模块设计 B. ①详细设计②概要设计 C. ①模块设计②详细设计 D. ①概要设计②详细设计 6. 程序的三种基本结构是( B )。 A. 过程、子程序、分程序 B.顺序、条件、循环 C.递归、堆栈、队列 D.调用、返回、转移 7. 程序的三种基本结构是( B )。 A. 过程、子程序、分程序 B.顺序、条件、循环 C.递归、堆栈、队列 D.调用、返回、转移 8. SD方法衡量模块结构质量的目标是( C )。 A. 模块间联系紧密,模块内联系紧密 B. 模块间联系紧密,模块内联系松散 C. 模块间联系松散,模块内联系紧密 D. 模块间联系松散,模块内联系松散 9.为提高软件测试的效率,应该( C )。 A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据 C.在完成编码后制定软件测试计划 D.选择发现错误可能性大的数据作为测试数据 10.( D )测试用例发现错误的能力较大。 A.路径覆盖 B.条件覆盖 C.判断覆盖 D.条件组合覆盖 11.软件需求分析应确定的是用户对软件的( A )。 A. 功能需求和非功能需求 B. 性能需求 C. 非功能需求 D. 功能需求 12.下列各种图可用于动态建模的有( C )。 A.用例图 B. 类图 C. 序列图 D. 包图 13.软件过程模型有瀑布模型、( B )、增量模型等。 A. 概念模型 B. 原型模型 C. 逻辑模型 D. 物理模型 14.面向对象的分析方法主要是建立三类模型,即( D )。 A. 系统模型、ER模型、应用模型 B. 对象模型、动态模型、应用模型 C. E-R模型、对象模型、功能模型 D. 对象模型、动态模型、功能模型 15.测试的分析方法是通过分析程序( B )来设计测试用例的方法。 A.应用范围 B.内部逻辑 C.功能 D.输入数据 16. 软件工程是研究软件( B )的一门工程学科。 A. 数学 B. 开发与管理 C. 运筹学 D. 工具 17. 需求分析可以使用许多工具,但( C )是不适合使用的。 A.数据流图 B.判定表 C.PAD图 D.数据字典 18.划分模块时,一个模块内聚性最好的是( A )。 A. 功能内聚 B. 过程内聚 C. 信息内聚 D. 逻辑内聚 19.软件可移植性是用来衡量软件的( D )的重要尺度之一。 A.效率 B. 质量 C. 人机关系 D. 通用性 20.软件配置管理是在软件的整个生存周期内管理( D )的一组活动。 A.程序 B.文档 C.变更 D.数据 二、判定题(20选10) 1统一过程是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。(×) 2当模块中所有成分结合起来完成一项任务,该模块的内聚是偶然内聚。(×) 3SD方法衡量模块结构质量的目标是模块间联系松散,模块内联系紧密(√) 4当模块中所有成分结合起来完成一项任务,该模块的内聚是功能内聚。(√) 5在进行需求分析时,就应该同时考虑软件的可维护性问题。(√) 6需求分析可以使用许多工具,但数据流图是不适合使用的。(×)

历年全国自学考试软件工程试题简答题答案

历年全国自学考试软件工程试题简答题答案

全国 10月自学考试软件工程试题 简答题(本大题共6小题,每小题5分,共30分) 31. 什么是需求规约?简述需求规约的基本性质。 答:需求规约是一个软件项/产品/系统所有需求陈述的正式文档,它表示了一个软件产品/系统的概念模型。需求规约一般需要满足一下4个基本性质: 1.重要性和稳定性程度:按需求的重要性和稳定性,对需求进行 分级; 2.可修改性:在不影响其它需求的前提下可容易修改一个单一 需求; 3.完整性:设备被遗漏的需求; 4.一致性:不存在互斥的需求。 32.什么是模块耦合?简述常见的模块耦合类型及其设计原则。答:模块耦合:是指不同模块之间相互依赖程度的度量; 几中常见模块耦合类型为:内容耦合、公共耦合、控制耦合、标记耦合、数据耦合等; 设计原则:如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合,避免内容耦合。 33.UML给出了那些表示关系的术语?简述它们的概念。 答:1.为了表示各类事物之间的关系,UML给出了表示关系的术

语:关联、泛化、细化、依赖; 2.关联是类目之间的一种结构关系,是对一组具有相同结构、相同链的描述; 3.泛化是一般性类目和它的较为特殊类目之间的一种关系; 4.细化是类目之间的语义关系,其中一个类目规约了保证另一个类目执行的契约; 5.依赖是一种使用关系,用于描述一个类目使用另一类目的信息和服务。 34.简述RUP的定义和特点。 答:RUP是基于一种过程框架,为软件开发,即为进行不同抽象层之间映射安排其开发活动的次序,制定任务和需求开发的制品,提供了指导;并为对项目中的制品和活动进行监督与度量,提供了相应的准则; RUP特点是:以用况为驱动,以体系结构为中心,迭代、增量式开发。 35.简述软件测试步骤及关注的内容。 答:软件测试步骤及关注的内容有以下几点: 1.由于软件错误的复杂性,在软件工程测试中应综合运用测试 技术,实施合理的测试步骤:单元测试、集成测试、有效性测试和系统测试;

软件工程导论复习试题库完整

a(1)在软件工程中,白盒测试法可用于测试程序的内部结构。此方法将程序看作是 A) 路径的集合 B)循环的集合C)目标的集合D)地址的集合 c(2)在下述哪一种测试中,测试程序的设计者必须接触到源程序 I.功能测试Ⅱ. 结构测试 A)均不须B)只有ⅠC)只有ⅡD)Ⅰ和Ⅱ a(3)检查软件产品是否符合需求定义的过程称为 A)确认测试B)集成测试C)验证测试D)验收测试 c(4)下述陈述中,哪一个不是软件健壮性的度量指标? A)失败后重新启动所需的时间B)引起失败的时间所占的百分比 D)失败前的平均工作时间D)在一次失败中数据恶化的概率 b(5)对软件是否能达到用户所期望的要求的测试称为 A) 集成测试B) 有效性测试C) 系统测试D) 验收测试 a(6)在面向数据流的软件设计方法中,一般将信息流分为 A)变换流和事务流B)变换流和控制流 C)事务流和控制流D)数据流和控制流 d(7)软件需求说明书是软件需求分析阶段的重要文件,下述哪个(些)是其应包含的内容 I.数据描述Ⅲ. 模块描述 II.功能描述Ⅳ. 性能描述 A)ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅱ和ⅢD)Ⅰ、Ⅱ和Ⅳ (8)软件测试一般分为三类,即 I.静态测试Ⅱ. 动态测试Ⅲ. 正确性测试 设计测试用例对程序进行测试,应属于 A)ⅠB)ⅡC)Ⅰ和ⅡD)Ⅲ (9)模块独立性是由内聚性和耦合性来度量的,其中内聚性是度量____,耦合性是度量____。 A)模块间联系程度B)模块的功能强度 C)信息隐蔽程度D)模块的复杂程度 (10)软件设计中一般将用到图形工具,下述哪种(些)工具可用作设计的图形工具 I.结构图Ⅱ. 实体关系图Ⅲ. IPO图 II.Ⅳ. 流程图Ⅴ. N-S图 A)Ⅰ和ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅲ、Ⅳ和ⅤD)全部 A (2)C (3)A (4)C (5) B (6)A (7)D (8)B (10)C (11)试判断下列论述中哪个(些)是正确的 I.软件系统中所有的信息流都可以认为是变换流 II.软件系统中所有的信息流都可以认为是事务流 III.事务分析和变换分析的设计步骤基本类似 A)ⅠB)ⅡC)ⅢD)Ⅰ和Ⅲ (12)软件的有效性测试是验证软件的运行是否达到用户的期望,用户的期望应体现于A)详细设计报告B)软件需求说明书 C)总体设计报告D)有效性测试要求 (13)软件设计中的软件过程其主要描述的是 A)模块间关系B)模块操作细节 C)模块控制方法D)模块类型 (14)软件测试是软件件开发过程的重要阶段,是软件质量保证的重要手段,下列哪个(些)是软件测试的任务?

土木工程概论总复习(含标准答案)

土木工程概论复习题汇总 一;填空题。 1、土木工程的发展经历了古代、近代和现代三个阶段。 2、砖按生产工艺分烧结砖和非烧结砖。 3、砂一般分为天然砂和人工砂。 4、配置混凝土时应优先选用中砂。 5、所谓灰是指石灰和石膏。 6、土木工程中使用的钢材是指线材和型材。 7、水泥按其用途及性能分为通用水泥、专用水泥、特性水泥。 8、普通混凝土是由水泥、粗骨料、细骨料、和水拌合,经硬化而成的一种人造石材。 9、绝热材料按其成分分为无机材料和有机材料。 10、绿色建材的发展战略应从原料采集、产品的制造、应用过程、和使用后的再循环等四个方面进行全 面系统的研发。 11、将上部结构的荷载传给土地基,连接上部结构与地基土的下部结构称为基础。 12、常用工程地质测绘方法有相片成图法和实地测绘法。 13、通常把位于天然地基上,埋置深度小于5m的一般基础以及埋深度虽超过5m,但小于基础宽度的大尺 寸基础,统称为天然地基上的浅基础。 14、刚性基础通常由砖、毛石、素混凝土、和灰土等材料做成。 15、建筑物的基础分为刚性基础和柔性基础,钢筋混凝土基础属于柔性基础。 16、浅基础一般分为单独基础,条形基础、伐板基础和箱形基础、壳体基础。 17、埋置深度大于 5米或大于基础宽度的基础,称为深基础。 18、桩按荷载传递方式分为端承桩和摩擦桩。 19、建筑物的基本构建可分为梁、板、柱、拱。 20、梁和板都是工程结构中的受弯构件。 21、梁按支撑方式可分为简支梁、悬臂梁和连续梁。 22、柱是工程结构中的受压构件。 23、用于门窗洞口上部,用于承受洞口上部结构荷载的梁叫过梁。 24、高层与超高层建筑结构的主要结构形式有框架结构,框架剪力墙结构、剪力墙结构、框支剪 力墙结构、筒体结构等。 25、框架结构承受竖向荷载能力强,但承受水平荷载能力差。

软件工程简答题66339

简答题: 1、什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究把工程应用于软件中提到的途径。 软件工程的本质特征: (1)软件工程关注于大型程序的构造; (2)软件工程的中心课题是控制复杂性; (3)软件产品交付使用后仍然需要经常修改; (4)开发软件的效率非常重要; (5)和谐地合作是成功开发软件的关键; (6)软件必须有效地支持它的用户 (7)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人开发产品。 消除软件危机的途径: (1)对计算机软件有一个正确的认识(软件≠程序) (2)必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 (3)推广使用在实践中总结出来的开发软件的成功技术和方法 (4)开发和使用更好的软件工具 2、简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 3、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型

软件工程简答题

软件工程简答题 三、简答题(简要回答下列问题) 1、什么是软件工程?它目标和内容是什么? 软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。 软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。 软件工程内容:包括开发技术和开发管理两个方面。 2、软件开发中有哪几种过程模型?哪些适用于面向对象的软件开发? 软件开发中常见的软件过程模型有瀑布模型、原型模型、螺旋模型、喷泉模型、统一软件过程等。 其中喷泉模型、统一软件过程适用于面向对象的软件开发。 3、什么是结构分析方法?该方法使用什么描述工具? 结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。 4、什么是软件概要设计?该阶段的基本任务是什么? 把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。称为概要设计或结构设计。 基本任务: ⑴设计软件系统结构 ⑵进行数据结构及数据库的设计 ⑶编写概要设计的文档 ⑷评审 5、软件维护有哪些内容? (1)校正性维护。在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴

露出来。为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。 (2)适应性维护。为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。 (3)完善性维护。为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。 (4)预防性维护。为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。 6、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系? 软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。 单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。 集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。 确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。 系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。以确定软件是否可以支付使用。 7、什么是软件生存周期?它有哪几个活动? 软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。 包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。 8、衡量模块独立性的两个标准是什么?各表示什么含义? 内聚和耦合。 内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。 耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。

软件工程导论试题集46172(1)

第一章:软件工程学概述 一.填空题 1. 计算机科学中的研究成果均可用于软件工程,但计算机科学更侧重于(原理和理论)、而 软件工程侧重于(如何建造一个软件系统) 2. 计算机程序及其说明程序的各种文档称为(文件)。计算任务的处理图像对象和处 理规则的描述称为(程序)。有关计算机程序功能、设计、编制、使用的文字或图形资 料称为(文档)。 3. 软件开发环境是相关一组(软件工具)的集合,它支持一定的软件开发方法或按照一定 的软件开发模型组织而成的。 4. CASE这一术语的英文是(Computer Aided Software Engineering)。 5. (平台集成)是指工具运行在相同的硬件/操作系统平台上。(数据集成)是指工具使 用共享数据模型来操作。(表示集成)是指工具提供相同的用户界面。 6. 根据支持的范围,CASE工具可分为(窄支持)、(较宽支持)和(一般支持)工具。 7. 软件危机的主要原因有(软件本身的特点)和(缺乏好的开发方法和手段)。 8. (增量)模型是一种非整体开发的模型。软件在该模型中是“逐渐”开发处理的, 开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。 9.结构化方法总得指导思想是(自顶而下逐步求精)。它的基本原则是功能的(分解)与(抽象)。它是软件工程中最早出现的开发方法,特别适用于数据处理领域的问题。 10. 面向对象开发方法包括(面向对象分析)、(面向对象设计)、(面向对象实现)、三部分。 11. 瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它包括(可行性分析)、项目开发计划、(需求分析)、(概要设计) 、(详细设计)、_ (编码)、(测试)、(维护),它规定了由前至后、相互衔接的固定次序 ,如同瀑布流水,逐级下落。 12. 瀑布模型本质上是一种(线性)顺序模型。 13. 构造原型时,必须注意(功能性能)取舍,忽略一切暂时不关心的部分。 14. 属性指的是类中对象所具有的(性质(数据值))。不同对象的同一属性可以具有相同或不同的(属性值)。 15. 结构化方法和原型化方法是软件开发中常使用的两种方法,在实际的应用中,它们之间的关系表现为(相互补充)。 二.判断题 1. 瀑布模型的存在问题是缺乏灵活性。(√) 2. 软件是一种逻辑产品。(√) 3. 软件工程学科出现的主要原因是程序设计方法学的影响。(× ) 4. 有关计算机程序功能、设计、编制、使用的文字或图形资料称为文档。(√) 5. CASE开放式工作台或者提供控制集成机制,或者可剪裁,其数据集成或协议是独立的。(× ) 6. 在软件的开发与维护过程中,用来存储、更新、恢复和管理一个软件的多版本,它是版本控制工具。(√) 7. 平台集成是指工具运行在相同的硬件/操作系统平台上。(√) 8. 软件生存周期模型有多种,功能模型是软件生存周期模型。(× ) 9. 从结构化的瀑布模型看,在软件生命周期中得8个阶段中,详细设计阶段出错,对软件

相关主题
文本预览
相关文档 最新文档