论文部分内容阅读
需求获取过程处于软件开发的前端,贯穿软件开发项目的始终。需求获取直接决定项目的成败。通过对目前需求获取过程的分析与归纳,和对现有需求获取方法和需求优先级排序方法中优缺点的研究,提出了一些新的思想和算法,并进行了相应的实例验证。本文主要做了以下几个方面的研究:⑴提出了基于需求模式匹配的需求获取算法。针对软件开发过程中对获取的需求往往缺乏完整性和可复用性的问题,提出了基于需求模式匹配的需求获取算法。从典型的需求模式中匹配出恰当的需求模式,来指导用户获取需求,并定性给出判断需求获取是否完成描述的参考标准,以进一步提高需求获取的完整性和可复用性。⑵提出了基于解释结构模型的最高需求优先级设定算法。针对现有的需求优先级排序过程中,经常忽视需求相关性的问题,提出了使用解释结构模型对需求进行层次化的处理,使之显示出需求的相关性。首先通过模型的精化来解决功能结构有向图中不能存在回路的问题,然后使用解释结构模型获得多级递阶有向图,接下来进行区域间集合运算,最后得到需求最高优先级集合。⑶提出了结构化层次分析的需求优先级排序方法。针对基于解释结构模型设定最高需求优先级算法中,缺乏对层次化模型顶层的所有需求进行优先级设定的问题,提出了将反应系统层次性的解释结构模型的建模思想与具有精确计算的层次分析法相结合,在保持需求相关性前提下对所有需求优先级排序的方法,并将该方法命名为结构化层次分析法,案例分析的结果表明性能总体上优于层次分析法和分级法,该方法能够有效提高需求优先级设定的合理性。⑷提出了风险驱动的需求组合方案优化决策算法。针对当前软件开发过程中,需求获取通常不完整、容易发生变更和风险因素经常被忽略的问题,提出了首先以解释结构模型分析得到的层次化需求集为基础,然后使用0-1背包问题的回溯求解算法,将成本作为约束条件,选择能够创造更大价值的需求,生成多个可行的需求组合方案,接下来考虑价值、成本以及风险因素,使用Wiegers方法和层次分析法来设定不同需求组合方案的优先级,来完成对若干个候选的需求组合方案的决策,最后得出将要迭代实现的一个需求组合方案,并为下一次迭代做准备,直至实现所有的需求。本文结合项目实例,对上述研究的内容进行了案例分析,研究结果表明,提高了需求的获取效率、完整性和可复用性,使设定的需求优先级排序更加合理,有利于项目涉众之间冲突的解决,较大提高了项目的成功率。