软件工程导论第一章PPT优秀课件

上传人:re****.1 文档编号:584610427 上传时间:2024-08-31 格式:PPT 页数:38 大小:1.23MB
返回 下载 相关 举报
软件工程导论第一章PPT优秀课件_第1页
第1页 / 共38页
软件工程导论第一章PPT优秀课件_第2页
第2页 / 共38页
软件工程导论第一章PPT优秀课件_第3页
第3页 / 共38页
软件工程导论第一章PPT优秀课件_第4页
第4页 / 共38页
软件工程导论第一章PPT优秀课件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《软件工程导论第一章PPT优秀课件》由会员分享,可在线阅读,更多相关《软件工程导论第一章PPT优秀课件(38页珍藏版)》请在金锄头文库上搜索。

1、qq办公电话:办公电话:办公电话:办公电话:5168427451684274q电子邮件:电子邮件:q课后有问题最好用电子邮件课后有问题最好用电子邮件qIq参考书目参考书目-软件工程导论(第软件工程导论(第5版)张海藩版)张海藩 清华大学出版社清华大学出版社-软件工程(第二版)齐治昌、谭庆平、宁洪 编著,高等教育出版社 -Shari Lawrence P fleeger 软件工程理论与实践(第2版)(高教出版社影印版),2003 q助教:唐建强助教:唐建强 博士博士q考核方式:闭卷考试考核方式:闭卷考试 70% 平时成绩(考勤平时成绩(考勤+作业)作业)30%q课代表课代表 ? 第一讲第一讲 如

2、何认识软件与软件工程如何认识软件与软件工程教学目标教学目标q本课程的目的与任务是使同学们通过本课程的学习,了解软件项目开发和维护的一般过程软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,提高大家的软软件开发能力件开发能力与软件项目管理能力项目管理能力。q学习管理的思想,工程的方法。管理的思想,工程的方法。1.1 软件与软件危机(软件与软件危机(1)q软件的概念软件的概念什么是软件?软件就是程序?一一一一定定定定要要要要纠纠纠纠正正正正软软软软件件件件就就就就是是是是程程程程序序序序,开开开开发发发发软软软软件件件件就就就就是是是是编编编编写写写写程程程程序序序序的的的的错误观念

3、!错误观念!错误观念!错误观念!规模庞大看不见,摸不着 软件软件= =程序程序+ +数据数据+ +文档文档1.1 软件与软件危机软件与软件危机(2)q软件的概念软件的概念软件定义:软件定义:软件是能够完成预定功能和性能的可执软件是能够完成预定功能和性能的可执行的计算机行的计算机程序程序程序程序和使程序正常执行所需要的和使程序正常执行所需要的数据数据数据数据,加上描述软件开发过程及其管理、程序的操作和使加上描述软件开发过程及其管理、程序的操作和使用的用的有关文档。有关文档。有关文档。有关文档。程序、软件与软件产品:程序、软件与软件产品: 独唱独唱小合唱小合唱合唱合唱万人大合唱万人大合唱 | |

4、| 简单程序简单程序 较复杂程序较复杂程序 软件软件1.1 软件与软件危机软件与软件危机(3) 早期早期 第二阶段第二阶段 第三阶段第三阶段 第四阶段第四阶段 面向批处理面向批处理 多用户多用户 分布式系统分布式系统 强大的桌面系统强大的桌面系统 有限的分布有限的分布 实时实时 嵌入嵌入“智能智能” 面向对象技术面向对象技术 自定义软件自定义软件 数据库数据库 低成本硬件低成本硬件 专家系统专家系统 软件产品软件产品 消费者的影响消费者的影响 人工神经网络人工神经网络 并行计算并行计算 网络计算机网络计算机1950 1960 1970 1980 1990 2000 21世纪1.1 软件与软件危

5、机软件与软件危机(4)存在并持续发展的问题:1.对软件开发成本和进度的估算很不准确2.用户很不满意3.质量很不可靠4.没有适当的文档5.软件常常是不可维护的6.供不应求:软件开发生产率跟不上计算机应用迅速深入的 趋势软件危机软件危机在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机例证 IBM公公司司的的 OS/360OS/360,共共约约100100万万条条指指令令,花花费费了了50005000个个人人年年;经经费费达达数数亿亿美美元元,而而结结果果却却令令人人沮沮丧丧,错错误误多多达达20002000个个以以上上,系系统统根根本本无无法法正正常常运运行行。 OS/360OS/3

6、60系系统统的的负负责责人人BrooksBrooks这这样样描描述述开开发发过过程程的的困困难难和和混混乱乱:“像像巨巨兽兽在在泥泥潭潭中中作作垂垂死死挣挣扎扎,挣挣扎扎得得越越猛猛,泥泥浆浆就就沾沾得得越越多多,最最后后没没有有一一个个野野兽兽能能够够逃逃脱脱淹淹没在泥潭中的命运。没在泥潭中的命运。” 19631963年年美美国国飞飞往往火火星星的的火火箭箭爆爆炸炸,造造成成10001000万万美美元元的的损损失失。原因是原因是FORTRANFORTRAN程序:程序: DO 5 I=1DO 5 I=1, ,3 3 误写为:误写为:DO 5 I=1DO 5 I=1. .3 3 19671967

7、年年年年苏苏苏苏联联联联“联联联联盟盟盟盟一一一一号号号号”载载载载人人人人宇宇宇宇宙宙宙宙飞飞飞飞船船船船在在在在返返返返航航航航时时时时,由由由由于于于于软软软软件件件件忽忽忽忽略略略略一一一一个个个个小小小小数数数数点点点点,在在在在进进进进入入入入大大大大气气气气层层层层时时时时因因因因打打打打不不不不开开开开降降降降落落落落伞而烧毁。伞而烧毁。伞而烧毁。伞而烧毁。1.1 软件与软件危机软件与软件危机(5)q产生软件危机的原因产生软件危机的原因-在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。客观:软件本身特点-逻辑部

8、件-规模庞大主观:不正确的开发方法-忽视需求分析-错误认为:软件开发=程序编写-轻视软件维护-. 19681968年年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,国际会议,讨论软件危机问题软件危机问题,在这次会议上正式提出并使用了“软件工程软件工程”这个名词,一门新兴的工程学科就此诞生了!软件工程软件工程指导计算机软件开发和维护的工程学科 工程管理+开发技术 1993年IEEE进一步给出了一个更全面更具体的定义:“软件工程是: 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究中提到的途径。 1.2 软件工程及其基本原理(软件工程及其基本原理

9、(1)q软件工程的目标软件工程的目标-软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期、较低的成本生产出高质量高质量 的软件产品,并最终实现软件的工业化生产。-软件的质量特性:功能性、可靠性、可使用性、效率、可维护性和可移植性。1.2 软件工程及其基本原理(软件工程及其基本原理(2)1.2 软件工程及其基本原理(软件工程及其基本原理(3)q软件工程的基本原理软件工程的基本原理(1)(1)按按软件生命周期软件生命周期分阶段制订计划并认真实施分阶段制订计划并认真实施 (2)(2)坚持进行阶段评审坚持进行阶段评审(3)(3)坚持严格的产品控制坚持严格的产

10、品控制(4)(4)使用现代软件开发技术使用现代软件开发技术(5)(5)明确责任明确责任 (6)(6)用人少而精用人少而精(7)(7)不断改进开发过程不断改进开发过程1.3 软件生命周期软件生命周期(1)q概念概念 软件也有一个孕育、诞生、成长、成熟和衰亡的生软件也有一个孕育、诞生、成长、成熟和衰亡的生存过程,我们称这个过程为存过程,我们称这个过程为软件生命周期软件生命周期或或软件生软件生存期存期。 软件生存期由软件生存期由软件定义软件定义、软件开发软件开发和和运行维护运行维护3 3个个时期组成,每个时期又可划分为若干个阶段时期组成,每个时期又可划分为若干个阶段。 1.3 软件生命周期软件生命周

11、期(2)q软件定义时期软件定义时期 主要任务是解决主要任务是解决“做什么做什么(what)(what)”的问题的问题-确定工程的总目标和可行性;-导出实现工程目标应使用的策略及系统必须完成的功能;-估计完成工程需要的资源和成本;-制订工程进度表。通常又分为通常又分为3 3个阶段:个阶段:问题定义、可行性研究问题定义、可行性研究和和需求分需求分析析。 1.3 软件生命周期软件生命周期(3)q软件开发时期软件开发时期 主要任务是解决主要任务是解决“如何做如何做(how)(how)”的问题,即具体的问题,即具体设计和实现在前一个时期定义的软件。设计和实现在前一个时期定义的软件。 由由概要设计、详细设

12、计、编码概要设计、详细设计、编码和和测试测试4 4个阶段组成。个阶段组成。 1.3 软件生命周期软件生命周期(4)q软件运行维护时期软件运行维护时期 主要任务是使软件持久地满足用户的需要,通常有主要任务是使软件持久地满足用户的需要,通常有4 4类维护活动:类维护活动:(1)(1)改正性维护改正性维护,也就是诊断和改正在使用过程中发现的软件错误;,也就是诊断和改正在使用过程中发现的软件错误;(2)(2)适应性维护适应性维护,即修改软件以适应环境的变化;,即修改软件以适应环境的变化;(3)(3)完善性维护完善性维护,即根据用户的要求改进或扩充软件,使它更完善;,即根据用户的要求改进或扩充软件,使它

13、更完善;(4)(4)预防性维护预防性维护,即修改软件为将来的维护活动预先做准备。,即修改软件为将来的维护活动预先做准备。 统计数据表明,实际上用于软件维护的费用占软件统计数据表明,实际上用于软件维护的费用占软件总费用的总费用的55%70%。软件工程学的一个重要目标。软件工程学的一个重要目标就是提高软件的可维护性,减少软件维护的代价。就是提高软件的可维护性,减少软件维护的代价。1.3 软件生命周期软件生命周期(5)q各个阶段所要完成的基本任务各个阶段所要完成的基本任务(1)(1)问题定义与可行性研究问题定义与可行性研究 本阶段要回答的关键问题是本阶段要回答的关键问题是“到底要解决什么问题?在成本

14、和时间的到底要解决什么问题?在成本和时间的限制条件下能否解决问题?是否值得做?限制条件下能否解决问题?是否值得做?” (2) (2) 需求分析需求分析 本阶段要回答的关键问题是本阶段要回答的关键问题是“目标系统应当做什么?目标系统应当做什么?” (3) (3) 软件设计软件设计 设计是软件工程的技术核心。本阶段要回答的关键问题是设计是软件工程的技术核心。本阶段要回答的关键问题是“如何实现如何实现目标系统?目标系统?” 1.3 软件生命周期软件生命周期(6)q 各个阶段所要完成的基本任务各个阶段所要完成的基本任务(4) (4) 程序编码和单元测试程序编码和单元测试 本阶段要解决的问题是本阶段要解

15、决的问题是“正确地实现已做的设计正确地实现已做的设计”,即,即“如何编写正如何编写正确的、可维护的程序代码?确的、可维护的程序代码?” (5) (5) 集成和系统测试集成和系统测试 测试是控制软件质量的重要手段,本阶段的主要任务是做集成测试和测试是控制软件质量的重要手段,本阶段的主要任务是做集成测试和系统测试。系统测试。 (6) (6) 软件运行和维护软件运行和维护 已交付的软件投入正式使用,便进入运行阶段。这一阶段可能持续若已交付的软件投入正式使用,便进入运行阶段。这一阶段可能持续若干年。软件在运行中可能由于多方面的原因,需要对它进行修改。干年。软件在运行中可能由于多方面的原因,需要对它进行

16、修改。 1.4 软件工程方法学软件工程方法学(1)q概念概念软件工程包含软件工程包含技术技术和和管理管理两方面的内容,是技术和两方面的内容,是技术和管理紧密结合所形成的工程学科。管理紧密结合所形成的工程学科。通常将软件开发全过程中使用的一整套技术方法的通常将软件开发全过程中使用的一整套技术方法的集合称为集合称为方法学方法学(methedology)(methedology),也称为,也称为范型范型(paradigm)(paradigm)。1.4 软件工程方法学软件工程方法学(2)q三要素:三要素:方法、工具、过程方法、工具、过程。软件工程软件工程方法是完成软件开发的各项任务的技术方法方法是完成

17、软件开发的各项任务的技术方法; ;软件软件工具是为运用方法而提供的自动和半自动的软件工程工具是为运用方法而提供的自动和半自动的软件工程支撑环境支撑环境; ;过程过程是为了获得高质量的软件所需要完成的一系列任务框是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。架,它规定了完成各项任务的工作步骤。q目前使用最广泛的软件工程方法学:目前使用最广泛的软件工程方法学:传统方法传统方法(结(结构化方法),构化方法),面向对象方法面向对象方法。1.4 软件工程方法学软件工程方法学(3)q结构化方法结构化方法 也称为也称为生命周期方法学生命周期方法学或或结构化结构化范型。根据

18、软件范型。根据软件生命周期的各个阶段,采用结构化技术来完成每个生命周期的各个阶段,采用结构化技术来完成每个阶段的任务。阶段的任务。特点:特点:(1) (1) 强调自顶向下顺序地完成软件开发的各阶段强调自顶向下顺序地完成软件开发的各阶段任务任务; ; (2) (2) 结构化方法要么面向行为,要么面向数据,结构化方法要么面向行为,要么面向数据,缺乏使两者有机结合的机制。缺乏使两者有机结合的机制。1.4 软件工程方法学软件工程方法学(4)l面向对象方法面向对象方法是将是将数据数据和和对数据的操作对数据的操作紧密地结合起来的方法。紧密地结合起来的方法。软件开发过程是多次反复迭代的演化过程。软件开发过程

19、是多次反复迭代的演化过程。面向对象方法在概念和表示方法上的一致性,保证面向对象方法在概念和表示方法上的一致性,保证了各项开发活动之间的平滑过渡。了各项开发活动之间的平滑过渡。对于大型、复杂及交互性比较强的系统,使用面向对于大型、复杂及交互性比较强的系统,使用面向对象方法更有优势。对象方法更有优势。 1.5 软件过程软件过程q软件过程是为了获得高质量软件所需要完成的一系列任务软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了的框架,它规定了完成各项任务的工作步骤完成各项任务的工作步骤。q过程定义了过程定义了运用方法的顺序、应该交付的文档资料、为保运用方法的顺序、应该交付的文档资料

20、、为保证软件质量和协调变化所需要采取的管理措施,以及标志软证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。件开发各个阶段任务完成的里程碑。q通常通常使用生命周期模型使用生命周期模型简洁地描述软件过程。生命周期模简洁地描述软件过程。生命周期模型规定了把型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。因此,也称为过程模型。q将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型。q它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落q特点-阶段的顺序性和依赖性-推迟实现的观点-质量

21、保证1.5.1 1.5.1 瀑布模型瀑布模型(1) (1)传统的瀑布模型传统的瀑布模型 1.5.1 1.5.1 瀑布模型瀑布模型(2)(2)瀑布模型有许多优点:可强迫开发人员采用规范的方法(例如,结构化技术); 严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。各个阶段产生的文档是维护软件产品时必不可少的,没有文档的软件几乎是不可能维护的。瀑布模型的成功在很大程度上是由于它基本上是一种文档驱动的模型。存在问题不适合需求模糊的系统在获得用户基本需求说明的基础上,投入少量人力和物力,快速建立一个原始模型,使用户及时运行和看到模型的概貌和使用效果,并对需

22、求说明进行补充和精化,提出改进意见,开发人员进一步修改完善,如此循环迭代,直到得到一个用户满意的模型为止。1.5.2 1.5.2 快速原型模型快速原型模型(1) (1)(1) 原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。(2) 开发人员通过建立原型系统已经学到了许多东西 ,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。 (3) 软件产品一旦交付给用户使用之后,维护便开始了。根据所需完成的维护工作种类的不同,可能需要返回到需求分析、

23、规格说明、设计或编码等不同阶段。1.5.2 1.5.2 快速原型模型快速原型模型(2)(2)使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。1.5.3 1.5.3 增量模型增量模型(1) (1)增量模型的优点增量模型的优点 (1)(1)能在较短时间内向用户提交可完成一些有用的工作产品,能在较短时间内向用户提交可完成一些有用的工作产品,即从第即从第1 1个构件交付之日起,用户就能做一些有用的工作。个构件交付之日起,用户就能做一些有用的工作。(2)(2)逐步增加产品的功能可以使用户有较充裕的时间学习和适逐步增

24、加产品的功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给用户组织带来的冲应新产品,从而减少一个全新的软件可能给用户组织带来的冲击。击。(3)(3)项目失败的风险较低,虽然在某些增量构件中可能遇到一项目失败的风险较低,虽然在某些增量构件中可能遇到一些问题,但其他增量构件将能够成功地交付给客户。些问题,但其他增量构件将能够成功地交付给客户。(4)(4)优先级最高的服务首先交付,然后再将其他增量构件逐次优先级最高的服务首先交付,然后再将其他增量构件逐次集成进来。因此,最重要的系统服务将接受最多的测试。集成进来。因此,最重要的系统服务将接受最多的测试。1.5.3 1.5.3

25、增量模型增量模型(2)(2)增量构件开发增量构件开发 每个增量构件应当实现某种系统功能,因此增量构每个增量构件应当实现某种系统功能,因此增量构件的开发可以采用瀑布模型的方式,如图所示。件的开发可以采用瀑布模型的方式,如图所示。1.5.3 1.5.3 增量模型增量模型(3)(3)该模型将瀑布模型与快速原该模型将瀑布模型与快速原型模型结合起来,并且加入型模型结合起来,并且加入两种模型均忽略了的风险分两种模型均忽略了的风险分析。析。螺旋模型的基本思想是,使螺旋模型的基本思想是,使用原型及其他方法来尽量降用原型及其他方法来尽量降低风险。理解这种模型的一低风险。理解这种模型的一个简便方法,是把它看作在个

26、简便方法,是把它看作在每个阶段之前都增加了风险每个阶段之前都增加了风险分析过程的快速原型模型。分析过程的快速原型模型。1.5.4 1.5.4 螺旋模型螺旋模型(1) (1)简化的螺旋模型简化的螺旋模型完整的螺旋模型完整的螺旋模型螺旋模型的优点螺旋模型的优点对可选方案和约束条件的强调有利于已有软件的重用,也有对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。助于把软件质量作为软件开发的一个重要目标。减少了过多测试或测试不足所带来的风险。减少了过多测试或测试不足所带来的风险。在螺旋模型中维护只是模型的另一个周期,因而在维护和开在螺旋模型中维护只是模型的另

27、一个周期,因而在维护和开发之间并没有本质区别。发之间并没有本质区别。螺旋模型的缺点螺旋模型的缺点 螺旋模型是螺旋模型是风险驱动风险驱动的,因此要求软件开发人员必须具有丰的,因此要求软件开发人员必须具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还以为风险:当项目实际上正在走向灾难时,开发人员可能还以为一切正常一切正常1.5.4 1.5.4 螺旋模型螺旋模型(2)(2)其他模型其他模型q喷泉模型喷泉模型qRational统一过程统一过程(RUP统一过程统一过程)q敏捷过程与极限编程敏捷过程与极限编程q微软过程微软过程思考题思考题q假设要开发一个软件,该软件的功能是将某个范围在假设要开发一个软件,该软件的功能是将某个范围在-3276832767之间的整数转换为之间的整数转换为R进制(进制(R=2,5,8,16),该软件一旦实现并测试完成后,该产品将被抛弃,),该软件一旦实现并测试完成后,该产品将被抛弃,请问该选用哪种生命周期模型?请问该选用哪种生命周期模型? 作业作业q习题习题3. 6. 7.个人观点供参考,欢迎讨论

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号