◆表现 开发的软件不能满足用户要求。 无完整、规范的文档,难以维护。 项目计划不周,进度拖延 软件质量差 ◆原因: 缺乏正确的理论指导,开发人员各行其是 软件规模越来越大,无开发管理经验 软件复杂度越来越高,而开发技术不相适应 缺少先进的开发工具,开发方式落后。 2021/220
2021/2/20 11 ◆表现: • 开发的软件不能满足用户要求。 • 无完整、规范的文档,难以维护。 • 项目计划不周,进度拖延。 • 软件质量差。 ◆原因: • 缺乏正确的理论指导,开发人员各行其是。 • 软件规模越来越大,无开发管理经验。 • 软件复杂度越来越高,而开发技术不相适应。 • 缺少先进的开发工具,开发方式落后
1.2软件工程的有关概念 为了克服软件危机,科学家们从其他产业(如机 械制造、建筑等)的工程化生产得到启示,于1968年 在北大西洋公约组织的学术会上提出了“软件工程” 的概念。工程是对技术(或社会)实体的分析、设计 构造、验证和管理。这里只针对一个实体一计算机软 件 ◆定义根据IEE( The Institute for Electrical and Electronic engineers)的定义: 软件工程是使用系统化的、规范的、可量化的方 法指导软件开发、运行和维护的一门学科,它涉及到 计算杋科学、工程科学、管理科学、数学等领域的综 合性知识及实践的应用,它的目的是为建造高质量的 软件提供一个框架。 2021/220
2021/2/20 12 1.2 软件工程的有关概念 为了克服软件危机,科学家们从其他产业(如机 械制造、建筑等)的工程化生产得到启示,于1968年 在北大西洋公约组织的学术会上提出了“软件工程” 的概念。工程是对技术(或社会)实体的分析、设计、 构造、验证和管理。这里只针对一个实体—计算机软 件。 ◆定义 根据IEEE(The Institute for Electrical and Electronic engineers)的定义: 软件工程是使用系统化的、规范的、可量化的方 法指导软件开发、运行和维护的一门学科,它涉及到 计算机科学、工程科学、管理科学、数学等领域的综 合性知识及实践的应用,它的目的是为建造高质量的 软件提供一个框架
◆软件工程层次图 该图展现了软件工程研究的内容及关注的焦点 工具 过程 质量焦点 软件工程层次图 2021/220
2021/2/20 13 ◆软件工程层次图 该图展现了软件工程研究的内容及关注的焦点
过程:定义了一系列活动 技术方法的采用, 工程产品(模型、文档、数据)的产生, 里程碑( milestone)的建立 质量的保证及变化的管理。 该层构成了软件项目的管理控制的基础 方法:提供了建造软件在技术上“如何做” 方法覆盖了一系列任务:需求分析、设计、编程、 测试和支持(如纠错、适应、增强、预防)。 工具:对过程和方法提供了自动或半自动的支持 2021/220
2021/2/20 14 过程: 定义了一系列活动: 技术方法的采用, 工程产品(模型、文档、数据)的产生, 里程碑(milestone)的建立, 质量的保证及变化的管理。 该层构成了软件项目的管理控制的基础。 方法:提供了建造软件在技术上“如何做” 。 方法覆盖了一系列任务:需求分析、设计、编程、 测试和支持(如纠错、适应、增强、预防)。 工具: 对过程和方法提供了自动或半自动的支持
如果不考虑应用领域、项目规模和复杂性,与软件 工程相关的工作可分为三个一般的阶段 (1)定义阶段集中于“做什么”。搞清楚要处理什么 信息,预期完成什么功能和性能,系统将有什么样的行 为,建立什么样的界面,有什么设计约束,以及建立 个成功系统的确认标准是什么 (2)开发阶段集中于“如何做”。即数据如何被结构 化,功能如何被表示于软件体系结构中,过程细节及界 面如何实现,设计描述如何被翻译成程序语言,如何进 新测试等活动。 (3)支持阶段关注于“变化”。为纠正错误而做的修 改,为适应环境的演化而做的修改,为增强用户的需求 而做的修改以及使软件能被更好的维护而进行的软件再 工程 2021/220
2021/2/20 15 如果不考虑应用领域、项目规模和复杂性,与软件 工程相关的工作可分为三个一般的阶段: ⑴定义阶段 集中于“做什么”。搞清楚要处理什么 信息,预期完成什么功能和性能,系统将有什么样的行 为,建立什么样的界面,有什么设计约束,以及建立一 个成功系统的确认标准是什么。 ⑵开发阶段 集中于“如何做”。即数据如何被结构 化,功能如何被表示于软件体系结构中,过程细节及 界 面如何实现,设计描述如何被翻译成程序语言,如何进 新测试等活动。 ⑶支持阶段 关注于“变化”。为纠正错误而做的修 改,为适应环境的演化而做的修改,为增强用户的需求 而做的修改以及使软件能被更好的维护而进行的软件再 工程