《常见软件过程模型比较及大型软件公司的开发模型调研报告.docx》由会员分享,可在线阅读,更多相关《常见软件过程模型比较及大型软件公司的开发模型调研报告.docx(18页珍藏版)》请在第一文库网上搜索。
1、北京工业大学软件学院2023-2023-1学期常见的软件过程模型比较及IBM,微软,sun等企业开发模型调研汇报专业:班级:学生姓名:学号:2023年1月目录一、题目:错误!未定义书签。二、概述错误!未定义书签。三、软件过程模型比较错误!未定义书签。1、边做边改模型(Bui1d-and-FixMode1)错误!未定义书签。2、瀑布模型(Waterfa11Mode1)错误!未定义书签。3、迅速原型模型(RapidPrototypeMode1)错误!未定义书签。4、增量模型(Incrementa1Mode1)错误!未定义书签。5、螺旋模型(SPira1Mode1)错误!未定义书签。6、演化模型(C
2、VOIUtiOnarymode1)57、喷泉模型(fountainmode1)错误!未定义书签。8、智能模型(四代技术(4G1)错误!未定义书签。9、混合模型(hybridmode1)6四、IBM开发模型错误!未定义书签。五、微软开发模型7六、SUN企业JaVa的开发模型9参照文献:13一、题目:请列举某些常见0软件过程模型并加以比较?并调研IBM,微软,SUn等企业采用哪种开发模型?二、概述常见0软件过程模型有:瀑布模型(Waterfa11mode1)渐增模型/演化/迭代(incrementa1mode1)原型模型(PrototyPemode1)、螺旋模型(SPira1mode1)、喷泉模型
3、(fountainmode1)、智能模型(inte11igentmode1)、混合模型(hybridmode1)三、软件过程模型比较1边做边改模型(Bui1d-and-FixModeI)遗憾的是,许多产品都是使用“边做边改”模型来开发的。在这种模型中,既没有规格阐明,也没有通过设计,软件伴随客户0需要一次又一次地不停被修改。在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件B第一种版本。在提供应顾客使用后,假如程序出现错误,或者顾客提出新的规定,开发人员重新修改代码,直到顾客满意为止。这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种措施对任何规模的开发来说
4、都是不能令人满意0,其重要问题在于:1)缺乏规划和设计环节,软件B构造伴随不停0修改越来越糟,导致无法继续修改;2)忽视需求环节,给软件开发带来很大0风险;3)没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。2、瀑布模型(WaterfaIIModeI)1970年温斯顿罗伊斯提出了著名B“瀑布模型”,直到80年代初期,它一直是唯一被广泛采用的软件开发模型。瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、互相衔接aJ固定次序,如同瀑布流水,逐层下落。在瀑布模型中,软件开发的各项活动严格按照线性方式进行,
5、目前活动接受上一项活动0工作成果,实行完毕所需0工作内容。目前活动0工作成果需要进行验证,假如验证通过,则该成果作为下一项活动日勺输入,继续进行下一项活动,否则返回修改。瀑布模型强调文档的作用,并规定每个阶段都要仔细验证。不过,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其重要问题在于:1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增长了工作量;2)由于开发模型是线性B,顾客只有等到整个过程的末期才能见到开发成果,从而增长了开发的风险;3)初期的错误也许要等到开发后期的测试阶段才能发现,进而带来严重0后果。我们应当认识到,“线性”是人们最轻易掌握并能纯
6、熟应用的思想措施。当人们碰到一种复杂B“非线性”问题时,总是千方百计地将其分解或转化为一系列简朴的线性问题,然后逐一处理。一种软件系统的整体也许是复杂的,而单个子程序总是简朴的,可以用线性的方式来实现,否则干活就太累了。线性是一种简洁,简洁就是美。当我们领会了线性的精神,就不要再呆板地套用线性模型0外表,而应当用活它。例如增量模型实质就是分段B线性模型,螺旋模型则是接连0弯曲了0线性模型,在其他模型中也可以找到线性模型0影子。3、迅速原型模型(RapidPrototypeModeI)迅速原型模型的第一步是建造一种迅速原型,实现客户或未来的顾客与系统的交互,顾客或客户对原型进行评价,深入细化待开
7、发软件B需求。通过逐渐调整原型使其满足客户0规定,开发人员可以确定客户的真正需求是什么;第二步则在第一步0基础上开发客户满意的软件产品。显然,迅速原型措施可以克服瀑布模型B缺陷,减少由于软件需求不明确带来B开发风险,具有明显B效果。迅速原型的关键在于尽量迅速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统B内部构造并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反应客户的需求。4、增量模型(IncrementaIModeI)与建造大厦相似,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一种构件是由多种互相
8、作用0模块所形成日勺提供特定功能0代码片段构成。增量模型在各个阶段并不交付一种可运行0完整产品,而是交付满足客户需求0一种子集时可运行产品。整个产品被分解成若干个构件,开发人员逐一构件地交付产品,这样做的好处是软件开发可以很好地适应变化,客户可以不停地看到所开发的软件,从而减少开发风险。不过,增量模型也存在如下缺陷:1)由于各个构件是逐渐并入已经有aJ软件体系构造中的J,因此加入构件必须不破坏已构造好的系统部分,这需要软件具有开放式0体系构造。2)在开发过程中,需求B变化是不可防止的。增量模型的灵活性可以使其适应这种变化B能力大大优于瀑布模型和迅速原型模型,但也很轻易退化为边做边改模型,从而是
9、软件过程的控制失去整体性。在使用增量模型时,第一种增量往往是实现基本需求的关键产品。关键产品交付顾客使用后,通过评价形成下一种增量的J开发计划,它包括对关键产品的修改和某些新功能的公布。这个过程在每个增量公布后不停反复,直到产生最终的完善产品。例如,使用增量模型开发字处理软件。可以考虑,第一种增量公布基本的文献管理、编辑和文档生成功能,第二个增量公布愈加完善的编辑和文档生成功能,第三个增量实现拼写和文法检查功能,第四个增量完毕高级的页面布局功能。5、螺旋模型(Spira1Mode1)1988年,巴利玻姆BarryBoehm正式刊登了软件系统开发的“螺旋模型”,它将瀑布模型和迅速原型模型结合起来
10、,强调了其他模型所忽视的风险分析,尤其适合于大型复杂的系统。螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了如下活动:1)制定计划:确定软件目0,选定实行方案,弄清项目开发0限制条件;2)风险分析:分析评估所选方案,考虑怎样识别和消除风险;3)实行工程:实行软件开发和验证;4)客户评估:评价开发工作,提出修正提议,制定下一步计划。螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目0融入产品开发之中。不过,螺旋模型也有一定B限制条件,详细如下:D螺旋模型强调风险分析,但规定许多客户接受和相信这种分析,并做出有关反应是不轻易的,因此,这种模型往往适应于内部
11、的大规模软件开发。2)假如执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。3)软件开发人员应当擅长寻找也许B风险,精确地分析风险,否则将会带来更大的风险一种阶段首先是确定该阶段0目的,完毕这些目日勺日勺选择方案及其约束条件,然后从风险角度分析方案B开发方略,努力排除多种潜在日勺风险,有时需要通过建造原型来完毕。假如某些风险不能排除,该方案立即终止,否则启动下一种开发环节。最终,评价该阶段的成果,并设计下一种阶段。6、演化模型(evo1utionarymodeI)重要针对事先不能完整定义需求B软件开发。顾客可以给出待开发系统B关键需求,并且当看到
12、关键需求实现后,可以有效地提出反馈,以支持系统的最终设计和实现。软件开发人员根据顾客的需求,首先开发关键系统。当该关键系统投入运行后,顾客试用之,完毕他们的工作,并提出精化系统、增强系统能力B需求。软件开发人员根据顾客的反馈,实行开发的迭代过程。第一迭代过程均由需求、设计、编码、测试、集成等阶段构成,为整个系统增长一种可定义时、可管理的子集。在开发模式上采用分批循环开发的措施,每循环开发一部分的功能,它们成为这个产品的J原型的新增功能。于是,设计就不停地演化出新的系统。实际上,这个模型可看作是反复执行B多种“瀑布模型”。“演化模型”规定开发人员有能力把项目0产品需求分解为不一样组,以便分批循环
13、开发。这种分组并不是绝对随意性B,而是要根据功能0重要性及对总体设计的基础构造的影响而作出判断。有经验指出,每个开发循环以六周到八周为合适的长度。7、喷泉模型(fountainmodeI)(面向对象的J生存期模型,面向对象(ObjectOrientechOO)模型)喷泉模型与老式的构造化生存期比较,具有更多0增量和迭代性质,生存期的各个阶段可以互相重叠和多次反复,并且在项目B整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。8、智能模型(四代技术(4G1)智能模型拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等)
14、,每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码。这种措施需要四代语言(4G1)的支持。4G1不一样于三代语言,其重要特性是顾客界面极端友好,虽然没有受过训练B非专业程序员,也能用它编写程序;它是一种申明式、交互式和非过程性编程语言。4G1还具有高效0程序代码、智能缺省假设、完备B数据库和应用程序生成器。目前市场上流行B4G1(如FOXPro等)都不一样程度地具有上述特性。但4G1目前重要限于事务信息系统的中、小型应用程序的开发。9、混合模型(hybridmodeI)过程开发模型又叫混合模型(hybridmode1),或元模型(meta-mod
15、e1),把几种不一样模型组合成一种混合模型,它容许一种项目能沿着最有效的途径发展,这就是过程开发模型(或混合模型)。实际上,某些软件开发单位都是使用几种不一样的开发措施构成他们自己的混合模型。模型长处缺陷瀑布模型文档驱动系统也许不满足客户的需求迅速原型模型关注满足客户需求也许导致系统设计差、效率低,难于维护增量模型开发初期反馈及时,易于维护需要开放式体系构造,也许会设计差、效率低螺旋模型风险驱动风险分析人员需要有经验且通过充足训练.四、IBM开发模型DesignSub-Process图4-1IBMDeve1opmentProcess五、微软开发模型微软是世界上最大的软件企业,但微软并没有通过CMM认证,不使用RUP,也不使用XPo微软有自己的软件开发过程PCMo他们之间有什么区别?有什么共同点?微软与否有从CMM.TSP、PSP中取长补短?而中国软件企业又怎样从这些林林总总的开发过程模型中选用适合自己的措施?CMM真的对中国软件企业有协助么?来听听微软资深项目经理的现身说法吧。源代码管理与每日编译源代码控制(SoUrCeCOntr。1,又称源代码管理、版本控制、软件配置管理等)和每日编译(Dai1yBUi1d,又称Night1yBUi1d、持续集成等)是软件开发过程中最重要0措施,也是实行其他多种流程0必须基础(例如变