(01)软件工程介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2016年7月5日星期二 24 12
本讲主要内容
软件危机 软件工程 软件生命周期 软件过程
2016年7月5日星期二
24
13
什么软件危机?
“软件危机”是指计算机软件的“开发”和“维护”过 程中所遇到的一系列“严重问题”。这些问题决不仅仅是不 能正常运行的软件才具有的,实际上,几乎“所有软件”都 不同程度地存在这些问题。 “软件危机”包含两方面的问题: 如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。
能学习新模型、新技术和即将出现的技术。
2016年7月5日星期二 24 9
SWEBOK2004-IEEE工程教育基本要素
系统观点:熟悉系统设计和构造分析过程。 知识的深度和广度:知识面要宽,具体领域方向能够深入。 设计经验:参与设计活动,具有项目(工程)经验。 工具使用:能够使用计算机软、硬件工具,分析和解决实际 问题。 职业训练:了解职业(行业)需要,具有“产品”(软件、 系统、行业和应用服务等)意识。 交流技巧:能够以合适的形式(书面、口头、可视化等) 进行交流和沟通。
————————————————————————————————————————————————————
计算机理论 计算机软件 计算机体系结构 计算机硬件 计算机应用
24
计算机软件与理论 081202 计算机系统结构 081201
计算机应用技术 081203
6
2016年7月5日星期二
1993,IEEE:“软件工程是:① 把系统的、规范的、可 度量的途径应用于软件开发、运行和维护过程,也就是把工 程应用于软件;② 研究①中提到的途径。”
——软件生命周期
——软件工程方法学
2016年7月5日星期二 24 18
软件生命周期
软件定义 问题定义:要解决的问题是什么? —总体需求 可行性研究:能否、值得否解决? —关键分析 需求分析:目标系统必需做什么?(规格说明书)
软件工程管理
—软件配置管理、软件过程技术、软件项目管理、软件度量方法 与技术等
软件服务工程
—软件服务的理论、方法、技术与应用,软件工程过程服务、面 向服务的计算与服务工程
2016年7月5日星期二 24 8
SE2004-软件工程学生毕业标准
掌握在进行开发实践中所必须的软件工程知识和技能; 能够独立或在小组中开发高质量的软件; 在受到“成本、时间、知识、现有系统和现有组织”的限制 环境中,能够进行适当的权衡; 能够运用软件工程的方法,结合“伦理、社会、法律和经济” 等规范进行一个或多个领域的设计; 有理解和应用软件工程必需的当前理论、模型和技术的能力; 具有与人沟通的技能,有效的工作习惯和领导及通信能力;
软件开发 总体设计:大概怎样实现? 详细设计:具体怎样实现? 编码:按详细设计编写程序代码 单元测试:模块测试 综合测试:集成测试-按设计;验收测试-按需求 软件维护
2016年7月5日星期二 24 19
软件过程(如何进行)
为了获得高质量软件所需要完成的一系列任务的框架。 who、when、what、how
第四篇、软件工程的新思想(2讲) 第十五讲、迭代化开发 第十六讲、面向服务的软件体系结构
2016年7月5日星期二 24 5
计算机科学与技术(一级学科)
学科门类:哲经法教-文史理工(08) -农医军管+艺 学科大类(一级学科):计算机科学与技术(0812) 专业(二级学科):计算机软件与理论(081202)
2016年7月5日星期二
24
14
软件危机的表象
对软件开发成本和进度的估计常常很不准确;
用户对“已完成的”软件系统不满意的现象经常发生; 软件产品的质量往往靠不住; 软件常常是不可维护的; 软件通常没有适当的文档资料; 软件成本在计算机系统总成本中所占的比例逐年上升; 软件开发生产率提高的速度,远远跟不上计算机应用普 及深入的趋势。
计算机软件与理论(二级学科)
程序设计语言(工具) —程序员(标准编码)参与编码设计核心程序员 数据结构(操作对象的存在形式)数据库 —程序员(数据操作)参与数据设计DBA 人机交互(界面构成元素;如何布局) —程序员(交互操作)参与界面设计 程序设计方法论(经验规范) —高级程序员 软件工程(从管理角度控制、优化软件开发过程) —系统分析员
Leabharlann Baidu
公路路面施工质量动态实施监控
问题的提出:
中国公路设计寿命15年,国外有30、50年的“永久性” 公路。
据调查,中国公路5-8年出现结构性破损。原因有分歧: 使用者认为公路质量不行;建设者认为是超载造成的。 一方面,交通部出台了《公路沥青路面施工技术规范》 (2005);另一方面,治理超载。
如何分清责任?
2016年7月5日星期二 24 7
软件工程(一级学科0835)
软件工程理论
—软件工程形式化方法、软件自动生成与演化、软件建模分析与 验证、软件行为学
软件工程技术
—需求工程、软件方法学、软件规范语言、软件体系结构、软件测 试与质量保证、软件再工程、基于模型和逻辑推理的软件验证方法、 软件工程环境与开发工具、面向领域的软件工程方法与技术
2016年7月5日星期二 24 3
关于授课的讨论
第二篇、面向对象的软件工程理论(4讲) 第九讲、C&C++——面向过程与面向对象 第十讲、面向对象理论与建模 第十一讲、UML与OOA/OOD/OOP 第十二讲、实际问题
2016年7月5日星期二
24
4
关于授课的讨论
第三篇、软件工程理论的扩展应用(2讲) 第十三讲、控制工程 第十四讲、Web工程
瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型
Rational统一过程 敏捷过程与极限编程 微软过程
2016年7月5日星期二 24 20
瀑布模型
软件工程中应用得最广泛的 过程模型。传统软件工程方法学 的软件过程,基本上可以用瀑布 模型来描述。
阶段间具有顺序性和依赖性 推迟实现的观点
质量保证的观点
图1.2
2016年7月5日星期二 24 21
实际的瀑布模型
优点: 阶段性文档 阶段性验证
缺点?(特点):
开发过程中用户 不可见,可能不 满足要求。 ***编写软件的目的
2016年7月5日星期二
图1.3
24 22
快速原型模型
原型的用途是获知用户的真 正需求,一旦需求确定了,原型 将被抛弃。 特点: 软件产品的开发基本 上是线性顺序进行的, 不带待反馈环? 加速软件开发过程, 节约软件开发成本。
软件工程介绍
第壹讲 软件工程概述
2016年7月5日星期二
24
1
学生情况-自我介绍
本科毕业学校、专业、时间 现从事工作 软件开发、系统实施履历
2016年7月5日星期二
24
2
关于授课的讨论
第一篇、软件工程基础理论的回顾(8讲) 第一讲、软件工程介绍 第二讲、软件定义 第三讲、软件定义实例 第四讲、软件开发 第五讲、软件设计实例 第六讲、软件编程技巧 第七讲、软件维护与项目管理 第八讲、实际问题
2016年7月5日星期二 24 16
IT自身 的发展 人们对 IT认知 的提高
软件危机的应对—软件工程
软件定义、开发和维护的工程化 ——软件工程—— 贯穿软件生命周期的标准化 消除?缓解、预防
2016年7月5日星期二 24 17
软件工程
1968,NATO:“软件工程就是为了经济地获得可靠的且 能在实际机器上有效地运行的软件,而建立和使用完善的工 程原理。” ——软件工程是一门工程学科
图1.4
2016年7月5日星期二 24 23
喷泉模型
以用户需求为动力,以对 象为驱动的模型。 优点: 软件开发过程自下而上周 期的各阶段具有相互迭代 和无间隙的特性 特点: 生命周期不明显(对象迭 代、不是过程迭代)
2016年7月5日星期二 24
图1.9
24
2016年7月5日星期二 24 10
要旨:
听而易忘、见而易记、做而易懂。
——美国计算机思想家 Weinberg
软件工程专业培养人才的三个层次: 计算机科学的研究者 开发关键软件系统的软件工程师 开发非关键系统的软件开发实践人员
——美国软件工程教育家 Mead
2016年7月5日星期二 24 11
2016年7月5日星期二
24
15
软件危机的根源矛盾发展
开发人员与客户认识之间的矛盾 (问题定义、可行性研究、需求分析) 开发人员能力与开发目标之间的矛盾 (需求分析、总体设计、详细设计) 预估与实际工作量之间的矛盾 (总体设计、详细设计、编码、测试) 客户认识的提高与软件维护之间的矛盾 (需求变化、功能追加) 遗产系统与实施软件之间的矛盾 (抛弃、融合)
本讲主要内容
软件危机 软件工程 软件生命周期 软件过程
2016年7月5日星期二
24
13
什么软件危机?
“软件危机”是指计算机软件的“开发”和“维护”过 程中所遇到的一系列“严重问题”。这些问题决不仅仅是不 能正常运行的软件才具有的,实际上,几乎“所有软件”都 不同程度地存在这些问题。 “软件危机”包含两方面的问题: 如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。
能学习新模型、新技术和即将出现的技术。
2016年7月5日星期二 24 9
SWEBOK2004-IEEE工程教育基本要素
系统观点:熟悉系统设计和构造分析过程。 知识的深度和广度:知识面要宽,具体领域方向能够深入。 设计经验:参与设计活动,具有项目(工程)经验。 工具使用:能够使用计算机软、硬件工具,分析和解决实际 问题。 职业训练:了解职业(行业)需要,具有“产品”(软件、 系统、行业和应用服务等)意识。 交流技巧:能够以合适的形式(书面、口头、可视化等) 进行交流和沟通。
————————————————————————————————————————————————————
计算机理论 计算机软件 计算机体系结构 计算机硬件 计算机应用
24
计算机软件与理论 081202 计算机系统结构 081201
计算机应用技术 081203
6
2016年7月5日星期二
1993,IEEE:“软件工程是:① 把系统的、规范的、可 度量的途径应用于软件开发、运行和维护过程,也就是把工 程应用于软件;② 研究①中提到的途径。”
——软件生命周期
——软件工程方法学
2016年7月5日星期二 24 18
软件生命周期
软件定义 问题定义:要解决的问题是什么? —总体需求 可行性研究:能否、值得否解决? —关键分析 需求分析:目标系统必需做什么?(规格说明书)
软件工程管理
—软件配置管理、软件过程技术、软件项目管理、软件度量方法 与技术等
软件服务工程
—软件服务的理论、方法、技术与应用,软件工程过程服务、面 向服务的计算与服务工程
2016年7月5日星期二 24 8
SE2004-软件工程学生毕业标准
掌握在进行开发实践中所必须的软件工程知识和技能; 能够独立或在小组中开发高质量的软件; 在受到“成本、时间、知识、现有系统和现有组织”的限制 环境中,能够进行适当的权衡; 能够运用软件工程的方法,结合“伦理、社会、法律和经济” 等规范进行一个或多个领域的设计; 有理解和应用软件工程必需的当前理论、模型和技术的能力; 具有与人沟通的技能,有效的工作习惯和领导及通信能力;
软件开发 总体设计:大概怎样实现? 详细设计:具体怎样实现? 编码:按详细设计编写程序代码 单元测试:模块测试 综合测试:集成测试-按设计;验收测试-按需求 软件维护
2016年7月5日星期二 24 19
软件过程(如何进行)
为了获得高质量软件所需要完成的一系列任务的框架。 who、when、what、how
第四篇、软件工程的新思想(2讲) 第十五讲、迭代化开发 第十六讲、面向服务的软件体系结构
2016年7月5日星期二 24 5
计算机科学与技术(一级学科)
学科门类:哲经法教-文史理工(08) -农医军管+艺 学科大类(一级学科):计算机科学与技术(0812) 专业(二级学科):计算机软件与理论(081202)
2016年7月5日星期二
24
14
软件危机的表象
对软件开发成本和进度的估计常常很不准确;
用户对“已完成的”软件系统不满意的现象经常发生; 软件产品的质量往往靠不住; 软件常常是不可维护的; 软件通常没有适当的文档资料; 软件成本在计算机系统总成本中所占的比例逐年上升; 软件开发生产率提高的速度,远远跟不上计算机应用普 及深入的趋势。
计算机软件与理论(二级学科)
程序设计语言(工具) —程序员(标准编码)参与编码设计核心程序员 数据结构(操作对象的存在形式)数据库 —程序员(数据操作)参与数据设计DBA 人机交互(界面构成元素;如何布局) —程序员(交互操作)参与界面设计 程序设计方法论(经验规范) —高级程序员 软件工程(从管理角度控制、优化软件开发过程) —系统分析员
Leabharlann Baidu
公路路面施工质量动态实施监控
问题的提出:
中国公路设计寿命15年,国外有30、50年的“永久性” 公路。
据调查,中国公路5-8年出现结构性破损。原因有分歧: 使用者认为公路质量不行;建设者认为是超载造成的。 一方面,交通部出台了《公路沥青路面施工技术规范》 (2005);另一方面,治理超载。
如何分清责任?
2016年7月5日星期二 24 7
软件工程(一级学科0835)
软件工程理论
—软件工程形式化方法、软件自动生成与演化、软件建模分析与 验证、软件行为学
软件工程技术
—需求工程、软件方法学、软件规范语言、软件体系结构、软件测 试与质量保证、软件再工程、基于模型和逻辑推理的软件验证方法、 软件工程环境与开发工具、面向领域的软件工程方法与技术
2016年7月5日星期二 24 3
关于授课的讨论
第二篇、面向对象的软件工程理论(4讲) 第九讲、C&C++——面向过程与面向对象 第十讲、面向对象理论与建模 第十一讲、UML与OOA/OOD/OOP 第十二讲、实际问题
2016年7月5日星期二
24
4
关于授课的讨论
第三篇、软件工程理论的扩展应用(2讲) 第十三讲、控制工程 第十四讲、Web工程
瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型
Rational统一过程 敏捷过程与极限编程 微软过程
2016年7月5日星期二 24 20
瀑布模型
软件工程中应用得最广泛的 过程模型。传统软件工程方法学 的软件过程,基本上可以用瀑布 模型来描述。
阶段间具有顺序性和依赖性 推迟实现的观点
质量保证的观点
图1.2
2016年7月5日星期二 24 21
实际的瀑布模型
优点: 阶段性文档 阶段性验证
缺点?(特点):
开发过程中用户 不可见,可能不 满足要求。 ***编写软件的目的
2016年7月5日星期二
图1.3
24 22
快速原型模型
原型的用途是获知用户的真 正需求,一旦需求确定了,原型 将被抛弃。 特点: 软件产品的开发基本 上是线性顺序进行的, 不带待反馈环? 加速软件开发过程, 节约软件开发成本。
软件工程介绍
第壹讲 软件工程概述
2016年7月5日星期二
24
1
学生情况-自我介绍
本科毕业学校、专业、时间 现从事工作 软件开发、系统实施履历
2016年7月5日星期二
24
2
关于授课的讨论
第一篇、软件工程基础理论的回顾(8讲) 第一讲、软件工程介绍 第二讲、软件定义 第三讲、软件定义实例 第四讲、软件开发 第五讲、软件设计实例 第六讲、软件编程技巧 第七讲、软件维护与项目管理 第八讲、实际问题
2016年7月5日星期二 24 16
IT自身 的发展 人们对 IT认知 的提高
软件危机的应对—软件工程
软件定义、开发和维护的工程化 ——软件工程—— 贯穿软件生命周期的标准化 消除?缓解、预防
2016年7月5日星期二 24 17
软件工程
1968,NATO:“软件工程就是为了经济地获得可靠的且 能在实际机器上有效地运行的软件,而建立和使用完善的工 程原理。” ——软件工程是一门工程学科
图1.4
2016年7月5日星期二 24 23
喷泉模型
以用户需求为动力,以对 象为驱动的模型。 优点: 软件开发过程自下而上周 期的各阶段具有相互迭代 和无间隙的特性 特点: 生命周期不明显(对象迭 代、不是过程迭代)
2016年7月5日星期二 24
图1.9
24
2016年7月5日星期二 24 10
要旨:
听而易忘、见而易记、做而易懂。
——美国计算机思想家 Weinberg
软件工程专业培养人才的三个层次: 计算机科学的研究者 开发关键软件系统的软件工程师 开发非关键系统的软件开发实践人员
——美国软件工程教育家 Mead
2016年7月5日星期二 24 11
2016年7月5日星期二
24
15
软件危机的根源矛盾发展
开发人员与客户认识之间的矛盾 (问题定义、可行性研究、需求分析) 开发人员能力与开发目标之间的矛盾 (需求分析、总体设计、详细设计) 预估与实际工作量之间的矛盾 (总体设计、详细设计、编码、测试) 客户认识的提高与软件维护之间的矛盾 (需求变化、功能追加) 遗产系统与实施软件之间的矛盾 (抛弃、融合)