软件工程习题及解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程习题及解答 Revised as of 23 November 2020
软件工程
第一章习题
?
一、选择题
1、软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。其中,( A )是按事先设计的功能和性能要求执行的指令序列。( B )是使程序能够正确操纵信息的数据结构。( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:
A~C. ①软件②程序③代码④硬件
⑤文档⑥外设⑦数据⑧图表
2、开发软件时对提高软件开发人员工作效率至关重要的是( A )。软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:
A.①程序开发环境②操作系统的资源管理功能
③程序人员数量④计算机的并行处理能力
B.①需求分析②需求调查③可行性分析④问题定义
C、D.①方案设计②代码设计③概要设计④数据设计
⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计
3、从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:
第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。出现了( A ),并逐渐普及。随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。这一时期,与硬件费用下降相反,软件开发费急剧上升。人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。
供选择的答案:
A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言
⑤结构式程序设计⑥数据库概念⑦固件
⑧模块化程序设计
E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义
⑥图象处理
二、简答题
1、美国一家公司在1982年计划用FORTRAN语言开发一个在VAX750计算机上运行的应用程序,估计这个程序的长度为10000条FORTRAN指令。如果平均每人每天可以开发出10条FORTRAN指令,请问:
(1)开发这个应用程序将用多少人日
(2)假设程序员的月平均工资为4000美元,每月按20个工作日计算,这个软件的成本是多少美元
(3)1982年VAX750计算机硬件价格约为125000美元,在那一年这个软件的成本在总成本中占多大比例
(4)20年后,一台性能远远优于VAX750的微型计算机的价格约为2000
美元,这时软件开发生产率已提高到平均每人每天可以开发出40条指令,而程序员的月平均工资也已涨到8000美元。如果在2002年开发上述FORTRAN应用程序,则该软件的成本在总成本中占多大比例
2、根据历史数据可以作出如下的假设。
(1)对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:
M=(Y-1960)
(2)存储器的价格按下面公式描述的趋势逐年下降:
P1=* (美分/位)
如果计算机字长为16位,则存储器价格下降的趋势为:
P2=* Y-1974 (美元/字)
在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。
(1)在1985年对计算机存储容量的需求估计是多少如果字长为16位,这个存储器的价格是多少
(2)假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
(3)假设在1985年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)(2)题所问。
3、美国某科幻电影中有一个描写计算机软件错误的故事,很富于戏剧性。故事情节如下:
由计算机HAL控制的宇宙飞船在飞往木星的旅途中,飞机指挥员鲍曼和HAL之间有一段对话。鲍曼命令道:“HAL,请对备用舱进行故障预报测试。”10秒钟后HAL报告:“一切正常。”
但是,地面上的飞行指挥中心在重复做了故障预测报告后,却得出了相反的结论:
“鲍曼,我是飞行指挥中心,你的计算机在预报故障时可能犯了错误,我们的两台HAL 计算机都得出了和你的计算机相反的结论。”
鲍曼用手指敲着控制台说:“HAL,是不是有什么东西干扰了你,以致出了这个差错”
“听着,鲍曼,我知道你很想帮助我,但是我的信息处理是正常的。不信就查看我的记录吧,你会看到它是完全正确的。”
“我看过你的服务记录,但是……谁都可能犯错误啊。”
“我并不固执己见,但是,我是不可能犯错误的……。”
“喂,我是飞行指挥中心,我们已经彻底分析了你所遇到的麻烦,我们的两台计算机得出了完全一致的结论。问题出在故障预报系统中,我们确信是程序设计有错误。你必须断开你的计算机并改为地面控制模式,我们才能改正这个错误.”
当鲍曼断开计算机时,HAL立即又把自己接了上去。最后,鲍曼只好拆下计算机的存储器,才得以控制他的宇宙飞船。
请问:
(1)为什么鲍曼拆下存储器就能摆脱计算机的干扰而独自控制宇宙飞船我们现在遇到的软件问题有这么严重吗
(2)如果不依靠飞行指挥中心,鲍曼怎样才知道HAL的故障预报有问题
(3)应该怎样设计计算机系统,才能避免出现故事中描述的这类问题
4、什么是软件工程它与软件工程方法学有何关系
5、为什么说分阶段的生命周期模型有助于软件项目管理
6、什么是里程碑它应该有哪些特征
7、假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪些软件生命周期模型请说明你作出选择的理由。
8、假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型为什么
第一章习题解答