第1章 软件工程基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.需求分析。 2.总体设计分析,确定该网络的服务类型,进而
确定系统建设的具体目标以及系统构件拓扑结 构等。 3.实施,即选择合适的设备,按设计方案实现网 络建设。 4.验收与维护 。
1.2软件工程
1.2.1软件 1.软件定义
(1) 在运行中能提供所希望的功能和性 能的指令集(即程序);
(2) 使程序能够正确运行的数据结构; (3) 描述程序研制过程、方法所用的文 档。
修改的 文档 代码
1.1.3人机工程
关键是处理软件与人的交互问题。 现在“人机界面友好”的要求,已成为基于计算机系
统的一项重要技术指标 。
人机工程包括下列步骤: 1.创建系统功能的外部模型 2.确定为完成此系统功能人和计算机应分别完成的任务 3.考虑界面设计中的典型问题 4.借助CASE工具构造界面原型和最终实现设计模型 5.从质量的角度对界面进行评估
概念设计(E-R图)、逻辑设计、物理设计
4.数据库的管理与维护
1.1.5网络工程
网络工程是研究网络系统的规划、设计与 管理的工程科学,要求工程技术人员根据 既定的目标,严格依照行业规范,制定网 络建设的方案,协助工程招投标、设计、 实施、管理与维护等活动。
网络工程的任务
网络工程应该完成以下任务:
1.1.4数据库工程
数据库系统是基于计算机系统的重要组成部 分,它将有关的硬件、软件、数据和数据库 管理人员结合起来,为用户提供信息服务。
数据库系统的开发方法主要有:结构化生命 周期开发方法、原型法、面向对象的开发方 法等。
数据库工程的任务
数据库工程应完成下列任务: 1.确定系统的各项指标并进行评估和计划制定 2. 论证、选择和配置数据库系统 3.数据库设计与实现
(a) 计划与定义阶段
该阶段的任务是制订开发计划,确定项目成本预算和 工程进度,并进行详细需求分析,确定硬件规格说明。
设计分 析
评审
建立样机 与测试
评审
生产分 析
设计图纸
样机
设计图纸
(b) 设计与样机实现阶段
该阶段的任务是分析设计,画出设计图,必要时建造原 型对样机进行测试,最后进行制造分析,画出生产图。
制造
返工
质量保 证
评审
销售
维护机构
产品
Βιβλιοθήκη Baidu
备件
(c) 制造、销售与售后服务阶段
该阶段的任务是按照质量保证计划和要求生产硬件产品。
1.1.2软件与软件工程
计算机软件:软件工程师设计和建造的产品。 包括:可执行的程序 + 开发各阶段文档 + 各种数据。
软件工程是研究软件生产和软件管理的工程科学。 内容包括:市场调研、正式立项、需求分析、项目策划、
评审
过程 设计
评审
程序 编码
评审
概要设计 规格说明
原 型
详细设计 规格说明
(b) 开发阶段
源程序 代码
因缺陷可能导致 返回到前面步骤
单元测试 组装测试 确认测试
测试计划 测试过程 测试结果
交付与
维
调试
销售
评审
护
操作 过程
用户 文档
修改的 源程序 代码
(c) 检验、交付与维护阶段 (运行维护阶段)
评审
第一章 软件工程基础
主要内容
计算机系统工程 软件工程 软件生存期模型 软件开发方法 软件工程环境
软件与计算机的系统要素之间的关系
大多数软件系统都是为了开发满足某种需求 而建立。这些软件必须要计算机系统的支持。
不论系统的自动化程度有多高,都需要人的 参与。任何系统都必须配备使用手册及必要 的表格和其他文档。在网络时代的应用系统 中,绝大多数应用系统都离不开数据库和网 络这样的基础设施。如图1.1所示。
输入
文档
数据库 、 网络
过程 系统
人
硬件 软件
输出
图1.1 基于计算机的系统要素
1.1计算机系统工程
计算机系统工程:与构造基于计算机系统有关的过 程、方法和技术。
一种问题求解活动,目的是揭示与分析所期望的功 能,并把这些功能分配到系统的各个独立系统元素 中去。
计算机系统工程师与用户充分合作,以确认用户的 目标与约束。
2.软件的特点
软件是一种逻辑实体,不是具体的物理实体,具有 抽象性。
软件是通过人们的智力活动,把知识与技术转化成 信息的一种产品,是在研制、开发中被创造出来的。
在软件的运行和使用期间,没有硬件那样的机械磨 损、老化问题。
软件存在故障(错误)的原因
软件的开发和运行经常受到计算机硬件系统的 限制,软件对计算机硬件系统有着不同程度的 依赖关系。
1.1.1硬件与硬件工程
计算机系统工程师根据系统需求为硬件系统 指派任务,产生硬件需求。
硬件工程师根据硬件需求设计、制造或选择 硬部件或设备。
硬件工程过程分为三个阶段,即计划和定义 阶段;设计和样机实现阶段;生产、销售和 售后服务阶段。
硬件功能
开发计划
评审
详细需求分 析
评审
成本 进度
硬件规 格说明
概要设计、详细设计、编程、测试、试运行、产品发布、用 户培训、产品复制、销售、实施、系统维护和版本升级等。
软件工程模型一般包括:软件项目的定义阶段、软 件开发阶段、软件的检验、交付与维护阶段 。
软件功 能
软件项目计 划
评审
需求分析或 原型
评审
原
项目
型
计划
(a) 定义阶段
需求规 格说明
数据与结 构设计
软件的开发尚未完全摆脱手工的开发方式。 软件的开发费用越来越高,成本相当昂贵。 软件的开发是一个复杂的过程,管理是软件开
发过程中必不可少內容。
1.2.2软件工程的概念
软件发展的四个阶段
1. 1950’s~1960’s中 : 规模较小的程序,个体化的软件开
发,只有程序清单。——程序设计阶段
2. 1960’s中~1970’中 :“软件作坊”,广泛使用产品软
件。 ——程序系统阶段
3. 1970’中 ~1980’s :微处理器的出现并广泛应用。分布
式系统、嵌入智能。——进入软件工程阶段
4. 1980’s~: 网络迅速普及, 强大的桌面系统、面向对象技术、
专家系统、人工智能、神经网络、并行计算、网格计算、虚拟 组织。
软件发展过程中存在的问题
▪ 软件开发能力不能满足人们的需要; ▪ 社会对软件的依赖程度加大,人们普遍关注软件的
安全和可靠性; ▪ 若干年前开发的应用软件经过几十次修改已无人认
识它的内部结构,己经不可维护; ▪ 由于经济原因,嵌入式系统存在许多怪现象,企业
不愿意投入资源再生产,而采取打补丁+时髦界面 的方法。
确定系统建设的具体目标以及系统构件拓扑结 构等。 3.实施,即选择合适的设备,按设计方案实现网 络建设。 4.验收与维护 。
1.2软件工程
1.2.1软件 1.软件定义
(1) 在运行中能提供所希望的功能和性 能的指令集(即程序);
(2) 使程序能够正确运行的数据结构; (3) 描述程序研制过程、方法所用的文 档。
修改的 文档 代码
1.1.3人机工程
关键是处理软件与人的交互问题。 现在“人机界面友好”的要求,已成为基于计算机系
统的一项重要技术指标 。
人机工程包括下列步骤: 1.创建系统功能的外部模型 2.确定为完成此系统功能人和计算机应分别完成的任务 3.考虑界面设计中的典型问题 4.借助CASE工具构造界面原型和最终实现设计模型 5.从质量的角度对界面进行评估
概念设计(E-R图)、逻辑设计、物理设计
4.数据库的管理与维护
1.1.5网络工程
网络工程是研究网络系统的规划、设计与 管理的工程科学,要求工程技术人员根据 既定的目标,严格依照行业规范,制定网 络建设的方案,协助工程招投标、设计、 实施、管理与维护等活动。
网络工程的任务
网络工程应该完成以下任务:
1.1.4数据库工程
数据库系统是基于计算机系统的重要组成部 分,它将有关的硬件、软件、数据和数据库 管理人员结合起来,为用户提供信息服务。
数据库系统的开发方法主要有:结构化生命 周期开发方法、原型法、面向对象的开发方 法等。
数据库工程的任务
数据库工程应完成下列任务: 1.确定系统的各项指标并进行评估和计划制定 2. 论证、选择和配置数据库系统 3.数据库设计与实现
(a) 计划与定义阶段
该阶段的任务是制订开发计划,确定项目成本预算和 工程进度,并进行详细需求分析,确定硬件规格说明。
设计分 析
评审
建立样机 与测试
评审
生产分 析
设计图纸
样机
设计图纸
(b) 设计与样机实现阶段
该阶段的任务是分析设计,画出设计图,必要时建造原 型对样机进行测试,最后进行制造分析,画出生产图。
制造
返工
质量保 证
评审
销售
维护机构
产品
Βιβλιοθήκη Baidu
备件
(c) 制造、销售与售后服务阶段
该阶段的任务是按照质量保证计划和要求生产硬件产品。
1.1.2软件与软件工程
计算机软件:软件工程师设计和建造的产品。 包括:可执行的程序 + 开发各阶段文档 + 各种数据。
软件工程是研究软件生产和软件管理的工程科学。 内容包括:市场调研、正式立项、需求分析、项目策划、
评审
过程 设计
评审
程序 编码
评审
概要设计 规格说明
原 型
详细设计 规格说明
(b) 开发阶段
源程序 代码
因缺陷可能导致 返回到前面步骤
单元测试 组装测试 确认测试
测试计划 测试过程 测试结果
交付与
维
调试
销售
评审
护
操作 过程
用户 文档
修改的 源程序 代码
(c) 检验、交付与维护阶段 (运行维护阶段)
评审
第一章 软件工程基础
主要内容
计算机系统工程 软件工程 软件生存期模型 软件开发方法 软件工程环境
软件与计算机的系统要素之间的关系
大多数软件系统都是为了开发满足某种需求 而建立。这些软件必须要计算机系统的支持。
不论系统的自动化程度有多高,都需要人的 参与。任何系统都必须配备使用手册及必要 的表格和其他文档。在网络时代的应用系统 中,绝大多数应用系统都离不开数据库和网 络这样的基础设施。如图1.1所示。
输入
文档
数据库 、 网络
过程 系统
人
硬件 软件
输出
图1.1 基于计算机的系统要素
1.1计算机系统工程
计算机系统工程:与构造基于计算机系统有关的过 程、方法和技术。
一种问题求解活动,目的是揭示与分析所期望的功 能,并把这些功能分配到系统的各个独立系统元素 中去。
计算机系统工程师与用户充分合作,以确认用户的 目标与约束。
2.软件的特点
软件是一种逻辑实体,不是具体的物理实体,具有 抽象性。
软件是通过人们的智力活动,把知识与技术转化成 信息的一种产品,是在研制、开发中被创造出来的。
在软件的运行和使用期间,没有硬件那样的机械磨 损、老化问题。
软件存在故障(错误)的原因
软件的开发和运行经常受到计算机硬件系统的 限制,软件对计算机硬件系统有着不同程度的 依赖关系。
1.1.1硬件与硬件工程
计算机系统工程师根据系统需求为硬件系统 指派任务,产生硬件需求。
硬件工程师根据硬件需求设计、制造或选择 硬部件或设备。
硬件工程过程分为三个阶段,即计划和定义 阶段;设计和样机实现阶段;生产、销售和 售后服务阶段。
硬件功能
开发计划
评审
详细需求分 析
评审
成本 进度
硬件规 格说明
概要设计、详细设计、编程、测试、试运行、产品发布、用 户培训、产品复制、销售、实施、系统维护和版本升级等。
软件工程模型一般包括:软件项目的定义阶段、软 件开发阶段、软件的检验、交付与维护阶段 。
软件功 能
软件项目计 划
评审
需求分析或 原型
评审
原
项目
型
计划
(a) 定义阶段
需求规 格说明
数据与结 构设计
软件的开发尚未完全摆脱手工的开发方式。 软件的开发费用越来越高,成本相当昂贵。 软件的开发是一个复杂的过程,管理是软件开
发过程中必不可少內容。
1.2.2软件工程的概念
软件发展的四个阶段
1. 1950’s~1960’s中 : 规模较小的程序,个体化的软件开
发,只有程序清单。——程序设计阶段
2. 1960’s中~1970’中 :“软件作坊”,广泛使用产品软
件。 ——程序系统阶段
3. 1970’中 ~1980’s :微处理器的出现并广泛应用。分布
式系统、嵌入智能。——进入软件工程阶段
4. 1980’s~: 网络迅速普及, 强大的桌面系统、面向对象技术、
专家系统、人工智能、神经网络、并行计算、网格计算、虚拟 组织。
软件发展过程中存在的问题
▪ 软件开发能力不能满足人们的需要; ▪ 社会对软件的依赖程度加大,人们普遍关注软件的
安全和可靠性; ▪ 若干年前开发的应用软件经过几十次修改已无人认
识它的内部结构,己经不可维护; ▪ 由于经济原因,嵌入式系统存在许多怪现象,企业
不愿意投入资源再生产,而采取打补丁+时髦界面 的方法。