软件工程复习资料_第1页
软件工程复习资料_第2页
软件工程复习资料_第3页
软件工程复习资料_第4页
软件工程复习资料_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 什么是软件工程?他的基本原理是什么?1 软件工程是指导电脑软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。2用分阶段的生命周期计划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设计技术、结果应能清楚的审查、开发小组的人员应该少而精、承认不断改良软件工程实践的必要性。2. 是什么导致了软件工程?主要是软件危机的出现导致了软件工程3. 通常我们所见的软件工程模型有哪些?瀑布模型、快速原型模型、增量模型渐增模型、螺旋模型、喷泉模型。21.

2、软件危机的现象:1经费超出预算,项目一再拖延。2不重视需求,开发的软件不能满足用户的要求,项目成功率低。3没有标准的软件工程方法,软件可维护性差,软件质量差,可靠性差。3开发工具落后,手工方式,开发效率低。22. 软件工程的三要素1“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量开发出软件。2“方法”为软件开发提供“如何做”的技术。它涵盖了项目计划、需求分析、系统程序实现、测试与维护灯一系列活动的做法。3“工具”可为过程和方法提供自动的或半自动的支持。这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。通过网络环境把这些软件工具集成起来搭建一个能够支持

3、团队开发的平台,称为电脑辅助软件工程,即CASE。CASE集成了软件、硬件和存放开发过程信息的软件工程数据库,形成了一个软件工程环境。23简述软件工程的目标,过程和原则1目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开发。软件工程的目标:降低成本,及时交付高质量的软件产品。实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。24. 比照瀑布模型,原型模型,增量模型和螺旋模型1瀑布模型:主要表达了分阶段、有控制的思想。活动间强调

4、按顺序、文档化;存在的问题是过于理想化,每一步的工作必须完整准确,否则无法进行下一步工作2原型模型:需求分析入手快速、表达直观、容易交流。重点解决瀑布模型的需求分析入手难的问题。3增量模型:对于需求复杂的系统,采用分块开发、逐步集成的开发策略。增量表达了演进、迭代思想,每一块就是一个增量。每个增量试一次迭代。增量模型的新版本叫做“极限编程XP”。4螺旋模型:融合了上述3种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。但是,风险分析的正确性是左右软件演进的关键因素。25. 当需求不能一次搞清楚,且系统需求较复杂时应选用什么模型?开发模型不是孤立或排斥的,他们之间需要相互借鉴和参

5、考。螺旋模型是一种综合性的模型,适合于鼻尖复杂的系统。极限开发是一种什么样的模型?XP是现代版的增量模型,特点是你客户参与、适应变化、测试驱动、以代码为核心。实行XP的条件如下。1) 企业具有较高的能力成熟度,具有团队开发环境和配套的测试工具。2) 软件结构是开放的,增量可随意整合。3) 开发团队拥有“系统隐喻”。27. 敏捷方法的核心价值观有哪些?它对传统方法的”反叛“表达在哪些方面?1注重个人与交互重点关注可以工作的软件。提高客户参与程度。以积极的心态响应需求变化。敏捷联盟强调的价值观是这一流派的核心。认识受价值观驱使的,敏捷项目管理因而也是以价值观为推动力的。一个团队可以采用敏捷做法,但

6、如果它不接受敏捷价值观,它将不能得到敏捷方法的潜在好处。2敏捷方法对传统方法的”反叛“表达在以人为中心,不再依靠文档来控制过程,认为传统过程过于僵化、文档繁烦,主张对传统过程瘦身,在上述价值观的支配下,做到能够为准28. 简述CMM成熟度等级软件过程成熟度的5个级别,以及每个级别对应的标准。1初始级的软件过程是无秩序的,它几乎处于无步骤可循的状态。管理是随机的,软件产品的成功往往取决于个人。2可重复级,已建立了基本的项目管理过程,对成本、进度和功能特性进行跟踪,并且在借鉴以往经验的基础上制定了必要的标准。3已定义级,用于管理和工程两个方面的过程均已文档化、标准化,并形成了整个软件组织的标准软件

7、工程。所有项目均使用经过批准、裁剪的标准软件过程来开发和维护软件。4已管理级的软件过程和产品质量有详细的度量标准并且得到了定量的认证和控制。5优化级的软件过程可以通过量化反馈和先进的新思想、新技术来不断地、持续性的过程改良。29. RUP统一过程包含了那些核心工作流和那些核心支持工作流。1核心工作流包括:业务建模、需求、分析与设计、实现、测试、部署。2支持工作流包括:配置与变更管理、项目管理、环境。30. 如何进行结构化需求分析,其建模方法有哪些?5.传统方法学-结构化分析中,有哪几个主要步骤?每个步骤应该要做什么?画什么图?怎么画?1建立当前系统的”具体模型“:体统的”具体模型“就是现实环境

8、的真实写照,这样到达与当前系统完全对应,用户容易理解。2抽象出当前系统的逻辑模型:分析系统的”具体模型“,抽象出其本质的因素,获得当前系统的”逻辑模型“。3建立目标系统的逻辑模型:分析目标系统与当前系统逻辑上的差异,从而进一步明确目的系统”做什么“,建立目标系统的“逻辑模型”。4为了对目标系统进行完整的描述,还需要考虑人机界面和其他一些问题。建模方法:数据流图、实体关系、控制流图、状态转换图。31. 为什么说需求过程是一个迭代过程?由于人们对客观事物的认识是不断深化,因此需求过程是一个迭代过程,每次迭代都可提供更高质量和更详细内容的软件需求。这种迭代会给项目带来一定的风险,上一次迭代的设计实现

9、可能会因为需求不足而被推翻。32. 简述可行性研究所研究的问题。1经济可行性:进行成本/效益分析那个。从经济角度判断系统开发是否“合算“。2技术可行性:进行技术风险评价。从开发者的技术实力、以往工作基础、问题的复杂性出发,判断系统开发在实践、费用等限制条件下成功的可能性。3法律可行性:确定系统开发可能导致的任何侵权、阻碍和责任。4方案的选择:评价系统或产品开发的几个可能的候选方案,最后给出结论意见。33. 简述数据流图的作用。数据流图的作用:数据流图可以用来抽象地表示系统或软件。从信息传递和加工的角度它以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容

10、不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立其系统或软件的功能模型。34. 简述数据字典的作用!数据字典的作用:分析建模种包含了对数据对象、功能和控制的表示。在每一种表示中数据对象和控制项都扮演一定的角色。为表示每个数据对象和控制项的特性,建立了数据词典。数据词典精确地、严格地定义了每一个与系统相关的数据元素,并以字典式顺序将它们组织起来,使得用户和分析员对所有的输入、输出、存储成分和中间计算有共同的理解。35. 简述在软件设计的过程中需要遵循的规则。模块化、抽象化、逐步求精和信息隐藏。36. 为什么说“高内聚、低耦合”的设计有利于提

11、高系统的独立性?内聚和耦合往往密切相关,模块的高内聚通常意味着低耦合。低耦合因为模块之间的耦合成都越低,相互影响就越小,发生异常后产生连锁反应的概率就越低;在修改一个模块是,低耦合的系统就可以把修改范围尽量控制在最小的范围内;对一个模块进行维护是,其他模块的内部程序的正常运行不会受到较大的影响。37. 简述界面设计应该遵循的原则。1置界面与用户控制之下:以不强迫用户进入不必要的或不希望的动作的方式来定义交互模式;提供灵活的交互;允许用户交互可以被中断和撤销;当技能级别增长时可以使交互流水化并允许定制交互;使用户隔离内部技术细节;设计应允许用户和出现在屏幕上的对象直接交互。2减少用户的记忆负担:

12、减少对短期记忆的要求;建立有意义的缺省;定义直觉性的捷径;界面的视觉布局应该基于真实世界的阴雨;以不断进展的方式解释信息。3保持界面一直;允许用户将当前的任务放入有意义的语境;在应用系列内保持一致性;如果过去的交互模式已经建立起了用户期望,不要改变它,除非有不得已的理由。4.传统方法学中,分几个主要步骤?结构化分析,结构化设计,结构化实现。6. 传统方法学-结构化设计的概念和原理是什么?模块化、抽象、逐步求精、信息隐藏。7. 传统方法学-结构化设计有哪些启发规则?改良软件结构提高模块独立性,模块规模应该始终,深度、宽度、扇出和扇入都应适当,模块的作用域应该在控制域之内,力争降低模块接口的复杂程

13、度,设计单入口单出口模块,模块功能应该可以预测8. 传统方法学-结构化设计有哪几个主要步骤?每个步骤要做什么?需要绘制哪些图形图表,怎么画?1分析并确定输入数据和输出数据的逻辑结构,并用Jackson图庙会这些数据结构。2找出输入数据结构和输出数据结构中有对应刮泥的数据单元。3秒回数据结构的Jackson头到处描绘成结构的Jackson图。怎么画:1 )为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图等响应层次化一个处理框。2 )根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为他们画上对应的处理框3 )根据输出数据结构中剩余的每个数据单元所处的层

14、次,在程序结构图的相应层次分别为它们画上对应的处理框。4列出所有操作和条件,并且把它们分配到程序结构图的适当位置。5用伪码表示程序。9. 传统方法学-结构化设计中,什么是面向数据流的设计方法?面向数据流的设计方法就是通常所说的结构化设计方法。它是以数据流图为基础,将DFD变换成软件结构的不同映射方法,以软件结构图SC图的形式表现。SC图描述软件系统的层次和分块结构的关系,表达模块与模块之间的联系与通讯,从而表达软件的体系结构。10. 传统方法学-结构化实现中,所涉及到的测试有哪些?有哪些策略?以及测试有哪几个基本步骤?1 测试基本步骤:单元测试、集成测试、确认测试、高级测试。2 策略:逻辑覆盖

15、语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、控制结构测试基本路劲测试、条件测试、数据流测试、循环测试。11. 面向对象方法学中,其核心是对什么进行分析?对象。12. 面向对象的基本概念是什么?对象,类,实例,消息,方法,属性,封装,继承,多态(重载)。13. 与传统方法学相比,面向对象方法的区别是什么?1符合人类的思维习惯2可复用性好。3稳定性好。4可维护性好。14. 什么是UML,UML的基本概念。UML是一种书写软件蓝图的标准语言。是一种指定、构造和记录软件密集型系统的工作语言。15. 面向对象方法学-分析中,把问题分为了几个层次,几个子模型?是哪几个?3 个模型:静态结构

16、对象模型、交互次序动态模型和数据变化功能模型。5 个层次:主题层范畴层、类与对象层、结构层、属性层和服务层。16. 对象模型、动态模型、功能模型分别代表什么,是对什么的分析。对象模型表示静态的、结构化的系统的“数据”性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射。描述了系统的静态结构。动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。功能模型表示变化的系统的“功能”性质,它指明了系统应该”做什么“,因此更直接地反映了用户对目标系统的需求。17. 面向对象设计的启发规则有哪些?要考虑哪些子系统?如何设计?每个子系统应该考虑的东西有哪些?启发规则

17、:设计结果应该清晰易懂、一般/特殊结构的深度应适应、设计简单的类、使用简单的协议、使用简单的服务、把设计变动减至最小。如何设计:模块化、抽象、信息隐藏、弱耦合、强内聚、可重用。3子系统的考虑内容:应该综合考虑各种因素,以决定哪些子系统用硬件实现,哪些子系统用软件实现。在决定采用软件还是硬件的时候,必须综合权衡一致性、成本、性能等各种因素,还要考虑未来的可扩充性和可修改性。18. 面向对象实现需要考虑的因素有哪些?将来能否占主导地位、可重用性、类库和开发环境、其他因素。19. 面向对象的实现中,面向对象的测试与传统测试有哪些不一样?有哪些主要方法?面向对象的测试的着重点在哪里?为什么会产生如此的

18、不同?1单元测试的不同:最小的可测试但愿是封装起来的类和对象。一个类可以包含一组不同的操作,而一个特定的操作也可能存在于一组不同的类中。一次,对于面向对象的软件来说,单元测试布恩那个再孤立地测试单个操作,而应该把操作作为类的一部分来测试。2集成测试的不同:面向对像有两种不同的策略 基于线程的测试。 基于使用的测试。集群测试是面向对象软件集成测试的一个步骤。3确认测试的不同:面向对象确认测试不再考虑类之间相互连接的细节。和传统确实认测试一样,面向对象软件确实认测试也集中检查用户可见的动作和用户可识别的输出。为了到处确认测试用例,测试人员应该认真研究动态模型和描述系统行为的脚本,以确定最可能发现用户交互需求错误的情景。不一样:1二者都可以分为4个阶段进行。但传统测试的最小单元是模块,而在面对像环境下的最小的可测试单元是封装了的类或对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论