D-1、软件工程_总复习_第1页
D-1、软件工程_总复习_第2页
D-1、软件工程_总复习_第3页
D-1、软件工程_总复习_第4页
D-1、软件工程_总复习_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、2011.06.20 SOFTWARE ENGINEERING福州大学福州大学软件学院软件学院软件工程系软件工程系王灿辉王灿辉2011.06.20 SOFTWARE ENGINEERING软件工程主要讲述软件开发的道理软件工程主要讲述软件开发的道理,基本上是软件,基本上是软件实践者的成功经验和失败教训的总结。实践者的成功经验和失败教训的总结。软件工程的观念、方法、策略和规范都是朴实无华软件工程的观念、方法、策略和规范都是朴实无华的,平凡之人皆可领会,的,平凡之人皆可领会,关键在于运用关键在于运用。我们不可以把软件工程方法看成是诸葛亮的锦囊妙计我们不可以把软件工程方法看成是诸葛亮的锦囊妙计在出了

2、问题后才打开看看,而应该事先掌握,预料将在出了问题后才打开看看,而应该事先掌握,预料将要出现的问题,控制每个实践环节,并防患于未然。要出现的问题,控制每个实践环节,并防患于未然。研究软件工程永远做不到理论家那么潇洒:定理证研究软件工程永远做不到理论家那么潇洒:定理证明了,就完事。明了,就完事。2011.06.20 SOFTWARE ENGINEERING人们都有自己的世界观和方法论,能自人们都有自己的世界观和方法论,能自然而然地运用于生活和工作中。同样,软然而然地运用于生活和工作中。同样,软件人员脑子里的件人员脑子里的软件工程观念会无形地支软件工程观念会无形地支配其怎么去做事情配其怎么去做事情

3、。软件工程三十多年的。软件工程三十多年的发展,已经积累了相当多的方法,但这些发展,已经积累了相当多的方法,但这些方法不是严密的理论方法不是严密的理论。软件人员不应该教。软件人员不应该教条地套用方法,更重要的是学会条地套用方法,更重要的是学会“选择合选择合适的方法适的方法”和和“产生新方法产生新方法”。2011.06.20 SOFTWARE ENGINEERING 软件工程概述、软件过程模型软件工程概述、软件过程模型 系统工程、软件项目管理系统工程、软件项目管理&风险管理风险管理 软件需求分析、软件软件需求分析、软件(概要、详细概要、详细)设计设计、编程、编程、软件测试和纠错软件测试和纠错 软件

4、维护、变更管理、软件度量、软件质软件维护、变更管理、软件度量、软件质量和软件质量保证、敏捷软件工程量和软件质量保证、敏捷软件工程 面向对象方法面向对象方法、软件复用、软件开发工具、软件复用、软件开发工具2011.06.20 SOFTWARE ENGINEERING Evolution(进展进展) of Software Description(定义定义) of Software Software Quality(软件质量软件质量) Software Characteristics(软件特性软件特性) Software applications(软件应用软件应用) Software Crisis

5、(现象、原因、解决方法等现象、原因、解决方法等) Software Myths(神话神话)2011.06.20 SOFTWARE ENGINEERING Software engineering(软件工程软件工程) software life cycle(软件生存周期软件生存周期) 生存周期模型生存周期模型(life-cycle model) Process、Methods、Tools(CASE) A Generic View of Software engineering Software Engineering Paradigm (Software Process Model)2011.0

6、6.20 SOFTWARE ENGINEERINGThe Linear Sequential Model(waterfall)The Loop Model(循环模型循环模型)The Prototyping Model(原型法原型法)The RAD Model(快速应用开发快速应用开发)The Incremental Model(增量开发模型增量开发模型)2011.06.20 SOFTWARE ENGINEERINGThe Spiral Model(螺旋模型螺旋模型)The Formal Methods Model(形式化形式化)Fourth Generation Technique(第第4代代

7、)The Fountain Model(喷泉模型喷泉模型)RUP(Rational Unified Process)intelligent model(智能模型智能模型 )2011.06.20 SOFTWARE ENGINEERING System engineering System Elements Product Engineering(Identify the customers need, Feasibility Study, economic and technical analysis allocation, Establish cost and schedule constra

8、ints, Create a system definition )2011.06.20 SOFTWARE ENGINEERING Project Planning Objectives Software Project Planning(1)Software Scope(2) Estimation of Resources(3)Cost and Effort Estimation(4)Software Project Scheduling 风险分析、管理和风险分析、管理和RMMM计划计划2011.06.20 SOFTWARE ENGINEERING1.1.需求工程概述需求工程概述2.2.需求

9、获取需求获取3.3.需求分析需求分析& &建模建模DFDDFD、ERDERD、UMLUML4.4.需求规格说明需求规格说明& &需求验证需求验证5.5.需求管理需求管理2011.06.20 SOFTWARE ENGINEERING软件设计概述软件设计概述软件设计相关的概念软件设计相关的概念体系结构设计体系结构设计数据设计数据设计接口设计接口设计过程过程(构件构件)设计设计设计规格说明设计规格说明&验证验证2011.06.20 SOFTWARE ENGINEERING1)Abstraction(抽象抽象)、Refinement(求精求精)2)Modularity(模块化模块化)3)Informa

10、tion Hiding(信息隐藏信息隐藏)4)Function Independence(功能独立功能独立)5)重构:教材重构:教材P1552011.06.20 SOFTWARE ENGINEERING Software design :(1)data design(2)architectural design (3)interface design(4)procedural design 正式技术评审(正式技术评审(FTR)2011.06.20 SOFTWARE ENGINEERING 编程语言编程语言 编程原则编程原则 编程风格编程风格(技巧的使用、变量命名、注解、技巧的使用、变量命名、注

11、解、代码缩进等代码缩进等) 代码效率代码效率 保护性编程保护性编程 冗余编程冗余编程2011.06.20 SOFTWARE ENGINEERING(狭义狭义)测试概述测试概述测试方法测试方法&技术技术测试策略测试策略(步骤步骤)软件调试软件调试&纠错纠错测试文档测试文档2011.06.20 SOFTWARE ENGINEERING1. Testing is a process of executing a program with the intent of finding an error.2. A good test case is one that has a high proba-bi

12、lity of finding an as-yet undiscovered error.3. A successful test is one that uncovers an as-yet undiscovered error. Testing cannot show the absence of defects,it can only show that software errors are present.2011.06.20 SOFTWARE ENGINEERING测试测试可靠性可靠性模型模型纠错纠错评价评价软件配置测试配置测试结果错误改正预期的结果错误率数据预测的可靠性 测试必须

13、按照软件需求和设计阶段所制订的测试计测试必须按照软件需求和设计阶段所制订的测试计划进行,其结果以划进行,其结果以“测试分析报告测试分析报告”的形式提交。的形式提交。回归测试测试计划文档的一部分2011.06.20 SOFTWARE ENGINEERING测试方法和测试方法和测试技术测试技术静态技术静态技术动态技术动态技术桌前检查桌前检查代码会审代码会审黑盒测试黑盒测试步行检查步行检查白盒测试白盒测试路径测试路径测试条件测试条件测试数据测试数据测试循环测试循环测试等价类划分等价类划分边界值分析边界值分析因果图法因果图法2011.06.20 SOFTWARE ENGINEERING模块测试模块测试

14、确认测试确认测试组装测试组装测试模块模块测试模块测试模块测试模块测试模块模块系统测试系统测试设计信息经装配好 的软件测试过的模块软件需求确认过的软件其他系统元素可运行的系统软件试运行、验收2011.06.20 SOFTWARE ENGINEERING系统定义系统定义需求分析需求分析详细设计详细设计组装测试组装测试模块测试模块测试确认测试确认测试系统测试系统测试验收测试验收测试软件计划软件计划概要设计概要设计编码编码研制是一个自顶向下逐步细化的过程,研制是一个自顶向下逐步细化的过程,而测试则是按相反顺序的集成过程。而测试则是按相反顺序的集成过程。V模型模型2011.06.20 SOFTWARE

15、ENGINEERING单元测试单元测试集成测试集成测试有效性测试有效性测试系统测试系统测试培训和试运行培训和试运行接收测试接收测试运行和维护测试测试测试测试正式发布软件正式发布软件软件改版2011.06.20 SOFTWARE ENGINEERING软件开发软件开发软件维护软件维护 软件维护是软件软件维护是软件生命周期中历时生命周期中历时最长,人力和资最长,人力和资源耗费最多的一源耗费最多的一个阶段,也是研个阶段,也是研究最少的一个阶究最少的一个阶段。段。2011.06.20 SOFTWARE ENGINEERING完善性维护完善性维护适应性维护适应性维护校正性维护校正性维护其它维护其它维护软

16、件维护类型软件维护类型2011.06.20 SOFTWARE ENGINEERING 如果希望提高已有软件的质量并且提高商如果希望提高已有软件的质量并且提高商业竞争力,却又无法靠维护来实现,只好业竞争力,却又无法靠维护来实现,只好对已有软件进行全部或者部分的改造,这对已有软件进行全部或者部分的改造,这种活动叫再生工程(种活动叫再生工程(ReengineeringReengineering)。 再生工程(再生工程(Reengineering)的三种类型:)的三种类型:重构(重构(Restructure)、)、逆向工程(逆向工程(Reverse Engineering)和)和前向工程(前向工程(F

17、orward Engineering)。)。 2011.06.20 SOFTWARE ENGINEERING 软件配置管理软件配置管理(SCM)(SCM)是一组在计算机软件的整是一组在计算机软件的整个生存周期内管理变更的活动,可以把个生存周期内管理变更的活动,可以把SCMSCM看看作是应用于整个软件过程的软件质量保证活作是应用于整个软件过程的软件质量保证活动。动。SCMSCM活动的目标:标识变更;控制变更;活动的目标:标识变更;控制变更;保证正确地实现变更;向利害相关人员报告保证正确地实现变更;向利害相关人员报告变更。基线:已经通过正式评审和批准的规变更。基线:已经通过正式评审和批准的规格说明

18、或产品,它可以作为进一步开发的基格说明或产品,它可以作为进一步开发的基础,并且只有通过正式的变更控制规程才能础,并且只有通过正式的变更控制规程才能修改它。基线是软件开发中的里程碑。修改它。基线是软件开发中的里程碑。2011.06.20 SOFTWARE ENGINEERING与与明确定义的功能和性能需求明确定义的功能和性能需求的一致性的一致性与明确成文的与明确成文的开发标准开发标准的一致性的一致性与所有专业开发的软件所期望的与所有专业开发的软件所期望的隐含的隐含的特性(如:健壮性、可维护性、良好的特性(如:健壮性、可维护性、良好的界面风格、可移植性等)界面风格、可移植性等)的一致性的一致性20

19、11.06.20 SOFTWARE ENGINEERING 质量保证策略质量保证策略 软件质量保证活动软件质量保证活动 软件能力成熟度模型软件能力成熟度模型CMM2011.06.20 SOFTWARE ENGINEERING 敏捷软件开发宣言:敏捷软件开发宣言:1 1、个体和交互胜过过程和工具、个体和交互胜过过程和工具2 2、可工作软件胜过宽泛的文档、可工作软件胜过宽泛的文档3 3、客户合作胜过合同谈判、客户合作胜过合同谈判4 4、响应变化胜过遵循计划、响应变化胜过遵循计划即,虽说上述右边的各项很有价值,但即,虽说上述右边的各项很有价值,但左边的各项更有价值。左边的各项更有价值。2011.06

20、.20 SOFTWARE ENGINEERING 极限编程(极限编程(XPXP) 自适应软件开发自适应软件开发 动态系统开发方法动态系统开发方法 ScrumScrum CrystalCrystal 特征驱动开发特征驱动开发2011.06.20 SOFTWARE ENGINEERING 面向对象的软件开发方法面向对象的软件开发方法OOSDOOSD概述概述 面向对象的基本概念面向对象的基本概念( (抽象、对象、抽象、对象、类、继承、封装、消息、多态性、类、继承、封装、消息、多态性、重载、动态绑定、永久对象、结构重载、动态绑定、永久对象、结构与连接与连接) ) OOAOOA和和OODOOD基本概念基本概念2011.06.20 SOFTWARE ENGINEERING 软构件软构件(Software Component)(Software Component) 软件复用的定义及其目的等软件复用的定义及其目的等 构件库,基于构件的开发过程、特构件库,基于构件的开发过程、特点、风险点、风险 几种构件技术规范几种构件技术规范2011.0

温馨提示

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

评论

0/150

提交评论