论文部分内容阅读
随着科技的发展,计算机早已普及到社会的各个角落,软件项目也由最初的高科技定位走向了大众的视野。各行各业几乎都离不开软件产品,大到大规模企业的运转,小到每个人的日常生活都与软件产品息息相关。现代人们不仅仅关心软件能够做哪些事情,更加关心软件的质量及其稳定性,保证质量的关键首先在于需求的准确获取以及当需求发生变更时的应对方法。几乎所有项目都无法摆脱需求变更所带来的影响,需求变更可以影响到软件项目的各个阶段,包括设计、编码、测试等,越到项目后期的变更所花费的成本就越高。在一个软件项目中,需求是最先被提及的部分,需求的提取至关重要,这关系到软件的质量、成本。同时需求变更无时无刻不在影响着软件项目,需求变更是指由于内外在因素导致原本的需求发生了变化,在软件开发过程中如果不能及时地处理这些变化将会导致软件项目的成本提高、质量下降,最终可能直接导致项目的失败。变更本身并不可怕,如何处理好变更关系着软件项目的成败。因此,研究面向问题的应对需求变更的方法具有一定理论和实际意义。问题框架最初是由英国软件工程学者Michael A.Jackson提出的,其核心理论可以用K,S|-R表示,其中K指软件所处的上下文环境,包括硬件设备、人等;S指软件的规格说明;R指用户提出的需求;符号(|-)表示满足关系。这种方法从面向问题的角度出发,通过构造问题图、上下文图来描述问题,更贴近现实世界也更加有利于项目利益相关者理解并参与讨论与需求相关的问题。本文研究的目的在于将问题框架的思想应用于需求变更的应对方法中,并研发一套需求变更管理工具以应用于实际项目中,将理论与实际相结合。本文研究的方法是以问题框架K,S|-R为理论基础,研究当K(上下文环境)、S(规格说明)、R(用户需求)其中任意两项发生变化时,另一项如何变化才能继续保证满足(|-)关系的成立。本文引入了变更和任务清单的概念,变更包含了 K、S、R的变化,任务清单依附于问题图中的需求、领域,是其属性之一,将需求变更细化并分解,记录变更引起的每个部分的详细变更情况。通过需求之间共享的领域来定量计算需求变更的复杂度并给出其公式及实现的算法。根据如上理论本文研发一套可以应用于实际项目的需求变更管理工具,工具在问题框架的基础上提供用户录入需求的功能并最终根据录入情况转换为问题图反馈给用户。利用问题图中的共享领域来计算需求变更的复杂程度。在现实项目中针对同一个需求可能会产生多次变更,这可能会导致需求本身产生矛盾。工具可以记录每次变更的内容并生成针对一条需求的状态变换追踪链,通过需求的状态转换以及变更的任务清单记录每次需求变更的关键点,从而找出导致冲突的变更所处的位置。最后本文通过两个案例验证工具的可用性,一种情况为需求自身较复杂但需求之间关联程度低,另一种情况刚好相反,每个需求自身复杂度不高但与其他需求之间关联程度较高。将工具应用于如上两种情况的案例中得出的结果与实际项目结束后得到的结果对比,得到基本一致的结果,展示了工具的可用性。本文从问题框架理论研究入手,将理论结合到需求变更的实际中并进行研究分析,通过创建任务清单记录分析变更内容。利用需求的可追踪性实现需求状态转化追踪链。通过分析问题图中的共享领域量化计算出需求变更复杂度,为问题框架理论与实际应用相结合做出了一定贡献。