A.具有独立的模块软件比较容易开发出来
B.独立的模块比较容易测试和维护
C.模块的独立程度可以通过内聚和耦合标定
D.独立的模块可以完成一个相对独立的特定子功能
阅读下述说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
[说明]
某项目进入详细设计阶段后,项目经理为后续活动制定了如图2所示的网络计划图,图中的“△”标志代表开发过程的一个里程碑,此处需进行阶段评审,模块1和模块2都要通过评审后才能开始修复。
项目经理对网络图中的各活动进行了成本估算,估计每人每天耗费的成本为1000元,安排了各活动的人员数量并统计了模块1、模块2的开发和测试活动的工作量(如表2所示),其中阶段评审活动不计入项目组的时间和人力成本预算,如表2所示。
[问题1]
请计算该项目自模块开发起至模块测试全部结束的计划工期。
[问题2]
详细设计完成后,项目组用了11天才进入阶段评审。在阶段评审中发现:模块1开发已完成,测试尚未开始;模块2的开发和测试均已完成,修复工作尚未开始,模块2的实际工作量比计划多用了3人?天。
(1)请计算自详细设计完成至阶段评审期间模块1的PV、EV、AC,并评价其进度和成本绩效。
(2)请计算自详细设计完成至阶段评审期间模块2的PV、EV、AC,并评价其进度和成本绩效。
[问题3]
(1)如果阶段评审未作出任何调整措施,项目仍按当前状况进展,请预测从阶段评审结束到软件集成开始这一期间模块l、模块2的ETC(完工尚需成本)(给出公式并计算结果)。
(2)如果阶段评审后采取了有效的措施,项目仍按计划进展,请预测从阶段评审结束到软件集成开始这一期间模块1、模块2的ETC(完工尚需成本)(给出公式并计算结果)。
[问题4]
请结合软件开发和测试的一般过程,指出项目经理制定的网络计划和人力成本预算中存在的问题。
画出相应的前导图:
计划工期:8+3+1+2=14天。
模块独立性是由内聚和耦合两个定性指标来度量的。回答下列问题:
1.什么是内聚?什么是耦合?
2.内聚分为哪几类?耦合分为哪几类?
3.什么是时间内聚?什么是公共耦合?
某软件开发从详细设计到集成测试各阶段所需工作量估计(按软件工程师人月数估计)如表9-1所示,这几个阶段分配的软件工程师和程序员人数如表 9-2所示。假设编码与单元测试阶段,软件工程师的生产率是程序员的2倍。若在该项目的这几个阶段都增加一名软件工程师,则这几个阶段可以缩短(111)个月完成任务(假定各个开发阶段串行工作)。
A.1
B.2
C.3
D.4
[文字开始]
什么时候进行软件项目的估计?一般我们认为,软件项目估计只在项目启动前工作,其实在整个软件开发和维护都有估计活动。当然,具体估计时间随着估计的方法和估计的对象不同会有区别。我们认为软件规模估计和软件规模度量不同,软件规模估计是在软件工作产品没有完成之前的估计,而度量活动应在软件工作产品完成之后进行。
[文字结束]
北 京 科 技 大 学2013年硕士学位研究生入学考试试题=试题编号: 870 试题名称: 软件工程 (共 3 页)适用专业:计算机科学与技术、软件工程、计算机技术(专业学位) 软件工程(专业学位) 说明: 所有答案必须写在答题纸上,做在试题或草稿纸上无效。=一、概念解释(共35分,每小题5分)1、软件危机2、软件生命周期3、软件过程模型4、结构化程序设计5、黑盒测试与白盒测试6、信息隐蔽7、模块独立性二、简答题(共25分)1、(7分)什么是模块的内聚,举出3种内聚类型并就其内聚程度进行排序。2、(6分)简述软件测试和调试的区别。3、(6分)总体设计应考虑哪些问题?4、(6分)为什么要进行软件维护?三、计算题(共8分)某软件公司计划开发一个应用软件项目,根据经验估计该项目的程序长度大约10万条指令语句。如果平均每人每天可以完成100条,请估计:(1)开发这个项目将用多少工作日?(2)如果程序员月平均工资为6000元,每月20个工作日,软件项目的人工成本是多少?(3)项目需要硬件设备的支出约5万元,其他开支约5万元,那么人工成本所占总成本的比例是多少?四、设计题(共62分)1、(12分)使用逻辑覆盖测试方法测试以下程序段:Void DoWork ( int x, int y, int z)1 int k=0, j=0;2 if(x3)&(z5)8 j=x*y+10;9 j=j%3;10 说明:程序段中每行开头的数字(110)是对每条语句的编号。要求:(1)画出程序的控制流程图(用题中给出的语句编号表示);(2)分别以语句覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)2、(20分)给出几种良好的编程风格,并按照编程规范实现以下程序:从键盘输入100个整数,采用快速排序算法将这100个整数从小到大排序,并输出排序后的结果。要求:(1)写出至少5种好的程序编码风格;(2)画出快速排序算法的流程图;(3)程序要有适当的注释;(4)按软件工程的编程规范书写程序。3、(30分)一个小型图书资料管理系统的主要功能有:图书资料的借出、归还、查询和管理。该系统的用户有图书管理员和普通读者,普通读者要使用系统必须先进行注册。图书管理员负责添加、更新和修改、删除图书资料,登记和查询图书的借阅、归还情况。读者可以按照作者或主题检索图书资料,还可以预定图书资料,即当新购买或有读者归还时,系统立即通知读者来借阅。采用结构化方法对该系统进行分析和设计,要求给出以下结果:(1) 画出系统顶层数据流图DFD;(2) 对系统进行分解,画出系统第一层的DFD;(3) 进一步对一层DFD进行分解,画出系统第二层的DFD;(4) 写出读者信息和图书资料信息的数据字典;(5) 采用结构设计方法将DFD转换成软件结构图。五、论述题(共20分)试分析并说明面向对象分析阶段建立的三个模型及其之间的相互关系。3
某软件开发从详细设计到集成测试各阶段所需工作量估计(按软件工程师人月数估计)如表5-4所示,这几个阶段分配的软件工程师和程序员人数如表5-5所示。假设编码与单元测试阶段,软件工程师的生产率是程序员的2倍。若在该项目的这几个阶段都增加一名软件工程师,则这几个阶段可以缩短______个月完成任务(假定各个开发阶段串行工作)。
A.1
B.2
C.3
D.4
模块内聚度用于衡量模块内部各成分之间彼此结合的紧密程度。
1.一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚度是(48)的。
2.将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是(49)的。
3.模块中所有成分引用共同的数据,该模块的内聚度是(50)的。
4.模块内某成分的输出是另一些成分的输入,该模块的内聚度是(51)的。
5.模块中所有成分结合起来完成一项任务,该模块的内聚度是(52)的。它具有简明的外部界面,由它构成的软件易于理解、测试和维护。
A.功能性
B.顺序性
C.通信性
D.过程性
E.偶然性
模块内聚度是用来衡量模块内部各个成分之间彼此结合的紧密程度的,模块的内聚度可以分为以下几个层次。
①一组语句在程序的多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚度是(1)的。
②将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是(2)的。
③模块中的所有成分引用共同的数据,该模块的内聚度是(3)的。
④模块内的某成分的输出是另一些成分的输入,该模块内聚度是(4)的。
⑤模块中所有成分结合起来完成一项任务,该模块的内聚度是(5)的。它具有简明的外部界面,由它构成的软件易于理解、测试和维护。
A.功能性
B.顺序性
C.通信性
D.过程性
E.偶然性
某软件开发项目拆分成 3 个模块,项目组对每个模块的开发量(代码行)进行了估计(如下表),该软件项目的总体规模估算为()代码行序号 模块名称 最小值 最可能值 最大值 1 受理模块 1000 1500 2000 2 审批模块 5000 6000 8000 3 查询模块 2000 2500 4000
A.10333
B.10667
C.14000
D.10000
试题三 论软件开发模型及应用
软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发过程包括需求、设计、编码和测试等阶段,有时也包括维护阶段。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要任务和活动,用来作为软件项目工作的基础。对于不同的软件项目,针对应用需求、项目复杂程度、规模等不同要求,可以采用不同的开发模型,并采用相应的人员组织策略、管理方法、工具和环境。
请围绕“软件开发模型及应用”论题,依次从以下三个方面进行论述。 1.简要叙述你参与的软件开发项目以及你所承担的主要工作。 2.列举出几种典型的软件开发模型,并概要论述每种软件开发模型的主要思想和技术特点。 3.根据你所参与的项目中使用的软件开发模型,具体阐述使用方法和实施效果。