《总结:软件工程与软件过程基本概念..ppt》由会员分享,可在线阅读,更多相关《总结:软件工程与软件过程基本概念..ppt(71页珍藏版)》请在课桌文档上搜索。
1、总结:传统软件工程与软件过程的基本概念,任何工程方法(包括软件工程)必须以有组织的质量保证为基础.全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现.支持软件工程的根基就在于对质量的关注.建造计算机软件是一个迭代学习的过程。,软件工程与软件过程的关系,软件过程是为开发高质量软件所需要完成的任务的框架.软件工程是有创造力,有知识的人在定义好的,成熟的软件过程框架中进行的.该过程适合于他们建造的产品和他们的市场需要。一个软件过程定义了软件开发中采用的方法,而软件工程还包含该过程中应用的技术-技术方法和自动工具。,工具,方法,过程,质量焦点,Softw
2、are engineering layers,1。过程、方法和工具,软件工程是一种层次化的技术(图2.1)。支持软件工程的根基就在于对质量的关注。软件工程的基础是过程层。软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够合理和及时地开发。过程定义了一组关键过程区域的框架。,软件工程方法为软件开发提供了“如何做”的技术软件工具为软件工程方法提供了自动的或半自动的软件支撑环境,2 软件的一般视图,工程是对技术(或社会)实体的分析、设计、建造、验证和管理。与软件工程相关的工作可分为三个一般的阶段:(1)定义阶段:集中于“做什么”;三个主要任务:系统工程、项目计划、需求分析(2)开发阶段:集
3、中于“如何做”;三个特定任务:设计、编码、测试(3)支持阶段:关注于“变化”四类可能遇到的变化:纠错、适应、增强、预防,3。软件过程可分为三大类,基本过程类:是构成软件生存周期主要部分的那些过程,包括获取,供应,开发,操作,维护等过程.支持过程类:可穿插到基本过程中提供支持的一系列过程,包括文档开发,配置管理,质量保证,验证,确认,联合评审,审计,问题解决等过程.组织过程类:一个组织用来建立,实施一种基础结构,并不断改进该基础结构的过程,包括管理,基础,改进,培训等过程.,4。软件工程过程,软件工程过程(Software Engineering Process)是为获得软件产品,在软件工具支持
4、下由软件工程师完成的一系列软件工程活动。软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。,软件工程过程通常包含四种基本的过程活动 P(Plan)软件规格说明:规定软件的功能及其运行的 限制;D(Do)软件开发:产生满足规格说明的软件 C(Check)软件确认:确认软件能够完成客户提出的要求 A(Action)软件演进:为满足客户的变更要求,软件必须在使用的过程中演进,5。软件过程模型,所有软件开发都可被刻画为一个问题解决环,其中包括四个不同
5、的阶段:状态描述、问题定义、技术开发和解决集成。软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期。软件生存期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护。,制定计划,确定要开发软件系统的总目标给出功能、性能、可靠性以及接口等方面的要求完成该软件任务的可行性研究估计可利用的资源(计算机硬件,软件,人力等)、成本、效益、开发进度制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查,需求分析和定义,对待开发软件提出的需求进行分析并给出详细的定义编写软件需求说明书或系统功能说明书及初步的系统用户手册提交管理机构评审,软件设计,概要设计
6、把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应详细设计 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础编写设计说明书,提交评审。,程序编写,把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”写出的程序应当是结构良好、清晰易读的,且与设计相一致的,软件测试,单元测试,查找各模块在功能和结构上存在的问题并加以纠正组装测试,将已测试过的模块按一定顺序组装起来按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用,运行维护,改正性维护 运行中发现了软件中的错误需要修正适应性
7、维护 为了适应变化了的软件工作环境,需做适当变更完善性维护 为了增强软件的功能需做变更,软件生存期模型(也称软件开发模型、软件过程模型、软件工程范型)是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。简单地说,是软件产品或软件系统从设计、投入使用到被淘汰的全过程。所谓模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范型,使工程的进展达到预期的目的。,6。软件生存周期模型,7。编码修复模型,编码修复模型是所有模型中最古老也是最简单的模型。,编码修复模型的特点,它几乎不执行任何预先的计划,该模型的使用者很快就进入了所开发产品的编码阶段。典型的情况是,完成大
8、量的编码,然后测试产品并且纠正所发现的错误。编码和测试工作一直持续到产品开发工作全部完成并将产品交付给客户。,缺点:缺乏预先的计划和不正规的开发;软件产品的质量低于用其他模型实现的产 品质量;产品的设计没有认真计划及文档化,代码很难维护。优点:简单快捷,适合于很小且很简单的项目。,8。线性顺序模型,线性模型也称为传统生存周期或瀑布模型。传统生存模型是软件工程中应用最广泛的过程模型,在软件工程中占有肯定和重要的位置。它提供了一个模板,使得分析、设计、编码、测试和支持的方法可以在该模板的指导下应用。,阶段间的顺序性和依赖性;文档驱动性;严格阶段评估;开发初期需要清楚全部需求;开发周期长、风险大。,
9、线性顺序模型特点,优点:1、它提供了一个摸板,这个摸板使得分析、设计、编码、测试和支持的方法可以在该摸板下有一个共同的指导。2、虽然有不少缺陷但比在软件开发中随意的状态要好得多。,9。原型实现模型,由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次:第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求。第二次则在此基础上获得较为满意的软件产品。,从需求收集开始,开发者和客户在一起定义软件的总体目标,标识已知的需求并且规划出需要进一步定义的区域。然后是“快速设计”,它集中于软件中那些对客户可见的部分的表示,这将导致
10、原型的创建。由客户评估并进一步精化待开发软件的需求。逐步调整原型使其满足客户的需求,这个过程是迭代的。,原型模型图,原型可以作为标识软件需求的一种机制;原型作为第一个系统,常常是抛弃的;开发过程的交互性和迭代性;充分发挥用户在软件开发初期的作用;开发周期较短、成本较低、风险较小。,原型实现模型的特点,缺点:1、没有考虑软件的整体质量和长期的可维护性。2、大部分情况是不合适的操作算法被采用目的为了演示功能,不合适的开发工具被采用仅仅为了它的方便,还有不合适的操作系统被选择等等。3、由于达不到质量要求产品可能被抛弃,而采用新的模型重新设计。优点:1、如果客户和开发者达成一致协议:原型被建造仅为了定
11、义需求,之后就被抛弃或者部分抛弃,那么这种模型很合适了。2、迷惑客户抢占市场,这是一个首选的模型。,10。快速应用开发RAD模型,快速应用开发(RAD)是一个增量型的软件开发过程模型,强调极短的开发周期。RAD模型是线性顺序模型的一个“高速”变种,通过使用构件的建造方法赢得了快速开发。RAD过程强调的是复用,复用已有的或开发可复用的构件。实际上RAD采用第四代技术。,软件生存周期模型,一.业务建模 业务功能信息流建模二.数据建模 形成一组支持该业务所需的数据对象,标识出每个对象的特征,并定义对象间的关系三.过程建模 创建过程描述以增加、修改、删除或检索一个数据对象。四.应用生成 使用自动化工具
12、辅助软件建造五.测试及反复 强调复用,对新的构件及其接口进行测试,RAD模型的阶段,RAD(快速应用开发)模型图,缺点:1、只能用于信息系统。2、对于较大的项目需要足够的人力资源去建造足够的RAD组。3、开发者和客户必须在很短的时间完成一系列的需求分析,任何一方配合不当都会导致RAD项目失败。4、这种模型对模块化要求比较高,如果有哪一功能不能被模块化,那么建造RAD所需要的构件就会有问题。5、技术风险很高的情况下不适合这种模型。优点:1、开发速度快,质量有保证。2、对信息系统特别有效。,11。增量模型,增量模型融合了线性顺序模型的基本成分(重复地应用)和原型实现的迭代特征。增量模型采用随着日程
13、时间的进展而交错的线性序列。每一个线性序列产生软件的一个可发布的“增量”。第一个增量往往是核心的产品。客户对每一个增量的使用和评估,都做为下一个增量发布的新特征和功能。,增量模型,过程渐进性:每次提交一个满足用户需求子集的增量构件;增量模型强调每一个增量均发布一个可操作的产品。能在短时间内向用户提交可使用的软件;软件系统的体系结构必须具有高度的开放性和可扩充性;在逐步增加产品功能的过程中有充裕的时间学习和适应新的功能。,增量模型的特点,12。螺旋模型,螺旋模型是一个演化软件过程模型。它将原型实现的迭代特征与线性顺序模型中控制的和系统化的方面结合起来。在螺旋模型中,软件开发是一系列的增量发布。在
14、每一个迭代中,被开发系统的更加完善的版本逐步产生。螺旋模型被划分为若干框架活动,也称为任务区域。,螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件。风险分析分析所选方案,考虑如何识别和消除风险。实施工程实施软件开发。客户评估评价开发工作,提出修正建议。,产品维护项目,产品增强项目,新产品开发项目,概念开发项目,风险分析,工程实施,用户通信,用户评估,计划,建造及发布,螺旋模型的特点,螺旋模型的每一个周期都应用了原型模型排除风险,在确定了原型之后,又启动生命周期模型继续过程的演化;软件开发的每个阶段都是一次迭代,每旋转一个
15、圈就前进一个层次,得到一个新的版本;强调可选方案和约束条件有利于软件重用;减少测试过多或不足带来的风险;维护看成是模型的另一个周期;需要开发人员有丰富的风险评估经验和相关专门知识。,13。基于构件的开发,基于构件的开发模型融合了螺旋模型的许多特征。它本质上是演化型,要求软件创建的迭代方法。利用预先包装好的软件构件(或称类)来构造应用的。它导致软件复用。,缺点:1、过分依赖于构件,构件库的质量影响着产品质量。优点:1、构件可复用。提高了开发效率。2、采用了面向对象的技术。,14。第四代技术,第四代技术包含了一系列的软件工具。能使软件工程师在较高的级别上规约软件的某些特征。软件工具根据开发者的规约
16、自动生成源代码。,第四代技术的特点,目前,一个支持4GT 范型的软件开发环境包含如下部分或所有工具:数据库查询的非过程语言,报告生成器,数据操纵,屏幕交互及定义,以及代码生成;高级图形功能;电子表格功能。,对于较小的应用软件,使用一个非过程的第四代语言(4GL)有可能直接从需求收集过渡到实现。但对于较大的应用软件,就有必要制订一个系统的设计策略,即使是使用4GL。对于较大项目,如果没有很好地设计,即使使用4GT 也会产生不用任何方法来开发软件所遇到的同样的问题(低的质量、差的可维护性、难以被用户接受)。,要将一个4GT 生成的功能变成最终产品,开发者还必须进行测试,写出有意义的文档,并完成其他
17、软件工程范型中同样要求的所有集成活动。此外,采用4GT 开发的软件还必须考虑维护是否能够迅速实现。,4GT 模型也有优点和缺点:支持者认为它极大地降低了软件的开发时间,并显著提高了建造软件的生产率。反对者则认为目前的4GT 工具并不比程序设计语言更容易使用,这类工具生成的结果源代码是“低效的”,并且使用4GT 开发的大型软件系统的可维护性是令人怀疑的。,企业的目的 根本目的:合法地赚取尽可能多的利润,使企业利益最大化。为了使企业利益最大化,软件产品(项目)应当“做得好、做得快并且少花钱”企业的迫切愿望寻求“提高产品质量、提高生产率并且降低成本”的解决方案,包括方法论和工具。,15。CMM 能力
18、成熟度模型(Capability Maturity Model),主要的软件过程域工程类的主要过程域:需求开发、系统设计、软件实现、软件测试、软件维护等等;管理类的主要过程域:项目规划、项目监控、需求管理、质量管理、配置管理等等。上述过程域中的任何活动都会影响产品的质量、生产率和成本。,CMM发展简史,CMM是什么 CMM(Capability Maturity Model)是用于衡量软件过程能力的事实上的标准,同时也是目前软件过程改进最好的参考标准。美国卡内基-梅隆大学软件工程研究所(SEI)研制.,发展简史 CMM 1.0于1991年制定。CMM 1.1于1993发布,该版本应用最广泛。C
19、MM 2.0草案于1997年制定(未广泛应用)。到2000年,CMM演化成为CMMI(Capability Maturity Model Integration),CMM 2.0成为CMMI 1.0的主要组成部分。CMMI-SE/SW 1.1(CMMI for System Engineering and Software Engineering)于2002年1月正式推出。,软件工程研究所(SEI)提出了个综合模型,定义了当一个组织达到不同的过程成熟度时应该具有的软件工程能力。为了确定一个组织目前的过程成熟度,SEI 使用了一个五级的评估方案,即能力成熟度模型CMM.该模型定义了在不同的过程成
20、熟度级别上所需要的关键活动.CMM重要概念5个成熟度等级:Initial,Repeatable,Defined,Managed,Optimizing18个关键过程域。关键过程域指出为了达到某个成熟度等级必须要解决的一族问题。,第一级:初始级,软件过程的特征是无序的,有时甚至是混乱的。几乎没有过程定义,成功完全取决于个人的能力。,第二级:可重复级,建立了基本的项目管理过程,能够追踪费用、进度和功能。有适当的必要的过程规范,使得可以重现以前类似项目的成功.,第三级:定义级,用于管理和工程活动的软件过程已经文档化、标准化,并与整个组织的软件过程相集成。所有项目都使用文档化的、组织认可的过程来开发和维
21、护软件。本级包含了第二级的所有特征。,第四级:管理级,软件过程和产品质量的详细度量数据被收集,通过这些度量数据,软件过程和产品能够被定量地理解和控制。本级包含了第三级的所有特征。,第五级:优化级,通过定量的反馈,进行不断的过程改进,这些反馈来自于过程或通过测试新的想法和技术而得到。本级包含了第四级的所有特征。,CMM等级评估,过程复杂 每一个CMM等级评估周期(从准备到完成)约需12-30个月。每一级别的评估由SEI授权的主任评估师领导一个评审小组进行,其成员大部分来自企业内部。评估过程包括员工 培训(企业的高层领导也要参加)、问卷填写和统计、文档审查、数据分析、与企业的高层领导 讨论和撰写评
22、估报告等。评估结束由主任评估师签字生效(没有盖上公章的证书),取得主任评估师的资格比较困难 10年以上的软件开发经验 在SEI接受培训,培训费用每人约需数万美元,非美国人加倍。经过两次以上CMM评估的全过程实习 主任评估师的资格并非终身制 评估费用昂贵:大约是ISO认证的十倍价格视客户需求的多少而定,可以与咨询公司协商。2002年参考价:CMM2级50万元RMB,CMM3级80万元RMB。,CMM 在中国,国内IT企业采用CMM的目的 提高企业的软件过程能力,但并不关心CMM评估。既要提高企业的软件过程能力,又想通过CMM评估来提升企业的威望与知名度。只是为了拿到CMM证书,共性问题:费用高、
23、难度大、见效慢 企业做一次比较完整的CMM 2-3级咨询和评估大约要花费60100万元。企业内部组建SEPG的成本并不比咨询费低。软件工程与项目管理工具比较昂贵(如Rational的产品)。目前国内通过CMM 2-3级评估的企业屈指可数,而这些企业的实际能力也没有宣传的那么好。因为参加CMM评估的项目都是精心准备的,个别项目或者事业部通过了CMM评估并不意味着整个企业达到了那个水平,这里面的水分相当大。,成熟度:大连新优势在质量认证方面,每年我市拿出资金支持软件企业进行 C MM评估,已有35家企业通过CMM各级评估,其中,10家企业通过CMM5级和CMMI5级评估,占全国总数的1/4。,国内
24、通过CMM等级评估的企业(2004年统计数据)到2004年3月,全国通过CMM2级以上评估的软件企业已超过100家,比2002年的50多家翻了一番,其中,通过CMM3级以上评估的已超过45家,通过CMM4、CMM5级评估的有9家。,CMM2:No.PassDateOrganizationLeading11999-7-6北京鼎新信息系统开发有限公司22000年9月份东软软件有限公司SoftTech32001-1-20联想电脑公司软件事业部英国路透、北京赛柏42001-4-1西安交大博通资讯股份有限公司海循序52001-6-1用友软件北京赛柏62001-10-30北京亿阳信通软件研究院有限公司So
25、ftTech72001年11月份浪潮集团北京浪潮国强软件有限公司82001-11-23浪潮集团通用软件有限公司北京赛柏92001-11-30北京北佳信息系统有限公司公司北京力友和102001-12-7东方通科技公司北京力友和112001-12-14中软网络技术股份有限公司SoftTech122001-12-14广州天河软件园新太科技有限公司SynchroCubed、力友和132001-12-14北大方正技术研究院北京赛柏142002-1-1金山软件股份公司北京赛柏152002-1-14珠海同望科技有限公司162002-3-1金蝶软件(中国)有限公司北京赛柏172002-3-14大连现代高技术发
26、展有限公司SoftTech182002-3-30亚信科技(中国)有限公司SoftTech192002-4-11普纳科技集团北京合力金桥系统集成公司英国路透集团,202002-4-12北京NTT数据系统集成有限公司北京赛柏212002-5-23清华同方股份有限公司软件基地北京赛柏222002-6-14中国航空结算中心SoftTech232002-6-27北京新晨科技股份有限公司SoftTech242002-7-5浪潮齐鲁软件股份有限责任公司JBMTechnologies、北京赛柏252002-8-6中国工商银行北京分行信息科技部SoftTech262002-9-2杭州信雅达系统工程股份公司Sof
27、tTech272002-9-13交大铭泰软件有限公司282002-10-2深圳市现代计算机有限公司英国路透集团292002-10-23中关村科技软件有限公司SoftTech302002-11-15长春鸿达高技术集团有限公司北京赛柏312002-11-22北京直真节点技术开发有限公司北京力友和322002-11-22方正澳德北京赛柏332002-11-26北京华嘉经纬管理软件开发有限公司342002-12-2中科软件股份有限公司北京赛柏352002-12-13北京天桥北大青鸟科技股份有限公司SoftTech362002-12-15许继电器集团北京力友和372002-12-20中讯软件集团股份有限
28、公司北京力友和382002-12-21中国工商银行数据中心(北京)SoftTech392002-12-26北京人大金仓信息技术有限公司胡延军先生402002-12-27北京华泰贝通网络科技有限公司BII412002-12-29中国航天软件评测中心422003年1月份神州数码(中国)有限公司432003年1月份软通动力Softstone442003-2-22北京泰利特科技发展有限公司SoftTech,CMM3:12001-6-26沈阳东大阿尔派软件股份有限公司SoftTech22001-12-13四川托普集团QAI32002-1-11联想软件英国路透集团、北京赛柏42002-6-21用友软件美国
29、PACT公司、北京赛柏52002-7-4北京华虹NEC集成电路设计有限公司日本KOMIYAM博士62002-12-1中科院软件所SoftTech72002-12-13中软网络技术股份有限公司SoftTech82002-12-13万达信息股份有限公司(上海首家波登先生92002-12-19金蝶软件(中国)有限公司北京赛柏102002-12-20西安交大博通资讯股份有限公司上海循序112003-1-5创智集团印度I-flex公司122003-1-16亿阳信通群立方成132003-1-23上海宝信软件有限公司的软件研究开发部循序咨询142003-3-6大连现代高技术发展有限公司SoftTech,CMM4:12001-12-10华为印度研究所22003-1-24华为北京研究所KPMG毕马威国际会计公司CMM5:12000-9-1摩托罗拉亚太区电信运营方案部应用研发中心22001-10-1摩托罗拉中国软件中心32002-12-31东软软件有限公司QAI2004年2月28日,大连华信计算机技术有限公司正式通过了CMM5级评估,标志大连华信在迈向国际化进程中取得了重要的突破.大连海辉科技股份有限公司顺利地通过C MM5级评估用友软件整体通过“CMM5级评估.大连现代”整体通过CMM5级评估 宝信软件 通过CMM5级评估,
链接地址:https://www.desk33.com/p-250502.html