软件工程-总复习课件

上传人:痛*** 文档编号:241809643 上传时间:2024-07-26 格式:PPT 页数:212 大小:5.92MB
返回 下载 相关 举报
软件工程-总复习课件_第1页
第1页 / 共212页
软件工程-总复习课件_第2页
第2页 / 共212页
软件工程-总复习课件_第3页
第3页 / 共212页
点击查看更多>>
资源描述
1 概论1-1软件概念 1-2 软件工程概念、软件工程三要素1-3 软件工程基本原理1-4 四种软件工程方法之间的关系1-1软件概念件概念软件=程序+数据+文档程序程序:按按设计的功能和性能要求的功能和性能要求执行的指令序列行的指令序列数据数据:程序能正常运作的初始化数据程序能正常运作的初始化数据文档文档:为了理解程序所需的了理解程序所需的详细描述性描述性资料。料。1-2软件工程定件工程定义1968年NATO(北大西洋公约组织)会议上首次提出Fritz Bauer:建立并使用完善的工程原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。IEEE:软件工程是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;(2)(1)中所述方法的研究。2001年,软件工程大师Roger S Pressman 对软件工程的定义是:软件工程是一个过程、一组方法和一系列工具。计算机科学技术百科全书:软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程。习惯上,人们常常把软件工程的方法(开发方法)、工具(支持方法的工具)、过程(管理过程)称为软件工程三要素。软件工程三要素:件工程三要素:方法、工具和方法、工具和过程程方法提供了方法提供了“如何做如何做”的技的技术术工具提供了自工具提供了自动动的或半自的或半自动动的的软软件支撑件支撑环环境境过过程定程定义义了了:方法使用的方法使用的方法使用的方法使用的顺顺序序序序 要求交付的要求交付的要求交付的要求交付的文档文档文档文档资资料料料料 为为保保保保证质证质量和适量和适量和适量和适应变应变化所需要的化所需要的化所需要的化所需要的管理管理管理管理 软软件开件开件开件开发发各个各个各个各个阶阶段完成的段完成的段完成的段完成的里程碑里程碑里程碑里程碑1-3 软件工程基本原理习惯上,人们常常把软件工程的方法(开发方法)、工具(支持方法的工具)、过程(管理过程)称为软件工程三要素。而把美国著名的软件工程专家B.W Boehm于1983年提出的7条原理,作为软件工程的基本原理。(1)用分阶段的生命周期计划严格管理软件开发。阶段划分为计划、分析、设计、编程、测试和运行维护。(2)坚持进行阶段评审。上一阶段评审不通过,就不能进入下一阶段开发。(3)实行严格的产品版本控制。(4)采用现代程序设计技术。(5)结果应能清楚地审查。因此,对文档要有严格要求。(6)开发小组的成员要少而精。(7)要不断地改进软件工程实践的经验和技术,要与时俱进。上述七条原理是在面向过程的程序设计时代(结构化时代)提出来的。但是,直到今天,在面向元数据和面向对象的程序设计新时代,仍然有效。根据“与时俱进”的原则,还有一条基本原理在软件的开发和管理中特别重要,需要补充进去,作为软件工程的第八条基本原理。(8)二八定律。对软件项目进度和工作量的估计:一般人主观上认为已经完成了80%,但实际上只完成了20%;对程序中存在问题的估计:80%的问题存在于20%的程序之中;对模块功能的估计:20%的模块,实现了80%的功能;对人力资源的估计:20%的人,解决了软件中80%的问题;对投入资金的估计:企业信息系统中80%的问题,可以用20%的资金来解决。1-4 1-4 软件件过程方法程方法1.面向过程的方法2.面向对象的方法3.面向元数据的方法4.形式化方法1.1.面向面向过程方法程方法(Procedure-(Procedure-oriented method)oriented method)面向过程方法,习惯上称为传统软件工程开发方法,或结构化方法。有时又称面向功能的方法。面向过程方法包括面向过程需求分析、面向过程设计、面向过程编程、面向过程测试、面向过程维护、面向过程管理。面向过程方法的要点面向过程方法,设计时强调模块化的思想,采用“自顶向下,逐步求精”的技术对系统进行划分,分解和抽象是它的两个基本手段。面向过程方法编程时采用单入口单出口的控制结构,并且只包含顺序、选择和循环三种结构,目标之一是使程序的控制流程线性化,即程序的动态执行顺序符合静态书写结构。优点:以处理流程为基础,简单实用。缺点:只注重过程化信息,因而忽略信息的层面关系以及相互联系。描述能力不强,最后可能导致软件设计、开发和维护陷入困难。曾经出现过的面向过程方法:(1).面向结构化数据系统的开发方法DSSD(Data Structured Systems Development);(2).面向可维护性和可靠性设计的Parnas方法;(3).面向数据结构设计的Jackson方法;(4).面向问题设计的PAM方法;(5).面向数据流方法。其中,面向数据流方法最具代表性。当前,面向过程方法主要用在过程式的程序设计中2 2 面向面向对象方法象方法 (Object-oriented method)(Object-oriented method)面向对象方法,在不少教材中,称为现代软件工程开发方法。该方法包括面向对象需求分析、面向对象设计、面向对象编程、面向对象测试、面向对象维护、面向对象管理。面向对象方法的要点运用对象、类、消息传递、继承、封装、聚合、多态性等概念来构造软件系统。特点:将现实世界的事物(问题域)直接映射到对象。分析设计时由对象抽象出类(Class),程序运行时由类还原到对象(Object)。基本特点:将对象的属性和方法封装起来,形成信息系统的基本执行单位,再利用对象的继承特征,由基本执行单位派生出其他执行单位,从而产生许多新的对象。众多的离散对象通过事件或消息连接起来,就形成了软件系统。优点:能描述无穷的信息世界,同时易于维护。缺点:对于习惯于面向过程方法的人,较难掌握。面向对象方法是当前计算机界关心的重点,是软件工程方法论的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到更宽的范围。如交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。业界流传的面向方面的方法、面向主体的方法和面向架构的方法,都是面向对象方法的具体应用案例。3.3.面向元数据方法面向元数据方法(Meta-data(Meta-data oriented method)oriented method)来源于关系数据库语言的程序设计思想。面向元数据方法包括面向元数据需求分析、面向元数据设计、面向元数据编程、面向元数据测试、面向元数据维护。优点:通俗易懂,特别适合信息系统中数据层上的设计与实现。缺点:只能实现二维表格,不能实现窗口界面。软件工程方法件工程方法论小小结 四种基本的软件开发方法:包括面向过程方法、面向对象方法、面向元数据方法和形式化方法这四种基本的软件开发方法。在大型多层(B/A/S)结构的信息系统建设中,这四种方法的关系是:面向元数据方法用在数据库服务器S层面上系统的设计与实现,面向对象方法用在除数据库服务器层面之外的其他层面上(B/A)系统的设计与实现,面向过程方法用在其他两种方法本身内部函数的设计与实现,形式化方法用在某些核心程序的正确性证明上。2 软件生命周期模型2-1软件生命周期各阶段2-2常见过程模型本意、特点、选用条件2-2-1瀑布、2-2-2增量、2-2-3原型、2-2-4迭代、2-2-5螺旋、2-2-6喷泉、2-2-7XP2-1软件生存周期件生存周期(softwarelifecycle)软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期。软件生存周期分为如下几个阶段:计算机系统工程(立项与合同)、需求分析、设计、编码、测试、运行和维护计算机系统工程(立项与合同)确定确定软件件总体要求和范体要求和范围,以及其与其它,以及其与其它计算机系算机系统元素之元素之间关系关系计算机系统元素:硬件软件使用者数据库文档等成本估算和成本估算和进度安排度安排进行行可行性分析可行性分析经济、技术、法律等方面是否有可行方案?在可行解决方案中作出选择。软件需求分析确定待开确定待开发软件要件要“做什么做什么”。确定确定软件的功能、性能、数据、界面等要求,生成件的功能、性能、数据、界面等要求,生成软件需求件需求规约。软件设计确定待开确定待开发软件件“怎么做怎么做”。分分为系系统设计和和详细设计:系统设计:也称概要设计或总体设计。设计软件系统的体系结构,包括:软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构;详细设计:设计各个组成成分的实现细节,包括局部数据结构和算法等编码将将设计的的结果果转换为可可执行的程序代行的程序代码。测试保保证软件件质量的重要量的重要环节。发现并并纠正正软件中的件中的错误和缺陷。主要包括和缺陷。主要包括单元元测试、集成集成测试、确、确认测试和系和系统测试。运行和维护在在软件运行期件运行期间,当,当发现了了软件中潜藏的件中潜藏的错误或需要或需要增加新的功能或使增加新的功能或使软件适件适应外界外界环境的境的变化等情况出化等情况出现时对软件件进行修改。行修改。2-2-1瀑布模型瀑布模型1970年年W.Royce提出瀑布模型提出瀑布模型1.模型的本意模型的本意:阶段段间具有具有顺序性和依序性和依赖性性l2.模型的模型的特点特点:文档驱动过程不可逆转l3.模型的模型的选择条件条件:(1)在开发时间内需求没有或很少变化。(2)分析设计人员对应用领域很熟悉。(3)低风险项目(对目标、环境很熟悉)。(4)用户使用环境很稳定。(5)用户除提出需求以外,很少参与开发工作。20精品4.模型的模型的优点点:开开发阶段清晰,便于段清晰,便于评审、审计、跟踪、管理和控制。、跟踪、管理和控制。5.模型的缺点模型的缺点按顺序完成每个工作流程,即瀑布式生命周期。瀑布只能一个个台阶地往下流,不可能倒着往上流,这就是它致命的缺点。瀑布式生命周期通常会导致在项目后期,出现“问题堆积”,更可怕的是,错误的传递会采取发散扩大的方式。21精品1模型的本意模型的本意要开要开发一个大的一个大的软件系件系统,先开,先开发其中的其中的一个一个核心模核心模块(或子系(或子系统),然后再开),然后再开发其他模其他模块(或子系(或子系统),),这样一个个模一个个模块(或子系(或子系统)地增加上去,就像搭)地增加上去,就像搭积木一木一样,直至整个系,直至整个系统开开发完完毕为止。止。在每增加一个模在每增加一个模块前,先要前,先要对该模模块进行行模模块测试。通。通过后再将此模后再将此模块加入到系加入到系统中,然后中,然后还要要进行行系系统集成集成测试。系。系统集集成成测试成功后,再增加新的模成功后,再增加新的模块。这样多次循多次循环,直到系,直到系统搭建完搭建完毕为止。止。2-2-2增量模型增量模型22精品2模型的特点模型的特点(1)任)任务或功能模或功能模块驱动,可以,可以分分阶段提交段提交产品。品。(2)有)有多个任多个任务单,这些多个任些多个任务单的集合,构成的集合,构成项目的目的一个一个总任任务书,或,或总用用户需求需求报告告/需求需求规格格说明明书。3选择模型的条件模型的条件(1)在整个)在整个项目开目开发过程中,程中,需求可能需求可能发生生变化化,客,客户接接受分受分阶段交付。段交付。(2)分析)分析设计人人员对应用用领域不熟悉域不熟悉,难以一步到位。以一步到位。(3)中等或高中等或高风险项目目(工期(工期过紧且可分且可分阶段提交的系段提交的系统或目或目标、环境不熟悉)。境不熟悉)。(4)用用户可参与可参与到整个到整个软件开件开发过程中。程中。(5)使用面向)使用面向对象象语言或第四代言或第四代语言。言。(6)软件公司自己有件公司自己有较好的好的类库、构件、构件库。23精品4模型的模型的优点点(1)由于将一个大系)由于将一个大系统分解分解为多个小系多个小系统,这就就等于将一个大等于将一个大风险分解分解为多个小多个小风险,从而降低了,从而降低了开开发难度。度。(2)人人员分配灵活分配灵活,刚开始不用投入大量人力开始不用投入大量人力资源。如果核心模源。如果核心模块产品很受品很受欢迎,迎,则可增加人力可增加人力实现下一个增量。当配下一个增量。当配备的人的人员不能在不能在设定的期限内定的期限内完成完成产品品时,它提供了一种先推出核心,它提供了一种先推出核心产品的途径。品的途径。即可先即可先发布部分模布部分模块给客客户,对客客户起到起到镇静静剂的的作用。作用。5模型的缺点模型的缺点如果如果软件系件系统的的组装和拆卸性不装和拆卸性不强,或开,或开发人人员全全局把握水平不高(没有数据局把握水平不高(没有数据库设计专家家进行系行系统集集成),或者客成),或者客户不同意分不同意分阶段提交段提交产品,或者开品,或者开发人人员过剩,就不宜采用剩,就不宜采用这种模型。种模型。24精品原型原型的解的解释:预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建。2-2-3原型模型原型模型部署交付和部署交付和反反馈构建原型构建原型交流交流快速快速设计方式方式建模建模快速快速计划划25精品原型模型原型模型 软件企件企业界的主流开界的主流开发模型模型.1模型的本意模型的本意原型模型(原型模型(Prototype Model)的本意是:在)的本意是:在初步需求分析之后,初步需求分析之后,马上向客上向客户展示一个展示一个软件件产品原型品原型(样品品),对客客户进行培行培训,让客客户试用用,在,在试用中收集客用中收集客户意意见,根据客,根据客户意意见立刻立刻修改原型修改原型,之后再,之后再让客客户试用,反用,反复循复循环几次,直到客几次,直到客户确确认为止。止。26精品2模型的特点模型的特点原型原型驱动。因此,开。因此,开发者必者必须先有一个原先有一个原型型(样品品),至少要有一个原型的核心。,至少要有一个原型的核心。原型模型与迭代模型相同点是:反复循原型模型与迭代模型相同点是:反复循环几次,直到客几次,直到客户确确认为止。不同点是:原止。不同点是:原型模型事先有一个展示性的型模型事先有一个展示性的产品原型品原型(样品品),而迭代模型可能没有。,而迭代模型可能没有。27精品3选择模型的条件模型的条件(1)已有已有产品或品或产品的原型品的原型(样品品),只需,只需客客户化的工程化的工程项目。目。(2)简单而熟悉而熟悉的行的行业或或领域。域。(3)有快速原型开)有快速原型开发工具工具。(4)进行行产品品移植或升移植或升级。由于上述条件不太苛刻,所以凡是有由于上述条件不太苛刻,所以凡是有软件件产品的品的IT企企业,在他,在他们熟悉的熟悉的业务领域内,域内,当客当客户招招标时,他,他们都会以原型模型作都会以原型模型作为软件开件开发模型,去制作投模型,去制作投标书,去,去讲解解标投投标。28精品4模型的模型的优点点开开发速度快,用速度快,用户意意见反反馈实时,有利于,有利于开开发商在短商在短时间内推广并内推广并实施多个客施多个客户。正因正因为原型模型具有原型模型具有这些些优点,所以它一点,所以它一直是直是软件企件企业界的主流开界的主流开发模型。凡是有模型。凡是有软件件产品品积累的累的软件公司,他件公司,他们在投在投标、开开发、实施施项目的目的过程中,都非常喜程中,都非常喜欢用用原型模型。原型模型。5模型的缺点模型的缺点因因为事先有一个展示性的事先有一个展示性的产品原型,所以品原型,所以在在一定程度上,不利于开一定程度上,不利于开发人人员的的创新新。29精品6快速原型法快速原型法由于原型模型的开由于原型模型的开发速度速度较快,有快,有时也将它称作快也将它称作快速原型法(速原型法(Rapid Prototyping)。)。在开在开发工具和开工具和开发环境迅速境迅速发展的今天,在信息系展的今天,在信息系统开开发中,原型法和快速原型法又被中,原型法和快速原型法又被赋予新的内容:予新的内容:事先没有原型事先没有原型产品,也可以采取品,也可以采取这种种办法法。基本思路是:采用以面向元数据基本思路是:采用以面向元数据为主的方法,在需主的方法,在需求分析的基求分析的基础上,利用上,利用Power Designer等数据等数据库分析和分析和设计工具,快速建立信息系工具,快速建立信息系统的概念数据模的概念数据模型型CDM和物理数据模型和物理数据模型PDM;然后利用面向;然后利用面向对象象的的编程工具,快速地程工具,快速地实现需求分析中确需求分析中确认的流程、的流程、功能、性能和接口;之后交付功能、性能和接口;之后交付给用用户试用,反复循用,反复循环几次,直到客几次,直到客户确确认满意意为止。止。30精品快速原型法快速原型法选择的条件之一的条件之一是:是:项目目组中中有有数据数据库分析和分析和设计的的专家家,有,有面向面向对象象编程的程的专家家,文档制作有成熟的模板,而,文档制作有成熟的模板,而且系且系统或或项目又不是非常大。目又不是非常大。快速原型法快速原型法选择的条件之二的条件之二是:是:项目目组的的开开发环境境为分行分行业的的业务基基础平台平台(比如比如Justep X3业务基基础平台平台),该业务基基础平平台又完全适合所需开台又完全适合所需开发的系的系统或或项目,而目,而且系且系统或或项目又不是非常大。目又不是非常大。以上两个条件,只要符合一个,就可以采以上两个条件,只要符合一个,就可以采用快速原型法。用快速原型法。31精品原型的原型的类型:型:探索型探索型:弄清要求,确定特性,并探:弄清要求,确定特性,并探讨多种方多种方案的可行性案的可行性实验型型:大:大规模开模开发和和实现前,前,验证方案或算方案或算法的合理性。法的合理性。演化型演化型:原型作:原型作为目目标系系统的一部分。的一部分。原型的使用策略:原型的使用策略:废弃(弃(throwaway)策略)策略:用于探索型和:用于探索型和实验型原型。型原型。追加(追加(addon)策略)策略:用于演化型原型。:用于演化型原型。原型可作原型可作为单独的独的过程模型,也常被作程模型,也常被作为一一种方法或种方法或实现技技术应用于其它用于其它过程模型中。程模型中。32精品2-2-4 迭代模型迭代模型(Iterative Model)代表:代表:RUP(Rational Unified Process)模型)模型33精品这里所里所讲的迭代模型是的迭代模型是RUP推出的一种推出的一种“逐步求精逐步求精”的面向的面向对象的象的软件开件开发过程模型程模型,被,被认为软件界迄今件界迄今为止最完善的、止最完善的、商品化的开商品化的开发过程模型程模型。1模型的本意模型的本意多次多次执行各个开行各个开发工作流程工作流程,从而更好地理解需求,从而更好地理解需求,设计出出更更为强壮的壮的软件构架,逐步提高开件构架,逐步提高开发组织能力,最能力,最终交付一交付一系列逐步完善的系列逐步完善的实施成果,施成果,这就是就是迭代式生命周期模型迭代式生命周期模型。每次按每次按顺序完成序完成这一系列工作流程就叫做一系列工作流程就叫做一次迭代一次迭代,每次迭,每次迭代,均以次要里程碑代,均以次要里程碑结束,按照特定的迭代成功束,按照特定的迭代成功标准,准,对迭迭代的代的结果果进行行评估。每个估。每个阶段都可以段都可以进一步一步细分分为迭代。迭代。迭代是迭代是产生可生可执行的行的产品品发布的完整开布的完整开发循循环,所,所发布的布的产品是开品是开发过程最程最终产品的品的子集子集,它将通,它将通过一次又一次的迭代,一次又一次的迭代,实现递增成增成长,最后形成最,最后形成最终的的软件系件系统或或产品品。34精品2模型的特点模型的特点迭代或迭代循迭代或迭代循环驱动,每一次迭代或迭代循,每一次迭代或迭代循环,均要走完初始(先启)、精化、构建、,均要走完初始(先启)、精化、构建、产品化品化(移交移交)这四个四个阶段。段。RUP的主要特征如的主要特征如下:下:1.采用迭代的、增量式的开采用迭代的、增量式的开发过程程;2.采用采用UML语言描述言描述软件开件开发过程程;3.有功能有功能强大大的的软件件工具工具Rational Rose支撑支撑。35精品3模型的模型的选取条件取条件(1)项目目组的管理人的管理人员和核心成和核心成员,应对迭代的开迭代的开发方式比方式比较熟悉熟悉。(2)管理人)管理人员和核心成和核心成员应对软件工程的核心件工程的核心过程程:系系统建模、需求分析、系建模、需求分析、系统设计、系、系统实现、项目管目管理、配置管理、理、配置管理、测试等等比比较熟悉熟悉。(3)采用面向采用面向对象技象技术(如(如OOA,OOD等)的等)的项目目组,建,建议使用迭代式生命周期。使用迭代式生命周期。(4)项目目组的的核心核心设计人人员,应具具备一定程度的一定程度的软件件架构的知架构的知识,并熟,并熟练掌握掌握软件架构件架构设计技能技能。(5)项目目组全体成全体成员应熟悉熟悉UML,并能利用建模工具,并能利用建模工具(如(如Rational Rose等)等)进行分析、策划、行分析、策划、设计、测试等。等。(6)项目目组的的管理人管理人员应具具备风险管理的知管理的知识和技能和技能。(7)拥有有实施施软件件产品开品开发、组装的装的软件件组织。36精品4模型的四个模型的四个阶段段(1)初始初始阶段段。本。本阶段主要工作是确定系段主要工作是确定系统的的业务用况和定用况和定义项目的范目的范围。(2)精化精化阶段段。本。本阶段主要工作是分析段主要工作是分析问题域、域、细化化产品定品定义,定,定义系系统的构架并的构架并建立基建立基线,为构建构建阶段的段的设计和和实施工作施工作提供一个提供一个稳定的基定的基础。(3)构建构建阶段段。本。本阶段主要工作是反复地段主要工作是反复地开开发,以完善,以完善产品,达到用品,达到用户的要求。的要求。(4)产品化品化(移交移交)阶段段。本。本阶段主要工作段主要工作是将是将产品交付品交付给用用户,包括安装、培,包括安装、培训、交付、交付、维护等工作。等工作。37精品5模型的九个核心流程模型的九个核心流程(1)业务建模。建模。(2)需求)需求获取。取。(3)分析)分析设计。(4)实施。施。(5)测试。(6)部署。)部署。(7)配置与)配置与变更管理。更管理。(8)项目管理。目管理。(9)环境。境。38精品6模型的模型的优点点在开在开发早期或中期,早期或中期,用用户需求可以需求可以变化化;在迭代在迭代之初,它不要求有一个相近的之初,它不要求有一个相近的产品原型品原型;模型的;模型的适用范适用范围很广很广,几乎适用于所有的,几乎适用于所有的项目开目开发。7模型的缺点模型的缺点传统的的项目目组织方法是按方法是按顺序(一次且序(一次且仅一次)一次)完成每个工作流程,即瀑布式生命周期。迭代模完成每个工作流程,即瀑布式生命周期。迭代模型是采取循型是采取循环的工作方式,每次循的工作方式,每次循环均使工作均使工作产品更靠近目品更靠近目标产品一次,品一次,这就就要求要求项目目组成成员具具有很高的水平并掌握先有很高的水平并掌握先进的开的开发工具工具。39精品 2-2-5螺旋模型螺旋模型 1模型的本意模型的本意螺旋模型螺旋模型将瀑布模型和快速原型模型将瀑布模型和快速原型模型结合合起来起来,强调了其它模型所忽了其它模型所忽视的的风险分析分析,特特别适合于大型复适合于大型复杂的系的系统。螺旋模型基本做法是螺旋模型基本做法是在瀑布模型的每一个在瀑布模型的每一个开开发阶段前,引入一个非常段前,引入一个非常严格的格的风险识别、风险分析和分析和风险控制控制,它把,它把软件件项目目分解成一个个小分解成一个个小项目。每个小目。每个小项目都目都标识一个或多个主要一个或多个主要风险,直到所有的主要,直到所有的主要风险因素都被确定。如因素都被确定。如图2-4所示。所示。40精品41精品螺旋模型沿着螺螺旋模型沿着螺线顺时针方向方向进行若干次行若干次迭代,迭代,图中的中的四个象限四个象限代表了以下迭代活代表了以下迭代活动:(1)制定)制定计划:确定划:确定软件目件目标,选定定实施施方案,弄清方案,弄清项目开目开发的限制条件;的限制条件;(2)风险分析:分析分析:分析评估所估所选方案,考方案,考虑如何如何识别和消除和消除风险;(3)实施工程:施工程:实施施软件开件开发和和验证;(4)客)客户评估:估:评价开价开发工作,提出修正工作,提出修正建建议,制定下一步,制定下一步计划。划。42精品2模型的特点模型的特点(1)把)把软件开件开发过程程组成成为一个一个逐步逐步细化化的螺旋周期的螺旋周期,每,每经历一个周期,系一个周期,系统就得就得到到进一步的一步的细化和完善;化和完善;(2)整个模型)整个模型紧密密围绕开开发中的中的风险分析分析,推推动软件件设计向深向深层扩展和求精;展和求精;(3)强调持持续的判断、确定和修改用的判断、确定和修改用户的的任任务目目标,并按成本、效益来分析候,并按成本、效益来分析候选的的软件件产品品对任任务目目标的的贡献。献。43精品3选择模型的条件模型的条件螺旋模型螺旋模型强调风险分析,使得开分析,使得开发人人员和用和用户对每个演化每个演化层出出现的的风险有所了解,有所了解,继而做出而做出应有有的反的反应,因此,因此特特别适用于适用于庞大、复大、复杂并具有高并具有高风险的系的系统。44精品4模型的模型的优点点(1)与瀑布模型相比,螺旋模型)与瀑布模型相比,螺旋模型支持用支持用户需求的需求的动态变化化,为用用户参与参与软件开件开发的所有关的所有关键决策提决策提供了方便,从而降低了供了方便,从而降低了软件开件开发风险。(2)螺旋模型)螺旋模型对可可选方案和方案和约束条件的束条件的强调,有有利于已有利于已有软件的重用件的重用,也有助于把,也有助于把软件件质量量作作为软件开件开发的一个重要目的一个重要目标。(3)减少了减少了过多多测试(浪(浪费资金)或金)或测试不足不足(产品故障多)所品故障多)所带来的来的风险。(4)螺旋模型中)螺旋模型中维护只是模型的另一个周期,在只是模型的另一个周期,在维护和开和开发之之间并没有本并没有本质区区别。45精品5模型的缺点模型的缺点(1)很很难让用用户确信确信这种演化方法的种演化方法的结果是可果是可以控制的以控制的。由于建。由于建设周期周期长,而,而软件技件技术发展比展比较快,所以快,所以经常出常出现软件开件开发完完毕后,和当前的后,和当前的技技术水平有了水平有了较大的差距,无法大的差距,无法满足当前用足当前用户需需求。求。(2)采用螺旋模型)采用螺旋模型需要具有相当丰富的需要具有相当丰富的风险评估估经验和和专门知知识,在,在风险较大的大的项目开目开发中,中,如果未能如果未能够及及时标识风险,势必造成重大必造成重大损失。失。(3)过多的迭代次数多的迭代次数会增加开会增加开发成本,延成本,延迟提提交交时间。46精品2-2-6 喷泉模型泉模型 47精品1模型的本意模型的本意喷泉模型泉模型(Fountain Model)认为,软件开件开发过程自下而上的程自下而上的各各阶段是相互重叠段是相互重叠和和多多次反复次反复进行行的,就像的,就像喷泉中的水泉中的水喷上去,上去,又可以落下来,所以叫做又可以落下来,所以叫做喷泉模型。泉模型。各个开各个开发阶段段没有特定的次序要求没有特定的次序要求,而且,而且可以交互可以交互进行,在每个开行,在每个开发阶段中,段中,还可可以随以随时补充其它任何开充其它任何开发阶段中的段中的遗漏。漏。48精品2模型的特点模型的特点喷泉模型是一种以泉模型是一种以用用户需求需求驱动的模型,的模型,主要用于描述面向主要用于描述面向对象的象的软件开件开发过程。程。由于由于各各阶段的活段的活动之之间无明无明显界界线,所以,所以喷泉模型也称泉模型也称为“喷泉无泉无间隙性模型隙性模型”。3选择模型的条件模型的条件喷泉模型泉模型主要用于面向主要用于面向对象的象的软件件项目目,软件的某个部分通常被重复多次,相关件的某个部分通常被重复多次,相关对象在每次迭代中随之加入象在每次迭代中随之加入渐进的的软件成分。件成分。49精品4模型的模型的优点点喷泉模型不像瀑布模型那泉模型不像瀑布模型那样,需要分析活,需要分析活动结束束后才开始后才开始设计活活动,设计活活动结束后才开始束后才开始编码活活动。该模型的模型的各个各个阶段没有明段没有明显的界限的界限,开,开发人人员可可以同步以同步进行开行开发。其。其优点是点是可以提高可以提高软件件项目开目开发效率,效率,节省开省开发时间。5模型的缺点模型的缺点由于由于喷泉模型在各个开泉模型在各个开发阶段是重叠的,因此在段是重叠的,因此在开开发过程中程中需要大量的开需要大量的开发人人员,因此不利于,因此不利于项目的管理。目的管理。这种模型种模型要求要求严格管理文档格管理文档,使得,使得审核的核的难度加度加大,尤其是面大,尤其是面对可能随可能随时加入各种信息。加入各种信息。50精品2-2-7 XP模型模型 1模型的本意模型的本意XP模型,即极限模型,即极限编程模型,它本来是敏捷程模型,它本来是敏捷企企业文化文化现象,但是不少人将它当作一种象,但是不少人将它当作一种软件开件开发模型。模型。XP模型属于模型属于轻量量级开开发模型模型,它由一,它由一组简单规则(需求、需求、实现、重构、重构、测试、发布布)组成,既保持开成,既保持开发人人员的自由的自由创造性,又保造性,又保持持对需求需求变动的适的适应性,即使在开性,即使在开发的后的后期,也不怕用期,也不怕用户需求的需求的变更。更。XP模型的迭模型的迭代开代开发过程,如程,如图2-6所示。所示。51精品52精品2模型的特点模型的特点在需求、在需求、实现、重构、重构、测试、发布的迭代布的迭代过程中,程中,XP模型有模型有四条核心原四条核心原则:“交流交流”、“简单”、“反反馈”和和“进取取”。XP开开发小小组不不仅包括开包括开发人人员,还包括管理人包括管理人员和客和客户。XP模型模型强调小小组内成内成员之之间要要经常常进行行“交流交流”,结对编程,在尽量保程,在尽量保证质量的前提下力求量的前提下力求过程和程和代代码的的“简单”化。化。来自客来自客户、开、开发人人员和最和最终用用户的具体的具体“反反馈”意意见,可以提供更多的机会来,可以提供更多的机会来调整整设计,保,保证把握正把握正确的开确的开发方向。方向。在在XP模型中,采取模型中,采取讲“用用户场景故事景故事”的方法,的方法,来代替来代替传统模型中的需求分析。模型中的需求分析。53精品3选择模型的条件模型的条件XP模型克服了模型克服了传统模型不灵活机模型不灵活机动的缺陷,是一的缺陷,是一种面向客种面向客户场景的景的轻量量级模型。它模型。它只适合于中小只适合于中小型开型开发小小组。实践表明,践表明,XP模型特模型特别适合于情投适合于情投意合的青年人群的小意合的青年人群的小项目。目。4模型的模型的优点点(1).由于采用由于采用简单策略,不需要策略,不需要长期期计划和复划和复杂管理,因而管理,因而开开发周期短周期短;(2).由于采用迭代增量开由于采用迭代增量开发、反、反馈修正和反复修正和反复测试的方法,因而的方法,因而软件件质量有保量有保证;(3).由于适由于适应用用户需求的需求的变化,因而化,因而与用与用户关系关系和和蔼。54精品5模型的缺点模型的缺点XP模型作模型作为一种新的模型,在一种新的模型,在实际应用中用中还存在着一些存在着一些问题,引起了,引起了许多争多争议。它只适用于小型它只适用于小型项目、小型目、小型项目目组,不大不大适用于大型适用于大型项目、大型目、大型项目目组。同同时,它,它与与ISO9001、CMMI的精神也存的精神也存在冲突在冲突。55精品序号模 型 名 称优 点缺 点适 用 范 围1瀑布模型 简单好学逆转性差 面向过程开发2增量模型 可以分阶段提交有时用户不同意 系统可拆卸和组装3迭代模型 需求可变风险大 有高素质软件团队4原型模型 开发速度快不利于创新 已有产品的原型5螺旋模型需求可变建设周期长庞大、复杂、高风险项目6喷泉模型提高开发效率不利于项目的管理面向对象开发7XP模型提高开发效率不适合大团队、大项目小团队,小项目各种模型之各种模型之间的关系的关系 56精品在在软件开件开发的的过程中程中,软件工程不可能件工程不可能百分之百地按照事先百分之百地按照事先设计好的好的软件件蓝图进行,而是一行,而是一边施工、一施工、一边修改修改软件件蓝图、一、一边再按照修改的再按照修改的软件件蓝图继续施施工,即工,即按照按照“软件件蓝图-软件开件开发-软件件蓝图-软件开件开发”这个个顺序多次循序多次循环,循循环中又包涵着各种生命周期及开中又包涵着各种生命周期及开发模模型型,最后才能到达,最后才能到达胜利的彼岸。利的彼岸。57精品软件企件企业选取取软件生命周期模型的方法:件生命周期模型的方法:软件企件企业在在创业时期期,由于没有,由于没有项目或目或产品的品的积累,所以他累,所以他们常常会常常会选取瀑布模型取瀑布模型和增量模型和增量模型。一旦越一旦越过创业时期,由于期,由于积累了一些了累了一些了项目或目或产品,他品,他们就会就会选取取原型模型原型模型。至于至于迭代模型迭代模型,只有当他,只有当他们掌握了掌握了UML及及其工具其工具Rational Rose之后,才会加以考之后,才会加以考虑。58精品3 计算机系统工程(立项与合同)不考!订单软件与非件与非订单软件件招招标、投、投标、讲标、中、中标立项及签订合同的方法下达任务书的三个条件可行性研究的方法4 需求分析4-14-1需求工程的几个需求工程的几个阶段段4-24-2软件需求的概念及件需求的概念及种种类4-34-3需求分析的任需求分析的任务4-44-4需求确需求确认与与验证的区的区别4-54-5两种需求文档的关系与区两种需求文档的关系与区别4-64-6需求需求获取的方法与策略取的方法与策略4-74-7掌握需求分析的方法及掌握需求分析的方法及对应的建模描述工具的建模描述工具我我们将将软件需求工程件需求工程细分分为:需求需求获取取需求分析与系需求分析与系统建模建模需求需求归档档(需求需求规约)需求确需求确认与与验证(评审)4-1需求工程需求工程阶段段61精品需求的需求的简化定化定义:产品必品必须提供的服提供的服务产品必品必须具具备的的质量特征量特征需求关注于需求关注于顾客的需要,指定系客的需要,指定系统要要“做什么做什么”,而不关心,而不关心问题的解的解决方案或决方案或实现4-2需求的概念需求的概念62精品功能性需求:描述系统做什么。非功能性需求:定义系统工作时的特性。包括:产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。4-2需求的种类63精品4-3需求分析的任需求分析的任务深入描述软件的功能和性能确定软件设计的约束和软件同其它系统元素的接口细节定义软件的其它有效性需求64精品4-4 需求确认(Validation)与验证(Verification)验证&确确认(Verification&Validation)的定)的定义验证:我们在正确地构建产品吗?(Are we building the product right?)确认:我们在构建正确的产品吗?(Are we building the right product?)65精品用户需求报告站在用户的角度、使用他们可以看懂的语言写的,内容是有关系统的运行环境、业务流程、业务功能、业务性能和业务接口等。它是需求分析阶段产生的第一份重要的文档,表达了用户全面的、系统的、准确的、并且用户确认的需求,它是用户、项目开发者、项目测试者和项目管理者四方共同工作的基础,是用户测试和验收目标的依据,是作为软件开发机构和用户之间一份事实上的技术合同书,是软件生命周期中的第一根基线。4-5.两两类需求文档需求文档-用户需求报告与需求分析规格说明书66精品需求分析规格说明书(SRS)以用户需求报告为基线。站在开发者的角度、使用开发者的语言写的,目的是作为概要设计和详细设计的依据,内容是系统的业务模型、功能模型、数据模型和接口模型的进一步定量描述。它是需求分析阶段产生的第二份重要的文档。与用户需求报告不同的是,需求分析规格说明书不但以一种一致的、无二义的方式准确的表达用户的需求,而且增加了一些对设计者非常有用的信息(如模型、实体、属性、方法、关系、主键、外键、算法等等),它是项目开发者、项目测试者和项目管理者三方共同工作的技术基础,是项目开发者下一步进行设计和编码的依据。67精品4-6需求需求获取方法与策略取方法与策略1.建立建立顺畅的通信途径的通信途径2.访谈与与调查3.观察用察用户操作流程操作流程4.组成成联合小合小组5.用况用况(UseCase)68精品1.建立建立顺畅的通信途径的通信途径建立分析所需要的通信途径,以保建立分析所需要的通信途径,以保证能能顺利地利地对问题进行分析。行分析。69精品2.访谈与与调查访谈方法:方法:折衷法折衷法,即,即适当地适当地计划好面划好面谈,但不要,但不要过于于详细,允允许有一定的灵活性有一定的灵活性。一般按照如下原。一般按照如下原则进行准行准备:提提问问题应循序循序渐进,从整体的方面开始提,从整体的方面开始提问,接下来,接下来的的问题应有助于有助于对前面的前面的问题更好的理解和更好的理解和细化;化;不要限制用不要限制用户对问题的回答,的回答,这有可能会引出原先没有有可能会引出原先没有注意的注意的问题;提提问和回答在和回答在汇总后后应能能够反映用反映用户需求的全貌。需求的全貌。调查:市:市场调查、多种、多种调查方式方式70精品3.观察用察用户操作流程操作流程到用到用户的的实际工作工作环境中境中对用用户的工作流的工作流程程进行行观察,了解用察,了解用户实际的操作的操作环境、境、操作操作过程和操作要求,程和操作要求,对照用照用户提交的提交的问题陈述,述,对用用户需求可以有更全面、更需求可以有更全面、更细致的致的认识。71精品4.组成成联合小合小组被称被称为便利的便利的应用用规约技技术(FacilitatedApplicationSpecificationTechniques,FAST):打破用:打破用户(需方)和开(需方)和开发者者(供方)的界限,共同(供方)的界限,共同组成一个成一个联合小合小组,发挥各自的各自的长处,共同,共同负责项目的目的推推进,这样有助于有助于发挥各自各自优势并增并增进了解和了解和协调72精品5.用例(用例(UseCase)主要用于描述系主要用于描述系统的高的高层次功能性需求次功能性需求用例:系用例:系统的使用的使用场景景。创建用例模型的主要步建用例模型的主要步骤如下:如下:1)确定确定谁会直接使用会直接使用该系系统,即,即参与者参与者(Actor)2)选取其中一个参与者取其中一个参与者3)定定义该参参与与者者希希望望系系统做做什什么么,参参与与者者希希望望系系统作作的的每每件事将成件事将成为一个一个用况用况4)对每每件件事事来来说,何何时参参与与者者会会使使用用系系统,通通常常会会发生生什什么,么,这就是就是用况的基本用况的基本过程程5)描述描述该用况的基本用况的基本过程程73精品4-7.需求分析方法需求分析方法常用的分析方法:常用的分析方法:面向数据流的面向数据流的结构化分析方法构化分析方法(SA)面向面向对象的分析方法象的分析方法(OOA)74精品(1)结构化需求分析描述工具构化需求分析描述工具数据字典数据字典DD(DataDictionary)实体关系体关系图ERD(EntityRelationshipDiagram)数据流数据流图DFD(DataFlowDiagram)状状态转换图75精品(2)面向)面向对象需求分析描述工具象需求分析描述工具用例用例图静静态模型:模型:类图动态模型:模型:顺序序图、活、活动图、状、状态图组织模型:包模型:包图76精品5 5 软件策划件策划-不考不考软件件规模的估模的估计方法方法掌握掌握软件件费用和用和资源的估源的估计方法方法6 设计6-1软件设计原则:抽象、逐步求精、信息隐藏、模块化、模块独立、接口与实现分离各种耦合与内聚6-2三层体系结构6-3各种体系结构风格6-4人机界面涉及的模型6-5部件设计技术之判定表6-1 软件件设计原理原理1.抽象与逐步求精抽象与逐步求精2.模模块化化3.信息信息隐藏(封装)藏(封装)4.模模块独立独立5.接口与接口与实现分离分离79精品1.抽象与逐步求精抽象与逐步求精抽象:软件系统进行模块设计时,可有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。在较低的抽象层次上,则采用过程化的方法。抽象包括过程抽象、数据抽象、控制抽象。80精品逐步求精:逐步求精:将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构逐步求精与抽象是一对互补的概念。81精品2.模模块化化 模块化:解决一个复解决一个复杂问题时,自,自顶向下、向下、逐步求精地逐步求精地把把软件系件系统划分成若干模划分成若干模块的的过程程。把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。82精品3.信息信息隐藏(封装)藏(封装)每个模每个模块的的实现细节对于其它模于其它模块来来说应该是是隐蔽蔽的的。即:。即:块中所包含的信息(包括数据和中所包含的信息(包括数据和过程)不程)不允允许其它不需要其它不需要这些信息的模些信息的模块使用使用 通通过信息信息隐蔽,可使蔽,可使错误局部化局部化 封装是面向对象系统开发中的术语。要进行正确的封装,必须遵守下列原则:(1)实体间相互隐藏内部实现。(2)尽量减少全局的共享数据。83精品4.模模块独立独立“模模模模块块”,又称,又称,又称,又称“组组件件件件”。指在程序中的数据指在程序中的数据说明、明、可可执行行语句等程序句等程序对象的集合,或者是象的集合,或者是单独命名和独命名和编址的元素。如高址的元素。如高级语言中的言中的过程,函数、子程序程,函数、子程序等。每个模等。每个模块可以完成一个特定的子功能,各个模可以完成一个特定的子功能,各个模块可以按一定方法可以按一定方法组装起来成装起来成为一个整体。一个整体。模模模模块块一般具有如下三个基本属性一般具有如下三个基本属性一般具有如下三个基本属性一般具有如下三个基本属性:功能功能功能功能:描述:描述:描述:描述该该模模模模块实现块实现什么功能什么功能什么功能什么功能逻辑逻辑:描述模:描述模:描述模:描述模块块内部怎么做内部怎么做内部怎么做内部怎么做状状状状态态:该该模模模模块块使用使用使用使用时时的的的的环环境和条件境和条件境和条件境和条件84精品在描述一个模在描述一个模块时,还必必须按模按模块的的外外部特性部特性与与内部特性内部特性分分别描述描述模模块的的外部特性外部特性模模块的模的模块名、参数表、其中的名、参数表、其中的输入入参数和参数和输出参数,以及出参数,以及给程序以至整程序以至整个系个系统造成的影响造成的影响模模块的的内部特性内部特性完成其功能的程序代完成其功能的程序代码和和仅供供该模模块内部使用的数据内部使用的数据85精品4.模模块独立独立 模模块独立独立:是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的一般采用两个准则度量模块独立性。即模块间耦合和模块内聚86精品内聚(cohesion)是一个模块内部各个元素彼此结合的紧密程度的度量 耦合(coupling)是模块之间互相连接的紧密程度的度量 模块独立性比较强的模块应是高内聚低耦合的模块。87精品内聚内聚 内聚性分七种内聚性分七种类型型 88精品FUNCTION DFUNCTION EProceduralRelated by order offunctionsLogicalSimilar functionsFUNCTION AFUNCTION AFUNCTION A”logicTemporalRelated by timeTIME T0TIME T0+XTIME T0+2XFUNCTION AFUNCTION BFUNCTION CFUNCTION AFUNCTION BFUNCTION CCommunicationalAccess same dataSequentialOutput of one part is input to nextDATAFUNCTION AFUNCTION BFUNCTION CFunctionalSequential withcomplete,related functionsFUNCTION A-part 1FUNCTION A-part 2FUNCTION A-part 3CoincidentalParts unrelatedFUNCTION AFUNCTIONBFUNCTION C89精品功能内聚功能内聚 (Functional Cohesion)(Functional Cohesion)一个模一个模块块中各个部分都是中各个部分都是完成某一具体功能完成某一具体功能必不可少必不可少的的组组成部分。成部分。顺顺序内聚序内聚 (Sequential Cohesion)(Sequential Cohesion)一个模一个模块块完成多个功能完成多个功能,各个功能必各个功能必须顺须顺序序执执行行。通信内聚通信内聚 (Communication Cohesion)(Communication Cohesion)一个模一个模块块内各功能部分都使用了相同的内各功能部分都使用了相同的输输入数据,或入数据,或产产生了相同的生了相同的输输出数据。出数据。过程内聚(Procedural Cohesion)一个模一个模块块完成多个任完成多个任务务,这这些任些任务务必必须须按指定的按指定的过过程程进进行。行。90精品时间内聚(Classical Cohesion)模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。逻辑内聚(Logical Cohesion)这这种模种模块块把几种相关的功能把几种相关的功能组组合在一起,合在一起,调调用用时时,由,由传传送送给给模模块块的判定参数来确定的判定参数来确定该该模模块应执块应执行哪一种功行哪一种功能。能。巧合内聚(Coincidental Cohesion)巧合内聚又称巧合内聚又称为为偶然内聚。模偶然内聚。模块块内各部分之内各部分之间间没有没有联联系,或者即使有系,或者即使有联联系也很松散。系也很松散。91精品耦合耦合 模模块间的耦合方式的耦合方式92精品非直接耦合(Nondirect Coupling)两个模块之间没有直接关系,它们的联系完全是通过主模块的控制和调用来实现的。93精品数据耦合(Data Coupling)模块间仅通过参数表传递简单数据参数(不是控制参数、公共数据结构或外部变量)交换信息。标记耦合(Stamp Coupling)模块间通过参数表传递一个数据结构的一部分(不是简单变量)。94精品控制耦合(Control Coupling)如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。95精品外部耦合(External Coupling)一一组组模模块块都都访问访问同一全局同一全局简单变简单变量量而不是同一全局而不是同一全局数据数据结结构,而且不是通构,而且不是通过过参数表参数表传递该传递该全局全局变变量的量的信息,信息,则则称之称之为为外部耦合。外部耦合。公共耦合(Common Coupling)若一若一组组模模块块都都访问访问同一个公共数据同一个公共数据环环境境,则则它它们们之之间间的耦合就称的耦合就称为为公共耦合。公共的数据公共耦合。公共的数据环环境可以是境可以是全局数据全局数据结结构、共享的通信区、内存的公共覆盖区构、共享的通信区、内存的公共覆盖区等。等。96精品公共耦合的复杂程度随
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!