软件工程-简答题复习题(带答案).docx
《软件工程-简答题复习题(带答案).docx》由会员分享,可在线阅读,更多相关《软件工程-简答题复习题(带答案).docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流软件工程-简答题复习题(带答案)【精品文档】第 11 页第一章1,与计算机硬件相比,计算机软件有哪些特点?软件的特点如下。1) 无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等。2) 人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动。3) 不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题。4) 软件的开发和运行必须依赖于特定的计算机系统环境。5) 具有可复用性。3,什么是软件危机?什么原因导致了软件危机?软件危机的现象如下。1) 经费超出预算,项目一再拖
2、延。2) 不重视需求,开发的软件不能满足用户的要求,项目成功率低。3) 没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。4) 开发工具落后,手工方式,开发效率低。所有导致软件危机的原因,都与软件本身的产品特点相关。1) 软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。2) 软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。3) 软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做到准确估算,生产过程不易控制。4) 软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造
3、成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得多。5,请简述软件工程研究的内容。软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose等。7,请简述软件工程的目标、过程和原则。目标、过程和原则是一切工程的三维框架
4、,这里是以工程的观点来看待软件开发。1) 软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效率、高效益)。2) 实现目标的过程即完成产品加工的过程,包括:基本过程、支持过程和组织过程。3) 进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程的管理。9,请简述现代软件工程与传统软件工程显著的区别和改进。1) 传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向对象技术为标志。2) 不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中,采用面向对象的思维方式,更加完整、自然地反映客观世
5、界。3) 采用架构技术,开发效率、产品质量得到了极大提高。4) 更注重团队开发和管理,融入更多、更新的管理理念和手段,如RUP模型、XP模型、过程改进、能力成熟度模型、配置管理等。第二章1,如何理解软件生命周期的内在特征?软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,再到最终该产品被市场淘汰的全过程。软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。由于每个阶段的任务相对于总任务难度会大幅度降低,因此在资源外配、时间把握和项目管理上都会比较容易
6、控制。应该合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。3,当需求不能一次搞清楚,且系统需求比较复杂时应选用哪种开发模型比较合?开发模型不是孤立或排斥的,它们之间需要相互借鉴和参考。螺旋模型是一种综合性的模型,适和于较复杂的系统。5, XP是一种什么样的模型?XP是现代版的增量模型,特点是客户参与、适应变化、测试驱动、以代码为核心。实行XP的条件如下。1) 企业具有较高的能力成熟度,具有团队开发环境和配套的测试工具。2) 软件结构是开放的,增量可随意整合。3) 开发团队拥有“系统隐喻。7,请简述软件过程。软件过程就是软件产品的加工过程,其本质就
7、是将“客观世界”映射(虚拟)到“计算机世界”,即从抽象到具体的逐步细化过程。系统分析就是对客观世界的抽象,中间要经过分析模型、设计模型的逐步细化(具体化),最终的具体结果就是计算机世界里的代码。9,请简述CMM的作用。1) CMM是评价软件组织开发能力(水平)的参考模型,是一种认证标准,认可软件工程达到的程度(如同评定职称的条件)2) CMM是软件组织提升自身能力、走向成熟的参照系。它提供了走向成熟的阶梯目标,但并不提供走向目标的方法。3) CMM等级的提高依靠软件过程改进。4) CMM既是评估软件能力成熟度的模型,也起到了促进软件企业按照该模型设置的级别和关键过程域不断改进自己的软件过程的作
8、用。11,假设你要开发一个软件,它的功能是把73624.9385这个数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周期模型?请说明你做出这样选择的理由。对这个软件的需求很明确,实现开平方功能的算法也很成熟。因此,既无须通过原型模型来分析需求也无须用原型模型来验证设计方案。此外,一旦实现并测试完之后,该产品将被地弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。第五章1,在选择编程语言时,通常要考虑哪些因素?1) 待开发系统的应用领域,即项目
9、的应用范围。2) 用户的要求。3) 软件开发人员的喜好和能力。4) 系统的可移植性要求。5) 算法和数据结构的复杂性。3,什么是调试?什么是测试?二者有何区别?调试(debug)指的是对模块的调试,是程序员交付可运行的代码模块所必须经历的工作。软件测试(test)有如下特点。1) 软件测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。2) 不仅仅是测试程序,还应该对开发过程中所有的产品进行测试,包括文档,其目的是为了尽早地、尽可能多地发现并排除软件中潜在的错误。二者的区别如图5.2所示。5,请简述静态测试和动态测试的区别。按照执行测试时是否需要运行程序,软件测试可以划分为静
10、态测试和动态测试。静态测试以人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正确性、一致性及逻辑结构的正确性,从而找出软件产品中的错误或缺陷。静态测试对自动化工具的依赖性较小,通过人脑的思考和逻辑判断来查找错误,因而可以更好地发挥人的主观能动性。与静态测试不同的是,动态测试需要通过实际运行被测程序来发现问题。测试人员可以输入一系列的测试用例,通过观察测试用例的输出结果是否与预期相符来检验系统内潜在的问题或缺陷。7,软件测试的目的是什么?测试的目的如下1) 测试是一个为了发现程序中的错误为目的的程序执行过程。2) 个好的测试用例是能最大限度地找到迄今为止尚未发现的错误。3) 成功的测试是
11、能发现了那些尚未发现的错误。9,什么是白盒测试?有哪些常用的白盒测试方法?白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用例设计需要了解程序的内部逻辑。常用的白盒测试方法主要有逻辑覆盖法、基本路径测试法。11,软件测试应该划分几个阶段?各个阶段应重点测试的内容是什么?软件测试总的来说可分为单元测试、集成测试、系统测试、验收测试。每个阶段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告5个步骤。1) 单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 答题 复习题 答案
限制150内