软件工程2014期末复习资料.ppt_第1页
软件工程2014期末复习资料.ppt_第2页
软件工程2014期末复习资料.ppt_第3页
软件工程2014期末复习资料.ppt_第4页
软件工程2014期末复习资料.ppt_第5页
已阅读5页,还剩141页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程复习资料,考试题类型,考试时间:20周星期三下午3点-5点考试地点:黄浩川教教授403考试方法:开卷考试题类型:单选题(20分)填好的问题(20分)简答题(20分)应用分分考试范围程序是根据预先设计的功能和性能要求执行的命令序列。数据是允许程序正常操作信息的数据结构。文档是与程序开发、维护和使用相关的图形材料。软件危机发生在20世纪60年代末。主要说明软件的发展速度远远落后于硬件的发展速度,不能满足日益增长的社会对软件的要求。软件开发周期长,成本高,质量差,维护困难。1.2软件危机和软件工程,软件危机,很多软件项目不能满足客户的要求,很多软件项目超出了预算和日程,软件工程是指导计算机软

2、件开发和维护的工程领域。软件工程是通过使用工程概念、原理、技术和方法开发和维护软件,将通过时间测试验证的正确管理技术与当前获得的最佳技术相结合,经济地开发和有效地维护高质量的软件。1.2软件危机和软件工程,1.3软件工程的目标,软件的质量特性:功能、可靠性、可用性、效率、可维护性和可移植性。功能性实现了软件满足设计规范和满足用户需求的功能。稳定性是指软件在规定的时间和条件下保持正常工作的能力;可用性是指使用软件所需的功能。效率是指用软件实现特定功能所需的计算机资源的有效性。可维护性是指当环境更改或软件操作失败时,努力使其恢复正常运行的程度。可移植性表示软件从一个环境移动到另一个环境时所做的努力

3、程度。1.4软件寿命,概念软件也有发生、诞生、成长、成熟和衰退的生存过程,我们称这个过程为软件寿命或软件寿命。软件生命周期包括三个阶段:软件定义、软件开发和操作维护,每个阶段可以分为多个阶段。1.5软件寿命模型,瀑布模型快速原型模型增量模型螺旋模型分数模型集成过程,瀑布模型,瀑布模型特性阶段之间存在顺序和依赖性。其中包含了双重意义。要等到上一阶段的工作完成后,才能开始下一阶段的工作;上一阶段的输出文件是下一阶段的输入文件。瀑布模型、瀑布模型的优点可能会迫使开发者采用标准化的方法。严格规定了各阶段必须提交的文件。要求每个阶段交付的所有产品都必须经过验证。瀑布模型的缺点是瀑布模型几乎完全取决于书面

4、规格说明,因此最终开发软件产品很可能不能真正满足用户的需要。如果需求规格说明和用户要求之间存在差异,则会出现这种情况。瀑布模型仅适用于项目开始时确定需求的情况。快速原型模型,快速原型模型的优点(1)有助于满足用户的实际需要。(2)原型系统通过与用户的交互验证,因此,规范文档准确地说明了用户的要求。(3)软件产品的开发基本上是按线性顺序进行的。(4)由于规范说明文档正确地说明了用户的要求,因此在开发过程的后续阶段,将发现规范说明文档中的错误,不会进行更大的返工。,快速原型模型、快速原型模型的优点(5)开发人员通过构建原型系统已经学到了很多,因此在设计和编码阶段出错的可能性也很小。因此,自然地减少

5、了在后续步骤中更正上一步骤中出现的错误的可能性。(6)快速原型的突出特征是“快”。(。开发人员应尽快构建原型系统,加快软件开发过程,降低软件开发成本。原型的用途用于了解用户的真正需求,一旦确定了需求,原型就可以丢弃,当然,也可以根据原型进行开发。增量模型、增量构件开发每个增量构件必须实现系统功能,以便使用流模型进行开发,如下所示:增量模型、增量模型的优点(1)可以在短时间内向用户提交一些有用的工作产品。也就是说,用户可以从第一个组件交付之日起执行一些有用的任务。(2)随着产品功能的逐步增加,用户有更多的时间学习和适应新产品,从而减少了全新软件对用户组织的影响。(3)项目失败的风险较低,某些增量

6、组件可能会出现一些问题,但是其他增量组件可以成功地传递给客户。(4)优先级最高的服务首先交付,然后依次合并其他增量组件。因此,最重要的系统服务将接受最多的测试。螺旋模型、完整螺旋模型、螺旋模型、螺旋模型四个活动螺旋中的每个环可以分为四个象限,每个象限表示四个方面的活动。(1)目标设定确定该阶段的目标设定、过程和产品的限制,制定详细的管理计划,确定项目风险,以及与这些风险相关的对策计划。(2)对风险估计和弱化角风险进行详细分析,设想风险弱化阶段。(3)开发和验证评估风险后,选择系统开发模式。(4) 计划评估开发工作,决定是否继续螺旋的下一个周期。如果决定继续,请计划项目下一阶段的工作。螺旋模型、

7、螺旋模型的优点有利于重复使用现有软件,强调可选方案和约束,有助于将软件质量作为软件开发的重要目标。减少因测试或测试不足而产生的风险。在螺旋模型中维护只是模型的另一个周期,因此维护和开发之间没有根本区别。螺旋模型的缺点螺旋模型是以风险为中心的,因此软件开发人员必须有丰富的风险评估经验和这方面的专业知识。否则,将产生实际风险。也就是说,当项目实际上在灾难中进行的时候,开发者可以认为一切正常。分数模型、分数模型是典型的面向对象的生命周期模型。分数这个词反映了重复和无间隙特性。图中表示不同阶段的圆彼此重叠,清楚地表明两个活动之间存在重叠。Booch、Jacobson和Rumbaugh提供的合并流程、合

8、并流程模型。集成流程、集成流程中的工作流在集成过程中有六个核心工作流。业务建模工作流。使用业务用例为业务流程设置文档。需求工作流。目标是说明系统应该做什么,让开发人员构建正确的系统。为此,必须明确系统的功能要求和非功能要求(约束)。分析和设计工作流。其目标是说明如何做。结果是分析模型和设计模型。集成过程,实施工作流。以分层方式组织代码的结构,以组件的形式实现类,对组件进行单元测试,并将组件集成到可执行的系统中。测试工作流。确认物件之间的互动、所有元件均已整合、所有需求均已正确完成,以及错误检查和修正。部署工作流。制作软件的外部版本,打包软件,分发软件,为用户提供帮助和支持。集成过程、集成过程的

9、阶段集成过程包括初始阶段、细化阶段、构建阶段和迁移阶段四个阶段。初期阶段。在初始阶段,将重点放在项目计划和风险评估上,以确定是否值得开发目标信息系统。修剪步骤。具体化阶段关心定义系统的整体框架,包括具体化初始要求(使用)、具体化体系结构、监视风险、确定优先级、具体化业务案例和制定项目管理计划。统一过程,统一过程阶段建设阶段。实施阶段是构建系统,信息系统的第一个操作质量版本以可传送给客户进行测试的版本结束,也称为测试版本。转移阶段。上一阶段包括测试期,该测试期终止于完整的系统发布,目的是确保信息系统确实满足客户的需要。内容:软件工程方法面向对象的概念和开发方法敏捷软件开发方法集成建模语言UML介

10、绍软件工具概述UML建模工具RationalRose重点:面向对象的概念和开发方法,第二章软件工程方法和工具,2.1软件工程方法概述,结构化方法也称为生命周期方法或结构化范例。划分软件生命周期的各个阶段,使用结构化技术完成每个阶段的工作。特点:(1)强调自上而下完成软件开发的所有阶段。(2)不够灵活,不能适应需求。(3)结构方法具有行为导向性或数据导向性,缺乏将两者有机结合的机制。2.1软件工程方法概述,面向对象的方法是将数据和数据的操作紧密结合在一起的方法。面向对象方法的出发点和基本原则是尽量模拟人类习惯的思维方式,使软件开发方法和过程尽可能接近人类理解问题和解决问题的方法和过程。软件开发过

11、程是一个反复多次的进化过程。概念和表示中面向对象方法的一致性确保了各种开发活动之间的平稳过渡。面向对象的方法对于大型、复杂、交互能力更强的系统很有用。2.1软件工程方法概述,公式方法公式方法是基于公式数学转换的软件开发方法,该方法将系统的规范说明转换为可执行程序。流程的具体说明如图所示。2.2面向对象的概念和开发方法,Coad和Yourdon提供了“面向对象=对象类继承消息通信”的定义。如果一个系统是使用这四个概念设计和实现的,则可以认为该系统是面向对象的。面向对象程序的基本构造单元是类。程序在运行时由类生成对象。在对象之间发送消息以进行通信,并相互协作以完成相应的功能。对象是面向对象程序的核

12、心。对象、对象是抽象图元,包含反映系统存储和/或与信息交互的能力的实际对象特性。对象是某些属性和服务的包。例如,Student对象中的数据包括名字、性别、出生日期、家庭地址和电话号码,您可以为这些数据值分配和更改值。类和包,以及类。可以将现实生活中的对象抽象化,映射到程序中的对象。对象在程序中通过称为类(Class)的抽象数据类型进行描述。要在计算机上创建对象,必须首先定义对象的定义,即对象所属的类。例如,您可以将学生物件所属的类别定义为Student。类的图形表示如图所示。类和包,以及包。面向对象的软件包特性与抽象特性密切相关。封装是利用抽象数据类型封装数据和基于数据的操作的信息隐藏技术。使

13、用者只能检视物件的封装介面资讯,物件的内部详细资讯对使用者是隐藏的。软件包定义了明确的边界,(1)所有对象的内部信息均限制在此边界内。(2)界面,即对象向外部世界提供的方式,可以与外部世界中的对象进行交互。(3)受保护的内部实现,即软件对象功能的实施详细信息,不能在类外部访问。封装通常规定程序如何使用对象中的数据,并控制用户对类的修改和数据访问。大多数情况下,禁止直接访问对象上的数据,只能通过接口访问对象。继承、继承。继承是将类链接在一起的分层模型,它方便了类的重用,并提供了明确表示不同类之间共性的方法。新类从现有类派生的过程,称为类继承。公共类称为超类、超类、祖先(ancestor)或基类(

14、superclass),继承的类称为子类、后代或导出类(derivedclass)。多态性与服务请求的对象的行为不同,这称为多态。在运行时实例化类,然后调用与实例化对象相对应的方法。这称为动态绑定、后期绑定或运行时绑定。因此,如果方法的调用在编译时确定,则称为静态绑定、前期绑定或编译时绑定。多态在子类中作为复盖父类的方法实现。不同类别的物件可以回应同名的讯息(方法),执行特定的功能,但特定的实作方法可以不同。消息通信是一个对象与另一个对象通信的单位,是要求一个对象执行类中定义的操作之一的规范说明。发送给对象的消息定义方法名称和参数表(可以为空),并指定对象。当一个对象收到消息时,将调用消息中指

15、定的方法,并将表单参数与参数表中的相应值相结合。(1)集成标准(2)面向对象(3)可视化,强大的表示功能(4)与过程无关的功能(5)有很多面向对象的建模语言,可以轻松确定使用和编程语言之间的关系,目前最常用的是统一建模语言(UML) 软件需求分析阶段的工作、软件需求分析阶段的工作可以分为获取需求、分析需求、定义需求和验证需求的四个阶段,如下图所示。软件需求分析阶段的工作阶段、3.2结构分析方法、结构分析模型结构分析方法是建立如图所示的分析模型的建模技术。3.2.1功能建模,概念功能建模的想法是抽象模型的概念,按照软件内部数据传递、转换的关系逐层分解,直到找到满足功能要求的所有可实现软件。功能模

16、型用数据流图描述。3.2.1功能建模,数据流程图的基本图形符号,3.2.1功能建模,数据流程图的层次图,3.2.1功能建模,注册系统的环境图,3.2.1功能建模,注册系统的层次数据流程图,绘制数据流程图的一些注意事项:数据流,处理,数据存储库,以及绘制数据流而不是控制流。每个数据流的输入或输出是加工。一个加工的输入数据流不能与输出数据流同名,即使它们的组件相同。您可以使多个数据流流向另一个加工,也可以使两个相同的数据流流向一个加工的两个不同加工。平衡父图表和子图表。也就是说,在父图中加工的输入输出数据流与相应子图中的输入输出数据流在数据和名称方面必须相同。在自顶向下分解过程中,如果数据存储首次出现时仅与一个加工相关,则不应绘制此数据存储,而应将其用作此加工的内部文件。保持数据保留。一个加工的所有输出数据流中的数据必须是可直接从该加工的输入数据流或通过该加工生成的数据。每个加工都必须有输入数据流和输出数据流。在整个DFD系列中,数据存储必须同时具有读写数据流。编号每个数据处理链接和每个数据流图都进行了编号。根据逐级分解原则,父项和子项图形的编号必须一致,常规子项图形的图号是父项图形的相应加工编号。同样,在层次结构数据流图中,如果以下层次结构图中的数据流或数据

温馨提示

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

评论

0/150

提交评论