D-1、软件工程总复习剖析(共10页).doc
精选优质文档-倾情为你奉上福州大学 ·软件学院 ·软件工程系 王灿辉 软件工程主要讲述软件开发的道理 ,基本上是软件实 践者的成功经验和失败教训的总结。 软件工程的观念、方法、策略和规范都是朴实无华 的,平凡之人皆可领会, 关键在于运用 。 我们不可以把软件工程方法看成是诸葛亮的锦囊妙计 在出了问题后才打开看看,而应该事先掌握,预料将要 出现的问题,控制每个实践环节,并防患于未然。 研究软件工程永远做不到理论家那么潇洒:定理证明 了,就完事。人们都有自己的世界观和方法论,能自 然而然地运用于生活和工作中。同样,软 件人员脑子里的 软件工程观念会无形地支 配其怎么去做事情 。软件工程三十多年的 发展,已经积累了相当多的方法,但这些 方法不是严密的理论 。软件人员不应该教 条地套用方法,更重要的是学会 “ 选择合 适的方法 ” 和 “ 产生新方法 ” 。 软件工程概述、软件过程模型 系统工程、软件项目管理 &风险管理 软件需求分析、软件 (概要、详细 设 计 、编程、 软件测试和纠错 软件维护、变更管理、软件度量、软件质 量和软件质量保证、敏捷软件工程 面向对象方法 、软件复用、软件开发工具 Evolution(进展 of Software Description(定义 of Software Software 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 Software 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 Generation 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 constraints, Create a system definition Project Planning Objectives Software Project Planning(1Software Scope(2 Estimation of Resources(3Cost and Effort Estimation(4Software Project Scheduling 风险分析、管理和 RMMM 计划1.需求工程概述2.需求获取3.需求分析&建模 DFD、ERD、UML4.需求规格说明&需求验证5.需求管理软件设计概述 软件设计相关的概念 体系结构设计 数据设计接口设计过程 (构件 设计 设计规格说明 &验证1 Abstraction(抽象 、 Refinement(求精 2 Modularity(模块化 3 Information Hiding(信息隐藏 4 Function Independence(功能独立 5 重构:教材 P155 Software design :(1data design(2architectural design(3interface design(4procedural design 正式技术评审(FTR 编程语言编程原则编程风格 (技巧的使用、变量命名、注 解、代码缩进等 代码效率保护性编程冗余编程(狭义 测试概述 测试方法 &技术 测试策略 (步骤 软件调试 &纠错 测试文档1. 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-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. 如果希望提高已有软件的质量并且提高商 业竞争力,却又无法靠维护来实现,只好 对已有软件进行全部或者部分的改造,这 种活动叫再生工程(Reengineering 。 再生工程(Reengineering 的三种类型:重构(Restructure 、逆向工程(Reverse Engineering和 前向工程(Forward Engineering。 软件配置管理(SCM是一组在计算机软件的整 个生存周期内管理变更的活动,可以把SCM看 作是应用于整个软件过程的软件质量保证活 动。SCM活动的目标:标识变更;控制变更; 保证正确地实现变更;向利害相关人员报告 变更。基线:已经通过正式评审和批准的规 格说明或产品,它可以作为进一步开发的基 础,并且只有通过正式的变更控制规程才能 修改它。基线是软件开发中的里程碑。 与 明确定义的功能和性能需求 的一致性 与明确成文的 开发标准 的一致性 与所有专业开发的软件所期望的 隐含的 特性(如:健壮性、可维护性、良好的 界面风格、可移植性等 的一致性 质量保证策略 软件质量保证活动 软件能力成熟度模型 CMM 敏捷软件开发宣言:1、个体和交互胜过过程和工具2、可工作软件胜过宽泛的文档3、客户合作胜过合同谈判4、响应变化胜过遵循计划即,虽说上述右边的各项很有价值,但 左边的各项更有价值。 极限编程(XP 自适应软件开发 动态系统开发方法 Scrum Crystal 特征驱动开发 面向对象的软件开发方法OOSD概述 面向对象的基本概念(抽象、对象、 类、继承、封装、消息、多态性、 重载、动态绑定、永久对象、结构 与连接 OOA和OOD基本概念 软构件(Software Component 软件复用的定义及其目的等 构件库,基于构件的开发过程、特 点、风险 几种构件技术规范 软件(开发工具 软件开发环境(SDE,也称为软件 工程环境(SEE 计算机辅助软件工程CASE 软件工程无论怎么发展,都不是追 求质量的最优化,而是合理的成本 控制下的提高质量和开发效率,否 则就是误入歧途。不管教科书上的 理论多么美丽诱人,都要由实践来 验证。 软件工程人员有两种:卖代码的,卖代 码加上工程设计思想的。前一种是多 数,第二种永远是少数。在美国这两者 的区别是两万和二十万的区别:前者糊 口都有困难,后者可以买游艇;前者每 天通宵熬夜deliver,他们最大的奢求就 是躺在床上放松一些腰肌,后者可以抽 着雪茄谈哲学,精力充沛地逛party。总复习到此结束! 福州大学·软件学院·软件工程系·王灿辉 2011.06.20 SOFTWARE ENGINEERING 专心-专注-专业