UML第二讲软件工程概述.ppt
《UML第二讲软件工程概述.ppt》由会员分享,可在线阅读,更多相关《UML第二讲软件工程概述.ppt(118页珍藏版)》请在三一办公上搜索。
1、1,第二讲软件工程概述,2,主要参考书,软件工程教程 张敬、宋广军、赵硕、王睿编著 北京航空航天大学出版社 2003.7软件可靠性何国伟 主编国防工业出版社 1998.1,3,主要内容,软件标准与规范,软件管理,4,作业,UML与软件工程谈谈你所参与过的软件开发项目中遇到的问题和解决的方法软件工程发展史综述软件需求分析方法综述以上任选一题,也可以自选题目。内容不少于1000字,2周内交。,5,作业要求,格式:题目作者摘要内容引言、问题、方法、结论参考文献提交地址:文件名:姓名+第几次作业,6,前言,软件开发现状与问题软件工程的目的和内容谁需要软件工程,7,规模大、功能复杂、分布式、并发、团体开
2、发等,软件开发现状,8,程序+数据+文档,软件常见的问题,什么是软件?1.程序存在的问题2.文档存在的问题3.管理存在的问题4.软件质量问题,9,程序存在的问题,一大:一个函数几百行、甚至5000行(多少行合适?)二乱:程序结构乱、乱修改三无:无注释、无控制、无管理(多少注释量合适?)三自:自编、自导、自演(1)透明度很差,没有齐全的技术资料;(2)软件交付系统联试前只靠自检,质量可靠性得不到保证;(3)用户对交付的软件可靠性缺乏信心。,10,文档存在的问题,三无:无需求说明书、无设计文档、无使用及操作手册按GJB438-88军用软件文档编制规范,文档有13种:1.可行性研究报告、2.软件项目
3、开发计划、3.软件需求说明、4.数据要求说明、5.概要设计说明、6.详细设计说明、7.数据库设计说明、8.用户手册、9.操作手册、10.程序维护手册、11.测试计划、12.测试分析报告、13.安装实施过程。后补文档:无用文档,11,管理存在的问题,三无管理:无计划、无控制、无改进人、经费、软硬件设备与平台、时间、过程、据统计60%项目延期,1030%项目失败!参与人员(单位)多:协同、管理进度不协调第三方测试仍有相当的阻力预算经费一再突破,研制周期一再拖延,产品质量没有保证甚至几乎不能用。,12,据IBM360操作系统研制的第一位负责人总结的经验,假设编写若干单独完成某功能的程序的工作量为1,
4、则把这些程序组成程序系统的工作量为3,而要把这个程序系统变成产品则工作量为9。,软件管理工作与项目规模的关系,13,软件质量问题,软件质量问题占软硬件问题总数的2/3与用户需求不符:(1)使用方提出的用户需求是不完整的,有遗漏的。(2)需求“误解”,软件工厂误解了使用方需求。(3)软件工厂没有完全实现使用方需求或潜在的需求。(4)概要设计没有完全实现需求规范,详细设计没有完全实现概要设计规范,编程没有完全实现详细设计规范等等。(5)选用了不完整或不正确的算法或判别逻辑等等。(6)人为疏漏。如抄录错误等等。,14,软件质量问题(续1),错误数量居高不下著名案例:IBM OS/360,2000Bu
5、gs/Year,在花费了上千人年的开发成本以及不断修正后,该操作系统终因错误过多、性能不稳定而被放弃。这种现象在20世纪60年代引起了业内人士高度重视,导致软件工程研究的诞生,成为软件质量工作历程中的重要里程碑。IBM OS/400:改一个错误,出现三个错误,15,软件质量问题(续2),我国的软件还没有像硬件那样有完善的检验体系,因此交付软件的质量不高。典型的统计表明,在开发阶段,平均每千行代码有5060个故障,交付后平均每千行代码有1518个故障。交付的软件有时留下很严重的隐患。据统计60%软件项目延期,10-30%项目失败!,16,软件质量造成影响的实例,海湾战争期间,“爱国者”防空系统有
6、一次未能成功地拦截“飞毛腿”导弹,造成军营被炸,28名英军死亡,其原因是其跟踪软件在运行100h后出现了一个0.36s的舍入误差。1996年6月4日,阿里安娜5型运载火箭在首次发射时,由于软件质量问题,在火箭升空约40s时,在大约4000m的高空,火箭开始偏离飞行轨道,随后发生爆炸。火箭碎片散落在发射塔以东约12km2的土地上,价值5亿英镑的火箭灰飞烟灭。中航某型号飞机首飞前航电系统在地面DSI平台上测试出了800个故障。其中:软件故障600个(占75%),元器件故障127个(占16%),其它故障73个(占9%)。,17,Software Engineering,预算经费一再突破,研制周期一再
7、拖延,产品质量没有保证甚至几乎不能用的现象在60年代迅速增多,严重影响了计算机应用的发展,终于在60年代末两次北大西洋公约组织的科技工作会议上,专家们明确指出了这是“软件危机”,集中研究了对策,明确提出,必须根本改变过去那种手工业作坊式的开发方式,而采用与机械工程类似的工程方法,人们称之为“软件工程”。,18,软件工程与软件危机,19,60年代编程特点,对软件开发的理解就是编程序。重视编程技巧,编程是在一种无序的、祟尚个人技巧的状态中完成的。软件规模相对较小。缺少有效方法与软件工具的支持。工作好的人与工作差的人,在软件(程序)生产效率上的比例是10:1,在程序处理速度和存储容量上的比例是5:1
8、。产品的结果是程序编程人员需要掌握的主要技术是数据结构和算法强调空间(内存)和时间(速度)祟尚个人编程技巧,20,70年代编制软件的特点,硬件性能价格比每十年提高一个数量级,导致计算机在应用上大量普级。软件规模开始加大。编制软件已不再是个人能够完成的事情,开始需要多人合作。产品的结果是软件编程人员需要掌握的主要技术除了数据结构和算法外还要加上文档(程序+文挡),21,80年代编制软件系统的特点,计算机性能越来越高,价格更加便宜,应用更加广泛。信息的作用和优势逐渐显现软件规模越来越大导致需求越来越复杂产品的结果是软件系统分析与设计方法,构造模型成为主流编程人员需要掌握的主要技术是软件开发方法(如
9、何做),22,90年代复杂软件系统的特点,企业竞争越发明显社会变革速度加快、周期缩短。信息已作为有巨大价值的产品来对待导致需求越来越复杂和经常需要变更。产品的结果是复杂软件系统软件人员需要掌握的主要技术除了软件开发方法之外还需要学习和掌握软件过程的知识。,23,21世纪软件产品的特点,面向对象的软件开发概念及工具构件、接口、中间件技术软件复用软件开发过程及软件项目管理技术,24,软件产品发展的特征变化,时间特征产品特征技术特征知识特征行为特征,25,程序,软件,构件系统,软件系统,复杂系统,60年代 70年代 80年代 90年代 21世纪,数据结构+算法 程序+文档 开发方法 过程思维 自动化
10、生产,产品特征,时间特征,技术特征,时间空间编程技巧,软件可视化表示,概念工具过程管理,如何做软件建模技术,复用组装技术,个人行为,小组行为,组织行为,团队行为,行为特征,知识特征,软件系统的规模、需求复杂度与变更,26,过去软件生产方式存在的问题,程序制作过程全在开发者个人脑子里,别人看不见,摸不着,无法进行管理和控制,俗称“不透明”。依靠个人技巧的艺术品即使单独看来非常出色,但很难把这些各有特色的人和作品组合起来。忽视了软件产品开发中在编程前后更大量、更关键的工作。,27,软件危机的特点,软件危机:60年代末质量差成本高进度慢维护难管理弱,28,?,什么是好的软件产品?,29,软件质量,质
11、量:实体满足规定和潜在需要能力的特性之总和。软件质量:反映软件产品满足规定和潜在需要能力的特性的总和,描述和评价软件产品质量的一组属性叫“软件质量特性”。按ISO/IEC9126-91,软件质量可定义为六个特性及21个子特性。,30,软件质量,功能性(functionality)适用性(suitability)准确性(accuratens)互操作性(inter-operability)一致性(compliance)保密性(security),可靠性(reliability)成熟性(maturity)容错性(fault-tolerance)可恢复性(recoverability),易用性(usa
12、bility)易理解性(understandability)易学性(learnability)易操作性(operability),效率(efficiency)时间性能(time behavior)资源性能(resource behavior),可维护性(maintainability)可分析性(analyzability)易修改性(changeability)稳定性(stability)测试性(testability),可移植性(portability)适应性(adaptability)可安装性(installability)规范性(conformance)可换性(replaceability
13、),软件质量特性,31,技术混合,功能,成本,兼容性,20年之后的挑战不是速度、成本和性能,而是复杂度的问题了。Bill Raduchel,Sun微系统公司策略执行总裁,软件质量的影响因素,32,什么是软件工程,运用工程学的基本原理和方法来组织和管理软件生产。自软件项目立项起,经过开发、运行、维护直到最终引退的整个软件寿命周期内应用系统的工程技术、质量保证活动、配置管理方法来生产和维护软件产品。工程化方法过程规范化(可控制、可重复、可预测)文档标准化方法系统化管理科学化开发平台自动化,33,软件工程框架结构,软件体系结构,软件建模方法与建模过程,软件工程基础,软件需求工程,面向对象软件开发方法
14、,软件项目管理,软件过程及过程改进,泛化,组成,软件开发模型,结构化软件开发方法,软件项目管理,软件质量保证,软件测试方法,需求管理,需求开发,面向对象的概念,UML语法,面向对象的分析设计,面向对象的软件测试,软件项目估算,软件开发计划,项目风险管理,软件配置管理,软件质量管理,软件度量,软件过程管理,软件过程,软件过程工程,软件工程的目的和内容,目的:高效率、低成本地开发出高质量的软件产品内容:,34,谁需要软件工程?,开发方管理者技术人员:系统分析员、设计师、开发人员、程序员、测试者、维护者、培训人员营销人员用户方投资者使用者维护者,35,软件生命周期,需求(Requirement)计划
15、(Planning)开发(Development)需求分析(Requirements Analysis)设计(Design)编码(Coding)测试(Testing)运行维护(Maintenance),36,软件生产过程的特点,软件的产生通常经历一个“开发”过程,而不是“制造”过程;软件不会出现“磨损、老化”现象;软件投产过程仅仅是一个拷贝过程。,37,软件及其研制过程的特点,38,软件开发模型,瀑布模型(Waterfall Model)螺旋模型(Spiral Model)喷泉模型(Fountain Model)增量模型(Incremental Model)演化模型(Evolving Mode
16、l)统一过程模型(Rational Unified Process),39,前提:明确的用户需求!,瀑布模型(Waterfall Model),40,在瀑布式生命周期中,只有到生命周期的后期才能确知周围是否存在风险。,瀑布模型的风险,41,原型,风险分析评价方案识别风险消除风险,设计 编码 单元测试 组装测试 系统测试验收测试,实施过程开发与验证,制定计划决定目标方案和限制,提交线,评审,客户评估,螺旋模型(Spiral Model),42,迭代式生命周期和瀑布式生命周期的风险比较,43,喷泉模型体现了软件创建所应有的迭代和无间隙特征。喷泉模型主要用于运行面向对象开发过程。,喷泉模型(Foun
17、tain Model),44,初始原型快速生成,评价/确认,实验性原型进化,最终确认,目标系统实现,目标系统测试,系统交付,原始用户需求,展示/理解/沟通,补充/确认/优化,增量模型实际指出了一个外围框架,它不限制增量开发过程中所使用的具体的过程模型和方法。,增量模型(Incremental Model),45,快速实现核心需求,评价/确认,增强能力、精化系统,用户试用,用户满意的系统,用户核心需求,展示/理解/沟通,补充/确认/优化,演化模型主要针对事先不能完整定义其需求的软件开发。,演化模型(Evolving Model),46,统一过程模型(Rational Unified Proces
18、s),统一过程模型由Rational公司提出,主要用于描述使用UML开发的过程。该过程有如下三个主要特点:用例(Use-case)驱动的软件开发过程以体系结构(Architecture)为中心的过程迭代(Iterative)增量(Incremental)式的过程,47,统一过程模型的生命周期阶段视图,48,统一过程模型的迭代视图,49,核心工作流和模型,50,迭代和工作流,51,软件计划,问题定义可行性分析制定项目计划开发周期投资,52,软件计划(续1),软件工作域:任务与要求系统:功能、性能、接口(软硬件、人)开发:过程、规程、活动质量:可靠性指标等资源:人员,软硬件,场地,消耗性材料,时间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML 第二 软件工程 概述
链接地址:https://www.31ppt.com/p-5451593.html