软件工程习题200题之一 (转)

软件工程习题200题之一 (转)[@more@]

软件工程习题200题之一

  我的软件工程笔记99年末的一段,是当时几乎所有软件工程书籍的习题。这里整理出来,希望对大家学习软件工程有益。

 

1、  什么是软件危机?产生软件危机的原因?怎样消除?

2、  什么是软件工程?包括哪些内容?

3、  软件生存周期包含哪些内容?

4、  软件开发模型有几种?各有什么特点?

5、  软件技术审查和管理复审的作用是什么?

6、  软件开发与写程序有什么不同?

7、  在软件开发的早期阶段,为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?

8、  一个软件开发系统的可行性研究报告应如何编写?

9、  数据流图有哪几种基本符号?

10、  画数据流图原则是什么?

11、  数据流图在软件分析中的作用是什么?

12、  数据字典的作用?

13、  什么是数据字典?有几个定义?各自特点是什么?

14、  有几种效益的分析方法?

15、  需求分析的任务是什么?

16、  需求分析通常采用哪些分析技术?

17、  什么是结构化分析?他的结构化体现在哪里?

18、  简述面向对象分析技术的主要步骤?

19、  原型开发技术的目的,特点是什么?

20、  简述总体设计的一般过程?

21、  什么叫软件结构?什么叫软件工程?二者之间关系?

22、  解释深度、宽度、扇出、扇入对软件的影响。

23、  什么叫模块化?M代表的含义是什么?

24、  模块化的三个重要特征是什么?阐明各自的作用。

25、  举例说明各种耦合情况和各种内聚情况。

26、  简述设计准则的内容。

27、  简述层次方框图与软件结构图的异同点。

28、  事物型软件结构图有什么特点?原因是什么?

29、  详细设计的任务是什么?

30、  什么是结构化程序设计?用N-S图表示三种基本结构。

31、  简述Jackson程序设计方法的主要内容。

32、  简述Wariner程序设计方法的主要内容。

33、  McaHei(Muahe,笔记有些模糊,未校正)方法的核心是什么?有何用途?

34、  简述程序设计语言两次本质性变化的内容及意义。

35、  C语言属于第几代语言?第四代语言特点是什么?

36、  简述高级语言的应用特点和内在特点。

37、  试分析程序设计语言特点及软件可靠性、可理解性、可修改性、可测试性及成本的关系。

38、  选择一种语言的实用标准是什么?

39、  简述开发环境、计算机体系结构、软件设计方法、软件开发过程与程序设计语言之间的促进和制约作用。

40、  程序的编码风格主要体现在哪几个方面?

41、  软件测试的基本任务是什么?测试与调试区别是什么?

42、  软件测试的目标是什么?

43、  软件测试分几个步骤进行?每个步骤解决什么问题?

44、  软件测试有几种方法?每种方法的特点是什么?

45、  软件出错有几种类型?验证其程序正确性有几种方法?

46、  什么是单元测试和集成测试?他们各有什么特点?

47、  简述渐增式测试方法与非渐增式测试方法的优劣。

48、  简述存根程序 驱动程序的作用。

49、  编 最大、最小公倍数程序,并为它设计测试用例。

50、  测试的具体任务是什么?为什么说调试是软件开发过程中最艰巨的任务?

51、  举出几种常用的测试工具,说明他们的用法。

52、  MTTF的含义是什么?如何计算Et值?

53、  假设有一个由1000行Pascal语句构成的程序(编译后约有5000条机器指令),请估算对它进行测试期间将发现多少错误。为什么?

54、  什么叫软件维护?软件维护的基本内容是什么?

55、  软件维护分几类?每类的基本内容是什么?占软件维护总工作量的百分比是多少?

56、  软件维护有哪些特点?

57、  简述软件的维护过程。

58、  软件的可维护性与哪些因素有关?在软件开发过程中应采取哪些措施才能提高软件产品的可维护性?

59、  什么是软件工程的文档?分哪两大类?每类内容是什么?

60、  计算软件价格时,应不应该把维护费用计入成本?为什么?

61、  软件项目分几类?划分依据是什么?

62、  简述软件项目的特点和项目中人员的特点对软件管理的影响。

63、  软件职能管理的具体内容是什么?

64、  为什么说“时间和人员不能交换”?试说明其原因。

65、  变动分两类,阐述每类特点及二者之间的区别。

66、  谈谈你对软件现代技术的理解,预测一下软件发展方向。

67、  计算机技术已不再是单一学科的发展,它是许多相关学科的融合和渗透。举例说明你所熟悉的这方面的技术、方法和应用。

68、  何为软件?软件可分哪几种类?

69、  软件危机主要有哪些表现?

70、  什么是软件工程?试说明软件工程是如何克服软件危机的。

71、  面向对象生存期模型与传统的生存期模型有什么区别?

72、  列出两种以上的软件开发过程模型。并说明各自的特点。

73、  分析员职责是什么?分析员应具备什么条件?

74、  分析员应采取哪些方法来明确需求?

75、  建立系统模型有什么作用?   

76、  建立良好的规格说明的原则有哪些?

77、  为什么要进行规格说明评审?

78、  数据流图作用是什么?

79、  数据字典的作用是什么?数据字典中包含了哪些信息?

80、  何为结构化分析方法?他在发展过程中得到了哪些扩充?

81、  什么是面向数据流的设计?数据流包括哪几种?

82、  怎样完成从数据流图到程序结构图的转换?

83、  面向数据流的设计方法包含那些步骤?

84、  Jackson结构化编程方法是以控制技术为中心还是以数据结构为中心?为什么?

85、  JSP方法包括那些步骤?

86、  如何表示数据的顺序结构、选择结构、重复结构?

87、  回溯用于解决Jsp方法遇到了什么问题?为什么Jsp往往会面临这种问题而别的方法往往不会?

88、  为什么Jsp方法会遇到结构冲突问题?如何解决?

89、  DSSD方法包括那些步骤?

90、  DSSD方法中,逻辑输出结构和逻辑过程结构的导出各起到什么作用?

91、  什么是原型?原型应具有什么特点?

92、  什么是原型开发?原型开发包括那几类?

93、  原型开发由哪几个步骤组成?

94、  用户界面原型开发方法有哪几种?与传统的用户界面开发方法相比具有哪些优点?

95、  面向对象语言必须支持那些概念?

96、  面向对象编程语言分几大类?

97、  试说明面向对象编程语言用哪些机制支持面向对象方法的基本概念?

98、  什么是实时系统?实时设计与其他系统设计有什么区别?

99、  实时系统设计有哪些要素?

100、  实时系统在进行任务同步时通常采取哪几种方法?

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-961023/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-961023/

1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问。这些问表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本开发进度难以估计。 (7)软件技术的发展远远满足不了计算机应用的普及深入的需要。 2.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。 (2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。 (3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为什么划分成阶段? (1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。 (2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。 (3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。 7.应该怎样来划分阶段? (1)每一个阶段的任务尽可能独立; (2)同一阶段内的任务性质尽可能相同; (3)每一个阶段任务的开始和结束有严格的标准。 8.软件开发模型有几种?它们的开发方法有可特点? 软件开发模型有瀑布型、渐增型和变换型。 瀑布型开发方法是按照软件生存周期的划分依次实施,每一个阶段有明确规定的任务。它的特点: (1)各个阶段的顺序性和依赖性; (2)划分逻辑设计物理设计,尽可能推迟程序的物理实现; (3)每个阶段必须完成规定的文档,对其中问通过复审及早发现,及早解决。 渐增型开发方法及特点: (1) 从部分需求出发,先建立一个不完全的系统,通过测试运行该系统取得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完善。如此反复,直至软件人员和用户对所设计完成的软件系统满意为止。 (2) 在渐增型开发下的软件是随软件开发的过程而逐渐形成的。 (3) 渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。多数研究性质的试验软件,一般采用此方法。 变换型开发方法及特点: (1)从软件需求的形式化规格说明出发,经过一系列的程序变换,得到最终的程序系统。 (2)该方法必须有严格的数学理论和形式化技术的支持。 9.什么是软件工程? 软件工程是指导计算机软件开发和维护的工程学科。 (1) 它采用工程的概念、原理、技术和方法来开发和维护软件; (2) 它将管理技术当前经过时间考验的而证明是正确的技术方法结合起来; (3) 它强调使用生存周期方法学和结构分析和结构技术; (4) 经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了"软件工程学"这一新的学科。 10.什么是软件工程环境: 方法工具的结合,加上配套的软、硬件支持称为软件工程环境。它能支持开发者按照软件工程的方法,全面完成生存周期中的各项任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值