第一章-软件工程PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章 软件工程
一、软件工程概述 二、软件需求分析 三、软件设计 四、编程语言的选择和编码 五、软件测试与维护 六、面向对象的软件工程 七、传统设计方法和面向对象设计方法
2021
1
重点内容
软件的概念、软件工程的概念、软 件生存周期、几种软件开发模型的思想及 其优缺点、面向对象程序设计的思想、面 向对象的软件工程和传统软件工程的区别
软件危机逐步形成而发展起来的。“软件工程”
一词,是1968年北大西洋公约组织(NATO)在
百度文库
联邦德国召开的一次会议上提出的。软件工程是
大
2021
8
型软件开发所必须采用的一种重要手段。
1993年,权威杂志IEEE对软件工程的定义: 软件工程是将系统化的、严格约束的、可量化的 方法,应用于软件开发、运行和维护中去。
达出来。需求分析文挡描述了经过用户确认的系
统逻辑模型。它既是软件实现的依据,也是项目
最后验收交付的依据。需求分析阶段必须提出完
整的系统逻辑模型,经过用户确认后进入下一阶
段。
2021
15
(2)概要设计
主要任务是建立软件的总体结构,包括系 统功能设计和系统结构设计。系统功能设计的 任务是确定系统其外部规格和内部规格,所谓 外部规格包括:系统运行环境、用户可见性功 能、性能一览表、系统输入及输出格式。所谓 内部规格是指主要处理的基本、系统文档种类 和规格、系统测试总方案。系统结构设计的任 务是确定系统模块结构,确定各模块功能划分 和接口规范、调用关系,确定主要模块算法和 主要数据结构。
2021
13
(1)问题定义
这是计划时期的第一步,根据用户或市场需 求,提出软件项目目标和规模,即确定用户需要 解决什么问题。由系统分析员根据对问题的理解, 提交关于系统目标和范围说明书。
(2)可行性研究
问题求解目标一经提出,分析员必须对它进
行可性研究,目的是为前一步提出的问题寻求在
技术上的可行性,且经济有效的解决办法。为此,
软件工程的目的:追求软件产品的正确性、 可用性及软件生产的效率。
2021
10
1.4 软件开发模型
软件开发模型是软件工程思想的具体化,
是实施于过程模型中的软件开发方法和工具。
1.4.1 软件的生命周期
软件生命周期是一个软件系统从目标提出、 定义、开发、使用和维护,直到最后丢弃的 整个过程。把整个生存期划分成较小的阶段, 是实现软件工程化的重要步骤。阶段的划分 使得人员分工职责清楚,项目进度控制和软 件质量得到确认。原则上,前一阶段任务的 完成是后一阶段工作的前提和基础;而后一 阶段的任务是对于前一问题求解方法的具体 化。
2021
11
一般说来,软件生命周期包括计划、开发和运行 三个阶段。三阶段划分如下图:
时计 期划 开 发 时 期
时运 期行
系统需求 软件需求 概要设计 详细设计 编码 测试 运行维护
图1 软件202生1 命周期
12
➢计划时期
计划时期的主要任务是分析用户的需求,确 定软件开发的总目标,给出系统功能、性能结 构、可靠性以及接口等方面的要求。由分析员 和用户合作,研究完成该项软件任务的可行性, 制定出软件开发的计划,并对可利用的资源、 成本、可取的效益、开发的进度作出估计,制 定出完成任务的计划,连同可行性报告,提交 管理部门审查,为软件设计提供依据。因此, 软件定义可分为问题定义和可行性研究。
软件的费用不仅花费在开发上,尤其要花费
2021
6
在维护上,由于开发阶段有一定的隐患, 维护最重要的事就是纠正软件中遗留的 错误,软件的规模越大,维护的成本也 越高。
➢对软件文档配置没有足够的重视
软件文档主要是开发过程中的说明书、数 据字典、程序清单、软件使用与维护手册、
软件测试报告及测试用例。由于开发过程 没有统一的、公认的方法论和规范作指 导,软件文档不规范、不健全,参加人
2021
2
软件的概念
为了弄清软件的概念,首先要知道什么是程 序的概念。
一般认为,程序是计算机为完成特定的任务 而执行的指令的有序集合。更通俗的讲,
面向过程的程序=算法+数据结构
面向对象的程序=对象+消息
面向构件的程序=构件+构架
通常,软件可定义为:
软件=程序+数据+文档
2021
3
一、软件工程概述
员各行其是,忽略人与人的接口部分,发现
2021
7
问题后修修补补,这样的软件很难维护,提交给 用户的软件质量较差。文档的不完整是造成软件 开发进程、成本不可控、软件维护与管理困难的 主要因素。
基于以上因素,需要一套完整的理论来指导 软件开发和维护的整个过程。
1.3 软件工程
软件工程是为了解决20世纪60年代开始出现的
1.1 软件的发展阶段 ❖ 程序设计阶段
特点:小型源程序、结构简单、功能单一、 可靠性差且由设计者自行维护
❖ 软件系统阶段
特点:规模大、结构复杂、软件可靠性随着 规模的增大而下降
2021
4
❖ 软件工程阶段
特点:规模越来越大、结构越来越复杂、 大型的程序设计已变成了工程项目
1.2 软件危机
从软件发展的第二个阶段开始,就出现了软 件危机。软件的生产不能满足日益增长的软件需 求,更严重的是,软件的生产率随着软件规模的 扩大以及复杂程度的提高而下降,导致了软件成 本在计算机系统构成中所占比例进一步加大。
2001年,软件工程大师 Roger S.Pressman 对软件工程的定义 :软件工程是一个过程、一 组方法和一系列工具。
软件工程是研究软件开发与软件管理的一门 工程科学。
2021
9
软件工程定义的内涵:是指导计算机软件 开发与维护的工程学科,可用工程的概 念、原理、技术和方法来开发和维护软 件,把经过时间考验而证明是正确的管 理技术和当前能够得到的最好技术方法 结合起来。
系统分析员应在高层次上简化需求分析和概要分
析,并写出可行性报告。
2021
14
➢开发时期
开发时期要完成设计和实现两大任务,其中
设计任务包括需求分析、概要设计和详细设计三 个阶段,实现任务由编码和测试两个阶段完成。
(1)需求分析
需求分析的任务是完整定义系统必须“做什
么?”,并用开发人员和用户均能理解的语言表
2021
5
软件危机的表现:
➢系统实际功能与用户实际需求不符
由于软件开发人员缺乏对用户需求的深入了 解,具体的实现的功能和用户相差太远;开发 人员和用户未能及时交换意见,使得一些问题 不能及时解决而隐蔽下来,造成开发后期矛盾 的集中暴露,给将来的调试和维护工作带来了 更大的困难。 ➢软件的维护费用急剧上升
一、软件工程概述 二、软件需求分析 三、软件设计 四、编程语言的选择和编码 五、软件测试与维护 六、面向对象的软件工程 七、传统设计方法和面向对象设计方法
2021
1
重点内容
软件的概念、软件工程的概念、软 件生存周期、几种软件开发模型的思想及 其优缺点、面向对象程序设计的思想、面 向对象的软件工程和传统软件工程的区别
软件危机逐步形成而发展起来的。“软件工程”
一词,是1968年北大西洋公约组织(NATO)在
百度文库
联邦德国召开的一次会议上提出的。软件工程是
大
2021
8
型软件开发所必须采用的一种重要手段。
1993年,权威杂志IEEE对软件工程的定义: 软件工程是将系统化的、严格约束的、可量化的 方法,应用于软件开发、运行和维护中去。
达出来。需求分析文挡描述了经过用户确认的系
统逻辑模型。它既是软件实现的依据,也是项目
最后验收交付的依据。需求分析阶段必须提出完
整的系统逻辑模型,经过用户确认后进入下一阶
段。
2021
15
(2)概要设计
主要任务是建立软件的总体结构,包括系 统功能设计和系统结构设计。系统功能设计的 任务是确定系统其外部规格和内部规格,所谓 外部规格包括:系统运行环境、用户可见性功 能、性能一览表、系统输入及输出格式。所谓 内部规格是指主要处理的基本、系统文档种类 和规格、系统测试总方案。系统结构设计的任 务是确定系统模块结构,确定各模块功能划分 和接口规范、调用关系,确定主要模块算法和 主要数据结构。
2021
13
(1)问题定义
这是计划时期的第一步,根据用户或市场需 求,提出软件项目目标和规模,即确定用户需要 解决什么问题。由系统分析员根据对问题的理解, 提交关于系统目标和范围说明书。
(2)可行性研究
问题求解目标一经提出,分析员必须对它进
行可性研究,目的是为前一步提出的问题寻求在
技术上的可行性,且经济有效的解决办法。为此,
软件工程的目的:追求软件产品的正确性、 可用性及软件生产的效率。
2021
10
1.4 软件开发模型
软件开发模型是软件工程思想的具体化,
是实施于过程模型中的软件开发方法和工具。
1.4.1 软件的生命周期
软件生命周期是一个软件系统从目标提出、 定义、开发、使用和维护,直到最后丢弃的 整个过程。把整个生存期划分成较小的阶段, 是实现软件工程化的重要步骤。阶段的划分 使得人员分工职责清楚,项目进度控制和软 件质量得到确认。原则上,前一阶段任务的 完成是后一阶段工作的前提和基础;而后一 阶段的任务是对于前一问题求解方法的具体 化。
2021
11
一般说来,软件生命周期包括计划、开发和运行 三个阶段。三阶段划分如下图:
时计 期划 开 发 时 期
时运 期行
系统需求 软件需求 概要设计 详细设计 编码 测试 运行维护
图1 软件202生1 命周期
12
➢计划时期
计划时期的主要任务是分析用户的需求,确 定软件开发的总目标,给出系统功能、性能结 构、可靠性以及接口等方面的要求。由分析员 和用户合作,研究完成该项软件任务的可行性, 制定出软件开发的计划,并对可利用的资源、 成本、可取的效益、开发的进度作出估计,制 定出完成任务的计划,连同可行性报告,提交 管理部门审查,为软件设计提供依据。因此, 软件定义可分为问题定义和可行性研究。
软件的费用不仅花费在开发上,尤其要花费
2021
6
在维护上,由于开发阶段有一定的隐患, 维护最重要的事就是纠正软件中遗留的 错误,软件的规模越大,维护的成本也 越高。
➢对软件文档配置没有足够的重视
软件文档主要是开发过程中的说明书、数 据字典、程序清单、软件使用与维护手册、
软件测试报告及测试用例。由于开发过程 没有统一的、公认的方法论和规范作指 导,软件文档不规范、不健全,参加人
2021
2
软件的概念
为了弄清软件的概念,首先要知道什么是程 序的概念。
一般认为,程序是计算机为完成特定的任务 而执行的指令的有序集合。更通俗的讲,
面向过程的程序=算法+数据结构
面向对象的程序=对象+消息
面向构件的程序=构件+构架
通常,软件可定义为:
软件=程序+数据+文档
2021
3
一、软件工程概述
员各行其是,忽略人与人的接口部分,发现
2021
7
问题后修修补补,这样的软件很难维护,提交给 用户的软件质量较差。文档的不完整是造成软件 开发进程、成本不可控、软件维护与管理困难的 主要因素。
基于以上因素,需要一套完整的理论来指导 软件开发和维护的整个过程。
1.3 软件工程
软件工程是为了解决20世纪60年代开始出现的
1.1 软件的发展阶段 ❖ 程序设计阶段
特点:小型源程序、结构简单、功能单一、 可靠性差且由设计者自行维护
❖ 软件系统阶段
特点:规模大、结构复杂、软件可靠性随着 规模的增大而下降
2021
4
❖ 软件工程阶段
特点:规模越来越大、结构越来越复杂、 大型的程序设计已变成了工程项目
1.2 软件危机
从软件发展的第二个阶段开始,就出现了软 件危机。软件的生产不能满足日益增长的软件需 求,更严重的是,软件的生产率随着软件规模的 扩大以及复杂程度的提高而下降,导致了软件成 本在计算机系统构成中所占比例进一步加大。
2001年,软件工程大师 Roger S.Pressman 对软件工程的定义 :软件工程是一个过程、一 组方法和一系列工具。
软件工程是研究软件开发与软件管理的一门 工程科学。
2021
9
软件工程定义的内涵:是指导计算机软件 开发与维护的工程学科,可用工程的概 念、原理、技术和方法来开发和维护软 件,把经过时间考验而证明是正确的管 理技术和当前能够得到的最好技术方法 结合起来。
系统分析员应在高层次上简化需求分析和概要分
析,并写出可行性报告。
2021
14
➢开发时期
开发时期要完成设计和实现两大任务,其中
设计任务包括需求分析、概要设计和详细设计三 个阶段,实现任务由编码和测试两个阶段完成。
(1)需求分析
需求分析的任务是完整定义系统必须“做什
么?”,并用开发人员和用户均能理解的语言表
2021
5
软件危机的表现:
➢系统实际功能与用户实际需求不符
由于软件开发人员缺乏对用户需求的深入了 解,具体的实现的功能和用户相差太远;开发 人员和用户未能及时交换意见,使得一些问题 不能及时解决而隐蔽下来,造成开发后期矛盾 的集中暴露,给将来的调试和维护工作带来了 更大的困难。 ➢软件的维护费用急剧上升