资源描述
福州大学 ·软件学院 ·软件工程系
王灿辉
• 软件工程主要讲述软件开发的道理 ,基本上是软件实 践者的成功经验和失败教训的总结。
• 软件工程的观念、方法、策略和规范都是朴实无华 的,平凡之人皆可领会, 关键在于运用 。
• 我们不可以把软件工程方法看成是诸葛亮的锦囊妙计─ 在出了问题后才打开看看,而应该事先掌握,预料将要 出现的问题,控制每个实践环节,并防患于未然。 • 研究软件工程永远做不到理论家那么潇洒:定理证明 了,就完事。
人们都有自己的世界观和方法论,能自 然而然地运用于生活和工作中。同样,软 件人员脑子里的 软件工程观念会无形地支 配其怎么去做事情 。软件工程三十多年的 发展,已经积累了相当多的方法,但这些 方法不是严密的理论 。软件人员不应该教 条地套用方法,更重要的是学会 “ 选择合 适的方法 ” 和 “ 产生新方法 ” 。
• 软件工程概述、软件过程模型
• 系统工程、软件项目管理 &风险管理 • 软件需求分析、软件 (概要、详细 设 计 、编程、 软件测试和纠错
• 软件维护、变更管理、软件度量、软件质 量和软件质量保证、敏捷软件工程
• 面向对象方法 、软件复用、软件开发工具
• 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 customer’s 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、UML
4.需求规格说明&需求验证
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
展开阅读全文