收藏 分享(赏)

Ch0160755.ppt

上传人:dzzj200808 文档编号:3318726 上传时间:2018-10-12 格式:PPT 页数:35 大小:555.50KB
下载 相关 举报
Ch0160755.ppt_第1页
第1页 / 共35页
Ch0160755.ppt_第2页
第2页 / 共35页
Ch0160755.ppt_第3页
第3页 / 共35页
Ch0160755.ppt_第4页
第4页 / 共35页
Ch0160755.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、软件工程 原理、方法和工具 Ch.1 软件危机、软件工程,梁 颖 ,课程目标,通过本课程的学习,我们还可以了解并掌握: 软件危机、软件生命周期的概念 软件工程的内涵和特性 面向过程和面向对象软件工程的开发步骤 Rational Rose工具的用法 按照软件工程的原理开发软件的方法 软件测试的方法 ,课程服务于,- 软件开发人员软件工程管理人员测试工程师软件配置管理人员项目经理 还包括:程序员 软件分析师软件咨询顾问 软件企业高层管理人员,内容概览,全书共包括三篇、17章内容。第一篇是面向过程的软件工程,以传统的软件生存周期为主线,介绍软件工程的原理和方法,讲述了软件生存周期各阶段的任务、过程和

2、方法。第二篇内容为面向对象的软件工程,以UML为主线,结合当前流行的软件工程工具Rational Rose, 介绍面向对象软件工程的原理和方法。第三篇内容给出软件工程的实验环节要求和示例,包括面向过程的软件工程和面向对象的软件工程两种不开发方法的实验要求,并通过两个典型的案例具体说明两类软件工程实验的具体实施步骤。,第一篇 面向过程的软件工程,第1章 软件危机、软件工程 第2章 可行性研究 第3章 软件需求分析 第4章 软件总体设计 第5章 软件详细设计 第6章 软件编码 第7章 软件测试 第8章 软件维护,第二篇 面向对象的软件工程,第9章 UML语言简介 第10章 面向对象的概念 第11章

3、 对象设计模式 第12章 面向对象的软件开发过程 第13章 软件开发工具ROSE 第14章 ROSE及其应用 第15章 面向对象的软件体系结构 第16章 软件工程新技术,第三篇 软件工程实验,第17章 软件工程实验大纲 面向过程的软件工程实验 面向对象的软件工程实验,第 1章 软件危机、软件工程,1.1 软件工程的发展史 1.2 软件危机主要表现形式 1.3 产生软件危机的原因及其解决途径 1.4 软件和软件工程 1.5 软件质量 1.6 软件的生存周期及开发模型,1.1 软件工程的发展史,1.1.1 程序设计时代 1.1.2 程序系统时代 1.1.2 软件工程时代,1.2 软件危机主要表现形

4、式,1.2.1 软件危机 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机主要包含两方面的问题: 一是如何开发软件以满足多软件日益增长的需求; 二是如何维护数量不断增长的已有软件。,1.2 软件危机主要表现形式,1.2.2 软件危机主要表现形式 对软件开发成本和研制进度的估计常常很不精确 “已完成”的软件不能满足用户要求 软件产品质量差,可靠性得不到保证 软件产品可维护性差,没有统一、公认的规范和完整规范的文档 软件成本在计算机系统总成本中所占的比例逐年上升 软件开发生产率提高的速度,远远跟不上计算机应用速度普及深入的趋势,1.3 产生软件危机的原因及其解决途径,

5、1.3.1 产生软件危机的原因 软件是计算机系统中的逻辑部件,不可见 软件产品往往规模庞大,结构复杂 软件开发的管理困难、进度/质量控制困难 软件开发费用不断增加,维护费用急剧上升 软件开发技术落后 生产方式落后 开发工具落后,生产效率提高缓慢,1.3 产生软件危机的原因及其解决途径,1.3.2 解决软件危机途径 首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”的错误观念。 要使用并且不断研究探索更好、更有效的技术和方法 要有良好的组织、严密的管理 应该开发和使用好的软件工具,1.4 软件和软件工程,1.4.1 软件 定义一:软件是程序、数据以及开发、使用和维护程序需要的所有文档

6、的完整集合。 定义二:软件是计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。,1.4 软件和软件工程,1.4.2 软件工程 定义一:软件工程是指导计算机软件开发和维护的一门工程学科。软件工程采用工程的概念、原理、技术和方法来开发和维护软件。 定义二:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。(1968 NATO国际会议) 定义三:软件工程是: 是把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究中提到的途径。(1993 IEEE),1.5 软件质量,定义:软件质量是软件产品

7、满足规定的和隐含的有关特征和特性的全体,或者说所有描述计算机软件优秀程度的特性的组合。 软件质量的度量标准:功能性、可靠性、易用性、效率、可维护性、可移植性等,1.6 软件的生存周期及开发模型,1.6.1 软件生存周期 定义:软件生存周期是指某一软件项目被提出来并着手实现开始直到该软件报废或停止使用为止。 阶段划分:一般分为软件计划、软件开发和软件运行三个时期。,典型的软件生存周期,典型的软件生存周期,软件计划时期一般有问题定义和可行性研究两个阶段; 开发时期有需求分析、软件设计(包括概要设计、详细设计)、编码和测试四个阶段; 运行时期主要是维护阶段。,1.6 软件的生存周期及开发模型,1.6

8、.2. 软件开发模型(软件过程模型) 瀑布模型 快速原型模型 增量模型 螺旋模型,瀑布模型,定义:瀑布模型也称生存周期模型或线性顺序模型,是WRoyce于1970年首先提出来的。这种模型将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。 内容:包括问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试和维护。 特点: (1)阶段的顺序性和依赖性; (2)推迟实现的观点; (3)质量保证的观点; (4)存在的问题。,瀑布模型各阶段的相互关系,快速原型法,主要思想:首先快速建立一个能够反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践让用户了解未来目标系统的概貌,以便判

9、断哪些功能是符合需要的,哪些方面需要改进,用户会提出许多改进意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用,这样反复改进,最终建立完全符合用户需求的新系统。 目的:为了增进软件开发人员和用户对系统服务的理解; 为了减少开发成本,建立原型时应采取的方法: 采用一些特殊的有别于通常软件开发时使用的技术和工具,可以采用功能很强的甚高级语言实现原型系统 ; 把原型系统作为基础,考虑到原型系统的界面是与用户通讯的“窗口”部分,通过这个“窗口”,用户最容易获取信息和发表自己的意见。,快速原型模型法生存期模型,增量模型构件,定义:增量模型也称为渐增模型,是瀑布模型的顺序特征和快速原型法的

10、迭代特征相结合的产物。它是一种非整体开发的模型,软件在模型中是“逐渐”开发出来的,把软件产品作为一系列的增量构件来设计、编码、组装和测试。 特点:增量模型具有较大的灵活性,适合于软件需求不明确,设计方案有一定风险的软件项目。,增量模型图,增量模型,风险更大的增量模型,构件1:,构件2:,构件3:,螺旋模型,螺旋模型则加入了瀑布模型与增量模型都忽略了的风险分析,即将两种模型结合起来,弥补了两种模型的不足。螺旋模型是一种迭代模型,它把开发过程分为几个螺旋周期,每迭代一次,螺旋线就前进一周。 基本思想:使用原型及其他方法来尽量降低风险,当项目按照顺时针方向沿螺旋移动时,每一个螺旋周期均包含了风险分析

11、,可以把它看作是在每一个阶段之前都增加了风险分析的快速原型模型。 特点:适合于大规模高风险的软件项目开发;由于它是风险驱动的,因此使用该模型需要有相当丰富的风险评估经验和这方面的专门技术,这使该模型的应用受到一定限制。,完整的螺旋模型,快速原型,规格说明,设 计,编码与综合测试,课堂讨论,(1)宇宙飞船软件问题:“有4000万行代码,设每人每年写10000行;问是否集中4000人写一年就可以完成?”(2)“我们已有专业书籍和软件制作规范(标准),是否可以回答我们在开发过程中的所有问题呢?” (3) “如果我们落后于计划,就增加程序员来赶上进度?” (4)“有了对问题的一般描述就可以写程序了,细

12、节以后再慢慢讨论!” (5)“项目需求总在变化,但这些变化是容易满足的,因为软件是灵活的!” (6)程序员:“只要我写出程序并使其正确运行,那我的任务就over了!”(7)“在程序真正运行之前,没有方法评估其质量!”(8)“成功项目提交的就是正确的程序”,习题,什么是软件?软件和程序的区别是什么? 什么是软件生存周期?软件生存周期是如何划分的?划分生存周期的主要原则是什么? 什么是软件危机?它有哪些主要表现?为什么会产生软件危机? 什么是软件工程?怎样利用软件工程消除软件危机? 简述度量软件质量的六个特性,在软件开发中如何保证软件质量? 说明文档和复审对于软件质量控制的作用。 什么是软件生存周

13、期模型?试比较本章介绍的四种模型的优缺点,说明每种模型的使用范围。,思考题,1. 假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位,一旦实现并测试完之后,该产品将会被抛弃。你打算选用哪种生命周期模型?请说明你选择的理由。,对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无需通过原型来分析需求也无需用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。,思考题,2. 假设你被任命为一家

14、软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么?对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此选择生命周期模型是应该着重考虑那种模型有助于加快产品开发的进度。使用增量模型开发软件是可以并行完成开发工作,因此能够加快开发速度。这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需要,没必要再专门建立一个原型系统来分析用户的需求。第二,该公司的软件工程师对字处理软件很熟悉,由开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改建和扩充。综上所述,采用增量模型来完成这个项目比较恰当。,Q & A,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报