2013软件工程复习指南

  • 格式:docx
  • 大小:23.31 KB
  • 文档页数:3

1. 什么是软件危机,主要表现在哪些方面,其产生原因是什么?

答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,包括如何开发软件、怎么满足对软件日益增长的需求、如何维护数量不断膨胀的现有软件等。

主要表现:(1)对于软件开发成本和进度的估计很不准确。(2)开发的软件产品不能完全满足用户要求。(3)开发的软件可靠性差。(4)软件通常没有适当的文档资料。(5)软件的可维护性差。(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

产生原因:(1)软件的规模愈发庞大。(2)软件开发的管理困难。(3)成功的软件开发经验没被很好地应用。(4)错误的软件开发观念根深蒂固。(5)软件开发技术落后。(6)生产方式落后。(7)开发工具落后,生产率提高缓慢。

2. 软件的周期模型有哪些?分别描述瀑布模型和螺旋模型的特点和应用.

答:软件的周期模型有:瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、基于知识的模型和变换模型。

瀑布模型的特点:严格按照生命周期各个阶段来进行开发,强调每一阶段的严格性;确保用户需求;缩短开发周期,加快工程进度,降低成本,满足预算和时间限制;只有开发完成向用户提交整个系统时,用户才能看到一个完整的系统。

应用:适用于功能和性能明确、完整、无重大变化的软件开发。例如编译系统、数据库管理系统和操作系统等大部分系统软件。

螺旋模型的特点:是一种风险驱动的模型,有利于软件重用;建立在风险分析的基础上:需要有一个非常有经验的小组来准确地分析和检测风险,绝对依赖人的素质;开发中的每一层都很有弹性,并不是很明确的界限;每一层的目标和计划都是由小组本身来制定。

应用:适合于大型软件的开发,但是使用该模型需要有相当丰富的风险评估经验和专门知识,使得该模型的应用受到一定限制。

3. 什么是软件工程,其作用是什么?

答:软件工程是指导计算机软件开发和维护的工程科学;是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。

作用是:解决了软件危机问题,提高软件的质量和可靠性;提高软件的可维护性;提高软件生产率,降低软件开发成本。在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。

4. 需求分析的特点是什么,应该遵循哪些原则?

答:需求分析的特点是:(1)需求易变性;(2)问题的复杂性:(3)交流障碍;(4)不完备性和不一致性。

应遵循的原则是:(1)把一个复杂问题按功能进行分解并逐层细化;(2)必须能够表达和理解问题的数据域和功能域;(3)建立模型。

5. 熟悉使用数据流图

6. 熟悉使用用例图进行分析

7. 熟悉使用类图进行分析

8. 熟悉使用时序图进行分析

9. 熟悉使用ER图进行分析 10. 掌握软件测试中的各种覆盖(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、组合覆盖)

11. 软件测试的过程是什么?

答:首先通过编译程序检查语法错误,然后根据该阶段涉及编码和详细设计的文档进行模块单元测试,检查各模块的功能、接口的正确性;当所有的单元测试完成后,将各模块组装起来进行集成测试,检查个单元间接口问题及相互影响问题、软件体系结构有关问题;完成集成测试后通过确认测试检查软件是否满足需求说明书中确定的各种功能;最后将软件与其他系统元素结合在一起进行系统测试,包括恢复测试、安全测试、压力测试、性能测试等。

12. 好的软件质量判定的标准是什么?

答:客观性(不存在来自测试者对度量的主观影响);可靠性(在重复度量中,同样条件下达到相同的效果);适用性(度量结果能够明确地说明质量特性);标准化(必须有一个可以明确表示度量结果的标度);可比较性(该度量与其他度量相关);经济性(度量是在低成本下进行。);有效性(度量标准是有效的)。

13. 软件界面设计有哪些原则,请举例分别说明

答:(1)一致性。界面各个部分和各个层次,在术语、风格、交互方式、操作步骤等尽可能保持一致,使人能够举一反三、触类旁通地掌握对界面的操作。(2)使用简便。敲击键盘的次数和单击的次数做到最少,界面供用户选择的信息数量适当、排列合理、意义明确,用户容易找到正确的选择。(3)启发性。界面上出现的文字、符号和图形具有准确的含义和寓意,提示信息及时而准确,使用户清楚为完成自己想做的事应该进行什么操作。(4)减少重复的输入。能够自动或通过简单操作复用以往的输入信息。(5)减少人脑记忆的负担。人在与系统交互时不必记忆大量的操作规则和对话信息。(6)容错性。对用户的误操作有容忍能力或补救措施,如删除某些不易恢复的内容,未保存而退出时给出警告信息或请求再次确认。(7)及时反馈。对需要较长时间才能完成的用户命令,系统适时给出反馈信息,说明工作在进展。

14. 什么是结构化分析方法,其特点是什么?

答:结构化分析方法是一种从问题空间到某种表示的映射方法,它由数据流图表示,是结构化方法中重要的,被普遍接受的表示系统,它由数据流图和数据词典构成。

特点:简单实用,适于数据处理领域问题。

15. 什么是面向对象的分析方法,其特点是什么?

面向对象分析是将问题空间中的实例抽象为对象,用对象的结构来反映问题空间的复杂单元测试

单元测试

单元测试 模块

模块

模块 集成测试 已集成软件 确认测试 确认软件 系统测试 可交付软件 设计消息 软件需求 其他系统元素 实例和复杂关系,用属性和方法表示实例的特性和行为。与传统的面向过程分析相比,面向对象分析以系统的功能和对象间的相互关联关系为核心,从对象的分类,各个相关属性和方法的标识,类和实例之间的关系,各种对象的行为特征等方面进行分析。

答:面向对象分析方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。

特点:(1)从问题域中客观存在的事物出发来构造软件系统,用对象作为对事物的抽象表示,并以此作为系统的基本构成单位。(2)事物的静态特征用对象的属性表示,实物的动态特征用对象的服务表示。(3)对象的属性与服务结合为一体,成为一个独立的实体,对外屏蔽其内部细节。(4)对事物进行分类。(5)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。(6)复杂的对象可以用简单的对象作为其构成部分。(7)对象之间通过消息进行通信,以实现对象间的动态联系。(8)通过关联表达对象之间的静态关系。

16. 好的软件的判定标准是什么?

答:是否满足用户的需求,可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性、可互操作性。

17. 什么是软件项目管理,怎么才能做好软件的项目管理?

答:软件项目管理是对软件项目的开发管理,是对整个软件生存期的所有活动进行管理。做好软件的项目管理必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人员、软/硬件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度的安排等进行非常规范、科学的管理。这种管理开始于技术工作开始之前,在软件从概念到实现的过程中持续运行,最后终止于软件工程过程结束,包括:启动一个软件项目,成本估算、风险分析、进度安排、追踪和控制。

18. 软件工程的基本原理。

答:(1)用分阶段的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采纳现代程序设计技术;(5)结果应能清楚地审查;(6)开发小组的人员应少而精;(7)承认不断改进软件工程实践的必要性。