第0章 引言及预备知识(矢量场论)0_第1页
第0章 引言及预备知识(矢量场论)0_第2页
第0章 引言及预备知识(矢量场论)0_第3页
第0章 引言及预备知识(矢量场论)0_第4页
第0章 引言及预备知识(矢量场论)0_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1讲:软件工程概论 第一次课第一次课 嵌入式系统软件工程概述嵌入式系统软件工程概述 广东科学技术职业学院广东科学技术职业学院 宋维宋维 第1讲:软件工程概论 第第1 1讲讲 绪论绪论 第1讲:软件工程概论 软件软件 软件的发展及软件工程软件的发展及软件工程 软件生存周期软件生存周期 软件开发模型软件开发模型 领域分析领域分析 本讲内容本讲内容 第1讲:软件工程概论 一一 软件软件 第1讲:软件工程概论 问题问题: : 1 1、什么叫硬件?、什么叫硬件? 2 2、什么叫软件?、什么叫软件? 3 3、你从那些角度来理解软件概念?、你从那些角度来理解软件概念? 第1讲:软件工程概论 1.Windo

2、ws 1.Windows 2.word 2.word 3. 3.成绩计算软件成绩计算软件 4.IE4.IE浏览器浏览器 演示几个软件以引出软件演示几个软件以引出软件 第1讲:软件工程概论 1.1 1.1 软件的概念软件的概念 1 1、软件的常识定义:、软件的常识定义: 软件软件是相对硬件而言的,是计算机系统是相对硬件而言的,是计算机系统 中的中的程序程序、数据数据及其相关及其相关文档文档的总称。的总称。 第1讲:软件工程概论 程序程序是能完成确定任务,用计算机语言描是能完成确定任务,用计算机语言描 述的,并能够在计算机系统上执行的语句序述的,并能够在计算机系统上执行的语句序 列。列。 第1讲:

3、软件工程概论 求求1+2+3+100累加和累加和 main() int i, sum=0; for (i=1; i=100;i+) sum=sum+1; printf(“sum=%dn”,sum); 第1讲:软件工程概论 数据数据用来描用来描 述软件所要处述软件所要处 理的业务和事理的业务和事 物的静态特征,物的静态特征, 是程序处理的是程序处理的 对象。对象。 第1讲:软件工程概论 文档文档是指与程序开是指与程序开 发、维护和使用有关发、维护和使用有关 的图文资料。的图文资料。 第1讲:软件工程概论 需要从以下两个方面理解软件:需要从以下两个方面理解软件: 1 1)在计算机系统中,我们把除了

4、所有可)在计算机系统中,我们把除了所有可 见性设备和资源之外的计算机系统的组成部见性设备和资源之外的计算机系统的组成部 分统称为软件。分统称为软件。 2 2)软件的概念比程序广泛,程序是软件)软件的概念比程序广泛,程序是软件 的构成部分。的构成部分。 第1讲:软件工程概论 1.1 1.1 软件的概念软件的概念 2 2、软件的本质:、软件的本质: 软件软件是认识的中介、是人意识的外化、是认识的中介、是人意识的外化、 是人的意识基于机器的特殊反映。是人的意识基于机器的特殊反映。 第1讲:软件工程概论 1.2 1.2 软件的特征软件的特征 1. 1. 智能性智能性 软件是人的智力劳动的产物,软件是人

5、的智力劳动的产物, 具有明显的智能性特征。具有明显的智能性特征。 2. 2. 无形性无形性 软件不象可见设备那样具有明软件不象可见设备那样具有明 显的物理形体和形态,人们无法直接观察到显的物理形体和形态,人们无法直接观察到 它的形态。它的形态。 第1讲:软件工程概论 3. 3. 抽象性抽象性 软件是一种逻辑实体,而不是软件是一种逻辑实体,而不是 具体的物理实体,具有抽象性。具体的物理实体,具有抽象性。 4. 4. 依附性依附性 软件不象其它产品和设备能够软件不象其它产品和设备能够 独立存在和工作,软件的开发和运行必须依独立存在和工作,软件的开发和运行必须依 赖于计算机系统硬件。赖于计算机系统硬

6、件。 第1讲:软件工程概论 5. 5. 复杂性复杂性 软件的复杂性是由软件可以解软件的复杂性是由软件可以解 决任何行业和领域中的问题的特征所决定的决任何行业和领域中的问题的特征所决定的。 6. 6. 泛域性泛域性 软件可以服务与人类智能所能软件可以服务与人类智能所能 到达的所有领域。到达的所有领域。 第1讲:软件工程概论 7. 7. 非损性非损性 软件在使用过程中不象其他产品软件在使用过程中不象其他产品 存在损耗和老化现象,只要硬件环境不发生故存在损耗和老化现象,只要硬件环境不发生故 障和改变,软件就可以永远使用。障和改变,软件就可以永远使用。 8. 8. 复制性复制性 由于软件在光、电、磁的

7、介质上由于软件在光、电、磁的介质上 贮存,所以软件具有可复制性。贮存,所以软件具有可复制性。 第1讲:软件工程概论 9. 9. 演化性演化性 软件投入运行之后,软件的功能、软件投入运行之后,软件的功能、 性能、人机界面、硬件环境处于不断变化之中,性能、人机界面、硬件环境处于不断变化之中, 我们把软件在生存周期中不断变化的特性称之我们把软件在生存周期中不断变化的特性称之 为软件的动态演化性。为软件的动态演化性。 第1讲:软件工程概论 1. 按软件功能划分按软件功能划分 系统软件系统软件是指能与计算机硬件紧密结合,使是指能与计算机硬件紧密结合,使 计算机系统的各个部件、相关的软件和数据协计算机系统

8、的各个部件、相关的软件和数据协 调有效工作的软件。调有效工作的软件。 操作系统操作系统; 数据库管理系统数据库管理系统; 设备驱动程序等设备驱动程序等. 1.3 软件的分类软件的分类 第1讲:软件工程概论 1. 按软件功能划分按软件功能划分 应用软件应用软件则是指为特定领域开发和服务的一则是指为特定领域开发和服务的一 类软件,我们在日常工作和生活中,大量应用类软件,我们在日常工作和生活中,大量应用 的是这类软件。的是这类软件。 企业管理软件企业管理软件; 财务管理软件财务管理软件; 股票管理软件等股票管理软件等. 1.3 软件的分类软件的分类 第1讲:软件工程概论 问题二问题二: : 1 1、

9、说出两个系统软件的例子。、说出两个系统软件的例子。 2 2、说出两个应用软件的例子。、说出两个应用软件的例子。 第1讲:软件工程概论 2. 2. 按软件规模划分按软件规模划分 按照软件开发所需要的人力、时间和源程序行数可以把按照软件开发所需要的人力、时间和源程序行数可以把 软件划分成为软件划分成为微型、小型、中型、大型和超大型微型、小型、中型、大型和超大型五类五类。 表1-1 软件规模划分 类型开发人员开发期限源程序行数 微型11-4周0.5K 小型11-6月1K-2K 中型2-51-2年5K-50K 大型5-202-3年50K-100K 超大型20以上3年以上1M以上 第1讲:软件工程概论

10、二二 软件的发展与软件工程软件的发展与软件工程 第1讲:软件工程概论 2.1 2.1 软件发展的三个阶段软件发展的三个阶段 19461946年世界上第一台计算机出现之后,年世界上第一台计算机出现之后, 就有了程序的概念,程序是软件的前身。就有了程序的概念,程序是软件的前身。 几十年来,软件的发展经历了几十年来,软件的发展经历了程序设计程序设计, 程序系统程序系统和和软件工程软件工程三个阶段。三个阶段。 第1讲:软件工程概论 特点 阶段程序设计程序系统软件工程 年代50-60年代60-70年代70年代以后 软件内涵程序程序及说明书程序、数据、文档 程序设计语言机器及汇编语言 高级语言支撑及开发环

11、境 软件工作范围程序编写包括设计和测试 软件生存周期 开发组织个人小组小组,软件机构 软件规模小型中小型大中小型 质量因素个人程序技术小组技术水平管理水平 开发技术和手段 子程序,程序库 结构化程序设计 软件工程方法和环境 维护责任者程序设计者开发小组维护人员 硬件特征 性能低,可靠性 差,价格昂贵 大中小型机 高速、大容量、微型和 网络化 软件特征不受重视软件危机 开发方法,并未完全摆 脱危机和手工方式 表1-2 软件发展的三个时期和特点 第1讲:软件工程概论 1. 1. 人们对软件的看法逐步全面化人们对软件的看法逐步全面化 从专家到一般开发人员从专家到一般开发人员 从艺术到工程从艺术到工程

12、 从程序设计技巧到需求分析、设计、编程、从程序设计技巧到需求分析、设计、编程、 调试、维护等全面软件开发调试、维护等全面软件开发 第1讲:软件工程概论 2. 2. 软件的内涵发生了重大变化软件的内涵发生了重大变化 软件的概念和内涵从软件的概念和内涵从简单的程序发展成为程序、简单的程序发展成为程序、 数据以及软件开发所需的一切文档数据以及软件开发所需的一切文档。 第1讲:软件工程概论 3. 3. 软件的需求是软件发展的动力软件的需求是软件发展的动力 软件可以应用到社会生活的各个领域;软件可以应用到社会生活的各个领域; 软件产业成为国民经济支柱型产业;软件产业成为国民经济支柱型产业; 程序软件需求

13、刺激着软件开发的发展程序软件需求刺激着软件开发的发展 第1讲:软件工程概论 4. 4. 从程序编写发展到整个软件生存期从程序编写发展到整个软件生存期 软件的范围从程序发展到整个软件的范围从程序发展到整个软件生存周期软件生存周期。 第1讲:软件工程概论 2.2 2.2 软件危机软件危机 6060年代初,由于认识、技术和需求的变化,出现年代初,由于认识、技术和需求的变化,出现 了严重软件危机,具体表现在:了严重软件危机,具体表现在: 软件开发不能按照计划进行控制和完成,普软件开发不能按照计划进行控制和完成,普 遍存在拖延工期的现象;遍存在拖延工期的现象; 开发出来的软件满足不了用户的需求;开发出来

14、的软件满足不了用户的需求; 软件投资严重超出预算;软件投资严重超出预算; 软件可靠性和可用性差。软件可靠性和可用性差。 第1讲:软件工程概论 软件质量难于保证;软件质量难于保证; 失败的根本原因在于:开发人员写出的东西达不到用户失败的根本原因在于:开发人员写出的东西达不到用户 要求要求 (管理问题人的问题、技术问题管理问题人的问题、技术问题) 因软件危机提出了软件工程因软件危机提出了软件工程 第1讲:软件工程概论 2.3 2.3 软件工程软件工程 一、软件工程概念的提出一、软件工程概念的提出 软件工程(软件工程(software engineeringsoftware engineering)

15、的概念是)的概念是 于于19681968年在北大西洋公约组织举行的一次学术会议年在北大西洋公约组织举行的一次学术会议 上首次提出来的。经过几十年的发展,软件工程已上首次提出来的。经过几十年的发展,软件工程已 经成为一门独立的学科。经成为一门独立的学科。 第1讲:软件工程概论 2.3 2.3 软件工程软件工程 二、软件工程的概念二、软件工程的概念 软件工程软件工程是运用计算机科学、数学、管理学等是运用计算机科学、数学、管理学等 原理和方法,遵循系统化的思想,运用工程化方法,原理和方法,遵循系统化的思想,运用工程化方法, 探索和指导软件开发和维护的一门综合性学科。探索和指导软件开发和维护的一门综合

16、性学科。 第1讲:软件工程概论 软件工程是一门年轻的学科,到目前为止,对软件工软件工程是一门年轻的学科,到目前为止,对软件工 程学科的构成和基本内容还没有形成统一认识。主要包括程学科的构成和基本内容还没有形成统一认识。主要包括 以下分支学科:以下分支学科: 1 1软件工程原理软件工程原理 2 2软件工程方法软件工程方法 3 3软件工程技术软件工程技术 4 4软件工程管理软件工程管理 三、三、 软件工程学科的基本内容软件工程学科的基本内容 5.5.软件工程质量软件工程质量 6.6.软件工程环境软件工程环境 7.7.软件工程应用软件工程应用 第1讲:软件工程概论 SWEBOK 把软件工程学科的主体

17、知识分为把软件工程学科的主体知识分为 10 个知识领个知识领 域。这域。这 10 个领域包括:个领域包括: 软件需求,软件设计,软件构造,软件测试,软件维护,软件需求,软件设计,软件构造,软件测试,软件维护, 软件配置管理,软件工程管理,软件工程过程,软件工程工软件配置管理,软件工程管理,软件工程过程,软件工程工 具和方法,软件质量具和方法,软件质量。 第1讲:软件工程概论 1 1软件工程原理软件工程原理 软件工程原理是软件工程学科所遵循的基软件工程原理是软件工程学科所遵循的基 本规律和原则,包括:本规律和原则,包括: 软件工程学基础;软件工程学基础; 软件工程学科中的基本规律;软件工程学科中

18、的基本规律; 软件工程学科应遵循的基本原则软件工程学科应遵循的基本原则。 第1讲:软件工程概论 2 2软件工程方法软件工程方法 软件工程方法是软件工程学科的核心。包括:软件工程方法是软件工程学科的核心。包括: 软件开发方法软件开发方法 软件管理方法软件管理方法 软件度量方法软件度量方法 软件维护方法软件维护方法 第1讲:软件工程概论 3 3软件工程技术软件工程技术 软件工程技术主要包括:软件工程技术主要包括: 软件开发技术软件开发技术 软件度量技术软件度量技术 软件演化技术软件演化技术 软件应用技术软件应用技术 软件管理技术软件管理技术 其它相关技术其它相关技术 软件环境技术软件环境技术 第1

19、讲:软件工程概论 4 4软件工程管理软件工程管理 主要包括:主要包括: 软件项目管理软件项目管理 人员管理人员管理 软件过程管理软件过程管理 经费管理经费管理 软件维护管理软件维护管理 进度管理进度管理 软件质量管理软件质量管理 文档管理文档管理 第1讲:软件工程概论 5 5软件工程度量软件工程度量 主要包括:主要包括: 软件费用度量软件费用度量 工作量度量工作量度量 生产效率度量生产效率度量 质量度量质量度量 性能度量性能度量 结构和复杂性度量结构和复杂性度量 软件算法度量软件算法度量 软件预决算软件预决算 第1讲:软件工程概论 6软件工程环境软件工程环境 软件环境由计算机硬件、通信网络、支

20、软件环境由计算机硬件、通信网络、支 撑软件等要素构成。软件必须考虑软件环境撑软件等要素构成。软件必须考虑软件环境 以及软件环境对软件开发的制约和影响。以及软件环境对软件开发的制约和影响。 计算机硬件计算机硬件 通信网络通信网络 支撑软件支撑软件 第1讲:软件工程概论 7软件工程应用软件工程应用 软件工程应用主要研究如何有效地把软件软件工程应用主要研究如何有效地把软件 工程原理、方法、技术应用到软件开发和维工程原理、方法、技术应用到软件开发和维 护过程中去,以有效地提高软件开发效率和护过程中去,以有效地提高软件开发效率和 质量。质量。 农业农业 工业工业 交通交通 航天航天 科研科研 第1讲:软

21、件工程概论 三三 软件生存周期与软件开发软件生存周期与软件开发 模型模型 第1讲:软件工程概论 3.1 软件生存周期软件生存周期 软件生存周期所历经的阶段到目前还没有统一的划分标准,从三阶软件生存周期所历经的阶段到目前还没有统一的划分标准,从三阶 段到十二阶段不等。段到十二阶段不等。 五阶段:五阶段: 软件策划软件策划 软件分析软件分析 软件设计软件设计 系统实现系统实现 软件演化软件演化 第1讲:软件工程概论 三阶段:软件生存周期包含三个阶段:软件定义、三阶段:软件生存周期包含三个阶段:软件定义、 软件开发及软件运行维护。软件开发及软件运行维护。 软件生存周期模型,又叫软件开发模型,是软件工

22、软件生存周期模型,又叫软件开发模型,是软件工 程思想的具体化,是跨越软件生存周期的系统开发、程思想的具体化,是跨越软件生存周期的系统开发、 运行、维护所实施的全部活动和任务的过程框架。运行、维护所实施的全部活动和任务的过程框架。 第1讲:软件工程概论 软件开发模型软件开发模型(Software Development Model)(Software Development Model)是指软件是指软件 开发全部过程、活动和任务的结构框架。软件开发包括需求、开发全部过程、活动和任务的结构框架。软件开发包括需求、 设 计 、 编 码 和 测 试等阶段,有时也包括 维护阶段。设 计 、 编 码 和

23、测 试等阶段,有时也包括 维护阶段。 软件开发模型能清晰、直观地表达软件开发全过程,明确规软件开发模型能清晰、直观地表达软件开发全过程,明确规 定了要完成的主要活动和任务,用来作为软件项目工作的基定了要完成的主要活动和任务,用来作为软件项目工作的基 础础。 第1讲:软件工程概论 典型的开发模型有:典型的开发模型有: 瀑布模型瀑布模型(waterfall model)(waterfall model); 渐增模型渐增模型/ /演化演化/ /迭代迭代(incremental model)(incremental model); 原型模型原型模型(prototype model)(prototype

24、 model); 螺旋模型螺旋模型(spiral model)(spiral model); 喷 泉 模 型喷 泉 模 型 ( f o u n t a i n m o d e l )( f o u n t a i n m o d e l ) ; 智 能 模 型智 能 模 型 (intelligent model) ; 7. (intelligent model) ; 7. 混合模型混合模型(hybrid model)(hybrid model) 第1讲:软件工程概论 1.1.边做边改模型(边做边改模型(Build-and-Fix ModelBuild-and-Fix Model) 2.2. 遗

25、憾的是,许多产品都是使用遗憾的是,许多产品都是使用 边做边改边做边改 模型来开发的。在这种模型中,既模型来开发的。在这种模型中,既 没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改. . 3.3.在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生 成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出 新 的 要 求 , 开 发 人 员 重

26、新 修 改 代 码 , 直 到 用 户 满 意 为 止 。新 的 要 求 , 开 发 人 员 重 新 修 改 代 码 , 直 到 用 户 满 意 为 止 。 这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种 方法对任何规模的开发来说都是不能令人满意的,其主要问题在于:方法对任何规模的开发来说都是不能令人满意的,其主要问题在于: (1 1) 缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无 法 继 续 修 改 (法 继 续 修 改 ( 2 2

27、 ) 忽 略 需 求 环 节 , 给 软 件 开 发 带 来 很 大 的 风 险 ;) 忽 略 需 求 环 节 , 给 软 件 开 发 带 来 很 大 的 风 险 ; (3 3) 没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分 困难。困难。 第1讲:软件工程概论 3.2 3.2 软件生存期模型软件生存期模型 3.2.1 3.2.1 瀑布模型瀑布模型 瀑布模型瀑布模型反映了软件生存期各阶段明确任务、反映了软件生存期各阶段明确任务、 自上而下、顺序固定、逐级过渡的结构模式,各阶自上而下、顺序固定、逐级过渡的结构模式,各阶 段

28、的联系就象瀑布流水一样自上而下、不可逆返段的联系就象瀑布流水一样自上而下、不可逆返。 第1讲:软件工程概论 软件策划软件策划 需求分析需求分析 软件设计软件设计 实现实现 测试测试 维护维护 瀑布模型 第1讲:软件工程概论 软件工程过程 软件工程过程定义软件工程过程定义: : 方法使用的顺序、要求交方法使用的顺序、要求交 付的文档资料、为保证质量和适应变化所需要的管付的文档资料、为保证质量和适应变化所需要的管 理、软件开发各个阶段完成的里程碑。理、软件开发各个阶段完成的里程碑。 从软件开发的观点看,它就是使用适当的资源从软件开发的观点看,它就是使用适当的资源 (包括人员、硬软件工具、时间等),

29、为开发软件(包括人员、硬软件工具、时间等),为开发软件 进行的一组开发活动,在过程结束时将输入(用户进行的一组开发活动,在过程结束时将输入(用户 要求)转化为输出(软件产品)。要求)转化为输出(软件产品)。 瀑布模型的产出瀑布模型的产出 第1讲:软件工程概论 瀑布模型强调文档的作用,并要求每个阶段都要仔细验瀑布模型强调文档的作用,并要求每个阶段都要仔细验 证。但是,这种模型的线性过程太理想化,已不再适合现代证。但是,这种模型的线性过程太理想化,已不再适合现代 的软件开发模式,几乎被业界抛弃,其主要问题在于:的软件开发模式,几乎被业界抛弃,其主要问题在于: (1 1) 各个阶段的划分完全固定,阶

30、段之间产生大量的各个阶段的划分完全固定,阶段之间产生大量的 文档,极大地增加了工作量;文档,极大地增加了工作量; (2 2) 由于开发模型是线性的,用户只有等到整个过程由于开发模型是线性的,用户只有等到整个过程 的末期才能见到开发成果,从而增加了开发的风险;的末期才能见到开发成果,从而增加了开发的风险; (3 3) 早期的错误可能要等到开发后期的测试阶段才能早期的错误可能要等到开发后期的测试阶段才能 发现,进而带来严重的后果发现,进而带来严重的后果 第1讲:软件工程概论 各阶段标准文档要求 可行性分析报告:说明该软件开发项目的实现可行性分析报告:说明该软件开发项目的实现 在技术上、经济上和社会

31、因素上的可行性,评述为在技术上、经济上和社会因素上的可行性,评述为 了合理地达到开发目标可供选择的各种可能实施方了合理地达到开发目标可供选择的各种可能实施方 案,说明并论证所选定实施方案的理由。案,说明并论证所选定实施方案的理由。 项目开发计划:为软件项目实施方案制订出具项目开发计划:为软件项目实施方案制订出具 体计划,应该包括各部分工作的负责人员、开发的体计划,应该包括各部分工作的负责人员、开发的 进度、开发经费的预算、所需的硬件及软件资源等。进度、开发经费的预算、所需的硬件及软件资源等。 第1讲:软件工程概论 各阶段标准文档要求 软件需求说明书(软件规格说明书):对所开软件需求说明书(软件

32、规格说明书):对所开 发软件的功能、性能、用户界面及运行环境等作出发软件的功能、性能、用户界面及运行环境等作出 详细的说明。它是在用户与开发人员双方对软件需详细的说明。它是在用户与开发人员双方对软件需 求取得共同理解并达成协议的条件下编写的,也是求取得共同理解并达成协议的条件下编写的,也是 实施开发工作的基础。该说明书应给出数据逻辑和实施开发工作的基础。该说明书应给出数据逻辑和 数据采集的各项要求,为生成和维护系统数据文件数据采集的各项要求,为生成和维护系统数据文件 做好准备。做好准备。 概要设计说明书:该说明书是概要实际阶段的概要设计说明书:该说明书是概要实际阶段的 工作成果,它应说明功能分

33、配、模块划分、程序的工作成果,它应说明功能分配、模块划分、程序的 总体结构、输入输出以及接口设计、运行设计、数总体结构、输入输出以及接口设计、运行设计、数 据结构设计和出错处理设计等,为详细设计提供基据结构设计和出错处理设计等,为详细设计提供基 础。础。 第1讲:软件工程概论 各阶段标准文档要求 详细设计说明书:着重描述每一模块是怎样实详细设计说明书:着重描述每一模块是怎样实 现的,包括实现算法、逻辑流程等。现的,包括实现算法、逻辑流程等。 用户操作手册:本手册详细描述软件的功能、用户操作手册:本手册详细描述软件的功能、 性能和用户界面,使用户对如何使用该软件得到具性能和用户界面,使用户对如何

34、使用该软件得到具 体的了解体的了解, ,为操作人员提供该软件各种运行情况的有为操作人员提供该软件各种运行情况的有 关知识,特别是操作方法的具体细节。关知识,特别是操作方法的具体细节。 测试计划:为做好集成测试和验收测试,需为测试计划:为做好集成测试和验收测试,需为 如何组织测试制订实施计划。计划应包括测试的内如何组织测试制订实施计划。计划应包括测试的内 容、进度、条件、人员、测试用例的选取原则、测容、进度、条件、人员、测试用例的选取原则、测 试结果允许的偏差范围等。试结果允许的偏差范围等。 第1讲:软件工程概论 各阶段标准文档要求 测试分析报告:测试工作完成以后,应提交测试测试分析报告:测试工

35、作完成以后,应提交测试 计划执行情况的说明,对测试结果加以分析,并提出计划执行情况的说明,对测试结果加以分析,并提出 测试的结论意见。测试的结论意见。 开发进度月报:该月报系软件人员按月向管理部开发进度月报:该月报系软件人员按月向管理部 门提交的项目进展情况报告,报告应包括进度计划与门提交的项目进展情况报告,报告应包括进度计划与 实际执行情况的比较、阶段成果、遇到的问题和解决实际执行情况的比较、阶段成果、遇到的问题和解决 的办法以及下个月的打算等。的办法以及下个月的打算等。 项目开发总结报告:软件项目开发完成以后,应项目开发总结报告:软件项目开发完成以后,应 与项目实施计划对照,总结实际执行的

36、情况,如进度、与项目实施计划对照,总结实际执行的情况,如进度、 成果、资源利用、成本和投入的人力,此外,还需对成果、资源利用、成本和投入的人力,此外,还需对 开发工作做出评价,总结出经验和教训。开发工作做出评价,总结出经验和教训。 第1讲:软件工程概论 各阶段标准文档要求 软件维护手册:主要包括软件系统说明、程序软件维护手册:主要包括软件系统说明、程序 模块说明、操作环境、支持软件的说明、维护过程模块说明、操作环境、支持软件的说明、维护过程 的说明,便于软件的维护。的说明,便于软件的维护。 软件问题报告:指出软件问题的登记情况,如软件问题报告:指出软件问题的登记情况,如 日期、发现人、状态、问

37、题所属模块等,为软件修日期、发现人、状态、问题所属模块等,为软件修 改提供准备文档。改提供准备文档。 软件修改报告:软件产品投入运行以后,发现软件修改报告:软件产品投入运行以后,发现 了需对其进行修正、更改等问题,应将存在的问题、了需对其进行修正、更改等问题,应将存在的问题、 修改的考虑以及修改的影响作出详细的描述,提交修改的考虑以及修改的影响作出详细的描述,提交 审批。审批。 第1讲:软件工程概论 线性线性 是人们最容易掌握并能熟练应用的思想方法。当是人们最容易掌握并能熟练应用的思想方法。当 人们碰到一个复杂的人们碰到一个复杂的 非线性非线性 问题时,总是千方百计地将其问题时,总是千方百计地

38、将其 分解或转化为一系列简单的线性问题,然后逐个解决。一个分解或转化为一系列简单的线性问题,然后逐个解决。一个 软件系统的整体可能是复杂的,而单个子程序总是简单的,软件系统的整体可能是复杂的,而单个子程序总是简单的, 可以用线性的方式来实现,否则干活就太累了。线性是一种可以用线性的方式来实现,否则干活就太累了。线性是一种 简洁,简洁就是美。当我们领会了线性的精神,就不要再呆简洁,简洁就是美。当我们领会了线性的精神,就不要再呆 板地套用线性模型的外表,而应该用活它。例如增量模型实板地套用线性模型的外表,而应该用活它。例如增量模型实 质就是分段的线性模型,螺旋模型则是接连的弯曲了的线性质就是分段的

39、线性模型,螺旋模型则是接连的弯曲了的线性 模 型 , 在 其 它 模 型中也能够找到线性模 型的影子。模 型 , 在 其 它 模 型中也能够找到线性模 型的影子。 第1讲:软件工程概论 3.2.2 3.2.2 螺旋模型螺旋模型 螺旋模型螺旋模型规定软件开发采取分步推进、逐步深化的螺旋规定软件开发采取分步推进、逐步深化的螺旋 方式方式。 在螺旋模型下,每一个螺旋式的循环都是对上一次循环在螺旋模型下,每一个螺旋式的循环都是对上一次循环 的进一步深化和细化。快速原型法和面向对象方法都采用螺的进一步深化和细化。快速原型法和面向对象方法都采用螺 旋模型。旋模型。 螺旋模型更符合人们认识事物的一般规律。螺

40、旋模型更符合人们认识事物的一般规律。 第1讲:软件工程概论 第1讲:软件工程概论 螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活 动:动: 1 1 制定计划:确定软件目标,选定实施方案,弄清项开发的限制条制定计划:确定软件目标,选定实施方案,弄清项开发的限制条 件件 2 2 风险分析:分析评估所选方案,考虑如何识别和消除风险;风险分析:分析评估所选方案,考虑如何识别和消除风险; 3 3 实 施 工 程 : 实 施 软 件 开 发 和 验 证 ;实 施 工 程 : 实 施 软 件 开 发 和 验 证 ; 4 4 客户评估:评价

41、开发工作,提出修正建议,制定下一步计划。客户评估:评价开发工作,提出修正建议,制定下一步计划。 第1讲:软件工程概论 螺旋模型 一个阶段首先是确定该阶段的目标,完成这些一个阶段首先是确定该阶段的目标,完成这些 目标的选择方案及其约束条件,然后从风险角度分目标的选择方案及其约束条件,然后从风险角度分 析方案的开发策略,努力排除各种潜在的风险,有析方案的开发策略,努力排除各种潜在的风险,有 时需要通过建造原型来完成。如果某些风险不能排时需要通过建造原型来完成。如果某些风险不能排 除,该方案立即终止,否则启动下一个开发步骤。除,该方案立即终止,否则启动下一个开发步骤。 最后,评价该阶段的结果,并设计

42、下一个阶段。最后,评价该阶段的结果,并设计下一个阶段。 第1讲:软件工程概论 螺旋模型强调了其他模型所忽视的风险分析,特别适合于大型复杂螺旋模型强调了其他模型所忽视的风险分析,特别适合于大型复杂 的系统。的系统。 螺 旋 模 型 也 有 一 定 的 限 制 条 件 , 具 体 如 下 :螺 旋 模 型 也 有 一 定 的 限 制 条 件 , 具 体 如 下 : (1 1) 螺旋模型强调风险分析,但要求许多客户接受和相信这种分螺旋模型强调风险分析,但要求许多客户接受和相信这种分 析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大析,并做出相关反应是不容易的,因此,这种模型往往适应于内

43、部的大 规模软件开发。规模软件开发。 (2 2) 如果执行风险分析将大大影响项目的利润,那么进行风险分如果执行风险分析将大大影响项目的利润,那么进行风险分 析 毫 无 意 义 , 因 此 , 螺 旋 模 型 只 适 合 于 大 规 模 软 件 项 目 。析 毫 无 意 义 , 因 此 , 螺 旋 模 型 只 适 合 于 大 规 模 软 件 项 目 。 (3 3) 软件开发人员应该擅长寻找可能的风险,准确地分析风险,软件开发人员应该擅长寻找可能的风险,准确地分析风险, 否则将会带来更大的风险否则将会带来更大的风险 第1讲:软件工程概论 3.2.3 3.2.3 喷泉模型喷泉模型 喷泉模型喷泉模型表

44、示软件表示软件 生存期需要划分成为多生存期需要划分成为多 个相对独立的阶段,但个相对独立的阶段,但 各个阶段之间的界各个阶段之间的界限并限并 不是十分明确,相邻阶不是十分明确,相邻阶 段之间存在明显的重迭段之间存在明显的重迭 和交叉和交叉。 系统维护系统维护 软件策划软件策划 软件分析软件分析 软件设计软件设计 软件实现软件实现 第1讲:软件工程概论 3.2.4 3.2.4 演化模型演化模型 演化模型演化模型软件通过多次迭代演化完成软件通过多次迭代演化完成. 适应于不能明确确定需求的软件开发适应于不能明确确定需求的软件开发; 通过多次更迭过程来完成通过多次更迭过程来完成; 初期,由用户提出基本

45、需求初期,由用户提出基本需求,构造一个核心系统构造一个核心系统; 用户进行评价用户进行评价,再完善再完善; 多次反复完成软件开发多次反复完成软件开发. 演化模型演化模型”要求开发人员有能力把项目的产品需求分解为不同组,要求开发人员有能力把项目的产品需求分解为不同组, 以便分批循环开发。以便分批循环开发。采取分批循环开发的办法,每循环开发一部分的功 能,它们成为这个产品的原型的新增功能。于是,设计就不断地演化出 新的系统。 实际上,这个模型可看作是重复执行的多个“瀑布模型”。 第1讲:软件工程概论 需求需求 设计设计 实现实现 需求需求 设计设计 实现实现 开开 发发 开开 发发 核心系统开发核

46、心系统开发第二次迭代第二次迭代 迭代模型 第1讲:软件工程概论 常见模型优点比较常见模型优点比较 瀑 布 模 型 :瀑 布 模 型 : 文 档 驱 动文 档 驱 动 系 统 可 能 不 满 足 客 户 的 需 求系 统 可 能 不 满 足 客 户 的 需 求 快速原型模型:快速原型模型: 关注满足客户需求关注满足客户需求 可能导致系统设计差、效率低,可能导致系统设计差、效率低, 难于维护难于维护 增量模型:开发早期反馈及时,易于维护增量模型:开发早期反馈及时,易于维护 需要开放式体系结构,需要开放式体系结构, 可能会设计差、效率低可能会设计差、效率低 螺旋模型:风险驱动螺旋模型:风险驱动 风险

47、分析人员需要有经验且经过充分训练风险分析人员需要有经验且经过充分训练 第1讲:软件工程概论 四四 软件开发方法软件开发方法 1. 结构化方法结构化方法 2. JSD方法方法 3. 原型方法原型方法 4. 面向对象方法面向对象方法 第1讲:软件工程概论 4.1 4.1 结构化开发方法结构化开发方法 4.1.1 结构化开发方法的含义结构化开发方法的含义 结构化开发方法结构化开发方法是指遵循系统的思想,按照工是指遵循系统的思想,按照工 程化的方法,充分考虑用户的需求,严格划分工作程化的方法,充分考虑用户的需求,严格划分工作 阶段,自顶向下逐步分解地进行系统分析和设计,阶段,自顶向下逐步分解地进行系统

48、分析和设计, 按照设计方案自底向上进行实施的一套相对完整和按照设计方案自底向上进行实施的一套相对完整和 规范的系统开发方法。规范的系统开发方法。 第1讲:软件工程概论 4.1.2 结构化开发方法的特点结构化开发方法的特点 遵循系统化思想遵循系统化思想 充分考虑用户需求充分考虑用户需求 严格划分工作阶段严格划分工作阶段 按照工程化的方法按照工程化的方法 突出系统各部分的联系和结构突出系统各部分的联系和结构 第1讲:软件工程概论 4.1.3 结构化分析 结构化分析用分层数据流图来进行分析结构化分析用分层数据流图来进行分析 第1讲:软件工程概论 第1讲:软件工程概论 学生成绩管理顶层数据流图 第1讲

49、:软件工程概论 第1讲:软件工程概论 数据字典 第1讲:软件工程概论 第1讲:软件工程概论 第1讲:软件工程概论 1.4.1.4 结构化设计 1、总体设计、总体设计 第1讲:软件工程概论 2、详细设计、详细设计 1)、)、IPO图图 第1讲:软件工程概论 2)、流程图(程序框图)、流程图(程序框图) 求N的阶乘的程序流程图 第1讲:软件工程概论 3)、判定树)、判定树 第1讲:软件工程概论 4.1.5 结构化开发方法的不足结构化开发方法的不足 与人类认识问题的一般规律有相饽之处与人类认识问题的一般规律有相饽之处 功能分析法不能够全面反映问题域功能分析法不能够全面反映问题域 方法的描述体系缺乏连

50、贯性和一致性方法的描述体系缺乏连贯性和一致性 文档繁杂、开发工作量大文档繁杂、开发工作量大 不便于交流和理解不便于交流和理解 难以适应需求的变化难以适应需求的变化 重用性不好重用性不好 第1讲:软件工程概论 4.2 JSD4.2 JSD方法方法 JacksonJackson系统开发方法系统开发方法(JSDJSD,Jackson system Jackson system development methoddevelopment method)是在)是在JacksonJackson的面向数据的面向数据 结构的程序设计方法的基础上发展而来的,是一结构的程序设计方法的基础上发展而来的,是一 种面向

51、软件开发全过程的系统化开发方法。种面向软件开发全过程的系统化开发方法。 第1讲:软件工程概论 4.2 JSD4.2 JSD方法方法 划分为划分为建模建模、设计和实现设计和实现三个阶段。三个阶段。 包括实体活动分析、实体结构分析、建立进程包括实体活动分析、实体结构分析、建立进程 模型、确定系统功能、确定系统时序、系统实现模型、确定系统功能、确定系统时序、系统实现 等等6 6个步骤。个步骤。 第1讲:软件工程概论 第1讲:软件工程概论 4.3 4.3 快速原型方法快速原型方法 快速原型法的基本思想是快速原型法的基本思想是: 在系统开发中通过自动化或半自动化系统开发原型在系统开发中通过自动化或半自动

52、化系统开发原型 生成环境的支持,根据用户的初步需求,快速生成一个生成环境的支持,根据用户的初步需求,快速生成一个 能够反映用户初步需求的系统模型,并把这个模型称之能够反映用户初步需求的系统模型,并把这个模型称之 为系统原型。把产生的系统原型展现给用户,开发人员为系统原型。把产生的系统原型展现给用户,开发人员 与用户有针对性地就系统原型进行讨论,用户对系统原与用户有针对性地就系统原型进行讨论,用户对系统原 型提出自己看法和改进意见,开发人员根据用户的意见型提出自己看法和改进意见,开发人员根据用户的意见 再进一步地修改原型,并反复这个过程,直到用户对系再进一步地修改原型,并反复这个过程,直到用户对系 统原型满意为止。最后把系统原型转换为实际系统。统原型满意为止。最后把系统原型转换为实际系统。 第1讲:软件工程概论 第1讲:软件工程概论 快速原型法的特点快速原型法的特点: : 更符合人们对事物地认识规律更符合人们对事物地认识规律 使系统开发工作直接化、简单化使系统开发工作直接化、简单化 提高了系统开发效率提高了系统开发效率 快速原型法的局限性快速原型法的局限性 : : 不能作为大型软件的独立开发方法不能作为大型软件的独立开发方法 不适应于内部蕴涵大量计算逻辑处理,而交互处理不适应于内部蕴涵大量计算逻辑处理,而交互处理 不多的应用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论