论文封面式样:
南京信息工程大学 软件工程导论期中
得分
院 专业 年级 班次 姓名 学号 一.选择题(10*2’)
1.瀑布模型的存在问题是( B )
A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 2.软件生命周期中所花费用最多的阶段是( D )
A.详细设计 B.软件编码 C.软件测试 D.软件维护 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. 下列叙述中(A)不属于数据字典的作用。
A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识 C、作为概要设计的依据 D、为需求分析阶段定义各类条目
8需求分析说明书不能作为(A)。
A、 可行性研究的依据 B、用户和开发人员之间的合同 C、 系统概要设计的依据 D、软件验收测试的依据
9 瀑布模型把软件生存周期划分为软件定义、软件开发和(C)三个阶段而每一阶段又可细分为若干个更小的阶段。
A详细设计 B可行性分析 C运行及维护 D测试与排错
10产生软件危机的原因有如下几点除了(D)。
A、 软件开发过程未经审查 B、 软件开发不分阶段开发人员没有明确的分工
C、 所开发的软件除了程序清单外没有其他文档 D、 采用工程设计的方法开发软件不符合软件本身的特点
二 填空题 (10*1’)
1. 为了便于对照检查,测试用例应由输入数据和预期的结果两部分组成。
2. 在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表和 判
页脚内容 论文封面式样: 定树
3. 面向对象方法中,继承是指子类继承其类父类的 全部数据和操作 4. UML的定义包括和 UML语义 和 UML表示法 两个部分。
5. 软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植 性,可使用性和效率
三 判断题 (10*2’)
1.在软件开发中,采用原形系统策略的主要困难是时间问题。(×) 2.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过 程。(√)
3.编码时尽量多用全局变量(×)
4.进行总体设计时加强模块间的联系(×) 5.开发软件就是编写程序( x )
6.软件测试是要发现软件中的所有错误。(x)
7.、编程序时应尽可能利用硬件特点以提高程序效率.(x) 8.软件需求分析的任务是建立软件模块结构图。(x) 9.尽可能使用高级语言编写程序(√)
10.以结构化分析方法建立的系统模型就是数据流图(×)
四 简答 (4*5’)
1.软件工程的七条基本原理是什么? 答:软件工程的七条基本原理是:
(1) 用分阶段的是的生存周期计划严格管理; (2) 坚持进行阶段评审; (3) 严格实施的产品控制; (4) 采用现代程序技术; (5) 结果应能清楚地审查;
(6) 开发小组的成员应该少而精; (7) 承认不断改进软件工程的必要性。
2.可行性研究包括哪几方面的内容? 答:
(1)经济可行性:是否有经济效益,多长时间可以收回成本;
(2)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;
(3)运行可行性:系统操作在用户内部行得通吗?
(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。 3.需求分析的任务是什么? P56 4.数据字典由哪几类元素组成? P47
五 论述 (2*10’)
1.有人说软件就是程序,你认为这种说法正确吗?请从软件的定义来阐述你的观点。
页脚内容 论文封面式样: 不正确,软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。
2.软件危机主要表现在那些方面?解决软件危机的途径有那些?
答:软件危机主要表现在:
1)软件开发无计划性 2)软件需求不充分 3)软件开发过程无规范 4)软件产品无测评手段 解决软件危机的途径有: 1) 软件开发是智力劳动;
2) 是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。 3) 充分吸取几十年来人类从事计算机硬件研究和开发的经验教训。 4) 使用适当的软件工具,支持软件开发的过程
总之,消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
六 计算题(1*10’)
1982年,美国一家公司准备用FORTRAN 语言开发一个可以在VAX 750 计算机上运行的程序,估计这个程序得需要10 000 条FORTRAN 指令。假设平均每人每天可以开发出20条FORTRAN 指令,请问:
① 开发这个程序需要多少人日?
② 如果程序员的月平均工资为5000 美元,每月按20 个工作日计算,该软件的开发成本是多少美元?
③ 1982 年VAX 750 计算机硬件价格约为125 000 美元,那么1982 年这个软件的开发成本占整个系统总成本比例是多少?
④25年后,一台比VAX 750 型计算机性能优越的微型计算机的价格约为1000美元,而这时软件开发效率提高到平均每人每天可以开发出80 条指令,程序员的月平均工资也已提高到10000 美元。如果在2007 年开发上述FORTRAN 程序,那么该软件的开发成本占整个系统总成本比例是多少?
解:
(1)开发这个程序需要的人日可通过下面式子算出:
10000?500(人日) 20即开发这个程序大约需用500个人日。
页脚内容 论文封面式样: (2)每月平均工作20天,开发这个程序需要用的人月可通过下面式子算出:
500?25(人月) 2025×5000=125000(美元)
(3) 计算机系统的总成本为软件成本与硬件成本之和,则这个软件的开发成本
125000?50%
125000?125000(4)2007年开发这个程序所需的工作量可通过下面式子算出:
10000?6.25(人月)
80?20 6.25×10000=62500(美元) 该软件的成本在总成本中所占的比例可通过下面式子算出:
62500?98.4%
62500?1000
页脚内容