北京大学工程硕士软件工程教材软件工程串讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ห้องสมุดไป่ตู้
软件开发的本质
应用系统
综观 软件技术 的发展
J2EE/EJB
支撑软件中间件
Web Services
Fortran 语言
Java 语言
操作系统
C/C++ 语言
.NET/COM
为了屏蔽中间件之间的异 构性,出现了Web技术。
Windows
UNIX Linux
网络层
建筑精选课件
2
软件工程学科所要解决的问题
第三条:提供高质量的工程支持 如其它工程一样,需要提供 高质量的工程支持,例如配置管理、质量保证等,才能按期 交付高质量的软件产品。
特定的抽象层次
例如,需求、设建筑计精选、课件实现、部署等
7
一、基本概念
1、软件 程序及其文档 2、软件工程
应用计算机科学理论和技术以及工程管理原则和方法,按 预算和进度,实现满足用户要求的软件产品的定义、开发、 发布和维护的工程,或以之为研究对象的学科。
Software engineering is the disciplined application of theories and techniques from computer science to define, develop, deliver,and maintain, on time and within budget, software products that meet customers’ needs and expectations. Software product include the actual program source code and data structure ,as well as the documents necessary to produce these, and documents and interface program necessary to use them in the intended environment.
建筑精选课件
4
第二点:问题空间的处理逻辑 与
解空间处理逻辑 之间的映射
例如1: 加工1(及相关的数据流)=F(计算学生成绩) 其中:使用的方法:结构化方法; 对应的过程:需求分析 使用的原理:过程抽象
学生成绩文件 科目+年级/班
加工1
学生平均成绩
计算学生平均成绩
规约后的处理逻辑
建筑精选课件
5
例如2: 交互图1=H(计算学生成绩) 其中:对应的过程:需求分析 使用的方法:面向对象 使用的原理:行为结构抽象(简称行为抽象)
(4)验证/确认是一种评估活动,其中主要包括需求规约、设计 规约以及实现代码的评估。验证/确认这一评估可以是动态的,或 是静态的。在动态分析中,以选定的输入来执行程序或程序段, 并与预期结果进行比较。静态分析是不执行程序的分析,例如模 型评审、代码“走查”以及程序的形式化验证等。
(5)维护是软件发布之后所进行的开发或修改(modification), 包括对发现错误的修正以及对环境的变化所进行的必要调整等。
:教学主任
:教务员
:教员
求A科平均 递交A科学生成绩表
A科平均
A科学生成绩表
作用:实现计算
建筑精选课件
6
由于以上两个映射是由“人”完成的,因此
就软件开发而言,需要解决两个方面的问题:
1:管理
2:技术
进一步说,技术问题主要是指软件开发过程通常需
要遵循的途径和方向
其中,过程方向
确定用于创建问题模型和设计解的
建筑精选课件
9
(1)需求分析 是在一个抽象层上建立系统模型的活动。产生需 求规约,作为开发人员和客户间契约的基础,并作为以后开发阶 段的输入。
(2)设计 定义了实现需求规约所需的结构。包括软件体系结构 (数据和程序结构),以及详细的处理算法,即所谓设计规约, 给出了实现软件需求的软件解决方案。
(3)实现 是由设计规约到代码的转换。
应用系统
系统建模
领域软件生产线
面向领域的软 应用框架
件体系结构
概念不同,逻辑不同。 解决问题的思维逻辑 不同。 -“距离”
开发平台
中间件技术与产品
VB、VC --程序设计环境
运行平台
语言
网络
异构
建筑精选课件
3
软件开发的本质 可概括为: 第一点: 问题空间的概念 与 解空间的模型化概念 之间的映射 例如:对象 = F(张山) (模型化概念) (问题空间的概念) 其中, 对应的过程:需求分析 使用的技术:面向对象 使用的原理:数据抽象 目的:作为计算的客体。
-Bonni建e筑M精选e课l件hart, 2000
8
3、软件工程框架
工程目标
正
可
合
确
用
算
确支
工 采用合适的开发范型
程 使用好的设计方法
原 提供高质量的工程支持
则 实施有效的工程管理
设实
需
认持
计现
求
动
活
软件工程目标 生产具有正确性、可用性和开销合宜的产品。 正确性是指软件产品达到预期功能的程度。可用性是指软件 基本结构、实现以及文档为用户可用的程度。开销合宜是指 软件开发、运行的整个开销满足用户要求的程度。
软件开发活动 生产一个最终满足需求且达到工程目标的软
件产品所需要的活动。软件开发的基本活动包括:需求分析
( requirement analysis ) , 设 计 ( design ) , 实 现 (
implementation),验证/确认(verification/validation)和维
护(maintenance)。
主要内容:
1、软件工程概念 2、软件开发模型 3、系统建模技术-结构化方法 4、系统建模技术-面向对象方法 5、软件测试 6、软件过程与CMM简介
建筑精选课件
1
为了祢补应用 软件与现实计 算环境之间的 距离
为屏蔽操作系统 和编程语言的异 构性,发展了支 撑软件和中间件
为屏蔽计算机 硬件的异构性, 发展了操作系 统
建筑精选课件
10
软件工程原则 围绕软件开发,提出了以下基本原则。
第一:选取适宜的开发风范 在系统设计中,经常需要权衡 软件需求、硬件需求以及其它因素之间的相互制约和影响, 适应需求的易变性。选用适宜的开发风范,以保证软件开发 的可持续性,并使最终的软件产品满足客户的要求。
第二:采用合适的设计方法 在软件设计中,通常需要考虑软 件的模块化、信息隐蔽、局部化、一致性及适应性等问题。 采用合适的设计方法,支持这些问题的解决和实现。
软件开发的本质
应用系统
综观 软件技术 的发展
J2EE/EJB
支撑软件中间件
Web Services
Fortran 语言
Java 语言
操作系统
C/C++ 语言
.NET/COM
为了屏蔽中间件之间的异 构性,出现了Web技术。
Windows
UNIX Linux
网络层
建筑精选课件
2
软件工程学科所要解决的问题
第三条:提供高质量的工程支持 如其它工程一样,需要提供 高质量的工程支持,例如配置管理、质量保证等,才能按期 交付高质量的软件产品。
特定的抽象层次
例如,需求、设建筑计精选、课件实现、部署等
7
一、基本概念
1、软件 程序及其文档 2、软件工程
应用计算机科学理论和技术以及工程管理原则和方法,按 预算和进度,实现满足用户要求的软件产品的定义、开发、 发布和维护的工程,或以之为研究对象的学科。
Software engineering is the disciplined application of theories and techniques from computer science to define, develop, deliver,and maintain, on time and within budget, software products that meet customers’ needs and expectations. Software product include the actual program source code and data structure ,as well as the documents necessary to produce these, and documents and interface program necessary to use them in the intended environment.
建筑精选课件
4
第二点:问题空间的处理逻辑 与
解空间处理逻辑 之间的映射
例如1: 加工1(及相关的数据流)=F(计算学生成绩) 其中:使用的方法:结构化方法; 对应的过程:需求分析 使用的原理:过程抽象
学生成绩文件 科目+年级/班
加工1
学生平均成绩
计算学生平均成绩
规约后的处理逻辑
建筑精选课件
5
例如2: 交互图1=H(计算学生成绩) 其中:对应的过程:需求分析 使用的方法:面向对象 使用的原理:行为结构抽象(简称行为抽象)
(4)验证/确认是一种评估活动,其中主要包括需求规约、设计 规约以及实现代码的评估。验证/确认这一评估可以是动态的,或 是静态的。在动态分析中,以选定的输入来执行程序或程序段, 并与预期结果进行比较。静态分析是不执行程序的分析,例如模 型评审、代码“走查”以及程序的形式化验证等。
(5)维护是软件发布之后所进行的开发或修改(modification), 包括对发现错误的修正以及对环境的变化所进行的必要调整等。
:教学主任
:教务员
:教员
求A科平均 递交A科学生成绩表
A科平均
A科学生成绩表
作用:实现计算
建筑精选课件
6
由于以上两个映射是由“人”完成的,因此
就软件开发而言,需要解决两个方面的问题:
1:管理
2:技术
进一步说,技术问题主要是指软件开发过程通常需
要遵循的途径和方向
其中,过程方向
确定用于创建问题模型和设计解的
建筑精选课件
9
(1)需求分析 是在一个抽象层上建立系统模型的活动。产生需 求规约,作为开发人员和客户间契约的基础,并作为以后开发阶 段的输入。
(2)设计 定义了实现需求规约所需的结构。包括软件体系结构 (数据和程序结构),以及详细的处理算法,即所谓设计规约, 给出了实现软件需求的软件解决方案。
(3)实现 是由设计规约到代码的转换。
应用系统
系统建模
领域软件生产线
面向领域的软 应用框架
件体系结构
概念不同,逻辑不同。 解决问题的思维逻辑 不同。 -“距离”
开发平台
中间件技术与产品
VB、VC --程序设计环境
运行平台
语言
网络
异构
建筑精选课件
3
软件开发的本质 可概括为: 第一点: 问题空间的概念 与 解空间的模型化概念 之间的映射 例如:对象 = F(张山) (模型化概念) (问题空间的概念) 其中, 对应的过程:需求分析 使用的技术:面向对象 使用的原理:数据抽象 目的:作为计算的客体。
-Bonni建e筑M精选e课l件hart, 2000
8
3、软件工程框架
工程目标
正
可
合
确
用
算
确支
工 采用合适的开发范型
程 使用好的设计方法
原 提供高质量的工程支持
则 实施有效的工程管理
设实
需
认持
计现
求
动
活
软件工程目标 生产具有正确性、可用性和开销合宜的产品。 正确性是指软件产品达到预期功能的程度。可用性是指软件 基本结构、实现以及文档为用户可用的程度。开销合宜是指 软件开发、运行的整个开销满足用户要求的程度。
软件开发活动 生产一个最终满足需求且达到工程目标的软
件产品所需要的活动。软件开发的基本活动包括:需求分析
( requirement analysis ) , 设 计 ( design ) , 实 现 (
implementation),验证/确认(verification/validation)和维
护(maintenance)。
主要内容:
1、软件工程概念 2、软件开发模型 3、系统建模技术-结构化方法 4、系统建模技术-面向对象方法 5、软件测试 6、软件过程与CMM简介
建筑精选课件
1
为了祢补应用 软件与现实计 算环境之间的 距离
为屏蔽操作系统 和编程语言的异 构性,发展了支 撑软件和中间件
为屏蔽计算机 硬件的异构性, 发展了操作系 统
建筑精选课件
10
软件工程原则 围绕软件开发,提出了以下基本原则。
第一:选取适宜的开发风范 在系统设计中,经常需要权衡 软件需求、硬件需求以及其它因素之间的相互制约和影响, 适应需求的易变性。选用适宜的开发风范,以保证软件开发 的可持续性,并使最终的软件产品满足客户的要求。
第二:采用合适的设计方法 在软件设计中,通常需要考虑软 件的模块化、信息隐蔽、局部化、一致性及适应性等问题。 采用合适的设计方法,支持这些问题的解决和实现。