软件工程简答题答案 第五版
- 格式:doc
- 大小:112.50 KB
- 文档页数:26
软件工程试题整顿_简答题1、可行性研究旳任务是什么?首先需要进行概要旳分析研究,初步确定项目旳规模和目旳,确定项目旳约束和限制,把他们清晰地列举出来。
然后,分析员进行简要旳需求分析,抽象出该项目旳逻辑构造,建立逻辑模型。
从逻辑模型出发,通过压缩旳设计,探索出若干种可供选择旳重要处理措施,对每种处理措施都要研究它旳可行性,可从如下三个方面分析研究每种处理措施旳可行性。
㈠技术可行性:对要开发项目旳功能、性能、限制条件进行分析,确定在既有旳资源条件下,技术风险有多大,项目与否能实现。
㈡经济可行性:进行开发成本旳估算以及理解获得效益旳评估,确定要开发旳项目与否值得投资开发。
㈢社会可行性:要开发旳项目与否存在任何侵犯、阻碍等责任问题,要开发项目旳运行方式在顾客组织内与否行得通,既有管理制度、人员素质、操作方式与否可行。
2、什么是模块旳影响范围?什么是模块旳控制范围?他们之间应当建立什么关系?一种模块旳作用范围(或称影响范围)指受该模块内一种鉴定影响旳所有模块旳集合。
一种模块旳控制范围指模块自身以及其所有下属模块(直接或间接附属于它旳模块)旳集合。
一种模块旳作用范围应在其控制范围之内,且鉴定所在旳模块应在其影响旳模块在层次上尽量靠近。
假如再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响旳模块,将它下移到判断所在模块旳控制范围内”旳措施加以改善。
3、非渐增式测试与渐增式测试有什么区别?渐增式测试怎样组装模块?非渐增式测试与渐增式测试旳测试措施有如下区别:㈠非渐增式测试措施把单元测试和集成测试提成两个不一样旳阶段,前一阶段完毕模块旳单元测试,后一阶段完毕集成测试。
而渐增式测试往往把单元测试与集成测试和在一起,同步完毕。
㈡非渐增式需要更多旳工作量,由于每个模块都需要驱动模块和桩模块,而渐增式运用已测试过旳模块作为驱动模块或桩模块,因此工作量较少。
㈢渐增式可以较早旳发现接口之间旳错误,非渐增式最终组装是才发现。
软件工程(第五版)--习题及答案---第八章一、判断题1、(√)使用括号改善表达式的清晰性。
2、(×)对递归定义的数据结构不要使用递归定义的过程。
3、(×)尽可能对程序代码进行优化。
4、(√)不要修改不好的程序,要重新编写。
5、(√)不要进行浮点数的相等比较。
6、(×)应尽可能多地使用临时变量。
7、(√)利用数据类型对数据值进行防范。
8、(×)用计数方法而不是用文件结束符判别批量数据输入的结束。
9、(×)程序中的注释是可有可无的。
10、(√)使用有意义的标识符。
11、(×)应尽量把程序编写的短一些。
12、(×)应尽量使用goto语句。
二、选择题1、在编码中首先要考虑的是(B)。
A、程序的执行效率B、程序的可读性C、程序的一致性D、程序的安全性2、(D)。
不属于序言性注释内容的是A、模块设计者B、修改日期C、程序的整体说明D、语句功能3、序言性注释应置于文件或模块的(A)位置。
A、起始B、结束C、中间D、起始和中间4、如果编写系统软件,可选用的语言是(C)。
A、FoxProB、COBOLC、CD、FORTRAN5、选择程序设计语言不应该考虑的是(B)。
A、应用领域B、语言的功能C、用户的要求D、用户的使用水平6、与编程风格有关的因素不包括(D)。
A、源程序文档化B、语句构造C、输入输出D、程序的编译效率7、最早用于科学计算的程序设计语言是(C)。
A、PROLOGB、SmalltalkC、FORTRAND、COBOL8、功能性注释的主要内容不包括(B)。
A、程序段的功能B、模块的功能C、数据的状态D、语句的功能9、对建立良好的编程风格,下面描述正确的是(A)。
A、程序应简单、清晰、可读性好B、符号名的命名只要符合语法即可C、充分考虑程序的执行效率D、程序的注释可有可无10、源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括合适的标识符、注释和(A)。
一、选择题1、UML的主要特点不正确的是(C)。
A、面对对象,表达能力强B、可视化建模C、面对过程,表达能力强D、统一标准2、静态建模图不包括(B)。
A、用例图B、协作图C、类图D、对象图3、用例图的模型元素不包括(D)。
A、用例B、系统C、行为者D、软件开发者4、类图的要素不包括(D)。
A、类名称B、操作C、属性D、对象5、时序图中的要素不包括(A)。
A、执行者B、对象C、对象生命线D、消息6、对象模型的描述工具是(C)。
A、状态图B、数据流图C、对象图D、结构图7、协作图的要素不包括(A)。
A、用例B、对象C、链D、消息8、类图反映了系统中对象之间的抽象关系,不包括(D)。
A、关联B、聚合C、泛化D、内聚9、下面(D)不是状态图的图符。
A、圆角的矩形B、实心圆点C、实心圆环D、椭圆10、描述类中某个对象的行为,反映了状态与事件关系的是(A)。
A、状态图B、数据流图C、对象图D、结构图11、动态模型的描述工具(C)。
A、对象图B、设计图C、状态图D、结构图12、表示对象的相互行为的模型是(A)模型。
A、对象B、动态C、结构D、静态13、有关类和对象的描述中,错误的是(A)。
A、一个类只能有一个对象B、对象是类的具体实例C、类是某一类对象的抽象D、类和对象的关系是一种数据类型和变量的关系14、用例图中用例之间的关系通常有关联关系、依赖关系和(C)关系。
A、协作B、聚合C、泛化D、内聚15、动态模型图包括:时序图、协作图、状态图和(C)图。
A、对象图B、设计图C、活动图D、结构图二、简答题1.简要介绍用例图的三个要素。
答:用例图主要包括以下三个元素:①用例(Use Case):用例是系统的使用过程或要执行的动作序列,用来描述某个参与者使用系统所完成的功能。
在图中用椭圆来表示,用例名称可写在椭圆中或椭圆下面。
②参与者(Actor)。
或称角色或执行者,它是系统外部的一个实体(可以是任何的事物或人所扮演的角色等)。
软件工程简答题复习题(带答案)软件工程简答题复习题(带答案)1. 什么是软件工程?软件工程是一种系统化、规范化、可量化的方法,用于开发、维护和测试软件系统的过程。
它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。
2. 软件开发生命周期有哪些阶段?常见的软件开发生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
3. 什么是需求分析?需求分析是软件开发过程中的第一步,它涉及与客户进行沟通和理解客户需求的过程。
通过需求分析,开发团队可以明确软件系统的功能和性能要求,并将这些要求转化为详细的规格说明。
4. 需求分析的主要目标是什么?需求分析的主要目标是确保开发团队和客户对软件系统的需求达成共识。
它需要明确软件系统的功能需求、性能需求和约束条件,以便后续的设计和开发工作能够按照这些需求进行。
5. 什么是软件设计?软件设计是在需求分析的基础上,根据系统需求和约束条件,将系统划分为模块,确定模块之间的接口和关系,设计出满足系统需求的软件结构和算法的过程。
6. 软件设计的原则有哪些?常见的软件设计原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)和迪米特法则(LoD)等。
7. 什么是软件测试?软件测试是为了评估系统的质量和功能是否满足需求的过程。
它通过设计和执行测试用例,检查系统的输出是否符合预期,并发现潜在的错误和缺陷。
8. 软件测试的分类有哪些?软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层次。
单元测试用于测试软件的最小功能单元,集成测试用于测试不同模块之间的交互,系统测试则测试整个系统的功能和性能,验收测试是由客户进行的测试,以确认系统是否达到了合同中规定的要求。
9. 什么是软件维护?软件维护是在软件交付给客户后,为了保证其正常运行和适应环境变化而进行的一系列活动。
维护包括错误修复、性能优化、功能扩展等。
习题5
3(1)数据流图如下:
对数据流图划分边界,如下所示:
按照以上数据流图设计软件结构,如下所示:
4(1)数据流图如下:
(2)需求说明:
功能需求:系统需要能查出教师的原有工资,计算出教师的现有工资,并打印相关信息。
数据需求:教师的原有工资信息,教师赡养的人数,教师的工龄
行为需求:系统要能判断原有工资是否符合涨工资要求,要精确计算现有工资,要提供给用户调查信息的借口与界面。
(3)用a 算法的HIPO 图:
教师档案
办公室磁带 打印原有工资和新工资信息 提取原工资
信息
计算新工资 办公室磁带
年工资大于等于$26000 年工资小于$26000
用b算法的HIPO图:
对于算法(a):优点:这样设置符合常规思路,容易让人理解
缺点:计算的次数较多。
检索效率低。
对于算法(b):优点:计算的次数较少,效率高
缺点:该算法不易于理解。
涉及到排序算法的设计。
(4)所画的数据流图更符合a算法。
5.答:需求分析:要实现三大功能,发牌;确定获胜方和牌型;模拟多次游戏,计算牌型的获胜和平局的概率。
分析后,设计的HIPO图如下:流程图在下页:
控制流程图如下:。
软件工程简答题第一章绪论1.什么是软件危机?软件危机有什么表现?软件危机产生的原因是什么?答:所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。
表现:(1)对于软件开发的成本和进度的估计很不准确。
(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。
(3)开发的软件可靠性差。
(4)软件通常没有适当的文档资料。
(5)软件的可维护性差。
(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
原因:软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。
2.简述软件的发展过程。
答:软件生产的发展划分为三个年代:(1 )程序设计时代:这一时期,软件的生产主要是个体手工劳动的生产方式。
(2)程序系统时代:由于计算机的应用领域不断扩大,软件的需求也不断增长,软件由于处理的问题域扩大而使程序变得复杂,设计者不得不由个体手工劳动组成小集团合作,形成作坊式生产方式小集团合作生产的程序系统时代。
(3)软件工程时代:软件工程时代的生产方式是采用工程的概念、原理、技术和方法,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
3.什么叫软件工程?软件工程是如何克服软件危机的?答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
为了克服软件危机,人们从其他产业的工程化生产得到启示,采用工程的概念、原理、技术和方法来开发和维护软件。
4.软件工程的目标是什么?软件工程有哪些原则?答:软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
原则如下:抽象、模块化、信息隐藏、局部化、完整性、一致性和可验证性。
软件工程(第五版)-习题及答案---第六章-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII一、选择题1、UML的主要特点不正确的是(C)。
A、面对对象,表达能力强B、可视化建模C、面对过程,表达能力强D、统一标准2、静态建模图不包括(B)。
A、用例图B、协作图C、类图D、对象图3、用例图的模型元素不包括(D)。
A、用例B、系统C、行为者D、软件开发者4、类图的要素不包括(D)。
A、类名称B、操作C、属性D、对象5、时序图中的要素不包括(A)。
A、执行者B、对象C、对象生命线D、消息6、对象模型的描述工具是(C)。
A、状态图B、数据流图C、对象图D、结构图7、协作图的要素不包括(A)。
A、用例B、对象C、链D、消息8、类图反映了系统中对象之间的抽象关系,不包括(D)。
A、关联B、聚合C、泛化D、内聚9、下面(D)不是状态图的图符。
A、圆角的矩形B、实心圆点C、实心圆环D、椭圆10、描述类中某个对象的行为,反映了状态与事件关系的是(A)。
A、状态图B、数据流图C、对象图D、结构图11、动态模型的描述工具(C)。
A、对象图B、设计图C、状态图D、结构图12、表示对象的相互行为的模型是(A)模型。
A、对象B、动态C、结构D、静态13、有关类和对象的描述中,错误的是(A)。
A、一个类只能有一个对象B、对象是类的具体实例C、类是某一类对象的抽象D、类和对象的关系是一种数据类型和变量的关系14、用例图中用例之间的关系通常有关联关系、依赖关系和(C)关系。
A、协作B、聚合C、泛化D、内聚15、动态模型图包括:时序图、协作图、状态图和(C)图。
A、对象图B、设计图C、活动图D、结构图二、简答题1.简要介绍用例图的三个要素。
答:用例图主要包括以下三个元素:①用例(Use Case):用例是系统的使用过程或要执行的动作序列,用来描述某个参与者使用系统所完成的功能。
在图中用椭圆来表示,用例名称可写在椭圆中或椭圆下面。
一、判断题1、(×)测试是为了验证该软件以正确地实现了用户的需求。
2、(√)发现错误多的程序模块,残留在模块中的错误也多。
3、(×)白盒测试法是根据程序的功能来设计测试用例的。
4、(×)黑盒法是根据程序的内部逻辑来设计测试用例的。
5、(√)确定测试计划是在需求分析阶段制定的。
6、(√)集成测试计划是在概要设计阶段制定的。
7、(√)单元测试是在编码阶段完成的。
8、(√)集成测试工作最好由不属于该软件开发组的软件设计人员承担。
9、(√)为了提高软件的测试效率,测试工作需要有测试工具的支持。
10、(×)在做程序的单元测试时,桩模块比驱动模块容易编写。
二、选择题1、测试用例是专门为了发现软件错误而设计的一组或多组数据,它由(C)组成。
A、测试输入数据B、预期的测试输出数据C、测试输入与预期的输出数据D、按照测试用例设计方法设计出的数据2、测试和调试最大的不同在于(A)。
A、操作者的心理状态不同B、它们的行为取向不同C、使用的工具不同D、运用的方法不同3、一个成功的测试是(B)。
A、发现错误B、发现至今尚未发现的错误C、没有发现错误D、证明发现不了错误4、白盒法和黑盒法最大的不同在于(A)。
A、测试用例设计方法不同B、测试的任务不同C、应用的测试阶段不同D、基于的知识集不同5、单元测试阶段主要涉及(D)的文档。
A、需求设计B、编码和详细设计C、详细设计D、概要设计6、检查软件产品是否符合需求定义的过程称为(A)。
A、确认测试B、集成测试C、验证测试D、验收测试7、软件调试的目的是(B)。
A、发现错误B、改正错误C、改善软件的性能D、挖掘软件的潜能8、进行软件测试的目的是(A)。
A、尽可能多地找出软件中的错误B、缩短软件的开发时间C、减少软件的维护成本D、证明程序没有缺陷9、选择一个适当的测试用例,用于测试下面的程序,能达到判定覆盖的是(C)。
A、B、D10、在进行单元测试时,常用的方法是(A)。
第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.Putnam成本估算模型是一个()模型。
A.静态单变量 B.动态单变量 C.静态多变量 D.动态多变量2.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性 B.可重用性 C.适应性 D.可移植性3.软件复杂性度量的参数包括()A.效率 B.规模 C.完整性 D.容错性4.瀑布模型的存在问题是()A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求5.详细设计的结果基本决定了最终程序的()A.代码的规模 B.运行速度 C.质量 D.可维护性6.经济可行性研究的范围包括()A.资源有效性 B.管理制度 C.效益分析 D.开发风险7.需求分析阶段的任务是确定()A.软件开发方法 B.软件开发工具C.软件开发费 D.软件系统的功能8.为了提高测试的效率,应该( )A.随机地选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据9.使用白盒测试方法时,确定测试数据应根据( )和指定的覆盖标准。
A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能10.结构化程序之所以具有易于阅读,并且有可能验证其正确性,这是由于( )A.它强调编程风格 B.选择良好的数据结构和算法C.有限制地使用GOTO语句 D.只有三种基本结构11. 在结构化分析方法中,()表达系统内部数据运动的图形化技术。
A 数据字典B 实体关系图C 数据流图D 状态转换图12、()意味着一个操作在不同的类中可以有不同的实现方式。
A 多态性B 多继承C 类的复用D 封装13.对象是OO方法的核心,对象的类型有多种,通常把例如飞行、事故、演出、开会等等,称之为( )A.有形实体 B.作用 C.事件 D.性能说明14.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )A.软件工程B.软件周期C.软件危机D.软件产生15. COCOMO模型可用来()A 度量程序复杂程度B 计算软件开发成本C 估计程序的故障总数D 估计软件开发所需时间16.软件结构使用的图形工具,一般采用()图。
一、判断题1、(×)测试是为了验证该软件以正确地实现了用户的需求。
2、(√)发现错误多的程序模块,残留在模块中的错误也多。
3、(×)白盒测试法是根据程序的功能来设计测试用例的。
4、(×)黑盒法是根据程序的内部逻辑来设计测试用例的。
5、(√)确定测试计划是在需求分析阶段制定的。
6、(√)集成测试计划是在概要设计阶段制定的。
7、(√)单元测试是在编码阶段完成的。
8、(√)集成测试工作最好由不属于该软件开发组的软件设计人员承担。
9、(√)为了提高软件的测试效率,测试工作需要有测试工具的支持。
10、(×)在做程序的单元测试时,桩模块比驱动模块容易编写。
二、选择题1、测试用例是专门为了发现软件错误而设计的一组或多组数据,它由(C)组成。
A、测试输入数据B、预期的测试输出数据C、测试输入与预期的输出数据D、按照测试用例设计方法设计出的数据2、测试和调试最大的不同在于(A)。
A、操作者的心理状态不同B、它们的行为取向不同C、使用的工具不同D、运用的方法不同3、一个成功的测试是(B)。
A、发现错误B、发现至今尚未发现的错误C、没有发现错误D、证明发现不了错误4、白盒法和黑盒法最大的不同在于(A)。
A、测试用例设计方法不同B、测试的任务不同C、应用的测试阶段不同D、基于的知识集不同5、单元测试阶段主要涉及(D)的文档。
A、需求设计B、编码和详细设计C、详细设计D、概要设计6、检查软件产品是否符合需求定义的过程称为(A)。
A、确认测试B、集成测试C、验证测试D、验收测试7、软件调试的目的是(B)。
A、发现错误B、改正错误C、改善软件的性能D、挖掘软件的潜能8、进行软件测试的目的是(A)。
A、尽可能多地找出软件中的错误B、缩短软件的开发时间C、减少软件的维护成本D、证明程序没有缺陷9、选择一个适当的测试用例,用于测试下面的程序,能达到判定覆盖的是(C)。
A、B、C、D、10、在进行单元测试时,常用的方法是(A)。
一、判断题1、(×)测试是为了验证该软件以正确地实现了用户的需求。
2、(√)发现错误多的程序模块,残留在模块中的错误也多。
3、(×)白盒测试法是根据程序的功能来设计测试用例的。
4、(×)黑盒法是根据程序的内部逻辑来设计测试用例的。
5、(√)确定测试计划是在需求分析阶段制定的。
6、(√)集成测试计划是在概要设计阶段制定的。
7、(√)单元测试是在编码阶段完成的。
8、(√)集成测试工作最好由不属于该软件开发组的软件设计人员承担。
9、(√)为了提高软件的测试效率,测试工作需要有测试工具的支持。
10、(×)在做程序的单元测试时,桩模块比驱动模块容易编写。
二、选择题1、测试用例是专门为了发现软件错误而设计的一组或多组数据,它由(C)组成。
A、测试输入数据B、预期的测试输出数据C、测试输入与预期的输出数据D、按照测试用例设计方法设计出的数据2、测试和调试最大的不同在于(A)。
A、操作者的心理状态不同B、它们的行为取向不同C、使用的工具不同D、运用的方法不同3、一个成功的测试是(B)。
A、发现错误B、发现至今尚未发现的错误C、没有发现错误D、证明发现不了错误4、白盒法和黑盒法最大的不同在于(A)。
A、测试用例设计方法不同B、测试的任务不同C、应用的测试阶段不同D、基于的知识集不同5、单元测试阶段主要涉及(D)的文档。
A、需求设计B、编码和详细设计C、详细设计D、概要设计6、检查软件产品是否符合需求定义的过程称为(A)。
A、确认测试B、集成测试C、验证测试D、验收测试7、软件调试的目的是(B)。
A、发现错误B、改正错误C、改善软件的性能D、挖掘软件的潜能8、进行软件测试的目的是(A)。
A、尽可能多地找出软件中的错误B、缩短软件的开发时间C、减少软件的维护成本D、证明程序没有缺陷9、选择一个适当的测试用例,用于测试下面的程序,能达到判定覆盖的是(C)。
A、B、D 、10、在进行单元测试时,常用的方法是(A )。
软件工程第五版课后全答案准确对应书山答案一:软件工程概述软件工程是一门研究如何以系统化、规范化、可定量化的方法开发和维护软件的学科。
它包括软件开发的理论、方法和工具,以及软件工程实践中的管理过程。
答案二:软件工程的原则和概念1. 软件工程的原则:- 适应性原则:软件工程应适应不断变化的需求和环境。
- 开发可验证性:软件开发过程应可验证和检验。
- 风险管理:软件开发中应采取风险管理策略。
- 可扩展性:软件应具备可扩展性,以适应未来的发展和变化。
2. 软件工程的概念:- 软件生命周期:指软件从提出需求到废弃的整个过程。
- 开发过程模型:指将软件开发过程分为一系列可管理的阶段和活动。
- 软件需求:用户对软件的功能、质量和性能等方面的要求和期望。
- 软件设计:确定软件系统的体系结构和组件之间的关系,并编写详细的规格说明。
- 软件测试:验证软件是否符合需求,并发现和修复软件中的缺陷。
- 软件维护:对已经交付使用的软件进行错误修复、性能优化等活动。
答案三:软件过程和项目管理1. 软件过程:- 软件过程定义:软件过程是指为实现软件的开发和维护需要采取的一系列方法和活动。
- 软件过程模型:包括瀑布模型、迭代模型、增量模型等。
- 软件过程改进:通过评估现有过程并采取相应的改进措施,提高软件开发效率和质量。
2. 项目管理:- 项目管理概述:项目管理是指将规划、组织、指导、控制和评估项目活动的过程。
- 项目管理知识体系:包括项目范围管理、项目时间管理、项目成本管理等多个方面。
- 项目管理过程:包括项目启动、规划、执行、监控和收尾等阶段。
答案四:需求分析与规格说明1. 需求工程:需求分析是软件开发的重要阶段,它涉及对用户需求的收集、分析和规格说明等活动。
- 需求获取:通过面谈、问卷调查等方式,从用户和相关人员中获取需求。
- 需求分类和排序:将获取的需求进行分类和排序,以便进一步分析和规格说明。
2. 需求分析模型:在需求分析过程中,可以使用不同的模型来表示需求,常用的模型有数据流图、用例图等。
1一、选择题一、选择题1、汽车有一个发动机,汽车和发动机之间地关系是(B )关系.A 、一般具体B 、整体部分C 、分类关系D 、is a2、火车是一种陆上交通工具,火车和陆上交通工具之间地关系是(D )关系.A 、组装B 、整体部分C 、has aD 、一般具体、一般具体、一般具体 3、面向对象程序设计语言不同于其他语言地最主要特点是(C ).A 、模块B 、抽象性C 、继承性D 、共享性、共享性4、软件部件地内部实现与外部可访问性分离,这是指软件地(A ).A 、封装性B 、抽象性C 、继承性D 、共享性、共享性5、面向对象分析阶段建立地三个模型中,核心模型是(C )模型.A 、功能B 、动态C 、对象D 、分析、分析6、对象模型地描述工具是(C ).A 、状态图B 、数据流图C 、对象图D 、结构图、结构图7、动态模型地描述工具是(A ).A 、状态图B 、结构图C 、对象图D 、流程图、流程图8、在只有单重继承地类层次结构中,类层次结构是(A )层次结构.A 、树型B 、网状型C 、星型D 、环型、环型9、(C )模型表示了对象地互相行为.A 、功能B 、动态C 、对象D 、分析、分析1010、、在确定类时,所有(A )是候选地类.A 、名词B 、形容词C 、动词D 、代词、代词1111、、面向对象分析地原则不包括(C ).A 、抽象B 、封装C 、依赖D 、继承、继承1212、、常用动词和动词词组来表示(C ).A 、对象B 、类C 、关联D 、属性、属性1313、、在确定属性时,所有(B )是候选地属性.A 、名词B 、修饰性名词词组C 、动词D 、词组、词组1414、、在面向对象方法中,信息隐藏是通过对象地(A )来实现地.A 、封装性B 、分类性C 、继承性D 、共享性、共享性1515、、面向对象设计地准则不包括(D ).A 、模块化B 、抽象C 、信息隐藏D 、强耦合、强耦合二、简答题二、简答题1、面向对象分析通常要建立哪三种模型?它们分别描述系统地哪些方面?、面向对象分析通常要建立哪三种模型?它们分别描述系统地哪些方面?答:面向对象分析通常要建立三种模型面向对象分析通常要建立三种模型,,分别是对象模型、动态模型和功能模型其中:其中:对象模型描述系统地数据结构对象模型描述系统地数据结构,,它是用来描述系统包含地对象及对象之间关系地模型;它是用来描述系统包含地对象及对象之间关系地模型;动态模型描述系统地控制结构动态模型描述系统地控制结构,,它是用来确定各个对象之间交互及整体地控制结构地模型;型;功能模型描述系统地功能功能模型描述系统地功能,,它是用来描述系统要实现地功能地模型它是用来描述系统要实现地功能地模型..2、对象模型有哪五种层次?、对象模型有哪五种层次?答:复杂问题复杂问题((大型系统大型系统))地对象模型由5个层次组成个层次组成,,即主题层、类即主题层、类--&-对象层、结构层、属性层和服务层属性层和服务层. .(1)类)类-&--&--&-对象层:定义类和属性对象层:定义类和属性对象层:定义类和属性..在这个层次将分析与待开发软件对应地各个现实世界地实体界地实体,,并从中抽象出类和对象并从中抽象出类和对象. .(2)结构层:定义对象和类之间地层次结构关系结构层:定义对象和类之间地层次结构关系,,如一般如一般--特殊结构(即继承结构)、整体-部分结构(即组合结构)部分结构(即组合结构). .(3)属性层:定义属性定义属性..为类和对象层中抽取出来地各个类和对象设计静态属性和它们之间地关系之间地关系. .(4)服务层:定义对象和类地动态属性以及对象之间地消息通信)服务层:定义对象和类地动态属性以及对象之间地消息通信. .(5)主题层:主题是指导读者理解大型、复杂模型地一种机制定义若干个主题定义若干个主题,,把有关地对象分别划归不同地主题关地对象分别划归不同地主题,,每个主题构成一个子系统每个主题构成一个子系统. .3、建立对象模型地基本过程是什么?、建立对象模型地基本过程是什么?答:建立对象模型地基本过程如下:建立对象模型地基本过程如下:确定对象和类à确定结构à确定主题à确定服务和消息确定服务和消息三、应用题1、写出图书管理系统中“办理还书”用例地用例描述、写出图书管理系统中“办理还书”用例地用例描述. .略.2、分析图书管理系统中“查询个人借阅”用例相关地实体类、控制类和边界类控制类和边界类,,绘制出该用例地相关类图例地相关类图,,并设计该模块地用户界面并设计该模块地用户界面. .略.版权申明版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。
一、判断题1、(×)测试是为了验证该软件以正确地实现了用户的需求。
2、(√)发现错误多的程序模块,残留在模块中的错误也多。
3、(×)白盒测试法是根据程序的功能来设计测试用例的。
4、(×)黑盒法是根据程序的内部逻辑来设计测试用例的。
5、(√)确定测试计划是在需求分析阶段制定的。
6、(√)集成测试计划是在概要设计阶段制定的。
7、(√)单元测试是在编码阶段完成的。
8、(√)集成测试工作最好由不属于该软件开发组的软件设计人员承担。
9、(√)为了提高软件的测试效率,测试工作需要有测试工具的支持。
10、(×)在做程序的单元测试时,桩模块比驱动模块容易编写。
二、选择题1、测试用例是专门为了发现软件错误而设计的一组或多组数据,它由(C)组成。
A、测试输入数据B、预期的测试输出数据C、测试输入与预期的输出数据D、按照测试用例设计方法设计出的数据2、测试和调试最大的不同在于(A)。
A、操作者的心理状态不同B、它们的行为取向不同C、使用的工具不同D、运用的方法不同3、一个成功的测试是(B)。
A、发现错误B、发现至今尚未发现的错误C、没有发现错误D、证明发现不了错误4、白盒法和黑盒法最大的不同在于(A)。
A、测试用例设计方法不同B、测试的任务不同C、应用的测试阶段不同D、基于的知识集不同5、单元测试阶段主要涉及(D)的文档。
A、需求设计B、编码和详细设计C、详细设计D、概要设计6、检查软件产品是否符合需求定义的过程称为(A)。
A、确认测试B、集成测试C、验证测试D、验收测试7、软件调试的目的是(B)。
A、发现错误B、改正错误C、改善软件的性能D、挖掘软件的潜能8、进行软件测试的目的是(A)。
A、尽可能多地找出软件中的错误B、缩短软件的开发时间C、减少软件的维护成本D、证明程序没有缺陷9、选择一个适当的测试用例,用于测试下面的程序,能达到判定覆盖的是(C)。
A、B、C、D、10、在进行单元测试时,常用的方法是(A)。
一、选择题1、系统流程图是一种传统工具,用于描述(D)。
A、逻辑模型B、程序构造C、系统构造D、物理系统2、软件可行性研究的目的是(C)。
A、证明软件开发项目可行B、证明软件开发项目不行行C、论述软件开发项目值得或不值得做D、为了确立软件开发项目要不要做3、技术可行性研究要解决的问题是(A)。
A、从技术方面说明项目能否可行B、从技术上定义项目要解决的问题C、给出项目开发可行的技术路线D、给出精简的项目需求设计报告4、可行性研究的步骤第一是(A)。
A、确立项目目标,即对要解决的问题进行定义B、研究项目要求C、对项目目标进行可行性剖析D、给出可行的解决方案5、可行性研究的任务不包含(D)。
A、技术可行性B、经济可行性C、法律可行性D、政治可行性6、系统流程图是描述( A)的工具。
A、物理系统B、逻辑系统C、系统系统D、程序系统7、可行性研究本质上是要进行一次(A)需求剖析,设计过程。
A、简化、压缩的B、详尽的C、完全的D、深入的8、系统流程图的符号不包含(D)。
A、B、C、D、二、简答题1、软件开发的初期,为何要进行可行性研究?目标的可行性研究有几个方面?答:很多软件开提问题都不可以在预期的时间范围内或资源限制下获取解决。
假如开发人员没有尽早停止没有可行解决方案的开发项目,就会造成时间、资本、人力、物力的浪费。
为了降低软件开发失败的可能性,需要进行软件可行性研究。
可行性研究要从经济可行性、技术可行性、运转可行性和法律可行性四方面进行。
2、简述可行性研究的步骤。
答:( 1)审查系统的规模和目标;( 2)剖析研究现行系统;( 3)设计新系统的高层逻辑模型;(4)获取并比较可行的方案;(5)撰写可行性研究报告。
3、某航空企业为了方便游客,拟开发一个机票预定系统。
将游客的信息(姓名、性别、工作单位、身份证号、旅游时间、旅游目的地等)输入该系统后,系统自动为游客安排航班。
打印出取票通知和票务账单。
游客可在航班的前一天凭取票通知和票务账单交款取票。
软件工程简答题第一章绪论1.什么是软件危机?软件危机有什么表现?软件危机产生的原因是什么?答:所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。
表现:(1)对于软件开发的成本和进度的估计很不准确。
(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。
(3)开发的软件可靠性差。
(4)软件通常没有适当的文档资料。
(5)软件的可维护性差。
(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
原因:软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。
2.简述软件的发展过程。
答:软件生产的发展划分为三个年代:(1)程序设计时代:这一时期,软件的生产主要是个体手工劳动的生产方式。
(2)程序系统时代:由于计算机的应用领域不断扩大,软件的需求也不断增长,软件由于处理的问题域扩大而使程序变得复杂,设计者不得不由个体手工劳动组成小集团合作,形成作坊式生产方式小集团合作生产的程序系统时代。
(3)软件工程时代:软件工程时代的生产方式是采用工程的概念、原理、技术和方法,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
3.什么叫软件工程?软件工程是如何克服软件危机的?答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
为了克服软件危机,人们从其他产业的工程化生产得到启示,采用工程的概念、原理、技术和方法来开发和维护软件。
4.软件工程的目标是什么?软件工程有哪些原则?答:软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
原则如下:抽象、模块化、信息隐藏、局部化、完整性、一致性和可验证性。
5.为什么说软件工程是一门综合性的交叉学科?答:因为软件工程涉及哲学、计算机科学、工程科学、管理科学、数学和应用领域知识。
6.软件工程方法学的基本内容包括哪些?答:基本内容包括:(1)结构化理论和方法。
(2)模块技术与数据抽象。
(3)软件测试与程序正确性证明。
(4)软件分析与设计方法、工具和环境。
(5)软件工程管理与质量评价。
7.软件产品具有哪些特殊性质?答:Not found.8.软件工程学研究的对象是什么?答:软件工程研究的主要内容包括软件开发技术和软件开发管理两个方面。
在软件开发技术中,它主要研究软件开发方法、软件开发过程、软件开发工具和环境。
在软件开发管理中,它主要研究软件管理学、软件经济学和软件心理学等。
第二章基本理论1.什么是软件的生命周期模型?它主要有那些模型?答:软件生命周期模型是描述软件开发过程中各种活动如何执行的模型。
主要有:瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、基于知识的模型和变换模型。
2.什么是软件开发方法?有那些主要开发方法?答:软件开发方法是一种使用早已定义好的技术集及符号表示习惯组织软件生产过程的方法。
主要有:结构化方法、Jackson方法、维也纳开发方法和面向对象的开发方法。
3.开发软件为什么首先要确定软件生命周期模型?答:一个强有力的软件生命周期模型对软件开发提供了强有力的支持,为软件开发过程中所有活动提供了统一的政策保证,为参与软件开发的所有成员提供了帮助和指导。
它提示了如何演绎软件过程的思想,是软件生命周期模型化技术的基础,也是建立软件开发环境的核心。
4.软件工程过程包括那些过程?答:包括如下7个过程:(1)开发过程(2)管理过程(3)供应过程(4)获取过程(5)操作过程(6)维护过程(7)支持过程5.软件生命周期内阶段的划分为什么要受软件的规模、性质、种类、开发方法等影响?答:因为软件在其生存期内的每个阶段都有较明显的特征,有相对独立的任务,有其专门的方法和工具。
6.软件定义与分析时期主要解决什么问题?答:通俗地讲,主要解决以下问题:(1)要做的是什么软件?(2)没有有可行性?(3)软件的具体需求是什么?(4)验收标准是什么?7.瀑布模型的主要开发过程和优缺点有哪些?答:开发过程有6个阶段:系统需求分析、软件需求分析、系统设计、软件编码、系统测试和软件维护。
优缺点:8.简述原型模型的特点,它与瀑布模型的关键区别是什么?答:原型模型的最大特点是:利用原型法技术能够快速实现系统的初步模型,供开发人员和用户进行交流,以便较准确地获得用户的需求;采用逐步求精的方法使原型逐步完善,这是一种在新的层次上不断反复推进的过程。
它与瀑布模型的关键区别是它可以大大避免在瀑布模型冗长的开发过程中看不见产品雏形的现象。
9.简述喷泉模型的基本思想。
答:喷泉模型以面向对象的软件开发方法为基础,以用户需求为动力,以对象作为驱动的模型。
它适合面向对象的开发方法。
第三章可行性研究1.可行性研究论证主要集中在那些领域?答:Not found.2.如何进行软件的成本估算?答:首先可以用代码行定量估算方法,把开发软件中实现每一个功能所需要的源代码行数与成本联系起来。
其次可以用任务分解技术估算成本。
3.可行性研究的任务是什么?答:一般从以下四个方面研究系统方案的可行性。
(1)技术可行性研究(2)经济可行性研究(3)法律可行性研究(4)开发方案的选择性研究4.简述可行性研究的步骤。
答:研究步骤:(1)系统定义(2)对于现行系统进行分析研究(3)导出新系统的逻辑模型(4)设计方案(5)推荐可行的方案(6)编写可行性研究报告5.在软件的系统分析之前,为什么要制订一个系统的标准?答:Not found.6.可行性研究报告的主要内容有哪些?答:(1)引言(2)可行性研究前提(3)对现行系统的分析(4)所建议系统的技术可行性分析(5)所建议系统的经济可行性分析(6)社会因素可行性分析(7)其他可供选择方案(8)结论意见7.你认为在成本估算中,货币的时间价值在可行性中的作用是什么?答:由于经济效益与软件的生命周期的长度有关,货币的时间价值就直接影响软件的开发和维护成本,从而直接影响软件的经济效益。
8.经过可行性研究后,一个项目如果值得开发,为什么要制定项目开发计划?答:因为软件开发项目的计划涉及实施项目的各个环节,带有全局的性质。
计划的合理性和准确性往往关系着项目的成败。
第四章需求分析与系统结构1.需求分析的目的是什么?答:需求分析是软件定义时期的最后一个阶段,其基本任务是回答“系统必须做什么”这个问题,确定系统必须完成哪些工作。
对目标系统提出完整、准确的要求。
2.怎样建立目标系统的逻辑模型?要经过哪些步骤?答:分析人员根据前面获取的需求资料,要进行一致性的分析检查,在分析、综合种逐步细化软件功能,划分成各个子功能。
同时对数据域进行分解,并分配到各个之功能上,以确定系统的构成及主要成分。
最后要用图文结合的形式,建立起系统的逻辑模型。
3.什么是结构化分析?答:结构化方法是分析、设计到实现都使用结构化思想的软件开发方法,实际上它由三部分组成:结构化分析、结构化设计和结构化程序设计。
它也是一种实用的软件开发方法。
4.需求分析由哪些部分组成?答:(1)问题明确定义(2)导出软件的逻辑模型(3)编写文档5.需求分析为什么要研究问题域?答:Not found.6.良好的软件体系结构设计有什么好处?答:体系结构的设计对于一个大型系统的设计、开发的成败起着至关重要的作用。
体系结构对于系统的非功能属性如系统性能、可扩展性、可靠性、安全性、精确度、可复用性、互操作性等的影响尤为深刻。
因而一个良好的软件体系结构设计保证了软件系统的性能和生命周期。
7.消除包之间的循环依赖性有哪两种主要方法?答:(1)PackageA将PackageA中的循环依赖元素提取到PackageC中PackageA PackageB PackageB PackageC(2)PackageA PackageA 将PackageC中的循环依赖元素提取到PackageD 中PackageB PackageB PackageC PackageC PackageD8.简述UML和Z结合的求精方法。
答:和目前工程界的常规方法相比,基于UML和Z的软件体系结构求精方法有明显的不同。
首先,开发原则不同,基于UML和Z的软件体系结构求精方法通常希望能够直接构造出尽可能正确的系统。
其次,开发模式也不同,在使用基于UML和Z的软件系统结构求精方法开发过程中,需求分析和设计阶段需求投入大量的工作通常占到全部工作量的60% ~ 70%,而编码和测试工作只占30% ~ 40%。
第五章总体设计1.结构化设计方法的基本思想是什么?它怎样与结构化分析衔接?答:结构化设计是以结构化分析产生的数据流图为基础,将数据流图按一定的步骤映射成软件结构。
与结构化分析衔接,构成了完整的结构化分析与设计技术,是目前最广泛的软件设计方法之一。
2.简述软件总体设计阶段的基本任务。
答:软件总体设计阶段的任务是概要地回答系统应该如何实现,因此要把握与详细设计的区别。
要完成如下任务:(1)软件系统结构设计(2)数据结构及数据库设计(3)网络系统设计(4)软件总体设计文档(5)评审3.举例说明各种类型的模块耦合。
答:(1)数据耦合:两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据。
(2)控制耦合:传递的信息中有控制信息。
(3)公共环境耦合:两个或多个模块通过一个公共数据环境相互作用的耦合。
(4)内容耦合:最高程度的耦合,如P121图。
4.简述模块、模块化及模块化设计的概念。
答:模块在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、函数和子程序等。
在软件的体系结构中,模块是可组合、可分解和更换的单元。
模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
5.什么是模块的独立性?设计中为什么模块要独立?对于独立性怎样度量?答:划分模块时,尽量做到高内聚,低耦合,保持模块相对对立性,并以此原则又话初始的软件结构。
(1)如果若干模块之间耦合强度过高,每个模块内功能不复杂,可将它们合并,以减少信息的传递和公共区的引用。
(2)若有多个相关模块,应该对它们的功能进行分析,校区重复功能。
6.试论“一个模块,一个功能”的优点。
答:Not found.7.简述变换流的设计步骤。
答:(1)确定数据流图中的变换中心、逻辑输入和逻辑输出(2)设计软件结构的顶层和第一层(3)设计中、下层模块(4)设计的优化8.简述事务流的设计步骤。
答:(1)确定数据流图中的事务中心和加工路径(2)设计软件结构的顶层和第一层(3)进行事务结构中、下层模块的设计、优化等工作。