资源描述
,*,*,*,软件工程,Software Engineering,1,软件工程 Software Engineering 1,参考教材,软件工程学教程,陈 明 科学出版社,2002,软件工程,程一剑译 机械工业出版社,2006,教材:,面向对象与传统软件工程,韩松译 机械工业出版社,2006,UML,基础与,ROSE,建模案例,吴建 人民邮电出版社,2004,UML,基础、案例与应用,李虎译 人民邮电出版社,2004,参考书:,参考教材 软件工程学教程 陈 明 科学出版,第一章 软件工程概述,水利工程,建筑工程,机械工程,软件工程,传统工程,新兴工程,气象工程,生物工程,第一章 软件工程概述 水利工程 建筑工程 机械工程 软,1.1 软件的概念与特点,1、软件,software,soft+ware,软制品,(软体),软件是计算机系统中与硬件相互依存的另一部分,它是包括,程序,、,数据,及其相关,文档,的完整集合。,1.1 软件的概念与特点 1、软件software,2、软件特点,.,软件是一种逻辑实体,而不是具体的物理实体,.,软件的生产与硬件不同,.,在软件的运行和使用期间,没有硬件那样的机械,磨损,老化问题,磨合调整,磨损用坏,修改点,实际曲线,理想曲线,硬件失效率曲线,时间,失效率,时间,失效率,软件失效率曲线,2、软件特点.软件是一种逻辑实体,而不是具体的物理实体.,.,软件的成本相当昂贵,软件技术的发展落后于需求,时间,软件复杂性,软件需求,差距,软件技术,硬、软件成本比例的变化,年份,成本%,软件,1950,1970,1985,1995,硬件,.软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂,3、软件的分类,1、按软件的,功能,进行划分,系,统,软,件,支,撑,软,件,应,用,软,件,3、软件的分类1、按软件的功能进行划分系支应,支 撑 软 件,一般类型,:,文本编辑程序,文本格式化程序,支持需求分析,:,PSL/PSA,问题描述语言,关系数据库管理系统,支持设计,:,图形软件包,结构化流程图绘图程序,支持测试,:,静态分析器,测试覆盖检验程序,支持实现,:,编辑程序,连接编辑程序,支持管理,:,标准检验程序,库管理程序,支 撑 软 件一般类型:支持需求分析:支持设计:支持测试:支,2、按软件的,规模,进行划分,按开发软件所需的,人力、时间以及完成的,源代码行数。,类别,参加人数,研制期限,产品规模(源代码行数),微型,小型,中型,大型,甚大型,极大型,1,1,2-5,5-,10,100-1000,2000-5000,几天,6月,1-2年,2-3年,4-5年,5-10年,约500行,约2000行,5000-50000,行,5,万-10万行,100万行,1000万行,2、按软件的规模进行划分 按开发软件所需的,3、按软件,开发,划分,软,件,项,目,开,发,软,件,产,品,开,发,3、按软件开发划分软软,1.2 软件工程的概念,1、,“,软件工程,”,-Software Engineering,于1968年,NATO,组织在,德国召开的一次会议上提出,是把软件当作一种工业产品,要求,“,采用工程化的,原理与方法对软件进行计划、开发和维护,”,。,1.2 软件工程的概念 1、“软件工程”-Softwa,1.3 软件开发模型,从提出软件产品开始,直到该软件产品被淘汰的全过程,1.软件生存周期,跨越整个软件生存周期的系统开发、运行、维护所,实施的全部工作和任务的结构框架。,2.软件开发模型,1.3 软件开发模型 从提出软件产品开始,直到该软件产品被淘,各种软件开发模型,瀑布模型(,Waterfall Model),原型模型(,Prototyping Model),增量模型(,Incremental Model),螺旋模型(,Spiral Model,),喷泉模型(,Fountain Model,),智能模型(,Intelligent Model,),各种软件开发模型 瀑布模型(Waterfall Model,特点:,上一阶段的变换结果,是下一阶段的变换的,输入,相邻两个阶段,具有因果关系,紧密,相联。,需求分析,问题定义,可行性研究,计划,时期,概要设计,详细设计,编 码,测 试,开发,时期,运行与维护,运行,时期,软件生存周期模型(瀑布模型,Waterfall Model,),特点:需求分析 问题定义可行性研究 计划概要设计 详细设计,瀑 布 模 型,特点:,上一阶段的变,换结果是下一,阶段的变换的,输入,相邻两个,阶段具有因果关,系,紧密相联。,该阶段完成后生成需求说明书,设计说明书,源程序清单,测试报告,软件维护报告,瀑 布 模 型特点:该阶段完成后生成需求说明书设计说明书源程,案例一,某个老师(,T),想要考察一个同学(,S),的学习情况和技术水平,于是交给该学生一个任务。,T:,我有一个朋友想要一个图象浏览软件,能够查看多种格式的图象,包括,BMP、TIFF、JPG、PNG,,并且能够支持一般的放大、缩小、漫游。你能做这样一个软件吗?,S:,就是类似,ACDSEE,这样的软件吗?,T:,差不多,不过不需要那么强大的功能,我这个朋友计算机是外行,最好能做的比较方便,傻瓜型的,例如象,ACDSEE,自动翻页这种功能还是要的。,S:,我以前学过,BMP,和,JPG,的图象格式解析,我想没有问题,T:,好的,给你30天时间,下周你再来一趟,跟我讲一下你的工作进度。,案例一 某个老师(T)想要考察一个同学(S)的学习情,一、功能,1.读取、显示、另存四种格式图片(,BMP、TIFF、JPG、PNG),2.,放大、缩小、漫游,3.列出当前目录下所有四种格式图片文件名,4.,PAGEUP(PAGEDOWN),自动调出当前目录上一张(下一张)图片,二、其它说明,1.界面尽量简洁,,,容易操作,2.不要图片预览和打印,三、开发工具:,VC 6.0,四、开发环境:普通,PC,机;,Window2000/xp,五、工作量,1.研究一下四种图片的格式,2.设计一个解析器类,解析这四种格式,3.设计一个文档类,实现读取、另存和目录浏览功能,4.设计一个视图类,实现显示、缩放、漫游功能,工作清单,一、功能工作清单,可行性分析,需求分析,概要设计,详细设计,编 码,测 试,交 付,维 护,对话过程,工作清单一、二,工作清单三、四、五,写代码前的思考过程,写代码,提交给老师检查,给老师朋友安装、讲解,修正问题、改进软件,可行性分析 需求分析 概要设计 详细设计 编 码测 试 交,实际情况1,一切顺利,学生,S,按期交付了软件,经过一两周的试用、修改、完善后,三方都比较满意,该软件在老师的朋友那里成为一个得心应手的工具。,Waterfall Model,实际情况1 Waterfall Model,瀑布模型的优缺点,提供了软件开发的基本框架,比靠“个人技艺”开发好的多,;,有利于大型软件开发过程中人员的组织和管理;,有利于开发方法和工具的使用,提高了软件的质量和效率,;,优点:,委托事项需要在过程的早期阶段清晰给出,,响应用户需求的变更比较困难。,缺点:,瀑布模型的优缺点 提供了软件开发的基本框架,比靠“个人技,原型模型(,Prototype Model,),加工,原型,原型,原型:是指模拟某种产品的原始模型,快速分析,和设计,建造,原型,客户,评价原型,1、原型系统仅包括未来系统的,主要功能,以及系统的重要,接口。,2、为了尽快向用户提供原型,,开发原型系统时应尽量使用,能缩短开发周期的语言和工,具。,原型模型(Prototype Model)加工原型原型:,实际情况2,一周后,学生去见老师,并提交了工作清单,他发现老师的这位朋友(,C),和老师在一起。,S:,这是工作清单,我已经研究清楚了四种文件的格式,可以写代码了。,T:,很好,不过我这位朋友有一些新想法,你不妨听听。,C:,你好。我新买了一个扫描仪,你的程序可不可以直接扫描图片进来。,S:,你可以自己扫描呀,买扫描仪的时候一般都会送正版软件的。,C:,是的,可是我一直不太会用,你知道我计算机水平不高,学一些新东西很累,也没有时间,如果你能直接链接扫描仪,我只要学会你的软件就行了,我愿意多支付一些费用,,还有,我想建一个图片库,你知道,我工作时需要上百个图片,经常找不到,最好还带模糊查询。,实际情况2,实际情况2(续),S:,.!,C:,还有一些,现在一时想不起来,我想起来的话会再跟你联系,时间上可以长一些。,S:,.!,T:,要不这样吧,你先做一个样子出来给,C,看看,一边做,一边改。,C:,这样最好,看见一个基本样子我就知道我想要什么了,事情就这样定下来了,,S,愤怒的撕掉了自己的工作清单,.,回去后,S,花1天时间用,DELPHI,做了个样子,只能读,BMP,和,JPG,文件,做了些菜单和工具栏,用,ACCESS,建了一个图片库。就这个,“,假,”,的程序,,S,和,C,讨论了一天,,S,又修改了几次,又讨论了几次,一周后,这个,“,假,”,的程序表面看起来和真的一模一样。,实际情况2(续),实际情况2(续),于是,S,打算用,VC,重写这个程序,但是他很快发现继续用,DELPHI,写更方便,因为至少界面不用重做了,于是,,两个月后,这个事情终于结束了。,S,顺利的完成了他的毕业设计,JPG,压缩优化算法设计,,C,一直使用这个软件管理他的图片,并庆幸花了这么少的钱得到了这么有用的东西.,Prototyping Model,实际情况2(续)Prototyping Model,原型模型的优缺点,可以得到良好的需求;,原型模型给用户机会更改原先设想的最终系统;,原型模型使系统更易维护、对用户更友好;,优点:,过程不可见;,系统结构较差;,特殊工具和技术的使用;,缺点:,原型模型的优缺点 可以得到良好的需求;优点:过程不可见;,增量模型,软件描述、设计和实现活动被分散成,一系列的增量,这些增量轮流被开发。,增量模型 软件描述、设计和实现活动被分散成,增量模型,定义框,架需求,对增量,指定需求,设计系统,体系结构,开发系,统增量,增量有,效性验证,增量集成,系统有,效性验证,最终系统,系统未完成,增量模型定义框 对增量设计系统开发系增量有增量集成 系统有最,增量模型的优缺点,客户不需等到整个系统的实现;,可从早期增量中,获得对后面增量的需求经验;,项目总体性失败的风险比较低;,系统最重要的部分可靠性高;,优点:,难以将客户的需求映射到适当规模的增量上;,难以定义所有增量都会用到的基本服务;,缺点:,增量模型的优缺点 客户不需等到整个系统的实现;优点:难以,螺旋模型,对于大型软件,只开发一个原型往往达不到,要求。螺旋模型将瀑布模型和增量模型结合起来,,并加入了风险分析。,螺旋模型 对于大型软件,只开发一个原型往往达不到,螺旋模型,每个螺旋周期可分为4个工作步骤:,1.确定目标、方案和限制条件;,2.评估方案、标识风险和解决风险;,3.开发确认产品;,4.计划下一周期工作。,螺旋模型 每个螺旋周期可分为4个工作步骤:,本章小结,软件的概念与特点,软件,软件的特点,软件的分类,软件工程,软件开发模型,瀑布模型,原型模型,增量模型,螺旋模型,本章小结 软件的概念与特点,感谢您的下载,!,快乐分享,知识无限!,感谢您的下载!,
展开阅读全文