资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件过程模型案例,案例,某个老师(,T,)想要考察一个同学(,S,)的学习情况和技术水平,于是交给该学生一个任务。,T:,我有一个朋友想要一个图象浏览软件,能够查看多种格式的图象,包括,BMP,、,TIFF,、,JPG,、,PNG,,并且能够支持一般的放大、缩小,、漫游,。你能做这样一个软件吗?,S,:就是类似,ACDSEE,这样的软件吗?,T:,差不多,不过不需要那么强大的功能,我这个朋友计算机是外行,最好能做的比较方便,傻瓜型的,例如象,ACDSEE,自动翻页这种功能还是要的。,S,:我以前学过,BMP,和,JPG,的图象格式解析,我想没有问题,T,:好的,给你,30,天时间,下周你再来一趟,跟我讲一下你的工作进度。,这位同学非常明白老师的意图,回去后想了一下,并列出了一个清单,一 功能:,1,。读取、显示、另存四种格式图片(,BMP,、,TIFF,、,JPG,、,PNG,),2,。放大、缩小、漫游,3,。列出当前目录下所有四种格式图片文件名,4.PAGEUP,(,PAGEDOWN,)自动调出当前目录上一张(下一张)图片,二 其它说明:,1,。界面尽量简介,容易操作,2,。不要图片预览和打印,三 开发工具:,VC 6,四 开发环境:普通,PC,机;,Window2000/xp,五 工作量:,1.,研究一下四种图片的格式,2.,设计一个解析器类,解析这四种格式,3.,设计一个文档类,实现读取、另存和目录浏览功能,4.,设计一个视图类,实现显示、缩放、漫游功能,工作清单,软件过程的,8,个一般阶段,可行性分析,需求分析,概要设计,详细设计,编码,测试,交付,维护,对话过程,工作清单一、二,工作清单三、四、五,写代码前的思考过程,写代码,提交给老师检查,给老师朋友安装、讲解,修正问题、改进软件,可能,情况,1,一切顺利,学生,S,按期交付了软件,经过一两周的试用、修改、完善后,三方都比较满意,该软件在老师的朋友那里成为一个得心应手的工具。,Waterfall Model,(,瀑布模型,),它是经典的生命周期模型Classic Life Cycle Model,又称为,线性顺序模型,Linear Sequential Model,a,可能,情况,2,一周后,学生去见老师,并提交了工作清单,他发现老师的这位朋友(,C,)和老师在一起。,S:,这是工作清单,我已经研究清楚了四种文件的格式,可以写代码了。,T,:很好,不过我这位朋友有一些新想法,你不妨听听。,C:,你好。我新买了一个扫描仪,你的程序可不可以直接扫描图片进来。,S:,你可以自己扫描呀,买扫描仪的时候一般都会送正版软件的。,C,:是的,可是我一直不太会用,你知道我计算机水平不高,学一些新东西很累,也没有时间,如果你能直接链接扫描仪,我只要学会你的软件就行了,我愿意多支付一些费用,,还有,我想建一个图片库,你知道,我工作时需要上百个图片,经常找不到,最好还带模糊查询。,软件过程模型案例,可能,情况,2,(续),S,:,.!,C:,还有一些,现在一时想不起来,我想起来的话会再跟,你联系,时间上可以长一些。,S:,.!,T:,要不这样吧,你先做一个样子出来给,C,看看,一边做,一边改。,C:,这样最好,看见一个基本样子我就知道我想要什么了,事情就这样定下来了,,S,愤怒的撕掉了自己的工作清单,.,,回去后,S,花,1,天时间用,DELPHI,做了个样子,,只能读,BMP,和,JPG,文件,做了些菜单和工具栏,用,ACCESS,建了一个图片库。就这个,“,假,”,的程序,,S,和,C,讨论了一天,,S,又修改了几次,又讨论了几次,一周后,这个,“,假,”,的程序表面看起来和真的一模一样。,软件过程模型案例,可能,情况,2,于是,S,打算用,VC,重写这个程序,但是他很快发现继续用,DELPHI,写更方便,因为至少界面不用重做了,于是,,两个月后,这个事情终于结束了。,S,顺利的完成了他的毕业设计,JPG,压缩优化算法设计,,,C,一直使用这个软件管理他的图片,并庆幸花了这么少的钱得到了这么有用的东西,而,T,,则正在考虑如何为他下一批学生分派任务。,软件过程,原型模型(Prototyping Model),(原型模型)Prototyping Model,听取客户需求,构建系统 反复修改,客户,测试驱动,抛弃型原型:原型最终被抛弃,PART ONE,The Product and the Process,实际情况,3,正象上一种情况一样,用户提出了很多新要求,但是麻烦还不止这些,。一天,老师,T,匆匆忙忙的找到,S,。,T:,我的研究生正在做的,“,海量多媒体数据库管理技术,”,的自科项目需要一个对图象管理的模块,主要是数据库对象和图象文件之间的转换、显示和一些编辑操作,时间很紧,你目前在做的代码可否直接利用一下?,S:,恐怕有难度,我不清楚,.,T,:最好能够模块化强一些,你做的东西两边都能用,我这边比较急,一周后就要,我可以给你增加一个人一起做。,S,:可是,T:,没有关系,就这样决定了,这是一次锻炼机会。我再帮你找一个这方面的专家,你可以请教他。下周这个时间我会再来。,S,感觉头脑里面,“,海量,”,、,“,JPG,”,、,”,编辑,“,、,”,自科,“,、,”,图片库,“,、,”,一周时间,“,等等交织在一起,剪不清,理还乱。于是他准备去请教一下专家(,E,),实际情况,3,(续),E,听了,S,说的情况,帮他画了两个图。,业务模型图,用于说清两个用户到底要什么,实际情况,3,(续),分析业务模型图中的名次和动词,形成了数据对象图(类图),实际情况,3,(续),E,要求,S,自己再画这样几张图:对于业务模型图中的每一个业务,使用类图中的类说明业务中数据对象(类对象)之间的关连关系。,S,试着这样做了,能快根据自己画的,8,张图进行了模块设计:,1.,图片文件类模块和图片库类模块,2.,图片格式解析器父类模块;,5,个图片解析子类模块(,4,个文件格式和一个数据库格式),3.,图片扫描管理器模块,4.,图片编辑器模块,5.,图片显示器模块,S,发现在网上有很多现成的图片扫描管理控件和图片编辑控件,完全满足要求,他自己花了一天一夜的时间编写了图片文件类模块和图片格式解析器父类,以及数据库解析子类,剩下的几天,他和老师新来的同学一起完成了剩余的模块。,一周过去了,他将图片文件类模块、,.,图片格式解析器父类模块、数据库解析子类,以及自己封装的图片编辑器交给了自己的,实际情况,3,(续),老师,而由于每一个模块都是相对独立的,即时开始的用户要求他修改图片显示、图片库、扫描,也不会影响他现在的工作代码。,(快速模型)R,apid,A,pplication,D,evelopment,Model,PART ONE The Process,快速程序开发模型,R,apid,A,pplication,D,evelopment,Model,Reuse,Require sufficient human resources.,If a system cannot be properly modularized,RAD may not work.,RAD is not appropriate when technical risks are high.,Require commitment to the rapid-fire(,相继发生的,)activities from both developers and customers.,PART ONE The Process,增量模型,Incremental,Model,calendar time,a,n,a,l,y,s,i,s,d,e,s,i,g,n,c,o,d,e,t,e,s,t,S,y,s,t,e,m,/,i,n,f,o,r,m,a,t,i,o,n,e,n,g,i,n,e,e,r,i,n,g,increment 1,delivery of,1st increment,核心功能,a,n,a,l,y,s,i,s,d,e,s,i,g,n,c,o,d,e,t,e,s,t,increment 2,delivery of,2nd increment,更多的功能和额外的特性,a,n,a,l,y,s,i,s,d,e,s,i,g,n,c,o,d,e,t,e,s,t,a,n,a,l,y,s,i,s,d,e,s,i,g,n,c,o,d,e,t,e,s,t,increment 3,increment 4,delivery of,3rd increment,delivery of,4th increment,让产品不断的进化成更好用的产品,PART ONE The Process,Concurrent development,model,especially good for client/server applications;defines a network of activities instead of linear sequence of events.,其他过程模型,Still Other Process Models,Component-based,model,the process to apply when,reuse,is a development objective.,Formal methods and clean-room software engineering,the process to apply when a formal mathematical specification is to be developed.Good at detecting,ambiguity,incompleteness,and,inconsistency,.,U,nified,M,odeling,L,anguage,Fourth Generation Techniques(4GT),automatically generate source code based on high-level specifications.May become the dominant approach when coupled with component-based development.,自由思考题,1.,你认为你小组即将进行的案例项目应该使用什么样的软件过程模型,2.,找出参与者和用例,画出用例图,3.,整理数据,以数据字典的形式保存数据,
展开阅读全文