需求工程无疑是当前软件工程中的关键问题,但又是软件工程中最复杂的过程之一。完整的软件需求工程过程包括需求开发和需求管理两个部分,需求开发的一般过程分为需求获取、需求分析、编写需求规格说明书(SRS)、需求验证四个阶段,需求管理则主要包括需求基线的建立、需求变更控制以及需求跟踪等活动。需求获取是通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求 ;需求分析是为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述;由需求模型构件生成精确的形式化的描述,即需求规格说明书,它将作为用户和开发者之间的一致协议;需求分析的结果应该通过评审、测试等手段验证它的正确性、完整性和一致性,这就是需求验证。贯穿于整个过程中,需求管理中最基本的任务则是明确需求,并使所有相关人员达成共识 ;建立需求跟踪能力联系链,确保所有用户需求被正确地应用,并且在需求发生变更时,能够完全地控制其影响范围,始终保持产品与需求的一致性。
需求工程需要各类人员的参与,如领域专家、最终用户、系统投资人、需求分析员、系统开发人员等等,以不同的着眼点和不同的知识背景,获得对软件需求的全面理解。需求工程最大的难度就体现在全方位需求的获取以及非功能性需求与功能性需求的错综复杂的联系上,当前对非功能性需求分析建模技术的缺乏大大增加了需求工程的复杂性,而非功能性需求往往又决定了对软件产品的质量要求。因此,非功能性需求和质量特性的分析模型有待深层次的研究。
CMM3
软件产品工程体现TQM的过程控制 从CMM三级开始,软件生命周期的各个阶段被严格地划分出来,其目的是保持软件工程活动和软件工作产品的一致性。目前还有很多软件企业的软件开发工作仅限于编码,软件工程方法学中的各种方法和技术得不到真正的应用,因此单纯的软件工程技术并不能有效的解决“软件危机”,改善软件产品的质量;而单纯的测试也只是一种事后检测的方法。只有通过软件过程管理,将需求、设计过程从编码中分离出来,才能对软件质量进行产品生命周期全过程、全方位的控制。
TQM的核心就在于防患于未然,做到事先控制,确信“下一道工序就是用户”,层层把好质量关,决不让不合格的半成品流入下道工序,一切为下道工序着想。软件开发生命周期一般分为需求分析、概要设计、详细设计、编码、单元测试、集成测试、确认测试、系统测试几个阶段,常用的生命周期模型有瀑布模型、V模型、增量模型、演化模型和螺旋模型,实际的软件过程往往是几种模型的结合。其中,V模型的运用越来越广泛,它强调了各个测试阶段与开发前期各阶段的对应,更明确表示了个各种工作产品间的关系,也易于用户在软件开发中的参与和评价(见图2)。
图2 V模型
文章来源于领测软件测试网 https://www.ltesting.net/