单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,,*,按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,第一章 软件工程基础知识,79,,,,,,按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,第一章,软,软件工程,基,基础知识,1,.1,软件的定义,1.2,软件工程,1.3,软件生命周,期,期,FAQ,(关于软件,工,工程),什么是软件,?,好的软件有,那,那些特点,?,什么是软件,工,工程,?,什么是软件,过,过程,?,什么是软件,过,过程模型,?,什么是软件,工,工程方法,?,什么是,CASE(Computer AidedSoftware Engineering)?,软件工程和,系,系统工程有,什,什么区别?,软件工程面,临,临的关键挑,战,战是什么,?,1. 1,软件的定义,什么是软件,软件的特点,软件发展史,软件危机,,,什么是软件? (1/2),书本上的定,义,义,– Software isa setof itemsor objectsthatforms a “configuration”that includesprograms,documents, data, ……,IEEE,的定义,– Software iscomputer programs, procedures,andpossibly associateddocumentation and data pertaining to theoperationof acomputersystem.,,可执行部分,不可执行部,分,分,数据,文档,1,文档,2,什么是软件,? (2/2),与计算机系,统,统操作有关,的,的程序和数据以及任何与,之,之相关的文档的集合。
程序,什么是程序,(1/2),程序,:,由程序设计,语,语言所描述,的,的、能为计,算,算机所识别,、,、理解和处,理,理的语句序,列,列,程序例子,Main(),{inti,j;//,变量,定,定义,charStr[10];,i=i+j;//,语句,说,说明,……},什么,是,是程,序,序,(2/2),程序,设,设计,语,语言,具,具有,良,良好,、,、严,格,格语,法,法和,语,语义,目,前,前,程,程,序,序,设,设,计,计,语,语,言,言,主,主,要,要,有,有,以,以,下,下,几,几,种,种,类,类,型,型,面,向,向,机,机,器,器,:,如,汇,汇,编,编,语,语,言,言,、,、,机,机,器,器,语,语,言,言,等,等,面,向,向,过,过,程,程,:,如,Fortran,Pascal,C,等,等,等,面,向,向,对,对,象,象,:,如,Java,等,等,等,面,向,向,问,问,题,题,:,如,结,结,构,构,化,化,查,查,询,询,语,语,言,言,SQL,等,等,等,什,么,么,是,是,文,文,档,档,文,档,档,:,记,录,录,软,软,件,件,开,开,发,发,活,活,动,动,和,和,阶,阶,段,段,性,性,成,成,果,果,、,、,理,理,解,解,软,软,件,件,所,所,必,必,需,需,的,的,阐,阐,述,述,性,性,资,资,料,料,需,求,求,分,分,析,析,文,文,档,档,软,件,件,设,设,计,计,文,文,挡,挡,等,等,编,写,写,文,文,档,档,目,目,的,的,促,进,进,对,对,软,软,件,件,的,的,开,开,发,发,,,管,理,理,和,和,维,维,护,护,;,;,便,于,于,各,各,种,种,人,人,员,员,(,用,户,户,,,开,发,发,人,人,员,员,),的,交,交,流,流,软,件,件,特,特,点,点,不,会,会,老,老,化,化,逻,辑,辑,产,产,品,品,(,智,力,力,,,无,形,形,),维,护,护,困,困,难,难,和,和,复,复,杂,杂,(,完,善,善,,,纠,错,错,,,,,…...),生,产,产,只,只,需,需,复,复,制,制,软,件,件,开,开,发,发,性,性,质,质,如,如,成,成,本,本,、,、,进,进,度,度,等,等,难,难,以,以,估,估,计,计,软,件,件,的,的,开,开,发,发,更,更,加,加,依,依,赖,赖,于,于,开,开,发,发,人,人,员,员,的,的,业,业,务,务,素,素,质,质,、,、,智,智,力,力,、,、,人,人,员,员,的,的,合,合,作,作,、,、,组,组,织,织,和,和,管,管,理,理,好,的,的,软,软,件,件,有,有,哪,哪,些,些,特,特,点,点,?,?,软,件,件,发,发,展,展,史,史,软,件,件,危,危,机,机,软,件,件,需,需,求,求,的,的,增,增,长,长,得,得,不,不,到,到,满,满,足,足,;,;,软,件,件,开,开,发,发,的,的,成,成,本,本,和,和,进,进,度,度,无,无,法,法,控,控,制,制,;,;,软,件,件,质,质,量,量,难,难,以,以,保,保,证,证,;,;,软,件,件,不,不,可,可,维,维,护,护,或,或,维,维,护,护,成,成,度,度,非,非,常,常,低,低,;,;,软,件,件,成,成,本,本,不,不,断,断,提,提,高,高,;,;,软,件,件,开,开,发,发,生,生,产,产,率,率,的,的,提,提,高,高,赶,赶,不,不,上,上,硬,硬,件,件,的,的,发,发,展,展,和,和,应,应,用,用,需,需,求,求,的,的,增,增,长,长,。
为,了,了,消,消,除,除,软,软,件,件,危,危,机,机,,,,,形,形,成,成,了,了,软,软,件,件,工,工,程,程,的,的,概,概,念,念,,,,,开,开,辟,辟,了,了,工,工,程,程,学,学,的,的,新,新,兴,兴,领,领,域,域,—,—,—,软,件,件,工,工,程,程,学,学,软,软,件,件,工,工,程,程,就,就,是,是,试,试,图,图,用,用,工,工,程,程,、,、,科,科,学,学,和,和,数,数,学,学,的,的,原,原,理,理,与,与,方,方,法,法,研,研,制,制,、,、,维,维,护,护,计,计,算,算,机,机,软,软,件,件,的,的,有,有,关,关,技,技,术,术,及,及,管,管,理,理,方,方,法,法,1.2,软,件,件,工,工,程,程,1.2.1,软,件,件,开,开,发,发,活,活,动,动,1.2.2,软,件,件,工,工,程,程,1.2.3,软,件,件,工,工,程,程,的,的,知,知,识,识,域,域,,1.2.1,软,件,件,开,开,发,发,活,活,动,动,,软,件,件,开,开,发,发,活,活,动,动,的,的,主,主,要,要,内,内,容,容,,问题,用户需求,需求分析,规格说明,可行性报告,初步用户手册,,设 计,结构设计,各模块的详细设计说明,,测试计划,构 造,各模块代码和单元测试报告,测试设计,测 试,各种测试报告,维 护,,发布计划、培训计划及教材、维护档案等,需求分析,软件设计,软件构造,软件维护,软件测试,软件开发费用的比例,1,需,求,求,分,分,析,析,需,求,求,规,规,格,格,说,说,明,明,(specification),初,步,步,用,用,户,户,手,手,册,册,项,目,目,开,开,发,发,计,计,划,划,可,行,行,性,性,(,风,险,险,),分,析,析,需,求,求,分,分,析,析,用,户,户,的,的,需,需,要,要,(needs),对,软,软,件,件,的,的,需,需,求,求,(,requirement,s),使,用,用,计,计,算,算,机,机,术,术,语,语,,,比,较,较,严,严,格,格,的,的,语,语,言,言,,,全,面,面,理,理,解,解,准,确,确,表,表,达,达,使用用户的语言,(,行业内的术语,),功能要求,性能要求,环境要求,可靠性要求,安全性要求,用户界面需求,资源使用需求,软件成本消耗,开发进度需求等,软,件,件,需,需,求,求,说,说,明,明,书,书,的,的,内,内,容,容,Ⅰ.,引言,A.,背景,B.,定义,C.,参考资料,Ⅱ.,任务概述,A.,目标,B.,用户的特点,C.,假定和约束,Ⅲ,.,需求规定,,A.,对功能的规定,,B.,对性能的规定,(,ⅰ,精度,ⅱ,时间特性要求,ⅲ,灵活性,),C.,输入输出要求,,D.,数据管理能力要求,,E.,故障处理要求,,F.,其它专门要求,Ⅳ,.,运行环境规定,A.,设备,B.,支撑软件,C.,接口,D.,控制,2,软,件,件,设,设,计,计,软,件,件,模,模,块,块,划,划,分,分,算,法,法,设,设,计,计,数,据,据,结,结,构,构,设,设,计,计,用,户,户,界,界,面,面,设,设,计,计,软,件,件,设,设,计,计,需,求,求,规,规,格,格,说,说,明,明,(,specification,),概,要,要,设,设,计,计,说,说,明,明,书,书,详,细,细,设,设,计,计,说,说,明,明,书,书,从,实,实,现,现,角,角,度,度,出,出,发,发,自,顶,顶,向,向,下,下,逐,逐,步,步,细,细,化,化,(,stepwiserefinement,),,,软,件,件,详,详,细,细,设,设,计,计,说,说,明,明,书,书,的,的,内,内,容,容,Ⅰ,.,引言,A.,目的,B.,背景,C.,定义,D.,参考资料,Ⅱ.,软件的体系结构,列出软件中的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系,Ⅲ.,程序,1,设计说明,,A.,程序描述,B.,功能,,C.,性能,D.,输入项,,E.,输出项,F.,算法,H.,流程逻辑,I.,接口,,J.,存储分配,K.,注释设计,L.,限制条件,M.,测试计划,,N.,尚未解决的问题,Ⅳ.,程序,2,设计说明,,A.,程序描述,B.,功能,C.,性能,D.,输入项,,E.,输出项,F.,算法,H.,流程逻辑,I.,接口,,J.,存储分配,K.,注释设计,L.,限制条件,M.,测试计划,,N.,尚未解决的问题,其他程序的设计说明,····,3,软,件,件,构,构,造,造,软,件,件,构,构,造,造,(,程,序,序,设,设,计,计,),可,执,执,行,行,的,的,软,软,件,件,模,模,块,块,,,,,集,成,成,后,后,的,的,软,软,件,件,成,成,品,品,,,算,法,法,数,据,据,结,结,构,构,用,户,户,界,界,面,面,程,序,序,设,设,计,计,语,语,言,言,(,如,C,,,C++,JAVA,VB,等,),软,件,件,运,运,行,行,平,平,台,台,(,使用何,种,种操作,系,系统,,向,向应用,程,程序提,供,供哪些,服,服务。
一,一般通,过,过,API,(应用,程,程序接,口,口)提,供,供,如,Windows,系统的,API,:,Win32SDK,和,MFC,类库等,),编程和,开,开发工,具,具,(,集成开,发,发环境,;Delphi,、,、C++Builder、,VisualStudio,;,VisualStudio.NET),设计说,明,明书,,关于程,序,序设计,语,语言和,编,编程训,练,练,必须学,好,好:,C/C++,、,Java,、,…,等程序,设,设计语,言,言,一定要,大,大量编,写,写程序,和,和开发,软,软件,,这,这是因,为,为:,1,使用语,言,言才能,掌,掌握语,言,言,2,编程是,计,计算机,科,科学的,“,“实验”手段,3,通过编,程,程才能,把,把计算,机,机系统,方,方方面,面,面的概,念,念联系,在,在一起,,,,理解,计,计算机,的,的行为,和,和特性,编程,是,是理解,抽,抽象概,念,念的有,效,效途径,4,编程和,软,软件开,发,发仍然,是,是大部,分,分计算,机,机专业,及,及相关,专,专业毕,业,业生就,业,业岗位,的,的主要,工,工作;,5,在开发,系,系统软,件,件和数,据,据处理,类,类大型,应,应用软,件,件方面,,,,计算,机,机专业,及,及相关,专,专业毕,业,业生,应该也,必,必须,具有明,显,显的优,势,势。
4,软件测,试,试,软件测,试,试,经过测,试,试和修,改,改的软,件,件产品,,,测试说,明,明书,测试工,具,具,测试用,例,例和测,试,试数据,可执行,的,的软件,模,模块,集成后,的,的软件,成,成品,软件测试是分阶段进行的,它贯穿于软件开发的全过程:,单元测试(模块测试),集成测试,确认测试,用户定制软件,:,验收测试和安装测试,商品软件,:,阿尔法测试和贝塔测试,,测试过,程,程,测试,(Testing),是找出,程,程序和,设,设计中,的,的错误,,,,其要,求,求是:,有效数,据,据结果,正,正确,无效数,据,据有预,防,防措施,测试,软件配置,结果,分析,测试结果,排错,改正的,软件,预期结果,可靠性,分析,预测的,可靠性,找出错误,出错率,数据,,测试用例,测试数据,测试工具,排错,(Debugging),也叫调,试,试,用,于,于消除,程,程序中,缺,缺陷,(bug),:,找出出,错,错的位,置,置,(,定位,),分析出,错,错原因,并,并改正,测试方,法,法:白,盒,盒测试,技,技术,白盒测,试,试也叫路,径,径测试,:,:,程序中,所,所有语,句,句必须,执,执行一,次,次以上,,,,程序,中,中每条,路,路径都,要,要走到,白盒测,试,试,的内容,对程序模块的所有,独立,执行路径,至少测试一次,对所有的,逻辑判定,,取,“,真,”,与取,“,假,”,的两种情况,都能至少测试一次。
在循环的边界和运行边,界限内执行循环体,测试内部数据结构的有,效性A>1 AND B=0,X=X/A,A=2 OR X>1,X=X+1,N,N,Y,Y,测试方,法,法:,黑盒测,试,试技术,黑盒测,试,试,(,BlackBoxTesting),也称功,能,能测试,:只关,心,心程序,运,运行结,果,果是否,符,符合要,求,求,不,考,考虑程,序,序内部,的,的执行,过,过程,例:求,方,方程式,ax,2,+bx+c=0,的根,测试用,例,例,:,,a,b,c,1,1.0,-2.0,-3.0,2,1.0,1.0,1.0,3,1.0,0,0.25,4,2.0,1.0,0,5,0,2.0,1.0,6,0,2.0,0,7,2.0,0,0,8,0,0,2.0,9,0,0,0,测试用,例,例的覆,盖,盖面要,大,大,但,又,又要少,而,而精,,防,防治遗,漏,漏!,软件产,品,品测试,的,的重要,性,性,微软产,品,品开发,组,组的人,员,员构成,:,:,项目经理,测试工程师,,开发,工程师,,,Exchange 2000,Windows 2000,项目经理,25,人,约,250,人,开发人员,140,人,约,1700,人,测试人员,350,人,约,3200,人,开发人员,/,测试人员,2: 5,1:1. 9,嫦娥一,号,号 卫,星,星:,100,万行软,件,件,测,试,试软件,达,达,160,万行!,5,软件维,护,护,软件维,护,护内容,:,:,改正性,维,维护运行中,发,发现了,软,软件中,的,的错误,需,需要修,正,正,适应性,维,维护为适应,变,变化了,的,的软硬,件,件环境,,,,需对,软,软件做,适,适当变,更,更,完善,(,改进,),性维护为了满,足,足用户,新,新的业,务,务需求,、,、增强,软,软件功,能,能而需,要,要修改,、,、扩充,软,软件,预防性,维,维护为增强,系,系统可,靠,靠性和,安,安全性,所,所采取,的,的预防,性,性措施,软件维,护,护,经过修,改,改的,软件产,品,品,,,使用中,发,发现的,问,问题,修改后,的,的需求,规,规格说,明,明书,交付的,软件产,品,品,软件维,护,护的重,要,要性,在整个,软,软件开,发,发活动,中,中,软,件,件维护,的,的工作,量,量最大,,,,其费,用,用大约,是,是软件,开,开发总,成,成本的,2/3,左右,在整个软件,维,维护阶段的,全,全部工作量,中,中,预防性,维,维护只占很,小,小的比例,,而,而完善性维,护,护占了几乎,一,一半的工作,量,量,小结:软件,开,开发活动的,特,特点,需要多人参,与,与的分阶段,进,进行的工作,量,量很大的智,力,力活动,不仅是编程,序,序,比编程,更,更重要的是,需,需求分析和,软,软件设计,编程不但要,熟,熟悉程序语,言,言,还需要,熟,熟悉运行平,台,台,掌握编,程,程和开发工,具,具,编程需要熟,悉,悉应用领域,的,的业务知识,测试和编程,同,同样重要,投入运行后,仍,仍需要提供,大,大量的支持,和,和服务,整个开发活,动,动需要精心,组,组织与管理,1.2.2,软件工程,,Quiz,:,1,开发一个典,型,型的软件项,目,目大约需要,多,多少个月?,2-3,月,4-6,月,8-12,月,12-24,月,2,包含多少行,可,可执行语句,的,的软件被认,为,为是大型软,件,件?,1000,行,5000,行,10000,行,50000,行,3,每年上千亿,美,美元销售额,的,的软件市场,中,中,,Office,、,IE,之类的,PC,常用软件占,多,多少份额?,10%25%50%75%,4,中等规模软,件,件的开发期,中,中每人每天,平,平均开发多,少,少行可执行,语,语句?,<10,行,10-50,行,50-100,行,>100,行,5,开发过程中,,,,平均每,1000,行可执行代,码,码中大约会,发,发现多少个,错,错误?,5-1010-2050-60100-150,6,由用户发现,的,的软件错误,大,大部分是什,么,么原因引起,的,的?,编程错误,需,需,求,求理解有误,软,软件集成,设,设,计,计错误,,,,,,,软件规模、,工,工作量与成,本,本,类别,参加人数,研制期限,产品规模,(,源代码行数,),微型,小型,中型,大型,甚大型,极大型,1,1,2-5,5-20,100-1000,2000-5000,1-4,周,1-6,周,1-2,年,2-3,年,4-5,年,5-10,年,约,500,行,约,2000,行,5000-50000,行,5,万,-10,万行,100,万行,1000,万行,软件规模,软件产品举例,产品,,代码行,,工作量(人年),,成本,(,百万,),,,,,,,,,,,,,,,,,,Lotus1,-,2,-,3 Version 3.0,,400k,,263,,22,,,,,,,,,,,,,,,,Space Shuttle,,25.6M,,,12,,,,,,,,,,,,,,,,,,3.8M,,,,,,,,,,,,,,,,,,,,City Bank Teller machine,,780k,150,,13.2,,,,,,,,,,,,,,,,MS Word 2003,,3.0M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Windows NT (beta),Windows 2003,50 M 3000,,Windows XP 50M,,Windows Vista 70M 9000 x 6 18000,,,软件危机,软件产业滞,后,后于应用的,需,需求和硬件,的,的发展,软件开发效,率,率低、成本,高,高,进度和,成,成本难以控,制,制,软件质量得,不,不到保证,1955,年,1970,年,1985,年,硬件成本与,软,软件开发、,维,维护费用比,例,例的变化,60%,左右的软件,项,项目不能按,期,期完成,50%,左右软件项,目,目的费用超,过,过预算,45%,左右软件项,目,目最终无法,投,投入使用,29%,左右软件项,目,目没有交付,软,软件,19%,左右的软件,项,项目必须返,工,工才能使用,,Average cost overrun: 189%,Time overrun:,,222%,Projects re-started: 94%,Functionality delivered on average:,,61%,Standish Group,软件项目失,败,败率统计,2000,1998,1995,1994,28%,23%,49%,26%,28%,46%,27%,40%,33%,16%,31%,53%,Thischartdepicts the outcomeof the 30,000application projectsin large,medium,and small cross-industry U.S. companies testedby The Standish Group since 1994.,,(,Source: The StandishGroup International,,Extreme Chaos,The Standish GroupInternational,Inc.,2000,),成功,有问题,失败,软件项目失,败,败的原因,,“Whenprojectsfail,it’srarely technical.”,Jim Johnson, The StandishGroup,软件的目标,与,与功能分离,(separation),需求不够明,确,确,软件的,商,商务,(business),与技术分离,,,,缺乏共同,的,的语言和过,程,程,开发过程没,有,有统一的、,公,公认的方法,和,和规范做指,导,导,参与人,员,员自行其是,,,,联系少,,不,不像一个团,队,队,开发过程不,能,能灵活改变,,,,测试不充,分,分,Solution?,软件工程,什么是软件,工,工程?,1968,年提出(,NATO,会议),根据美国,IEEE,的定义,软,件,件工程是“以系统的、,规,规范的、可,以,以度量的方,法,法应用于软,件,件的开发、,运,运行和维护,,,,以及对这,些,些方法和技,术,术的研究”,通俗地说,,软,软件工程是,指,指导软件开,发,发和维护的,一,一门工程学,科,科。
它采用,工,工程的概念,、,、原理、技,术,术和方法,,把,把经过时间,检,检验而证明,是,是正确的管,理,理技术和当,前,前能够得到,的,的最好的技,术,术、方法结,合,合起来,用,于,于开发和维,护,护软件,经过几十年,的,的研究与实,践,践, “软,件,件危机”有,所,所缓解,软,件,件开发方法,、,、技术和管,理,理已经有了,很,很大的进步,,,,软件工程,已,已经成为一,门,门比较成熟,的,的学科,软件工程的,目,目标,实现软件的,工,工业化生产,,,,提高软件,的,的质量与生产,效,效率,达到:,付出较低的,开,开发成本;,达到要求的,软,软件功能;,取得较好的,软,软件性能;,开发的软件,易,易于移植;,需要较低的,维,维护费用;,按时完成开,发,发任务,及,时,时交付使用,软件工程的,七,七条基本原,理,理,按分阶段的,生,生命周期计,划,划严格进行,管,管理,坚持进行阶,段,段评审,实行严格的,产,产品控制,采纳现代程,序,序设计技术,开发成果应,能,能清楚地审,查,查,开发小组的,人,人员要少而,精,精,承认不断改,进,进软件工程,实,实践的必要,性,性,软件工程的,主,主要内容,软件开发过,程,程的模型,软件开发方,法,法,软件开发工,具,具,软件工程管,理,理与支持,,管理与控制,,过 程,,方 法,,工 具,质量是焦点,Maintainability,,可维护性,,Correctness,正确性,,Reusability,,可重用性,,Reliability,可靠性,,Portability,便携性(可移植性),,Efficiency,,有效性,软件开发过,程,程的模型,瀑布模型,快速原型模,型,型,螺旋模型,……,软件开发方,法,法和工具,软件开发方,法,法:,结构化方法,面向数据结,构,构的方法,面向对象的,方,方法,·····,·,·,软件开发工,具,具:,(1),需求分析和,概,概要设计工,具,具,(2),详细设计和,编,编码工具,(3),测试工具,(4),维护和理解,工,工具,(5),项目管理工,具,具,(6),配置管理工,具,具,·····,·,·,1.2.3,软件工程的,知,知识领域,,软件工程与,程,程序设计,软件工程存,在,在于软件开,发,发活动的各,个,个阶段。
而程序设计通常指程序,的,的设计与编,码,码,是软件,开,开发过程中,的,的一个阶段,软件工程力,图,图对软件项,目,目的各个方,面,面作出指导,,,,从软件的,可,可行性分析,直,直到软件完,成,成以后的维,护,护工作,软件工程认,为,为软件开发,与,与各种市场,活,活动密切相,关,关比如软,件,件的销售,,用,用户培训,,与,与之相关的,软,软件和硬件,安,安装等软件工程的,方,方法学认为,一,一个程序员,不,不应当脱离,团,团队而进行,开,开发,同时,,,,程序的编,写,写不能够脱,离,离软件的需,求,求、设计以,及,及客户的利,益,益软件工程与,计,计算机科学,,软件工程,计算机科学,目标,构建易用且高效的软件,从而提高人们的工作效率和生活舒适度,探索正确的计算和建模方法,从而改进计算方法本身,产品,软件,(,比如办公套件和编译器,),算法,(,比如快速排序法,),和抽象的问题,(,比如,TSP,问题,),进度和时间表,软件项目都有特定的进度和时间表,研究项目一般不具有设定的进度和时间表,关注点,如何为用户实现价值,软件本身运行的原理,如时间和空间复杂度,算法的正确性,变化程度,随着技术和需求的变化,必须时刻调整自己的开发以适应当前的需求。
同时软件工程本身也处于不断的发展中,对于某一种特定问题的正确解决方法将永远不会改变,需要的其他知识,相关领域的知识,数学,软件工程与,系,系统工程,软件工程关,注,注如何开发,和,和发布有用,(,(有质量),的,的软件,如,飞,飞行控制软,件,件系统工程关,注,注基于计算,机,机进行系统,开,开发的所有,方,方面,包括,硬,硬件、软件,及,及相关过程,,,,如飞机软件工程是,系,系统工程的,一,一部分软件工程的,知,知识领域,(1),,软件工程的,知,知识领域,(2),,小 结,,,程序设计,,,软件开发,=,= 开,发,发工具和环,境,境,,,,软件工程,,,,过程,(process model),= 管理方法,(disciplines),,工具,(tools),,,,开发工具,(IDE),=,,OS,及其,API,,,,算法,= 数据结构,程序设计语言,1.3,软件生命周,期,期,1.3.1,软件生命周,期,期(软件生,存,存周期),1.3.2,软件开发过,程,程模型,1.3.3CASE,工具和环境,,1.3.1,软件生命周,期,期,(SoftwareLifeCycle),,什么是软件,生,生命周期,生命周期,人的生命周,期,期:婴儿、,幼,幼儿、儿童,、,、少年、,…,软件生命周,期,期,软件从提出,开,开发开始到,最,最终灭亡所,经,经历的时期,软件产品或,软,软件系统从,设,设计、投入,使,使用到被淘,汰,汰的全过程,。
软件生命周,期,期示意图,(,根据,GB8566-88《,计算机软件,开,开发规范,》,),可行性研究,需求分析,概要设计,详细设计,实 现,集成测试,确认测试,使用与维护,退役,,,,,,,,,,软件定义,软件开发,维护,,,可行性研究,(1/2),任务,了解用户要,求,求和现实环,境,境,从技术,、,、经济、市,场,场等方面研,究,究并论证开,发,发该软件系,统,统的可行性,技术途径,调查和了解,用,用户要求,和,和 现实环,境,境,攒写调查报,告,告,可行性论证,和,和 分析,(,(技术、经,济,济等),如可行,,,制定初步项,目,目开发计划,(,人员,,,进度,),可行性研,究,究,(2/2),阶段性产,品,品,可行性论,证,证报告,初步的项,目,目开发计,划,划,,需求分析,(1/2),任务,确定用户,对,对待开发,软,软件系统,的,的需求包,括,括:,功能,性能,运行环境,约,约束,重要性,软件开发,依,依据,软,件,件验收的,标,标准,困难性,难以说清,,,动态变化,,,歧义,复,杂,杂,需求分析,(2/2),技术途径,和,和工具,需求分析,人,人员需与,用,用户不断,、,、反复地,交,交流和商,讨,讨,使用,户,户需求逐,步,步准确化,、,、一致化,、,、完全化,抽象、问,题,题分解、,快,快速原型,、,、多视点,等,等技术,阶段性产,品,品,软件需求,规,规格说明,书,书,SRS(,功能,性,能,能和运行,环,环境约束,),,概要设计,任务,根据,SRS,建立目标,软,软件系统,总,总体结构,、,、设计全,局,局数据库,和,和数据结,构,构,规定,设,设计约束,,,,制定集,成,成测试计,划,划等等。
技术途径,和,和工具,根据软件,需,需求规格,说,说明书,,,自顶向下,,,逐步求精,,,抽象,,,模块化,,,局部化,,信,信息隐藏,…...,阶段性产,品,品,概要设计,规,规格说明,书,书,数据库或,数,数据结构,设计,说明书,集成测试,计,计划详细设计,任务,细化概要,设,设计所生,成,成的各个,模,模块,,,并详细描,述,述程序模,块,块的内部,细,细节,(,算法,数,据,据结构等,),,形成可,编,编程的程,序,序模块,,制,制订单元,测,测试计划,技术途径,根据,SRS,和,概要设计,结,结果进行,,,,单入口,单,单出口,,PDL,阶段新产,品,品,详细设计,规,规格说明,书,书,单元测试,计,计划,实现,任务,根据详细,设,设计规格,说,说明书编,写,写源程序,,,,并对程,序,序进行调,试,试和单元,测,测试,验,证,证程序与,详,详细设计,文,文档 一,致,致性,技术途径,和,和工具,以详细设,计,计规格说,明,明书为依,据,据、基于,某,某种程序,设,设计语言,进,进行编码,阶段新产,品,品,源程序代,码,码,集成测试,任务,根据概要,设,设计规格,说,说明书,,将,将经过单,元,元测试的,模,模块逐步,进,进行集成,和,和测试,技术途径,和,和工具,以概要设,计,计规格说,明,明书和集,成,成测试计,划,划为依据,,,,进行集,成,成模块并,进,进行测试,IDE,,专有工具,等,等,阶段性产,品,品,生成满足,概,概要设计,要,要求、可,运,运行的系,统,统源程序,和,和系统集,成,成测试报,告,告,确认测试,任务,根据软件,需,需求规格,说,说明书,,测,测试软件,系,系统是否,满,满足用户,的,的需求,途径,由用户参,与,与,以软,件,件需求规,格,格说明书,为,为依据进,行,行确认测,试,试,专有工具,阶段性产,品,品,可供用户,使,使用的软,件,件产品,(,文档,源,程,程序,),软件维护,任务,对使用后,的,的软件进,行,行维护例,如,如,:,修正使用,过,过程中发,现,现的错误,-,-纠错性,维,维护,增加新的,功,功能-完,善,善性维护,从一个环,境,境搬迁到,另,另一个环,境,境-适应,性,性维护,途径,以文档和,源,源程序为,基,基础按用,户,户要求进,行,行,阶段性产,品,品,版本更新,的,的软件产,品,品,软件生命,周,周期,(,根据,GB8566-2007《,信息技术,软,软件生,存,存周期过,程,程,》,),生存周期,基,基本过程,生存周期,支,支撑过程,生存周期,组,组织过程,1.3.2,软件开发,过,过程模型,,软件开发,过,过程,软件开发,过,过程模型,瀑布模型,快速原型,模,模型,增量模型,螺旋模型,敏捷开发,软件开发,过,过程模型,(,(,1,),瀑布模型,可行性分析,需求分析,设 计,编 码,测 试,维 护,,,,,,,,,,规划阶段,开发阶段,运行阶段,,,,,,,用户测试,运行原型,,听取用,户意见,快速原型模型,建造,/,修改,原型,特点:不,带,带反馈环,,分析,增量模型,,设计,,编码,,测试,,分析,,设计,,编码,,测试,,分析,,设计,,编码,,测试,,分析,,设计,,编码,,测试,增量,1,增量,2,增量,3,增量,n,增量,1,交付客户,增量,2,交付客户,增量,3,交付客户,增量,n,交付客户,时间,…..,软件开发,过,过程模型,(,(,2,),软件开发,过,过程模型,(,(,3,),螺旋模型,确定软件,目,目标,选,定,定实施方,案,案,弄清,项,项目开发,的,的限制,评价开发,工,工作,提,出,出修正建,议,议,分析所选,方,方案,考,虑,虑如何识,别,别和消除,风,风险,实施软件,开,开发,微,软,软,公,公,司,司,的,的,软,软,件,件,开,开,发,发,过,过,程,程,模,模,型,型,微,软,软,解,解,决,决,方,方,案,案,框,框,架,架,MSF,综,合,合,了,了,瀑,瀑,布,布,模,模,型,型,和,和,螺,螺,旋,旋,模,模,型,型,的,的,优,优,点,点:,每,个,个,回,回,环,环,包,包,含,含,5,个,子,子,过,过,程,程,,,,,以,以,一,一,次,次,发,发,布,布,为,为,终,终,结,结,,,,,下,下,一,一,次,次,发,发,布,布,再,再,循,循,环,环,一,一,次,次,。
每,个,个,子,子,过,过,程,程,以,以,里,里,程,程,碑,碑,(milestone),为,分,分,隔,隔,,,,,每,每,个,个,里,里,程,程,碑,碑,需,需,对,对,阶,阶,段,段,成,成,果,果,进,进,行,行,评,评,审,审,,,,,通,通,过,过,后,后,才,才,能,能,继,继,续,续,计,划,划,批,批,准,准,开,发,发,完,完,成,成,发,布,布,准,准,备,备,完,完,成,成,部,署,署,完,完,成,成,项,目,目,批,批,准,准,MSF,创,意,意,过,过,程,程,:,:,确,确,定,定,需,需,求,求,和,和,总,总,目,目,标,标,计,划,划,过,过,程,程,:,:,确,确,定,定,做,做,什,什,么,么,和,和,怎,怎,么,么,做,做,开,发,发,过,过,程,程,:,:,完,完,成,成,程,程,序,序,代,代,码,码,和,和,文,文,档,档,稳,定,定,过,过,程,程,:,:,消,消,除,除,所,所,有,有,发,发,现,现,的,的,问,问,题,题,部,署,署,过,过,程,程,:,:,完,完,成,成,软,软,件,件,运,运,行,行,的,的,部,部,署,署,案,例,例,北,京,京,市,市,交,交,通,通,设,设,施,施,设,设,计,计,与,与,漫,漫,游,游,系,系,统,统,–,用,户,户,的,的,要,要,求,求,(,1,),完,完,成,成,交,交,通,通,设,设,施,施,的,的,二,二,维,维,图,图,纸,纸,设,设,计,计,(,2,),在,在,二,二,维,维,设,设,计,计,的,的,基,基,础,础,上,上,模,模,拟,拟,显,显,示,示,设,设,计,计,的,的,效,效,果,果,–,现,实,实,情,情,况,况,(,1,),二,二,维,维,设,设,计,计,部,部,分,分,已,已,有,有,工,工,作,作,基,基,础,础,,,,,新,新,功,功,能,能,开,开,发,发,量,量,不,不,大,大,(,2,),设,设,计,计,仿,仿,真,真,与,与,漫,漫,游,游,显,显,示,示,部,部,分,分,需,需,求,求,不,不,确,确,定,定,(,3,),用,用,户,户,要,要,求,求,开,开,发,发,方,方,提,提,出,出,可,可,行,行,的,的,方,方,案,案,采,用,用,哪,哪,种,种,软,软,件,件,过,过,程,程,模,模,型,型,更,更,合,合,适,适,呢,呢,?,?,1.3.3CASE,工,具,具,和,和,环,环,境,境,,什,么,么,是,是,CASE,工,具,具,和,和,环,环,境,境,计,算,算,机,机,辅,辅,助,助,软,软,件,件,工,工,程,程,(ComputerAidedSoftwareEngineering,,,CASE),在,软,软,件,件,工,工,程,程,活,活,动,动,中,中,,,,,软,软,件,件,开,开,发,发,人,人,员,员,按,按,照,照,软,软,件,件,工,工,程,程,的,的,方,方,法,法,和,和,原,原,则,则,,,,,借,借,助,助,于,于,计,计,算,算,机,机,及,及,其,其,软,软,件,件,工,工,具,具,的,的,帮,帮,助,助,来,来,开,开,发,发,、,、,维,维,护,护,和,和,管,管,理,理,软,软,件,件,产,产,品,品,的,的,过,过,程,程,CASE,工,具,具,支,持,持,CASE,的,工,工,具,具,(,编,译,译,器,器,,,,,编,编,辑,辑,器,器,–,推,土,土,机,机,、,、,锄,锄,头,头,),集,成,成,CASE,环,境,境,将,CASE,工,具,具,、,、,信,信,息,息,按,按,统,统,一,一,标,标,准,准,和,和,接,接,口,口,组,组,装,装,起,起,来,来,,,,,使,使,工,工,具,具,间,间,、,、,人,人,员,员,间,间,、,、,各,各,个,个,过,过,程,程,间,间,能,能,方,方,便,便,交,交,互,互,的,的,环,环,境,境,。
如,VisualC++,将,编,编,辑,辑,、,、,编,编,译,译,、,、,调,调,试,试,、,、,界,界,面,面,设,设,计,计,、,、,安,安,装,装,程,程,序,序,生,生,成,成,等,等,等,等,集,集,成,成,在,在,一,一,起,起,联,合,合,收,收,割,割,机,机,),CASE,工,具,具,和,和,环,环,境,境,的,的,类,类,别,别,目,前,前,已,已,有,有,大,大,量,量,的,的,CASE,工,具,具,项,目,目,管,管,理,理,工,工,具,具,:,:,估,估,算,算,项,项,目,目,成,成,本,本,和,和,工,工,作,作,量,量,,,,,制,制,定,定,项,项,目,目,规,规,划,划,等,等,等,等,;,;,分,析,析,和,和,设,设,计,计,工,工,具,具,:,:,用,用,于,于,系,系,统,统,建,建,模,模,;,;,程,序,序,设,设,计,计,工,工,具,具,:,:,编,编,译,译,器,器,,,,,调,调,试,试,器,器,等,等,;,;,测,试,试,工,工,具,具,:,:,测,测,试,试,用,用,例,例,生,生,成,成,,,,,程,程,序,序,动,动,态,态,跟,跟,踪,踪,工,工,具,具,CASE,工,具,具,例,例,子,子,,,,,,谢,谢,谢,。