2010-2011 学年第一学期《软件工程》期末试卷一、选择题(15题,每题1分,共15分)01、工程是将科学技术转化为( C )的媒介。
A. 社会服务B. 经济价值C.生产力D. 政治统治02、软件需求变化带来的影响与时间的关系是( D )。
A. 线性的B. 非线性的C. 单调递减的D.单调递增的03、Definition of Software Engineering:(1) the application of a systematic, disciplined, quantifiable a p p r o a ch t o t h e (D )o f s o ft wa r e; t h at i s, t h e a ppl i ca t i on o f e n gi n e e ri n g t o s o ft w a r e.(2)T h e study of approaches as in (1).A. planB. designC. testD. development, operation and maintenance04、( A )是软件规划阶段应包含的活动。
A.可行性分析B.绘制模块流程图C.软件体系结构设计D.编码和测试05、概要设计阶段的主要任务是确定( C )。
A.各个模块的详细过程B. 软件所需的费用C.软件的体系结构D. 软件的功能06、模块内聚性最低的是( B)A.逻辑内聚B. 巧合内聚C.时间内聚D.功能内聚07、模块耦合程度最高的是( D )。
A.数据耦合B.非直接耦合C.控制耦合D.内容耦合08、在结构化设计方法中全面指导模块划分的最重要原则是( B )A.程序模块化B.模块独立性C.模块高内聚D. 模块低耦合09、白盒测试在设计测试用例时,主要研究的文档是( B)A.需求规格说明B.详细设计说明C.项目开发计划D.概要设计说明10、UML中的“序列图”是按照( A )来构图的。
A. 时间顺序B. 对象关系C. 消息传递D. 空间组织11、UML十类图中的实施图(Deployment Diagram)描述的是( D )。
A. 功能需求B.对象间的交互活动C.对象间的关系D.软件(构件)在硬件环境中的部署12、为了保证生命周期的各个阶段能够按要求承上启下,上一个阶段结束后要向下一个阶段提交( C),这称为交付项。
A. 文档B.代码C. 文档(或者文档和代码)D. 文档和代码13、我们知道,对象/类之间的“交互”是通过“消息传递”实现的。
但是,如果交互关系是一对多时,并且这种对应关系的选择不能在运行之前确定的话,就称之为(B )。
A. 继承性B. 多态性C. 动态性D. 可复用性14、(A)是为了纠正软件在开发期间未能发现的遗留错误而进行的维护。
A. corrective maintenanceB. perfective maintenanceC. adaptive maintenanceD. preventive maintenance15、瀑布模式(waterfall model)的主要缺陷是( D )。
A.技术难度大B.开发周期长C.开发费用高D.难以应付不明确的需求二、填空题(15题,每题2分,共30分)01、Engineering is the work involved in design and constructing engines and machinery, or structures such as roads and bridges. Engineering is also the ___subject studied_______ by people who want to do this work.02、软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件有关技术及管理方法。
它由方法、工具和过程三个关键因素所组成。
03、规划阶段最主要的分析工作就是进行三个方面的可行性研究:_technical feasibility study__、_economic feasibility study__and operating feasibility study。
04、结构化分析与设计的过程主要就是绘制_业务流程图__、数据流图、软件结构图和模块流程图。
05、各种软件系统无论如何庞大和复杂,其数据流均可分为变换流和数据流两大类。
06、The development phase is comprised of four distinct steps: preliminary design___, detail design, coding, _testing___。
07、扇出是对某一个模块控制的模块数目的度量。
扇入是对某一个模块被多个模块控制的度量。
高层模块应有_较高的扇出___,低层模块,特别是底层模块应有_较高的扇入___。
08、Object technologies lead to reuse,and _reuse__ leads to _faster software development__ and higher-quality programs. Object -oriented software is easierto maintain because its structure is inherently decoupled.09、Coad和Y o u r d o n在他们的OO方法中提出了构件/组件”(component)的概念和设思想,构件包括四种:_问题求解构件___、_人机交互构件_______、任务管理构件和数据管理构件。
10、CMM将软件过程的成熟度分为5个等级,它们是初始级、可重复级、已定义级、已管理级和优化级。
11、面向对象分析(O OA)对问题进行分析建模,主要工作包括对问题域中对象的确定和对象之间关联的确定。
其中,对象的确定包括对象属性和对象行为的确定;关联的确定包括对象结构关联、依赖关联和消息关联的确定。
12、软件测试主要有两种策略,它们是黑盒测试策略和白盒测试策略。
13、软件规划阶段所要编写的文档有:_软件规划报告___、_软件需求分析报告_____和描述未来系统的用户手册。
14、The IEEE (IEEE Std. 610.12-1990) defines a base line as: a _specification___orproduct that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, andthat can be changed only through formal change control procedures.15、原型方法主要分成两种,它们是:_抛弃式___原型方法和__演化式____原型方法。
三、阐述题(共20分,其中,第1题10分、第2题5分、第3题5分)1、如果不考虑硬件环境,软件生命周期至少划分成三个阶段。
(1)请写出这三个阶段的名称。
(2)请用流程图(flow chart)的形式分别对每一个阶段的生命周期过程进行细化,并给出过程中产生的交付项(要求标明交付项的名称)。
2、“The only deliverable for a successful project(software project)is the workingprogram.”这句话对吗?如果不对请说明为什么?3、测试一般分四个步骤进行,请按时间顺序说出这四个步骤的名称,以及每一个步骤所对应的生命周期阶段(因为这个对应阶段的交付项是测试的主要依据)。
这4个步骤的名称是:单元测试、集成测试、确认测试、系统测试它们分别对应程序设计、软件设计、需求分析、系统设计。
四、求解题(共35分,其中第1题25分,第2题10分)1、根据需求分析,图书馆借、还书系统应具备两个主要功能(借书和催还书功能):(1)借书功能该功能对应的外部实体是教师和学生。
其流程为:填写借书单,系统审核借书单的有效性,包括是否为学校教师或学生,图书馆是否有此书,此书是否已借完。
如果读者和要借的书均为合法,且书库中还有余书,则办理借书手续:在书库存书目录中将此书存量减一,在该读者借书记录中添加此书,取书给读者。
如果读者及要借的书不合法,则反馈信息:读者或要借之书不合法;如果合法,但库中该书已借完,则反馈信息:等待催书,返还后再借。
(2)催还书功能该功能对应的外部实体是图书馆管理员。
其流程为:查询书库中的图书存量,汇总已借空并超期图书目录,按学院汇总目录,打印催书单,催书,若催书成功,则修改该书存量,否则,继续催书。
请根据上述要求,①绘制图书馆借、还书系统的业务流程图;②采用结构化分析和设计的方法,分三层绘制该系统的数据流图(DFD);③把第三层数据流图转换成软件结构图。
①业务流程图②第一层数据流图第二层数据流图第三层数据流图(销售子系统)第三层数据流图(采购子系统)③软件结构图(对应于销售子系统第三层数据流图)软件结构图(对应于采购子系统第三层数据流图)3.请根据大学中的三个实体,学生、教师和系的属性和操作,以及他们之间的关系,分析并求解下列问题。
①分别为三个实体定义4个属性和2个操作②绘制这三个实体的实体关系图;③把这三个实体定义为类(class),绘制这三个类及其关系图。
请注意实体关系图与类图的区别!①学生属性:ID、姓名、性别、专业,与其他实体的关系:选择课程(选教师)、听课;教师属性:ID、姓名、所属系、职称,与其他实体的关系:授课、接受系的管辖;系属性:ID、名称、人数、创办时间,与其他实体的关系:学生学籍管理、教师派课②学生与教师的关系是多对多的关系;学生与系的关系是多对一的关系;教师与系的关系是多对一的关系。
③学生、教师和系的类及关系图阐述题4:软件体系结构的深度和广度通过什么进行控制?扇出(fan out)来度量什么?扇入和扇出在实际应用时应该注意什么事项?深度通过层数来进行控制广度通过同一层的模块数进行控制扇出是对某一个模块控制的模块数目的度量扇入是对某一个模块被多少模块控制的度量注意的原则:高层模块应有较高的扇出,底层模块,特别是底层模块应有较高的扇出阐述题3:一个大型软件在设计阶段一般要分成两个阶段,这两个阶段是什么?请你说明为什么要划分两个阶段?并分别说明这两个阶段的主要内容。
这两个阶段是概要设计阶段和详细设计阶段。
由于大型软件的复杂性,分两个阶段实施的主要原因是便于工程质量、计划和投资的控制,避免因设计不当而导致的返工所造成的人力、物力和时间上的浪费。