安徽农业大学经济技术学院2011―2012学年第二学期 《软件工程》试卷(A 卷) 考试形式: 闭卷笔试,2小时 适用专业: 计算机科学与技术 (注:分大类或全校等)一、单项选择题(每小题1分,共计20分) 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、对象实现了数据和操作的结合, 使数据和操作( )于对象的统一体中。
A 、结合 B 、隐藏 C 、封装 D 、抽象7、需求分析阶段的任务是确定( ) A 、软件开发方法 B 、软件开发工具 C 、软件开发费 D 、软件系统的功能8、下列文档与维护人员有关的有( ) A 、软件需求说明书 B 、项目开发计划 C 、概要设计说明书D 、操作手册 9、程序的三种基本控制结构是( ) A 、过程、子程序和分程序 B 、顺序、选择和重复 学院:专业班级:姓名: 学号:装订线C、递归、堆栈和队列D、调用、返回和转移10、软件生存周期中时间最长的是()阶段。
A、总体设计B、需求分析C、软件测试D、软件维护11、为了提高模块的独立性,模块之间的联系最好的是()。
A、公共耦合B、控制耦合C、内容耦合D、数据耦合12、软件概要设计结束后得到()A、初始化的软件结构图B、优化后的软件结构图C、模块的接口图和详细算法D、程序编码13、软件需求是度量软件质量的基础,不符合需求的软件就不具备()A、软件的特点B、质量C、软件产品D、功能14、软件特性中,程序能够满足规格说明和完成用户业务目标的程度,称作()A、正确性B、移植性C、可靠性D、完整性15、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以()的编制是很重要的。
A、需求说明B、概要说明C、软件文档D、测试计划16、汽车有一个发动机,因而汽车与发动机之间的关系是()关系。
A、一般与特殊B、整体与部分C、分类关系D、is a 关系17、在有多重继承的类层次结构图中,它的类层次结构图是()层次结构A、树型B、网状性C、星型D、环型18、软件部件的内部实现与外部可访问性的分离,是指软件的()。
A、继承性B、共享性C、封装性D、抽象性19、在结构图中,不是其主要成分的是()。
A、模块B、模块间传递的数据C、模块内部数据D、模块的控制关系20、结构化设计方法在软件开发中,用于()。
A、测试用例设计B、软件概要设计C、程序设计D、软件详细设计二、名词解释(每小题2分,共计20分)21、软件质量与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体,是所有描述计算机软件优秀程度的特性的组合。
22、模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的,也就是说,一个模块只具有单一的功能且与其它模块没有太多的联系,可通过模块间的耦合和模块的内聚来衡量模块的独立性。
23、对象类对象类是一组具有相同数据结构和相同操作的对象的集合。
包括一组数据属性和在数据属性上的一组操作。
可以看作一个具有类似特性与共同行为的对象的摸板,可用来产生对象。
24、集成测试集成测试也称组装测试或联合测试。
是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。
组装模块的方式有两种:渐增式测试和非渐增式测试。
25、容错技术对那些无法避开的差错,使其影响减少至最小的技术。
也就是说,当错误发生时,尽可能地不影响其它的系统元素,或是把用户的影响限制在某些容许的范围内。
26、多态性多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。
不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
27、面向对象方法学就是尽可能地模拟人类习惯的思维方式,使开发软件的方法与过程尽可能地接近人类认识世界解决问题的方法与过程,也就是描述问题的问题空间与实现解法的解空间在结构上尽可能一致。
(1)认为客观世界是由各种对象组成的;(2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和方法;(3)按照子类与父类的关系,把若干对象类组成一个层次结构的系统;(4)对象彼此之间仅能通过传递消息互相联系。
28. 软件集成测试集成测试是组装软件的系统技术,在把模块按照设计要求组装起来的同时进行测试,用于发现与接口有关的问题。
集成测试可分为非渐增式测试方法和渐增式测试方法。
29、模块独立性是模块化、抽象和信息隐蔽的直接产物。
每个模块只要完成独立的功能,与其它模块联系越少,则模块的独立性就越强。
通过模块与模块之间的耦合性和模块内部的内聚性来衡量模块的独立性。
30、软件生命周期软件生存周期是指从提出软件开发要求开始,直到该软件报废不用为止的整个时期。
这个时期又分为若干个阶段,对软件生产的管理和进度控制有重要作用,使软件的开发有相应的模式、流程、工序和步骤。
三、简答题(每小题4分,共计20分)31、简述程序设计风格。
源程序代码的逻辑清晰、易读易懂是好程序的一个重要标准。
(1)程序内部要有文档,(2)数据说明的次序应该标准化,(3)每条语句应该简单,(4)数据输入要进行校验,输入格式简单,输出设计良好,(5)不要牺牲程序的清晰性和可读性来不必要第提高效率。
32、简述快速原型法思想。
首先建立一个能够反映用户主要需求的原型系统,让用户在计算机上运行、试用这个原型系统,通过实践,了解未来系统的概貌,以便用户判断哪些功能符合他们的需要,哪些功能应该加强,哪些功能需要补充进来,哪些功能是多余的等等。
总之,用户通过实际试用原型系统,会提出许多修改意见,根据这些意见,开发人员可以快速修改原型系统,然后用户再次使用修改过的原型系统,根据用户对第二个原型系统的修改意见,开发人员再次修改原型系统。
经过对原型系统的反复试用和改进,最终建立起完全符合用户需要的软件系统。
33、简述面向对象方法学的出发点和基本原则。
面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。
(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。
(2)把所有对象都划分成各种对象类,每个对象类都定义了一组方法和一组属性。
(3)按照派生类与基类的关系,把若干个对象类组成一个层次结构的系统。
(4)对象彼此之间仅能通过传递消息互相联系。
34、简述软件开发过程、每个里程碑的提交物。
软件开发的基本过程:(1)可行性研究,做初步的需求分析工作,决定项目可行与否(2)软件需求分析,软件工程师必须了解软件的信息领域,以及需求的功能、行为、性能和接口。
系统需求和软件需求均需文档化,并与用户一起复审。
并提交需求分析报告。
(3)设计,包括概要设计和详细设计,软件设计是一个多步骤的过程,主要是对软件的数据结构、软件体系结构、界面表示及过程细节进行设计。
设计过程将需求转换为软件表示,在编码之前可以评估其质量,所有设计均要文档化,它是软件配置的重要组成部分,经复审后提交相应的概要设计和详细设计报告。
(4)编码,把设计转化为机器可执行的程序。
提交源程序清单。
(5)测试,提交测试报告。
(6)维护,提交维护报告。
35、简述文档在软件工程中的作用。
(1)提高软件开发过程的能见度(2)提高开发效率(3)作为开发人员阶段工作成果和结束标志(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。
四、应用设计题(每小题20分,共计40分)36、某图书出版公司希望每月定期向固定客户邮寄最近一个月的图书分类目录。
客户可在其收到的目录上圈定自己要买的书。
出版公司按照客户的反馈信息邮寄图书。
要求为出版公司设计软件,以实现以下功能:(1)自动生成图书分类目录;(2)自动处理客户反馈信息。
试用面向数据流的方法给出系统的数据流图,并设计出软件结构图。
37、问题描述为:储户用存折取款,首先填写取款单,根据帐卡中的信息检验取款单与存折,如有问题,将问题反馈给用户,否则,登录储户存款数据库,修改响应数据,并更新帐卡,同时发出付款通知,出纳向储户付款。
请确定系统的类,并给出任意2个类的类图。
答案一、单项选择题(每小题1分,共计20分)1、 C2、B3、 D4、 A5、 C6、 C7、 D8、 C 9、B 10 D 11、D 12、 B 13、 B 14、A15、C 16、B 17、B 18、C 19、 C 20、 B二、名词解释(每小题2分,共计20分)21软件质量:与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体,是所有描述计算机软件优秀程度的特性的组合。
22、模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的,也就是说,一个模块只具有单一的功能且与其它模块没有太多的联系,可通过模块间的耦合和模块的内聚来衡量模块的独立性。
23、对象类是一组具有相同数据结构和相同操作的对象的集合。
包括一组数据属性和在数据属性上的一组操作。
可以看作一个具有类似特性与共同行为的对象的摸板,可用来产生对象。
24、集成测试也称组装测试或联合测试。
是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。
组装模块的方式有两种:渐增式测试和非渐增式测试。
25、容错技术:对那些无法避开的差错,使其影响减少至最小的技术。
也就是说,当错误发生时,尽可能地不影响其它的系统元素,或是把用户的影响限制在某些容许的范围内。
26、多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。
不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
27、面向对象方法学: 就是尽可能地模拟人类习惯的思维方式,使开发软件的方法与过程尽可能地接近人类认识世界解决问题的方法与过程,也就是描述问题的问题空间与实现解法的解空间在结构上尽可能一致。
(1)认为客观世界是由各种对象组成的;(2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和方法;(3)按照子类与父类的关系,把若干对象类组成一个层次结构的系统;(4)对象彼此之间仅能通过传递消息互相联系。