版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
总结:传统软件工程与软件过程
的基本概念任何工程方法(包括软件工程)必须以有组织的质量保证为基础.全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现.支持软件工程的根基就在于对质量的关注.建造计算机软件是一个迭代学习的过程。1软件工程与软件过程的关系软件过程是为开发高质量软件所需要完成的任务的框架.软件工程是有创造力,有知识的人在定义好的,成熟的软件过程框架中进行的.该过程适合于他们建造的产品和他们的市场需要。一个软件过程定义了软件开发中采用的方法,而软件工程还包含该过程中应用的技术----技术方法和自动工具。2工具方法过程质量焦点Softwareengineeringlayers31。过程、方法和工具软件工程是一种层次化的技术(图2.1)。支持软件工程的根基就在于对质量的关注。软件工程的基础是过程层。软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够合理和及时地开发。过程定义了一组关键过程区域的框架。4软件工程方法为软件开发提供了“如何做”的技术软件工具为软件工程方法提供了自动的或半自动的软件支撑环境52软件的一般视图
工程是对技术(或社会)实体的分析、设计、建造、验证和管理。与软件工程相关的工作可分为三个一般的阶段:(1)定义阶段:集中于“做什么”;三个主要任务:系统工程、项目计划、需求分析(2)开发阶段:集中于“如何做”;三个特定任务:设计、编码、测试(3)支持阶段:关注于“变化”四类可能遇到的变化:纠错、适应、增强、预防63。软件过程可分为三大类基本过程类:是构成软件生存周期主要部分的那些过程,包括获取,供应,开发,操作,维护等过程.支持过程类:可穿插到基本过程中提供支持的一系列过程,包括文档开发,配置管理,质量保证,验证,确认,联合评审,审计,问题解决等过程.组织过程类:一个组织用来建立,实施一种基础结构,并不断改进该基础结构的过程,包括管理,基础,改进,培训等过程.74。软件工程过程
软件工程过程(SoftwareEngineeringProcess)是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。8软件工程过程通常包含四种基本的过程活动
P(Plan)软件规格说明:
规定软件的功能及其运行的限制;
D(Do)软件开发:
产生满足规格说明的软件
C(Check)软件确认:
确认软件能够完成客户提出的要求
A(Action)软件演进:
为满足客户的变更要求,软件必须在使用的过程中演进95。软件过程模型所有软件开发都可被刻画为一个问题解决环,其中包括四个不同的阶段:状态描述、问题定义、技术开发和解决集成。软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期。软件生存期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护。10制定计划确定要开发软件系统的总目标给出功能、性能、可靠性以及接口等方面的要求完成该软件任务的可行性研究估计可利用的资源(计算机硬件,软件,人力等)、成本、效益、开发进度制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查11需求分析和定义对待开发软件提出的需求进行分析并给出详细的定义编写软件需求说明书或系统功能说明书及初步的系统用户手册提交管理机构评审12软件设计概要设计—把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应详细设计—对每个模块要完成的工作进行具体的描述,为源程序编写打下基础编写设计说明书,提交评审。13程序编写把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”写出的程序应当是结构良好、清晰易读的,且与设计相一致的14软件测试单元测试,查找各模块在功能和结构上存在的问题并加以纠正组装测试,将已测试过的模块按一定顺序组装起来按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用15运行/维护改正性维护运行中发现了软件中的错误需要修正适应性维护为了适应变化了的软件工作环境,需做适当变更完善性维护为了增强软件的功能需做变更16软件生存期模型(也称软件开发模型、软件过程模型、软件工程范型)是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。简单地说,是软件产品或软件系统从设计、投入使用到被淘汰的全过程。所谓模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范型,使工程的进展达到预期的目的。6。软件生存周期模型177。编码修复模型编码修复模型是所有模型中最古老也是最简单的模型。编码测试交付18编码修复模型的特点它几乎不执行任何预先的计划,该模型的使用者很快就进入了所开发产品的编码阶段。典型的情况是,完成大量的编码,然后测试产品并且纠正所发现的错误。编码和测试工作一直持续到产品开发工作全部完成并将产品交付给客户。19缺点:缺乏预先的计划和不正规的开发;软件产品的质量低于用其他模型实现的产品质量;产品的设计没有认真计划及文档化,代码很难维护。优点:简单快捷,适合于很小且很简单的项目。208。线性顺序模型线性模型也称为传统生存周期或瀑布模型。传统生存模型是软件工程中应用最广泛的过程模型,在软件工程中占有肯定和重要的位置。它提供了一个模板,使得分析、设计、编码、测试和支持的方法可以在该模板的指导下应用。2122阶段间的顺序性和依赖性;文档驱动性;严格阶段评估;开发初期需要清楚全部需求;开发周期长、风险大。线性顺序模型特点23优点:
1、它提供了一个摸板,这个摸板使得分析、设计、编码、测试和支持的方法可以在该摸板下有一个共同的指导。
2、虽然有不少缺陷但比在软件开发中随意的状态要好得多。
249。原型实现模型由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次:第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求。第二次则在此基础上获得较为满意的软件产品。25从需求收集开始,开发者和客户在一起定义软件的总体目标,标识已知的需求并且规划出需要进一步定义的区域。然后是“快速设计”,它集中于软件中那些对客户可见的部分的表示,这将导致原型的创建。由客户评估并进一步精化待开发软件的需求。逐步调整原型使其满足客户的需求,这个过程是迭代的。26建造/修改原型用户测试运行原型
听取用户意见27原型模型图快速设计需求的采集和细化建造原型客户评价原型对原型加工产生样品开始停止28原型可以作为标识软件需求的一种机制;原型作为第一个系统,常常是抛弃的;开发过程的交互性和迭代性;充分发挥用户在软件开发初期的作用;开发周期较短、成本较低、风险较小。原型实现模型的特点29缺点:
1、没有考虑软件的整体质量和长期的可维护性。
2、大部分情况是不合适的操作算法被采用目的为了演示功能,不合适的开发工具被采用仅仅为了它的方便,还有不合适的操作系统被选择等等。
3、由于达不到质量要求产品可能被抛弃,而采用新的模型重新设计。优点:
1、如果客户和开发者达成一致协议:原型被建造仅为了定义需求,之后就被抛弃或者部分抛弃,那么这种模型很合适了。
2、迷惑客户抢占市场,这是一个首选的模型。
3010。快速应用开发RAD模型快速应用开发(RAD)是一个增量型的软件开发过程模型,强调极短的开发周期。RAD模型是线性顺序模型的一个“高速”变种,通过使用构件的建造方法赢得了快速开发。RAD过程强调的是复用,复用已有的或开发可复用的构件。实际上RAD采用第四代技术。31软件生存周期模型一.业务建模业务功能信息流建模二.数据建模形成一组支持该业务所需的数据对象,标识出每个对象的特征,并定义对象间的关系三.过程建模创建过程描述以增加、修改、删除或检索一个数据对象。四.应用生成使用自动化工具辅助软件建造五.测试及反复强调复用,对新的构件及其接口进行测试RAD模型的阶段32业务建模60-90天过程建模测试及反复数据建模应用生成过程建模测试及反复数据建模应用生成业务建模业务建模数据建模过程建模应用生成测试及反复小组2小组1小组3RAD(快速应用开发)模型图33缺点:
1、只能用于信息系统。
2、对于较大的项目需要足够的人力资源去建造足够的RAD组。
3、开发者和客户必须在很短的时间完成一系列的需求分析,任何一方配合不当都会导致RAD项目失败。
4、这种模型对模块化要求比较高,如果有哪一功能不能被模块化,那么建造RAD所需要的构件就会有问题。
5、技术风险很高的情况下不适合这种模型。优点:
1、开发速度快,质量有保证。
2、对信息系统特别有效。
3411。增量模型增量模型融合了线性顺序模型的基本成分(重复地应用)和原型实现的迭代特征。增量模型采用随着日程时间的进展而交错的线性序列。每一个线性序列产生软件的一个可发布的“增量”。第一个增量往往是核心的产品。客户对每一个增量的使用和评估,都做为下一个增量发布的新特征和功能。35增量模型分析设计编码测试分析设计编码测试分析设计编码测试分析设计编码测试增量1增量2增量3增量n
增量1交付客户
增量2交付客户
增量3交付客户
增量n交付客户日历时间…..36过程渐进性:每次提交一个满足用户需求子集的增量构件;增量模型强调每一个增量均发布一个可操作的产品。能在短时间内向用户提交可使用的软件;软件系统的体系结构必须具有高度的开放性和可扩充性;在逐步增加产品功能的过程中有充裕的时间学习和适应新的功能。增量模型的特点3712。螺旋模型螺旋模型是一个演化软件过程模型。它将原型实现的迭代特征与线性顺序模型中控制的和系统化的方面结合起来。在螺旋模型中,软件开发是一系列的增量发布。在每一个迭代中,被开发系统的更加完善的版本逐步产生。螺旋模型被划分为若干框架活动,也称为任务区域。38螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:制定计划──确定软件目标,选定实施方案,弄清项目开发的限制条件。风险分析──分析所选方案,考虑如何识别和消除风险。实施工程──实施软件开发。客户评估──评价开发工作,提出修正建议。39产品维护项目产品增强项目新产品开发项目概念开发项目风险分析工程实施用户通信用户评估计划建造及发布4041螺旋模型的特点螺旋模型的每一个周期都应用了原型模型排除风险,在确定了原型之后,又启动生命周期模型继续过程的演化;软件开发的每个阶段都是一次迭代,每旋转一个圈就前进一个层次,得到一个新的版本;强调可选方案和约束条件有利于软件重用;减少测试过多或不足带来的风险;维护看成是模型的另一个周期;需要开发人员有丰富的风险评估经验和相关专门知识。4213。基于构件的开发基于构件的开发模型融合了螺旋模型的许多特征。它本质上是演化型,要求软件创建的迭代方法。利用预先包装好的软件构件(或称类)来构造应用的。它导致软件复用。4344缺点:
1、过分依赖于构件,构件库的质量影响着产品质量。
优点:
1、构件可复用。提高了开发效率。
2、采用了面向对象的技术。
4514。第四代技术第四代技术包含了一系列的软件工具。能使软件工程师在较高的级别上规约软件的某些特征。软件工具根据开发者的规约自动生成源代码。46第四代技术的特点目前,一个支持4GT范型的软件开发环境包含如下部分或所有工具:数据库查询的非过程语言,报告生成器,数据操纵,屏幕交互及定义,以及代码生成;高级图形功能;电子表格功能。47对于较小的应用软件,使用一个非过程的第四代语言(4GL)有可能直接从需求收集过渡到实现。但对于较大的应用软件,就有必要制订一个系统的设计策略,即使是使用4GL。对于较大项目,如果没有很好地设计,即使使用4GT也会产生不用任何方法来开发软件所遇到的同样的问题(低的质量、差的可维护性、难以被用户接受)。48要将一个4GT生成的功能变成最终产品,开发者还必须进行测试,写出有意义的文档,并完成其他软件工程范型中同样要求的所有集成活动。此外,采用4GT开发的软件还必须考虑维护是否能够迅速实现。494GT模型也有优点和缺点:支持者认为它极大地降低了软件的开发时间,并显著提高了建造软件的生产率。反对者则认为目前的4GT工具并不比程序设计语言更容易使用,这类工具生成的结果源代码是“低效的”,并且使用4GT开发的大型软件系统的可维护性是令人怀疑的。50企业的目的根本目的:合法地赚取尽可能多的利润,使企业利益最大化。为了使企业利益最大化,软件产品(项目)应当“做得好、做得快并且少花钱”企业的迫切愿望寻求“提高产品质量、提高生产率并且降低成本”的解决方案,包括方法论和工具。15。CMM能力成熟度模型
(CapabilityMaturityModel)
51人员方法与规程技术与工具过程产品52主要的软件过程域工程类的主要过程域:需求开发、系统设计、软件实现、软件测试、软件维护等等;管理类的主要过程域:项目规划、项目监控、需求管理、质量管理、配置管理等等。上述过程域中的任何活动都会影响产品的质量、生产率和成本。53CMM发展简史CMM是什么CMM(CapabilityMaturityModel)是用于衡量软件过程能力的事实上的标准,同时也是目前软件过程改进最好的参考标准。美国卡内基-梅隆大学软件工程研究所(SEI)研制.54发展简史CMM1.0于1991年制定。CMM1.1于1993发布,该版本应用最广泛。CMM2.0草案于1997年制定(未广泛应用)。到2000年,CMM演化成为CMMI(CapabilityMaturityModelIntegration),CMM2.0成为CMMI1.0的主要组成部分。CMMI-SE/SW1.1(CMMIforSystemEngineeringandSoftwareEngineering)于2002年1月正式推出。55软件工程研究所(SEI)提出了—个综合模型,定义了当一个组织达到不同的过程成熟度时应该具有的软件工程能力。为了确定一个组织目前的过程成熟度,SEI使用了一个五级的评估方案,即能力成熟度模型CMM.该模型定义了在不同的过程成熟度级别上所需要的关键活动.CMM重要概念5个成熟度等级:Initial,Repeatable,Defined,Managed,Optimizing18个关键过程域。关键过程域指出为了达到某个成熟度等级必须要解决的一族问题。56第一级:初始级—软件过程的特征是无序的,有时甚至是混乱的。几乎没有过程定义,成功完全取决于个人的能力。57第二级:可重复级建立了基本的项目管理过程,能够追踪费用、进度和功能。有适当的必要的过程规范,使得可以重现以前类似项目的成功.58第三级:定义级用于管理和工程活动的软件过程已经文档化、标准化,并与整个组织的软件过程相集成。所有项目都使用文档化的、组织认可的过程来开发和维护软件。本级包含了第二级的所有特征。59第四级:管理级软件过程和产品质量的详细度量数据被收集,通过这些度量数据,软件过程和产品能够被定量地理解和控制。本级包含了第三级的所有特征。60第五级:优化级通过定量的反馈,进行不断的过程改进,这些反馈来自于过程或通过测试新的想法和技术而得到。本级包含了第四级的所有特征。61CMM等级评估过程复杂每一个CMM等级评估周期(从准备到完成)约需12-30个月。每一级别的评估由SEI授权的主任评估师领导一个评审小组进行,其成员大部分来自企业内部。评估过程包括员工培训(企业的高层领导也要参加)、问卷填写和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等。评估结束由主任评估师签字生效(没有盖上公章的证书)62取得主任评估师的资格比较困难10年以上的软件开发经验在SEI接受培训,培训费用每人约需数万美元,非美国人加倍。经过两次以上CMM评估的全过程实习主任评估师的资格并非终身制评估费用昂贵:大约是ISO认证的十倍价格视客户需求的多少而定,可以与咨询公司协商。2002年参考价:CMM2级50万元RMB,CMM3级80万元RMB。63CMM在中国国内IT企业采用CMM的目的提高企业的软件过程能力,但并不关心CMM评估。既要提高企业的软件过程能力,又想通过CMM评估来提升企业的威望与知名度。只是为了拿到CMM证书
64共性问题:费用高、难度大、见效慢企业做一次比较完整的CMM2-3级咨询和评估大约要花费60~100万元。企业内部组建SEPG的成本并不比咨询费低。软件工程与项目管理工具比较昂贵(如Rational的产品)。目前国内通过CMM2-3级评估的企业屈指可数,而这些企业的实际能力也没有宣传的那么好。因为参加CMM评估的项目都是精心准备的,个别项目或者事业部通过了CMM评估并不意味着整个企业达到了那个水平,这里面的水分相当大。65成熟度:大连新优势在质量认证方面,每年我市拿出资金支持软件企业进行CMM评估,已有35家企业通过CMM各级评估,其中,10家企业通过CMM5级和CMMI5级评估,占全国总数的1/4。
66国内通过CMM等级评估的企业(2004年统计数据)到2004年3月,全国通过CMM2级以上评估的软件企业已超过100家,比2002年的50多家翻了一番,其中,通过CMM3级以上评估的已超过45家,通过CMM4、CMM5级评估的有9家。67CMM2:
No.
PassDate
Organization
Leading
1
1999-7-6北京鼎新信息系统开发有限公司
2
2000年9月份东软软件有限公司SoftTech
3
2001-1-20联想电脑公司软件事业部英国路透、北京赛柏
4
2001-4-1西安交大博通资讯股份有限公司海循序
5
2001-6-1用友软件北京赛柏
6
2001-10-30北京亿阳信通软件研究院有限公司SoftTech
7
2001年11月份浪潮集团北京浪潮国强软件有限公司
8
2001-11-23浪潮集团通用软件有限公司北京赛柏
9
2001-11-30北京北佳信息系统有限公司公司北京力友和
10
2001-12-7东方通科技公司北京力友和
11
2001-12-14中软网络技术股份有限公司SoftTech
12
2001-12-14广州天
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- IP 进阶试题与正确答案公布
- 2026年昆明市富民县妇女联合会招聘公益性岗位人员的(1人)笔试模拟试题及答案详解
- 2026年吴起县事业单位人员招聘笔试模拟试题及答案解析
- 2026河北节水有限公司公开招聘工作人员9名笔试参考题库及答案详解
- 2026年青田县网格员招聘考试备考试题及答案解析
- 2026年孝感应城市事业单位“三支一扶”高校毕业生专项招聘16人考试备考试题及答案详解
- 2026武汉音乐学院计划财务与国有资产管理处非事业编人员招聘1人笔试备考试题及答案详解
- 2026惠来县公安局公开招聘警务辅助人员60人考试备考题库及答案详解
- 2025-2026年陕西省人教版高一语文下册第9章综合测试卷
- 2026年四川省部编版高二英语必修一第三章听力专项训练
- 美驰电驱卡车桥专利结构解析-2023-05-技术资料
- 新人教版小学数学六年级上册单元测试卷(全册)
- 《Baby》Justin-Bieber版歌词完整版打印下载打印
- 10kV~500kV输变电及配电工程质量验收与评定标准:01输电线路工程
- 城市轨道交通车站设备(高职)PPT完整全套教学课件
- 润滑油基础油的加氢法生产工艺课件
- 实验六-兔子的解剖-课件
- 饲料和饲料添加剂生产企业从业人员法规考核试题
- 烘干设备购销合同
- 某年中石油俄语水平考试试题
- 架桥机安装拆除监理细则
评论
0/150
提交评论