《软件工程总复习(2)》由会员分享,可在线阅读,更多相关《软件工程总复习(2)(36页珍藏版)》请在金锄头文库上搜索。
1、福州大学软件学院软件工程系总复习总复习王灿辉软件工程主要讲述软件开发的道理,基本上是软件 实践者的成功经验和失败教训的总结。 软件工程的观念、方法、策略和规范都是朴实无华 的,平凡之人皆可领会,关键在于运用。 我们不可以把软件工程方法看成是诸葛亮的锦囊妙计 在出了问题后才打开看看,而应该事先掌握,预料将 要出现的问题,控制每个实践环节,并防患于未然。 研究软件工程永远做不到理论家那么潇洒:定理证 明了,就完事。Software EngineeringSoftware Engineering (软件工程)软件工程)软件工程软件工程 人们都有自己的世界观和方法论,能自 然而然地运用于生活和工作中。
2、同样,软 件人员脑子里的软件工程观念会无形地支 配其怎么去做事情。软件工程三十多年的 发展,已经积累了相当多的方法,但这些 方法不是严密的理论。软件人员不应该教 条地套用方法,更重要的是学会“选择合 适的方法”和“产生新方法”。 软件工程概述、软件过程模型 系统工程、软件项目管理&风险管理 软件需求分析、软件(概要、详细)设计 、编程、软件测试和纠错 软件维护、变更管理、软件度量、软件质 量和软件质量保证、敏捷软件工程 面向对象方法、软件复用、软件开发工具授课内容授课内容 Evolution(进展) of Software Description(定义) of Software Softwar
3、e Quality(软件质量) Software Characteristics(软件特性) Software applications(软件应用) Software Crisis(现象、原因、解决方法等) Software Myths(神话)第一章:导论第一章:导论& &过程模型过程模型 Software engineering(软件工程) software life cycle(软件生存周期) 生存周期模型(life-cycle model) Process、Methods、Tools(CASE) A Generic View of Software engineering Softwar
4、e Engineering Paradigm (Software Process Model)第一章:导论第一章:导论& &过程模型过程模型The Linear Sequential Model(waterfall) The Loop Model(循环模型) The Prototyping Model(原型法) The RAD Model(快速应用开发) The Incremental Model(增量开发模型)第一章:导论第一章:导论& &过程模型过程模型The Spiral Model(螺旋模型) The Formal Methods Model(形式化) Fourth Generatio
5、n Technique(第4代) The Fountain Model(喷泉模型) RUP(Rational Unified Process) intelligent model(智能模型 )第一章:导论第一章:导论& &过程模型过程模型 System engineering System Elements Product Engineering(Identify the customers need, Feasibility Study, economic and technical analysis allocation, Establish cost and schedule const
6、raints, Create a system definition )第二章:系统工程第二章:系统工程 Project Planning Objectives Software Project Planning (1)Software Scope (2) Estimation of Resources (3)Cost and Effort Estimation (4)Software Project Scheduling 风险分析、管理和RMMM计划第三章:软件项目计划第三章:软件项目计划第四章:软件需求分析第四章:软件需求分析1.需求工程概述 2.需求获取 3.需求分析&建模DFD、ERD
7、、UML 4.需求规格说明&需求验证 5.需求管理软件设计概述 软件设计相关的概念 体系结构设计 数据设计 接口设计 过程(构件)设计 设计规格说明&验证第五章:软件设计第五章:软件设计第五章:软件设计第五章:软件设计 -软件设计概念和原则软件设计概念和原则1)Abstraction(抽象)、Refinement(求精) 2)Modularity(模块化) 3)Information Hiding(信息隐藏) 4)Function Independence(功能独立) 5)重构:教材P155第五章:软件设计第五章:软件设计 Software design : (1)data design (2
8、)architectural design (3)interface design (4)procedural design 正式技术评审(FTR)第六章:编程第六章:编程 编程语言 编程原则 编程风格(技巧的使用、变量命名、注解 、代码缩进等) 代码效率 保护性编程 冗余编程第七章:软件测试第七章:软件测试(狭义)测试概述 测试方法&技术 测试策略(步骤) 软件调试&纠错测试文档第七章:软件测试第七章:软件测试- -目标目标1. Testing is a process of executing a program with the intent of finding an error. 2
9、. A good test case is one that has a high proba- bility 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.第七章:软件测试第七章:软件测试测试可靠性 模型纠错评价软件配置测试配置测
10、试结果错误 改正预期的结果错误率数据预测的可靠性 测试必须按照软件需求和设计阶段所制订的测试计 划进行,其结果以“测试分析报告”的形式提交。回归测试测试计划文 档的一部分第七章:软件测试第七章:软件测试测试方法和 测试技术静态技术动态技术桌前检查代码会审黑盒测试步行检查白盒测试路径测试条件测试数据测试循环测试等价类划分边界值分析因果图法第七章:软件测试第七章:软件测试模块测试确认测试组装测试模块模块测试模块测试模块模块系统测试设计信息经装配好 的软件测试过 的模块软件需求确认过 的软件其他系 统元素可运行 的系统软件试运行、验收第七章:软件测试第七章:软件测试系统定义需求分析详细设计组装测试模
11、块测试确认测试系统测试验收测试软件计划概要设计编码研制是一个自顶向下逐步细化的过程, 而测试则是按相反顺序的集成过程。V模型测试步骤测试步骤单元测试集成测试有效性测试系统测试培训和试运行接收测试运行和维护测试测试正式发布软件软件改版第七章:软件测试第七章:软件测试第八章:软件维护等第八章:软件维护等 软件维护是软件 生命周期中历时 最长,人力和资 源耗费最多的一 个阶段,也是研 究最少的一个阶 段。第八章:软件维护等第八章:软件维护等软件维护类型 如果希望提高已有软件的质量并且提高商 业竞争力,却又无法靠维护来实现,只好 对已有软件进行全部或者部分的改造,这 种活动叫再生工程(Reengine
12、ering)。 再生工程(Reengineering)的三种类型: 重构(Restructure)、 逆向工程(Reverse Engineering)和 前向工程(Forward Engineering)。 第八章:再生工程第八章:再生工程第八章:变更管理第八章:变更管理 软件配置管理(SCM)是一组在计算机软件的整 个生存周期内管理变更的活动,可以把SCM看 作是应用于整个软件过程的软件质量保证活 动。SCM活动的目标:标识变更;控制变更; 保证正确地实现变更;向利害相关人员报告 变更。基线:已经通过正式评审和批准的规 格说明或产品,它可以作为进一步开发的基 础,并且只有通过正式的变更控制
13、规程才能 修改它。基线是软件开发中的里程碑。第八章:软件质量第八章:软件质量与明确定义的功能和性能需求的一致性与明确成文的开发标准的一致性与所有专业开发的软件所期望的隐含的特性(如:健壮性、可维护性、良好的界面风格、可移植性等)的一致性第八章:软件质量保证与第八章:软件质量保证与CMMCMM 质量保证策略 软件质量保证活动 软件能力成熟度模型CMM第八章:敏捷软件工程第八章:敏捷软件工程 敏捷软件开发宣言: 1、个体和交互胜过过程和工具 2、可工作软件胜过宽泛的文档 3、客户合作胜过合同谈判 4、响应变化胜过遵循计划 即,虽说上述右边的各项很有价值,但 左边的各项更有价值。第八章:敏捷过程模型
14、第八章:敏捷过程模型 极限编程(XP) 自适应软件开发 动态系统开发方法 Scrum Crystal 特征驱动开发第九章:面向对象方法等第九章:面向对象方法等 面向对象的软件开发方法OOSD概述 面向对象的基本概念(抽象、对象、 类、继承、封装、消息、多态性、 重载、动态绑定、永久对象、结构 与连接) OOA和OOD基本概念第九章:软件复用第九章:软件复用 软构件(Software Component) 软件复用的定义及其目的等 构件库,基于构件的开发过程、特点、风险 几种构件技术规范第九章:软件工具和集成化环境第九章:软件工具和集成化环境 软件(开发)工具 软件开发环境(SDE),也称为软件
15、工程环境(SEE) 计算机辅助软件工程CASE一些观点一些观点 软件工程无论怎么发展,都不是追 求质量的最优化,而是合理的成本 控制下的提高质量和开发效率,否 则就是误入歧途。不管教科书上的 理论多么美丽诱人,都要由实践来 验证。一些观点一些观点 软件工程人员有两种:卖代码的,卖代 码加上工程设计思想的。前一种是多数 ,第二种永远是少数。在美国这两者的 区别是两万和二十万的区别:前者糊口 都有困难,后者可以买游艇;前者每天 通宵熬夜deliver,他们最大的奢求就 是躺在床上放松一些腰肌,后者可以抽 着雪茄谈哲学,精力充沛地逛party。总复习到此结束!总复习到此结束!福州大学软件学院软件工程系王灿辉