资源描述
,*,黄淮学院 信息工程学院,*,软件工程,Software Engineering,葛文庚,15938089663 geng429,信息工程学院,引言,Microsoft的比尔,盖,盖茨在,一,一次展,览,览会的,演,演讲中,谈,谈到:,假,假如GM(美国,通,通用汽,车,车公司,,,,别克,、,、雪佛,兰,兰、凯,迪,迪拉克,),)的技,术,术能像,计,计算机,技,技术那,样,样发展,,,,我们,现,现在应,该,该能用25美元买,到,到一辆1加仑汽,油,油跑1000英里的,汽,汽车。,-,扬子晚,报,报,针对比,尔,尔盖茨,的,的讲话,,,,GM反唇相,讥,讥:如,果,果GM发展的,技,技术像Microsoft的软件,那,那样,,我,我们现,在,在开的,汽,汽车会,有,有以下,特,特点:,你的汽,车,车可能,毫,毫无道,理,理的每,天,天抛锚,两,两次,每次公,路,路上重,新,新画线,时,时,你,都,都得买,辆,辆新车,有时候,你,你的车,在,在高速,公,公路上,莫,莫名其,妙,妙的熄,火,火,你,必,必须accept,然后restart,有时候,你,你的车,在,在左拐,弯,弯时突,然,然shutdown了,无,法,法restart,你必,须,须重新,安,安装(reinstall)发动,机,机,当你买,了,了“轿,车,车95”或“轿,车,车NT”后,每,次,次车上,只,只能坐,一,一个人,,,,你要,给,给其他,的,的人再,买,买椅子,Macintosh牌汽车,更,更可靠,、,、更便,宜,宜、更,快,快、也,更,更容易,开,开,但,是,是只能,在,在5%的道路,上,上行驶,油量、,水,水温和,其,其它警,告,告灯将,由,由一个,“,“GENERAL CARFAILURE”的警告,灯,灯所代,替,替,新座椅,要,要求大,家,家屁股,的,的尺寸,相,相同,气囊系,统,统弹出,前,前询问,“,“Areyou sure?”,,要,要求你,加,加以确,认,认,有时候,你,你的汽,车,车会锁,死,死车门,使,使你无,法,法进入,汽,汽车,,你,你得不,停,停的提,门,门把手,、,、拿钥,匙,匙捅、,晃,晃天线,,,,直到,打,打开车,门,门,我们且,不,不考虑GM的言辞,是,是否过,于,于偏激,,,,但Microsoft公司作,为,为全球,最,最大的,计,计算机,软,软件生,产,产商,,拥,拥有一,大,大批优,秀,秀的项,目,目经理,、,、软件,工,工程师,、,、程序,员,员,具,有,有丰富,的,的软件,开,开发和,项,项目管,理,理经验,,,,开发,出,出来的,软,软件仍,然,然不能,很,很好的,保,保证质,量,量,这,是,是不争,的,的事实,。,。,我们几,乎,乎每个,人,人在使,用,用Windows操作系,统,统时,,都,都碰到,过,过死机,现,现象,这是为,什,什么呢,?,?,与硬件,相,相比,,软,软件的,本,本质特,征,征是什,么,么?,为什么,硬,硬件的,可,可靠性,可,可以达,到,到很高,的,的程度,,,,而软,件,件却不,能,能做到bug,-,-free?,什么样,的,的软件,可,可以称,作,作是一,个,个好软,件,件,或,者,者说好,软,软件具,有,有什么,样,样的特,点,点?,目前存,在,在哪些,方,方法和,技,技术能,够,够有效,地,地提高,软,软件的,质,质量,,做,做出好,软,软件?,软件工,程,程简介,软件工,程,程是计,算,算机专,业,业的一,门,门重要,的,的专业,基,基础课,,,,它对,于,于培养,学,学生的,软,软件素,质,质,提,高,高学生,的,的软件开,发,发能力与软件项目管,理,理能力具有重,要,要的意,义,义。,1995年,StandishGroup针对系,统,统开发,成,成功的,研,研究表,明,明,所,有,有的开,发,发项目,中,中有32%的项目,在,在它们,结,结束之,前,前被中,止,止。此,外,外多于,一,一半的,软,软件项,目,目花费,的,的成本,相,相当于,原,原来预,算,算的2倍。,软件工,程,程是软,件,件工程,专,专业的,一,一门核,心,心课程,。,。,通过本,课,课程的,学,学习,使学生,掌,掌握系,统,统的软,件,件开发,理,理论、,技,技术和,方,方法,使用正,确,确的工,程,程方法,开,开发出,成,成本低,、,、可靠,性,性好并,在,在机器,上,上能高,效,效运行,的,的软件,,,,为今,后,后从事,软,软件开,发,发和维,护,护打下,坚,坚实的,基,基础。,课程的,性,性质、,目,目的,学生任,务,务,通过本,课,课程的,学,学习,,使,使学生,能,能真正,了,了解软,件,件开发,的,的整个,过,过程。,学,学生要,结,结合实,际,际软件,项,项目,,从,从问题,定,定义开,始,始,经,过,过可行,性,性研究,、,、需求,分,分析、,概,概要设,计,计、详,细,细设计,、,、编码,直,直到最,后,后要对,自,自己开,发,发的软,件,件进行,测,测试,,经,经历一,个,个软件,开,开发的,全,全过程,,,,掌握,软,软件开,发,发的基,本,本技能,和,和方法,。,。,主要内,容,容,软件工,程,程的基,本,本概念,软件开,发,发过程,、,、活动,、,、方法,学,学,软件开,发,发各阶,段,段的任,务,务、技,术,术、方,法,法,软件开,发,发的两,种,种方法,:,:传统,与,与面向,对,对象方,法,法,软件的,测,测试与,维,维护,软件开,发,发的项,目,目管理,软件质,量,量保证,教材,本书全,面,面系统,地,地讲述,了,了软件,工,工程的,概,概念、,原,原理和,典,典型的,方,方法学,,,,并通过,分,分析一,个,个实际,案,案例“,开,开放实,验,验室管,理,理系统,”,”,帮,助,助理解,软,软件需,求,求分析,与,与建模,以,以及设,计,计与实,现,现的方,法,法和过,程,程,特,别,别适合,用,用做应,用,用型人,才,才培养,的,的教材,。,。,网络资,源,源:http:/,/,/it,., Sommerville ,PearsonEducationAsia,软件,工,工程基,础,础与实,用,用教材,沈文,轩,轩等,软件,工,工程导,论,论张,海,海藩,,清,清华大,学,学出版,社,社,软件,工,工程原理、,方,方法与,应,应用,史,史济民,,,,高等,教,教育出,版,版社,软件,工,工程技,术,术概论,朱三,元,元,科,学,学出版,社,社,实用,软,软件工,程,程郑,人,人杰,,清,清华出,版,版社,现代,软,软件工,程,程(,上,上中册,),)周之,英,英,科,学,学出版,社,社,软件,工,工程理,论,论与实,践,践译,文,文,高,教,教出版,社,社,现代,软,软件工,程,程陈,松,松桥,,北,北方交,大,大出版,社,社,章节安,排,排,章次,各章标题名称,讲授学时,第一章,软件工程学概述,3,第二章,可行性研究,1,第三章,需求分析,4,第四章,面向对象分析,6,第五章,总体设计,4,第六章,详细设计,4,第七章,面向对象设计,4,第八章,实现,4,第九章,维护,2,第十章,软件项目管理,2,学习要,求,求,要求学,生,生有刻,苦,苦学习,,,,持之,以,以恒的,精,精神。,本,本课程,的,的性质,与,与其说,是,是一门,技,技术性,很,很强的,课,课程,,不,不如说,更,更像一,门,门管理,学,学科的,课,课程,,很,很多规,定,定都是,国,国内外,大,大师的经验总,结,结,不能,误,误认为,无,无用或,现,现在用,不,不上而,放,放弃学,习,习。,要求学,生,生能够,学,学以致,用,用,善,于,于将理,论,论与实,际,际结合,,,,才能,巩,巩固课,内,内学到,的,的知识,,,,并能,融,融会贯,通,通。,学习建,议,议,在正文,中,中介绍,了,了不少,软,软件工,程,程的基,本,本原则,和,和基本,方,方法,,在,在学习,时,时,可,以,以根据,你,你的实,践,践,认,真,真思考,一,一下为,什,什么。,不,不但知,其,其然,,而,而且知,其,其所以,然,然,这,样,样会记,得,得牢一,些,些,不,会,会看过,就,就忘。,考核,考试课,程,程,总成绩=平时成,绩,绩(10%)+实验成,绩,绩(30%)+考试成,绩,绩(60%),第一讲,软,软件,工,工程学,概,概述,本章学,习,习目标,1.了解软,件,件的概,念,念,2.了解软,件,件开发,的,的发展,历,历程,3.掌握软,件,件工程,的,的概念,、,、原理,和,和基本,内,内容,4.掌握软,件,件生命,周,周期,5.理解软,件,件过程,模,模型,1软件,软件由,计,计算机程序、数据及文档组成。,程序是,能,能够完,成,成预定,功,功能和,性,性能的,一,一组计,算,算机指,令,令,数据是,程,程序在,执,执行过,程,程需要,输,输入、,处,处理和,输,输出的,内,内容和,结,结构,文档是,描,描述程,序,序的设,计,计和使,用,用的部,分,分,软件的,特,特点,抽象性,软件生,产,产无明,显,显制造,过,过程,无磨损,性,性,对计算,机,机硬件,依,依赖性,软件的,手,手工开,发,发方式,软件本,身,身复杂,性,性,软件的,高,高成本,(,(德国的,一,一款专,业,业设计3D的软件,:,:3DMAX(正版,),)官,方,方售价,:,:2000000元RMB),软件的,分,分类,软件与硬件、数据库、人、过程等共同,构,构成计,算,算机系,统,统。,软件种,类,类可以,从,从功能,、,、规模,、,、工作,方,方式、,服,服务对,象,象、实,验,验频度,、,、失效,影,影响六,个,个方面,进,进行划,分,分:,按功能,分,分类,应用软,件,件:,管理软,件,件、实,时,时软件,、,、科学,计,计算、,数,数据处,理,理、嵌,入,入式软,件,件等,系统软,件,件:,操作系,统,统、网,络,络系统,、,、编译,器,器、工,具,具软件,等,等,中国的,软,软件产,业,业,主权大,国,国必须,建,建立基,于,于自主,技,技术的,、,、完整,的,的软件,产,产业体,系,系。,软件本,国,国提供,率,率:中,国,国1/3左右,,美,美国97%。中国,盗,盗版软,件,件比例,大,大,软件人,才,才结构,不,不合理,,,,缺乏中,高,高级软,件人才,,,,软件,人,人员缺,乏,乏软件,工,工程化,的,的概念,。,。,软件发,展,展阶段,时间,软件,20,世纪,60,年代中期前,软件,=,程序,60,年代中期至,70,年代中期前,软件,=,程序,+,使用说明,出现软件危机,70,年代中期后,软件,=,程序,+,数据,+,文档,软件工程时代,2软件危,机,机,软件危,机,机指的,是,是在计,算,算机软,件,件的开,发,发和维,护,护过程,中,中所遇,到,到的一,系,系列严,重,重问题。,软件危,机,机的主,要,要特征,软件价,格,格在整,个,个项目,投,投入中,的,的比例,不,不断升,高,高;,软件开,发,发成本,严,严重超,标,标;,软件开,发,发周期,大,大大超,过,过规定,日,日期;,软件质,量,量难于,保,保证;,软件修,改,改、维,护,护困难;,失败的,根,根本原,因,因在于,:,:开发,人,人员写,出,出的东,西,西达不,到,到用户,要,要求(人的问,题,题、技,术,术问题),产生软,件,件危机,的,的原因,计算机应用发展,软件数量多,规模大,功能复杂,个体化软件,开发方法,无开发过程指导,无开发过程管理,软件成本高、质量低、维护困难,软件危机,客,观,因,素,主,观,因,素,主客观不相适应,软 件,工,工,程,程,改正一,个,个问题,需,需付出,的,的代价,需,求,分,析,结构设,计,计,详细设,计,计,编码,集成测,试,试,系统测,试,试,现场,改正一,个,个问题,的,的估计,费,费用,改正一,个,个问题,估,估计的,工,工作量,20,200,2000,1000,5.0,2.5,0.05,0.5,(美元),(人天),解决办,法,法,管理措施,项目管理,配置管理,过程管理,质量控制,技术措施,开发过程,开发技术与方法,开发工具,软件工程学,(软件产品开发工程),用工程,化,化的理,论,论、方,法,法和技,术,术来管,理,理软件,开,开发过,程,程,从,管,管理和,技,技术两,方,方面措,施,施对软,件,件开发,进,进行规,范,范化和,理,理论研,究,究即产,生,生了软,件,件工程,学,学科,3软件工,程,程,1968年德国,人,人Bauer在北大,西,西洋公,约,约组织,会,会议上,的,的定义,:,:建立并,使,使用完,善,善的工,程,程化原,则,则,以较经,济,济的手,段,段获得,能,能在实,际,际机器,上,上有效,运,运行的,可,可靠软,件,件的一,系,系列方,法,法。,1983年IEEE的软件,工,工程定,义,义:软件工,程,程是开,发,发,运,行,行,维护和,修,修复软,件,件的系,统,统方法。,1993年IEEE的一个,更,更加综,合,合的定,义,义:将系统,化,化的,,规,规范的,,,,可度,量,量的方,法,法应用,于,于软件,的,的开发,运行和,维,维护的,过,过程,,即,即将工,程,程化应,用,用于软,件,件中。,软件工,程,程的基,本,本原理,1983年,著,名,名软件,工,工程专,家,家B.W,.,.Boehm提出了,七,七条获,得,得公认,的,的软件,工,工程的,基,基本原,理,理:,(1)分阶,段,段的生,命,命周期,计,计划严,格,格管理,性,性。,(2)坚持,进,进行阶,段,段评审,。,。,(3)实行,严,严格的,产,产品控,制,制。,(4)采用,现,现代程,序,序设计,技,技术。,(5)结果,应,应能清,楚,楚地审,查,查。,(6)开发,小,小组的,人,人员应,少,少而精,。,。,(7)承认,不,不断改,进,进软件,工,工程实,践,践的必,要,要性。,软件工,程,程框架,给,给出了,软,软件工,程,程三个,主,主要方,面,面。,软件工,程,程目标包括可,用,用性、,正,正确性,和,和合算,性,性,规,定,定了软,件,件工程,实,实践的,结,结果(,即,即软件,),)应具,有,有的基,本,本性质,;,;,软件工,程,程过程包含的,基,基本活,动,动有需,求,求、分,析,析与设,计,计、实,现,现、确,认,认与测,试,试、维,护,护与支,持,持;,软件工,程,程的四,条,条原则-采用适,宜,宜的开,发,发模型,,,,使用,恰,恰当的,开,开发方,法,法,提,供,供高质,量,量的工,程,程支持,,,,实施,有,有效的,工,工程管,理,理,从,四,四个方,面,面指导,每,每一项,工,工程的,活,活动,,以,以实现,软,软件工,程,程目标,。,。,软件工,程,程框架,软件工,程,程的目,标,标:追,求,求高质,量,量高效,率,率,实,实现目,标,标的过,程,程:完,成,成产品,加,加工的,过,过程。,进,进,行,行过程,应,应遵守,的,的原则,:,:行进,中,中的轨,道,道约束,。,。,可,用,性,性,性,确,正,合,算,选取适宜的开发模型,采用合适的设计方法,提供高质量的工程支持,重视软件工程的管理,基本过程,支,持,过,程,组,织,过,程,目标,过程,原则,软件工,程,程的三,要,要素,R.Pressman在他的软件工,程,程教程中,指,指出:软件工,程,程的三,个,个要素,是,是方法、,工,工具、,过,过程。,方法是,完,完成软,件,件开发,的,的各项,任,任务的,技,技术方,法,法,回,答,答“如何做”的问题,;,;,工具是,为,为方法,的,的运用,提,提供自,动,动的或,半,半自动,的,的软件,支,支撑环,境,境;,过程是,为,为了获,得,得高质,量,量的软,件,件所需,要,要完成,的,的一系,列,列任务,的,的框架,,,,它规,定,定了完,成,成各项,任,任务的,工,工作步,骤,骤。,软件工,程,程的目,标,标与原,则,则,软件工,程,程的主,要,要目标,:,:提高,软,软件的质量和软件生产率。,软件工,程,程需要,达,达到的,基,基本目,标,标:,付出较,低,低的开,发,发成本,达到要,求,求的软,件,件功能,取得较,好,好的软,件,件性能,开发的,软,软件易,于,于移植,需要较,低,低的维,护,护费用,能按时,完,完成开,发,发,及,时,时交付,使,使用,在软件,开,开发过,程,程中必,须,须遵循,的,的软件,工,工程原,则,则:,抽象与,自,自顶向,下,下、逐,层,层细化采用分,层,层抽象,的,的方法,,,,有效,控,控制软,件,件开发,的,的复杂,性,性。,模块化把问题,分,分解为,若,若干较,小,小的较,易,易解决,的,的模块,,,,有助,于,于信息,隐,隐蔽和,抽,抽象。,信息隐,蔽,蔽和数,据,据封装将模块,中,中的软,件,件设计,决,决策封,装,装在模,块,块内部,,,,使得,模,模块实,现,现与使,用,用分离,,,,有助,于,于控制,修,修改局,部,部化。,局部化在一个,物,物理模,块,块内集,中,中逻辑,上,上相互,关,关联的,计,计算机,资,资源,,促,促使聚,合,合具有,特,特定目,的,的的事,物,物。,一致性整个软,件,件系统,的,的模块,使,使用一,致,致的设,计,计策略,、,、编程,风,风格,,保,保持程,序,序内部,接,接口的,一,一致性,、,、软件,与,与硬件,接,接口的,一,一致性,、,、系统,规,规格说,明,明与系,统,统行为,的,的一致,性,性。,完备性软件系,统,统中不,丢,丢失任,何,何成分,。,。,可验证,性,性系统分,解,解应当,遵,遵循易,检,检查、,易,易测试,和,和易评,审,审的原,则,则,以,便,便保证,系,系统的,正,正确性,。,。,软件工,程,程学,“软件工,程,程学”是一门,交,交叉学,科,科涉及计,算,算机科,学,学、管,理,理科学,、,、工程,学,学和数,学,学。,软件工,程,程则是培,养,养软件,工,工程师。,软件工,程,程学,软件开,发,发技术,软件开,发,发方法,学,学,软件工,具,具,软件工,程,程环境,软件工,程,程管理,软件管,理,理学,软件经,济,济学,7,1.3软件工,程,程方法,学,学,软件工,程,程方法,学,学是软,件,件开发,的,的系统,化,化方法,,,,是一,套,套完整,的,的软件,开,开发技,术,术,包,括,括原则,、,、方法,、,、过程,和,和工具,,,,是每,一,一阶段,活,活动、,产,产品、,验,验收的,步,步骤和,完,完成准,则,则。,软件工,程,程方法,学,学应用,最,最广泛,的,的是结,构,构化方,法,法和面,向,向对象,方,方法,。,7,结构化,方,方法(SM,Structured Method)是传,统,统的软,件,件开发,方,方法,,基,基本思,想,想是:用系统,工,工程的,思,思想和,工,工程化,的,的方法,,,,按照用,户,户至上,的,的原则,,,,结构,化,化、模,块,块化、,自,自顶向,下,下地对,系,系统进,行,行分析,和,和设计,,,,把一个,复,复杂问,题,题的求,解,解过程,分,分阶段,进,进行,使得每,个,个阶段,处,处理的,问,问题都,控,控制在,容,容易理,解,解的范,围,围内,。,结构化,方,方法,7,1.结构化,方,方法模,型,型,7,2.结构化,方,方法过,程,程,(1)结构,化,化分析,(,(SA,Structured Analysis)。,(2)结构,化,化设计,(,(SD,Structured Design)。,(3)结构,化,化实现,(,(SP,Structured Programming),。,3.结构化,方,方法特,点,点,(1)严格,的,的分阶,段,段计划,。,。,(2)瀑布,式,式开发,模,模式。,(3)严格,的,的技术,审,审查和,管,管理复,审,审。,(4)各阶,段,段采用,结,结构化,技,技术。,7,面向对,象,象方法,(,(Object,-,-OrientedMethod)是一,种,种把面,向,向对象,思,思想应,用,用于软,件,件开发,过,过程,,来,来指导,开,开发活,动,动的系,统,统方法,,,,简称OO(Object,-,-Oriented)方法,,,,是建,立,立在“,对,对象”,概,概念基,础,础上的,方,方法学,。,。,所谓面,向,向对象,就,就是基,于,于对象,概,概念,,以,以对象,为,为中心,,,,以类,和,和继承,为,为构造,机,机制,,认,认识、,理,理解、,刻,刻画客,观,观世界,,,,设计,、,、构建,相,相应的,软,软件系,统,统。,面向对,象,象方法,7,2面向对,象,象方法,面向对,象,象方法,模,模型,7,2.面向对,象,象方法,过,过程,(1)面向,对,对象分,析,析(OOA,Object,-,-OrientedAnalysis)。,(2)面向,对,对象设,计,计(OOD,Object,-,-OrientedDesign)。,(3)面向,对,对象的,编,编程(OOP,Object,-,-OrientedPrograming)。,(4)面向,对,对象测,试,试(OOT,Object,-,-OrientedTest)。,3.面向对,象,象方法,特,特点,(1)以对,象,象作为,基,基本的,软,软件构,件,件。,(2)软件,定,定义和,实,实现的,统,统一。,(3)重视,软,软件复,用,用。,(4)通过,逐,逐步演,化,化来完,成,成软件,开,开发。,7,敏捷方,法,法是一,种,种针对,用,用户需,求,求迅速,变,变化的,现,现实情,况,况,采用短,周,周期交,付,付形式,和,和协作,开,开发的,轻,轻量级,软,软件开,发,发方式,。,。相对于“非敏捷”,更强,调,调程序,员,员团队,与,与业务,专,专家之,间,间的紧,密,密协作,、,、面对,面,面的沟,通,通、频,繁,繁交付,新,新的软,件,件版本,、,、紧凑,而,而自我,组,组织型,的,的团队,、,、适应,需,需求变,化,化的代,码,码编写,,,,也更,注,注重软,件,件开发,中,中人的,作,作用。,敏捷方,法,法,7,1.敏捷方,法,法特点,(1)追求,软,软件交,付,付使用,这,这一终,极,极目标,。,。,(2)强调,全,全面合,作,作和交,流,流。,(3)重视,软,软件开,发,发中人,的,的个性,。,。,(4)强调,团,团队的,力,力量。,(5)灵活,采,采用各,种,种开发,和,和管理,方,方式。,7,2.敏捷方,法,法原则,(1)最优,先,先的目,标,标是通,过,过尽早,交,交付有,价,价值的,软,软件来,满,满足用,户,户需求,。,。,(2)即使,在,在开发,后,后期,,也,也能适,应,应需求,变,变化,,能,能够驾,驭,驭变化,,,,帮助,用,用户取,得,得竞争,优,优势。,(3)频繁,交,交付可,使,使用的,软,软件,,时,时间间,隔,隔从几,周,周到几,个,个月,,间,间隔越,短,短越好,。,。,(4)整个,开,开发过,程,程中,,业,业务人,员,员和开,发,发者应,该,该在一,起,起工作,。,。,(5)以积,极,极主动,的,的员工,为,为主体,进,进行软,件,件开发,,,,并且,提,提供适,宜,宜环境,、,、满足,员,员工需,要,要、信,任,任员工,工,工作。,(6)开发,团,团队内,外,外最有,效,效率和,效,效果的,信,信息传,达,达方式,是,是面对,面,面交流,。,。,7,2.敏捷方,法,法原则,(7)可用,的,的软件,是,是进度,的,的主要,度,度量标,准,准。,(8)提倡,可,可持续,开,开发,,管,管理者,、,、开发,人,人员和,用,用户应,始,始终保,持,持稳定,的,的节奏,。,。,(9)简单,,,,尽可,能,能减少,工,工作量,至,至关重,要,要。,(10)强调,先,先进技,术,术和良,好,好设计,,,,以不,断,断提高,敏,敏捷性,。,。,(11)最好,的,的架构,、,、需求,和,和设计,来,来源于,自,自我组,织,织的团,队,队。,(12)团队,定,定期总,结,结提高,效,效率的,方,方法,,并,并相应,调,调整团,队,队行为,。,。,ISO9000定义:软件工,程,程过程,是,是把输,入,入转化,为,为输出,的,的一组,彼,彼此相,关,关的资,源,源和活,动,动。,从软件,开,开发的,观,观点看,,,,它就,是,是使用,适,适当的,资,资源(,包,包括人,员,员、硬,软,软件工,具,具、时,间,间等),,,,为开,发,发软件,进,进行的,一,一组开,发,发活动,,,,在过,程,程结束,时,时将输,入,入(用,户,户要求,),)转化,为,为输出,(,(软件,产,产品),。,。,4软件工,程,程过程,与,与软件,生,生存周,期,期,软件生,存,存周期,各,各阶段,的,的主要,任,任务,问题的,定,定义及,规,规划,需求分,析,析,软件设,计,计,程序编,码,码,软件测,试,试,运行维,护,护,开发策,划,划。主,要,要完成,问,问题定,义,义、可,行,行性论,证,证、制,定,定开发,计,计划和,项,项目申,报,报工作,,,,明确,“,“要解,决,决的问,题,题是什,么,么”。,需求分,析,析。需,求,求分析,和,和定义,阶,阶段任,务,务不是,具,具体地,解,解决问,题,题,而,是,是确定,软,软件须,具,具备的,具,具体功,能,能、性,能,能等,,即,即“必,须,须做什,么,么”及,其,其他指,标,标要求,。,。,概要设,计,计。主,要,要设计,软,软件的,结,结构,,结,结构的,组,组成模,块,块,模,块,块的层,次,次结构,、,、调用,关,关系及,功,功能。,并,并设计,总,总体数,据,据结构,等,等。,(4)详细设,计,计。对,模,模块功,能,能、性,能,能、可,靠,靠性等,进,进行具,体,体技术,描,描述,,并,并转化,为,为过程,描,描述。,(5)编写程,序,序。又,称,称编码,,,,将模,块,块的控,制,制结构,转,转换成,程,程序代,码,码。,(6)测试。,为,为了保,证,证软件,需,需求和,质,质量,,在,在设计,测,测试用,例,例基础,上,上对软,件,件进行,检,检测,(7)运行维,护,护。对,交,交付并,投,投入使,用,用的软,件,件进行,各,各种维,护,护,并,记,记录保,存,存文档,。,。,步 骤,任务及说明,参与者,生成文档或程序,可行性分析,对项目的技术,功能需求和市场进行调研和初步分析,确定是否需要启动项目,部门主管,核心技术人员,可行性分析报告,技术调研报告,启动项目,正式启动项目,有部门主管制定项目经理,项目经理制定初步计划,初步计划包括设计和开发时间的初步估计,部门主管,核心技术人员,项目计划书,项目合同,需求分析,对项目详细需求分析,编写需求文档,对,B/S,结构的系统应制作静态演示页面。需求分析文档和静态演示页面需要通过部门主管审批才能进行到下一步骤,项目经理,项目小组核心成员,需求分析说明书,静态演示页面,项目计划修订版本,概要设计,根据需求分析进行概要设计。编写目的是说明对系统的设计考虑,包括程序系统流程、组织结构、模块划分、功能分配、接口设计。运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。概要设计经过评审后,项目经理通过部门主管一起指定项目小组成员。,项目经理,项目小组核心成员,概要设计说明书,详细设计,详细设计编制目的是说明一个软件各个层次中的每一个程序(每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,可以不单独编写,有关内容合并入概要设计说明书。,项目经理,项目小组成员,详细设计文档,项目计划确定版本,编码实现,根据设计开发项目,同时有美工对操作界面进行美化,项目经理、程序设计员、美工,项目计划修订版本,调试,项目经理提交测试申请,由测试部门对项目进行测试,项目小组配合测试部门修改软件中的错误,项目经理,程序开发人员,测试部门,测试申请,测试计划,测试报告,项目验收,项目验收归档,部门主管,项目经理,项目所有文档和程序,软件工,程,程过程,定,定义了:方法使,用,用的顺,序,序、要,求,求交付,的,的文档,资,资料、,为,为保证,质,质量和,适,适应变,化,化所需,要,要的管,理,理、软,件,件开发,各,各个阶,段,段完成,的,的里程,碑,碑。,软件工,程,程过程,包,包含四,种,种基本,的,的过程,活,活动:,plan:软件规,格,格说明,do:软件开,发,发,check:软件确,认,认,action:软件演,进,进,软件生,存,存周期,模,模型是,软,软件工,程,程思想,的,的具体,化,化,是,跨,跨越软,件,件生存,周,周期的,系,系统开,发,发、运,行,行、维,护,护所实,施,施的全,部,部活动,和,和任务,的,的过程,框,框架。,常用的,软,软件生,存,存周期,模,模型有,瀑,瀑布模,型,型,演,化,化模型,,,,螺旋,模,模型,,增,增量模,型,型,喷,泉,泉模型,,,,快速,应,应用开,发,发(RAD)模型,。,。,1.4软件开,发,发模型,1.4,.,.1瀑布模,型,型,瀑布模,型,型(waterfallmodel)将生,存,存期的,计,计划时,期,期、开,发,发时期,和,和运行,时,时期,,又,又细分,为,为若干,个,个阶段,:,:计划,时,时期可,分,分为问,题,题定义,、,、可行,性,性研究,、,、需求,分,分析3个阶段,,,,开发,时,时期分,为,为概要,设,设计、,详,详细设,计,计、软,件,件实现,、,、软件,测,测试等,阶,阶段,,运,运行时,期,期则需,要,要不断,进,进行运,行,行维护,,,,需要,不,不断修,改,改错误,、,、排除,故,故障,,或,或以用,户,户需求,、,、运行,环,环境改,变,变进行,改,改更调,整,整。,1.4软件开,发,发模型,图1瀑布模,型,型,图中的,实,实线箭,头,头表示,开,开发流,程,程,每,个,个阶段,顺,顺序进,行,行,有,时,时会返,工,工;虚,线,线箭头,表,表示维,护,护工作,的,的流程,,,,根据,不,不同情,况,况返回,到,到不同,的,的阶段,进,进行维,护,护。,1.4软件开,发,发模型,利用瀑,布,布模型,开,开发软,件,件有3个特点,:,:,(1)开发,过,过程的,顺,顺序性,。,。,瀑布模,型,型开发,适,适用于,软,软件需,求,求明确,,,,,开发技,术,术成熟,,,,工程,管,管理较,严,严格的,场合下,使,使用。,(2)统筹,兼,兼顾不,过,过早编,程,程,(3)严格,要,要求保,证,证质量,。,。,图2循环模,型,型,1.4软件开,发,发模型,1.4,.,.2快速原,型,型模型,快速原,型,型模型,需,需要先,建,建造一,个,个快速,原,原型,,如,如操作,窗,窗口及,界,界面等,,,,进行,客,客户或,潜,潜在用,户,户与系,统,统间的,交,交流,,用,用户/客户可,以,以通过,对,对原型,的,的评价,及,及改进,意,意见,,进,进一步,细,细化待,开,开发软,件,件的需,求,求,通,过,过逐步,调,调整原,型,型达到,客,客户要,求,求,从,中,中确定,客,客户的,具,具体需,求,求;然,后,后按照,需,需求开,发,发软件,。,。如图,所,所示。,此,此模型,最,最适合,于,于可以,先,先尽快,构,构建成,一,一个原,型,型的应,用,用系统,。,。,1.4软件开,发,发模型,1.4软件开,发,发模型,1.4,.,.3增量模,型,型,利用增,量,量模型,开,开发的,软,软件被,作,作为一,系,系列的,增,增量构,件,件来进,行,行设计,、,、实现,集,集成和,测,测试,,每,每个构,件,件具有,一,一定功,能,能,并,最,最终能,组,组合成,一,一个具,有,有完整,功,功能软,件,件的模,块,块。如,图,图所示,。,。,1.4软件开,发,发模型,增量模,型,型灵活,性,性很强,,,,适用,于,于软件,需,需求不,明,明确、,设,设计方,案,案有一,定,定风险,的,的软件,项,项目。,1.4软件开,发,发模型,1.4,.,.4螺旋模,型,型,螺旋模,型,型将开,发,发过程,划,划分为,制,制定计,划,划、风,险,险分析,、,、实施,工,工程和,客,客户评,估,估四类,活,活动。,沿,沿着螺,旋,旋线每,转,转一圈,,,,表示,开,开发出,一,一个更,完,完善的,新,新软件,版,版本。,如,如果开,发,发风险,过,过大,,开,开发机,构,构和客,户,户无法,接,接受,,项,项目可,能,能就此,终,终止;,多,多数情,况,况下,,将,将沿着,螺,螺旋线,继,继续进,行,行,自,内,内向外,逐,逐步延,伸,伸,最,终,终得到,满,满意的,软,软件产,品,品。,1.4软件开,发,发模型,螺旋模,型,型沿着,螺,螺线进,行,行多次,迭,迭代,,其,其迭代,过,过程如,图,图1-10所示。,(1)制定计,划,划:确定软,件,件目标,,,,选定,实,实施方,案,案,弄,清,清项目,开,开发的,限,限制条,件,件;,(2)风险分,析,析:分析,评,评估所,选,选方案,,,,考虑,如,如何识,别,别和消,除,除风险,;,;,(3)实施工,程,程:实施,软,软件开,发,发和验,证,证;,(4)客户评,估,估:评价,开,开发工,作,作,提,出,出修正,建,建议,,制,制定下,一,一步计,划,划。,1.4软件开,发,发模型,1.4软件开,发,发模型,1.4,.,.5喷泉模,型,型,喷泉模,型,型主要,适,适合于,利,利用面,向,向对象,技,技术的,软,软件开,发,发项目,。,。它克,服,服了瀑,布,布模型,不,不支持,软,软件重,用,用和多,项,项开发,活,活动集,成,成的局,限,限性。,可,可使开,发,发过程,具,具有迭,代,代性和,无,无间隙,性,性。,1.4软件开,发,发模型,喷泉模,型,型是以,面,面向对,象,象的开,发,发方法,为,为基础,,,,以用,户,户需求,为,为源泉,。,。从如,图,图1-5的喷泉,模,模型中,可,可以看,出,出7个特点,:,:,(1)规定,软,软件开,发,发过程,有,有4个阶段,:,:需求,分,分析、,总,总体设,计,计、详,细,细设计,和,和实现,,,,还可,分,分成多,个,个开发,步,步骤。,(2)各阶,段,段相互,重,重叠,,反,反映了,软,软件过,程,程并行,性,性的特,点,点。,1.4软件开,发,发模型,(3)以分,析,析为基,础,础,资,源,源消耗,成,成塔形,,,,在分,析,析阶段,消,消耗的,资,资源最,多,多。,(4)反映,了,了软件,过,过程迭,代,代性的,自,自然特,性,性,从,高,高层返,回,回低,层,层无资,源,源消耗,。,。,(5)强调,增,增量开,发,发,依,据,据分析,一,一点设,计,计一点,的,的原则,,,,并不,要,要求一,个,个阶段,的,的彻底,完,完成,,整,整个过,程,程是一,个,个迭代,的,的逐步,提,提炼的,过,过程。,(6)是对,象,象驱动,过,过程,,对,对象是,活,活动作,用,用的实,体,体,也,是,是项目,管,管理的,基,基本内,容,容。,(7)实现,中,中由于,活,活动不,同,同,可,分,分为系,统,统实现,和,和对象,实,实现,,这,这既反,映,映了全,系,系统的,开,开发过,程,程,也,反,反映了,对,对象族,的,的开发,和,和重用,1、喷泉,模,模型的,优,优点,喷泉模,型,型的各,个,个阶段,没,没有明,显,显的界,限,限,开,发,发人员,可,可以同,步,步进行,开,开发。,其,其优点,是,是可以,提,提高软,件,件项目,开,开发效,率,率,节,省,省开发,时,时间,,适,适应于,面,面向对,象,象的软,件,件开发,过,过程。,2、喷泉,模,模型的,缺,缺点,由于喷,泉,泉模型,在,在各个,开,开发阶,段,段是重,叠,叠的,,因,因此在,开,开发过,程,程中需,要,要大量,的,的开发,人,人员,,因,因此不,利,利于项,目,目的管,理,理。此,外,外这种,模,模型要,求,求严格,管,管理文,档,档,使,得,得审核,的,的难度,加,加大,,尤,尤其是,面,面对可,能,能随时,加,加入各,种,种信息,、,、需求,与,与资料,的,的情况,。,。,喷泉模,型,型的优,缺,缺点,1.4软件开,发,发模型,1.4,.,.6基于面,向,向对象,的,的模型,面向对,象,象技术,强,强调了,类,类的创,建,建与封,装,装,一,个,个类创,建,建与封,装,装成功,后,后,便,可,可在不,同,同的应,用,用系统,中,中被重,用,用。面,向,向对象,技,技术为,基,基于构,件,件的软,件,件过程,模,模型提,供,供了强,大,大的技,术,术框架,。,。基于,面,面向对,象,象的模,型,型,综,合,合了面,向,向对象,和,和原型,方,方法及,重,重用技,术,术。该,模,模型如,图,图所示,。,。,1.4软件开,发,发模型,1.4软件开,发,发模型,*1.4,.,.7其他模,型,型,1.智能模,型,型,智能模,型,型也称,为,为基于,知,知识的,软,软件开,发,发模型,,,,是知,识,识工程,与,与软件,工,工程在,开,开发模,型,型上的,结,结合,,它,它以瀑,布,布模型,与,与专家,系,系统的,综,综合应,用,用为基,础,础。如,图,图所示,,,,从中,可,可见与,其,其他模,型,型不同,,,,其维,护,护并不,在,在程序,一,一级上,进,进行,,可,可将问,题,题的复,杂,杂性极,大,大降低,。,。,1.4软件开,发,发模型,1.4软件开,发,发模型,智能模,型,型的主,要,要优点,为,为:,(1)利用,领,领域专,家,家系统,,,,可使,需,需求说,明,明更完,整,整、准,确,确和无,二,二义性,。,。,(2)借助,软,软件工,程,程专家,系,系统,,提,提供一,个,个设计,库,库支持,,,,在开,发,发过程,中,中成为,设,设计者,的,的助手,。,。,(3)通过,软,软件工,程,程知识,和,和特定,应,应用领,域,域的知,识,识及规,则,则的应,用,用,对,开,开发提,供,供帮助,。,。,1.4软件开,发,发模型,2.统一过,程,程模型,统一开,发,发过程RUP,(,(RationalUnifiedProcess)模型在,迭,迭代的,开,开发过,程,程、需,求,求管理,、,、基于,组,组件的,体,体系结,构,构、可,视,视化软,件,件建模,、,、验证,软,软件质,量,量及控,制,制软件,变,变更等,方,方面,,针,针对所,有,有关键,的,的开发,活,活动为,开,开发成,员,员提供,了,了必要,的,的准则,、,、模板,和,和工具,指,指导,,并,并确保,共,共享相,同,同的知,识,识基础,。,。建立,了,了简洁,和,和清晰,的,的过程,结,结构,,为,为开发,过,过程提,供,供较多,的,的通用,性,性。,(1)RUP的二维,开,开发模,型,型及其,核,核心工,作,作流(CoreWorkflows,),)。主要,包,包括:,商,商业建,模,模、需,求,求、分,析,析与设,计,计、实,现,现、测,试,试、核,心,心支持,工,工作流,、,、部署,、,、配置,和,和变更,管,管理、,项,项目管,理,理和环,境,境。如,图,图1-14所示。,1.4软件开,发,发模型,1.4软件开,发,发模型,(2)开发中,各,各阶段,和,和里程,碑,碑,主,要,要包括,。,。初始,阶,阶段、,细,细化阶,段,段、构,造,造阶段,、,、交付,阶,阶段。,(3)RUP的迭代,开,开发模,式,式。如,图,图所示,。,。,1.4软件开,发,发模型,1.4,.,.8软件开,发,发模型,的,的选定,1.开发模,型,型与开,发,发方法,及,及工具,的,的关系,一般应,用,用软件,的,的开发,过,过程,,主,主要包,括,括生存,周,周期的,系,系统规,划,划、需,求,求分析,、,、软件,设,设计、,实,实现四,个,个阶段,。,。软件,的,的开发,方,方法多,种,种多样,,,,结构,化,化方法,和,和面向,对,对象的,方,方法是,常,常用的,最,最基本,的,的开发,方,方法。,当,当采用,不,不同的,开,开发方,法,法时,,软,软件的,生,生存周,期,期过程,将,将表现,为,为不同,的,的过程,模,模型。,为,为解决,开,开发工,程,程中大,量,量复杂,的,的手工,劳,劳动,,提,提高软,件,件的开,发,发效率,,,,还要,采,采用计,算,算机辅,助,助软件,工,工程CASE开发工,具,具来支,持,持整个,开,开发过,程,程。软,件,件的开,发,发模型,(,(生存,周,周期过,程,程模型,),)与开,发,发方法,、,、开发,工,工具之,间,间的关,系,系如图,所,所示。,1.3软件生,存,存周期,1.3软件生,存,存周期,2软件,开,开发模,型,型选取,最常用,的,的是瀑,布,布模型,和,和原型,模,模型,,其,其次是,增,增量模,型,型,由,于,于迭代,模,模型比,较,较难以,掌,掌握使,用,用较少,。,。各种,模,模型各,有,有其特,点,点和优,缺,缺点。,在,在具体,选,选择模,型,型时需,要,要综合,考,考虑以,下,下6点:,(1)符合,软,软件本,身,身的性,质,质,包,括,括规模,、,、复杂,性,性等;,(2)满足,软,软件应,用,用系统,整,整体开,发,发进度,要,要求;,(3)尽可,能,能控制,并,并消除,软,软件开,发,发风险,;,;,(4)具有,计,计算机,辅,辅助工,具,具快速,的,的支持,,,,如快,速,速原型,工,工具;,(5)与用,户,户和软,件,件开发,人,人员的,知,知识和,技,技能匹,配,配;,(6)有利,于,于软件,开,开发的,管,管理与,控,控制。,通,通常情,况,况下,,面,面向过,程,程方法,可,可使用,瀑,瀑布模,型,型、增,量,量模型,和,和螺旋,模,模型进,行,行开发,;,;面向,对,对象方,法,法可采,用,用快速,原,原型、,增,增量模,型,型、喷,泉,泉模型,和,和统一,过,过程进,行,行开发,;,;面向,数,数据方,法,法一股,采,采用瀑,布,布模型,和,和增量,模,模型进,行,行开发,。,。,1.3软件生,存,存周期,3软件,开,开发模,型,型的修,定,定,在实际,软,软件开,发,发过程,中,中,开,发,发模型,的,的选定,并,并非直,接,接照抄,照,照搬、,一,一成不,变,变,有,时,时还需,要,要根据,实,实际开,发,发目标,要,要求进,行,行裁剪,、,、修改,、,、确定,和,和综合,运,运用。,小结,软件是,计,计算机,程,程序及,其,其有关,的,的数据,和,和文档,的,的结合,。,。软件,危,危机是,指,指在计,算,算机软,件,件开发,和,和维护,时,时所遇,到,到的一,系,系列问,题,题。软,件,件危机,主,主要问,题,题:一,是,是如何,开,开发软,件,件以满,足,足对软,件,件日益,增,增长的,需,需求;,二,二是如,何,何维护,数,数量不,断,断增长,的,的已有,软,软件。,软件工,程,程采用,工,工程的,概,概念、,原,原理、,技,技术和,方,方法来,开,开发与,维,维护软,件,件。软,件,件工程,的,的目标,是,是实现,软,软件的,优,优质高,产,产。其,主,主要内,容,容是软,件,件开发,技,技术和,软,软件工,程,程管理,。,。,软件开,发,发方法,学,学是编,制,制软件,的,的系统,方,方法,,它,它确定,软,软件开,发,发的各,个,个阶段,,,,规定,每,每一阶,段,段,的,的活动,、,、产品,、,、验收,的,的步骤,和,和完成,准,准则。,常,常用的,软,软件开,发,发方法,有,有结构,化,化方法,、,、面向,数,数据结,构,构方法,和,和面向,对,对象方,法,法等。,软件就,是,是程序,吗,吗?,什么是,软,软件危,机,机?表,现,现是什,么,么?,软件工,程,程定义,有,有很多,说,说法,,说,说出你,的,的理解,?,?,软件工,程,程三要,素,素是什,么,么?,软件工,程,程的目,标,标、过,程,程和原,则,则是什,么,么?,软件工,程,程原理,有,有哪几,条,条?,软件的,什,什么周,期,期是什,么,么?,过程模,型,型有哪,些,些?哪,一,一个适,合,合你的,项,项目开,发,发?,
展开阅读全文