欢迎来到天天文库
浏览记录
ID:36565131
大小:2.85 MB
页数:65页
时间:2019-05-12
《关于需求工程的探讨和应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、摘要根据StandishGroup和ESPITI等的调查研究,软件的失败大部分是由于需求错误引起的。另外,对GTE,TRM和工BM公司的研究及其他一些调查表明,需求错误可能是修改花费最昂贵的错误。因此,要成功开发低成本的软件,必须有良好的需求工程保障。需求工程在国外的研究已经达到了一定水平,而在国内却正处于引进和探讨阶段,理论和实践都不成熟。本论文则参照已有的一些理论对需求工程进行探讨和实践。从内容上看,论文分为两个方面的阐述:需求工程的静态性和动态性。其中的静态性指的是需求工程的方法和技术,这部分重在研究需求本身,而轻于需求与整个软件过程的作用;动态性则指的是需求工
2、程在整个软件生命周期如何作用。从结构上看,论文大致分为理论部分和实践部分,都是围绕需求工程的两方面内容来阐述的。需求工程包括需求开发和需求管理。需求开发是整个需求工程的中心,可进一步分为:需求获取、需求分析、编写规格说明和验证四个阶段。需求管理是一种与需求开发过程并行的需求工程活动,主要活动可分为:需求变更控制、需求版本控制、摇求跟踪以及需求状态跟踪。需求开发的结果经过项目涉众的共同评审,就成为软件开发的需求基线。需求基线指在客户和开发人员之间达成的对计划产品功能需求和非功能需求的一个约定,是需求开发和需求管理之间的桥梁。需求不是一经确定便不再修改,而是在整个软件生命
3、周期中不断变更和发挥作用。这说明了需求工程不是一个独立的工程,而是存在于软件生命周期中的动态工程。这是本文讨论的重点。在一些主要的软件生命周期模型中,螺旋模型的优点最为突出。螺旋模型通过不断迭代四个阶段:制定计划、风险分析、实施工程和客户评估,实现系统的增量式迭代开发。它综合了其他一些开发模型的优点,并增加了一个重要步骤一一风险分析。它是大型系统软件开发的最现实的方法。迭代递增的过程是建立在探旋模型墓础上的,它可以在生命周期的早期及时地发现一些严重的需求理解错误,允许并鼓励用户反谈信息,尽早发现需求、设计和实现的不一致。鉴于这些优点,本文认为应该将它应用于软件工程以及
4、需求工程中。目前采用迭代思想的软件过程方法主要有:Rational统一过程(RUP)和极限编程(XP)。本文将探讨这两者中的需求工程如何作用。RUP认为所有的阶段(需求及其它)都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。RUP构架是一个二维结构。其中,水平轴代表过程被激活时动态的一面,通过周期、阶段、迭代和里程碑来表示;垂直轴代表过程静态的一面,通过过程组件、活动、工作流、工件和工作人员描述过程。从这个结构上看,RUP实际上把需求工程的内容细分成了几个部分。需求分析细分为业务工作流和需求工作流;需求管理被包括在项目管理和配置
5、管理中。业务建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。业务建模的目的可以简要概括成:获取用户的组织和业务,并进行改进,得出符合用户真正需要的业务。需求工作流描述了如何定义系统构想并将这个构想转化成用例模型,这个用例模型和补充的规格说明定义了详细的系统软件需求。此外,需求工作流还描述了如何使用需求来帮助你管理系统范围和需求的变更。需求工作流的目的可以简要概括成:将用户的业务转化为目标系统所处理的业务。从RUP的结构图我们也可以看出业务建模和需求分析主要集中先启阶段,其次是在细化阶段。XP是为了
6、解决需求的不断变化而提出的快速实现系统的一种方法。它的思想是在螺旋式的快速迭代中不断发布小型版本,直至实现全部功能。其思想基础是缩短迭代周期可以使需求相对稳定。它的理想生命周期是:探察,计划,初始发布迭代,产品化,维护,消亡。它的发布和迭代都具有三个阶段:探察,提交和指导。每次发布的探察阶段是XP项目中必须通过的一个特殊的阶段,该阶段决定项目是否继续。它包括四个基本活动:编码、测试、聆听与设计。它通过4个核心价值和12个最佳实践来支持快速开发,弱化需求的变更影响。通过对RUP和XP的比较发现以下一些差别。第一,XP中没有对需求工程的准确定义和详细说明,它适合规模小、进
7、度紧、需求变化大、质量要求严的项目;而RUP则对孺求和需求工程做了明确的定义,并详细地说明了业务工作流和业务工作流。第二,XP认为对系统需求的前期调查必须极短时间内完成,而RUP认为这个阶段必须有充分的时间。第三,RUP中的业务建模不属与XP的范围。第四,XP对箱求定义和设计捕获是经过简化的,只适用于部分系统;而RUP在需求中定义的工件可以有效地帮助我们处理多变的、复杂的系统。第五,XP中没有的关健荃础设施和管理要件;而RUP含有良好的管理以及配I工作流。第六,XP是一种思想,为开发人员自己拥有。而RUP不但是一种方法,还是一个完整的产品,有一系列的
此文档下载收益归作者所有