当前位置:首页 > 软件工程
1. 绪论
一.背景:
1. 软件已经成为世界舞台上最重要的技术之一
2. 在有限的时间和资源下开发和维护出高质量的软件依然是我们面临的难题:软件工程为开发及维护高质量的软件产品提供一个工程框架。
二.什么是软件工程?
1. 建立和使用一套合理的工程原则,从而经济地获得可靠的、可以在实际机器上高效运行的软件。----- Fritz Bauer ,NATO会议,1968 2.软件工程是:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。 (2)在(1)中所述方法的研究 。 ----- IEEE,1983
三.软件工程是一种层次化的技术:软件工程体系层次图(P9) 1)质量焦点层:软件工程的根基
1. 支持软件工程的根基就在于对质量的关注,任何工程方法必须以组织对质量的承诺为基础。
2. 质量管理的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。(全面质量管理、 6西格玛理论) 2)过程层:软件工程的基础
1. 过程定义了一组关键过程区域的框架,这些关键过程区域构成了软件项目管理控制的基础。(顺序、产品、管理、里程碑)
2. 软件过程将技术层、工具层结合在一起,使得软件能够被合理地、及时地开发出来。 3)方法层:提供技术解决方案
1. 解决开发软件在技术上需要“如何做”的问题,涵盖了一系列的任务。
2. 软件工程方法依赖于一组基本原则,这些原则涵盖了软件工程的所有技术领域。 ?(沟通、需求分析、设计建模、编程 、测试) 4)工具层:服务于过程和方法
1. 为过程和方法提供自动化或半自动化的支持。
2.当这些工具被集成起来使得一个工具产生的信息可以被另外一个工具使用时,一个支持软件开发的系统就建立了,称为计算机辅助软件工程(CASE)。
可见,软件工程有三个主要研究内容:过程、方法、工具(软件工程三要素) 不同的软件团队对“系统化、规范化、可量化”有不同的定义
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程体系层次的扩展 1. 工具:程序=算法+结构
2. 方法(面向过程、OOP、MDA?) 3. 过程(RUP、XP...)
4. 工程(需求管理、配置管理、文档化?)
1
5. 组织(管理、计划)
软件工程包括技术和管理两方面的内容,是技术和管理密切结合所形成的工程学科。通过计划、组织和控制等一系列活动,合理地配置和使用资源,以达到既定的目标。
2. 过程综述
2.1 软件过程及框架
过程:为实现一个给定目标而进行的一系列运作步骤。
软件过程:开发和维护软件及其相关产品所涉及的一系列活动。
软件过程框架是通过定义若干框架活动,为完整的软件开发过程建立基础。其中,每一个活动均由一组软件工程动作组成,每一个动作均包含一系列相互关联的任务并产生一个工作产品。
通用框架活动(generic activity)(适合绝大多数软件项目) 沟通:交流与协作 策划:制定计划
建模:创建模型和设计 构建:编码和测试
部署:交付、用户评测和反馈
保护性框架活动(umbrella activity)(具有普适性,适合于各个软件过程。) 软件过程跟踪与控制 风险管理 软件质量保证 测量
软件配置管理 技术评审
基于通用框架活动和保护性框架活动,软件过程可以提供一个公用过程框架,在该框架下可以建立一个软件开发的综合计划。
软件过程提供一个公用过程框架,在该框架下可以建立一个软件开发的综合计划。 通用框架活动适用于所有软件项目,而不在乎其规模和复杂性。
构成软件工程动作的任务集合可以依项目需要和团队特点而不同----使得框架活动适应于不同软件项目的特征和项目组的需求。
若干保护性活动独立于任何一个框架活动,且贯穿于整个过程模型之中。
所有的软件过程都可以用公用过程框架来概括。但是,由于软件所需解决的问题、项目特点、开发团队及组织文化的不同,软件过程的适应性调整才是成功的关键。
2.2 过程模式与过程评估
2
过程模式提供了一个模板,一种在软件过程的背景下,统一描述问题解决方案的方法。 Ambler的过程模式模板(模式名称,目的,类型,启动条件,问题、解决方法,结束条件,相关模式、已知应用实例,模式名称,目的,类型,启动条件,问题、解决方法,结束条件,相关模式、已知应用实例)
根据抽象层次不同,过程模式有三种类型:(逐层细化) 阶段模式:描述完整的软件过程或软件过程阶段 步骤模式:描述过程框架活动 任务模式:描述工作任务
过程模式提供了一种有效的机制描述各种软件过程。 过程模式可以复用
建立了过程模式就可以构建过程模型
过程模型需要经过评估以确定是否满足过程标准要求。
过程评估方法
用于组织内部过程改进的CMM评估 用于过程改进的标准CMMI评估 SPICE(ISO/IEC 15504) ISO9001-2000
过程评估的作用:软件过程改进和组织能力确定
3
共分享92篇相关文档