论文部分内容阅读
目前软件组织在产品生产过程中普遍存在开发周期长,自动化程度低,质量难以控制,用户满意率差,生存期短,失败率高等问题。解决上述问题的根本出路在于提高软件组织的过程改进能力和过程管理能力。卡内基-梅隆大学软件工程研究所(SEI/CMU)提出的软件能力成熟度模型CMM(Capability Maturity Model)是软件组织开展软件工程管理的一套规范而严格的系统化管理模型,已成为国际公认的评价软件组织能力、帮助改善软件质量、提高软件过程改进能力的方法。但由于CMM只给出了进行软件过程改进的文档化说明,并没有给出具体的实施步骤,其模型和理论体系未能从实践的角度、以可操作的形式给软件组织提供改进其软件开发流程和项目管理方式的平台,而这方面的工作是实施软件过程管理的基础和前提条件 。本文系统地介绍了CMM的发展、总体框架、内部层次、过程可视性和评估方法,对与软件过程相关的国际、国内标准,即ISO9000系列、ISO/IEC软件生命周期过程和CMM能力成熟度模型进行了归纳、分析和比较,结合TQM(全面质量管理思想)、软件生命周期模型、CMM、及CMM的理论模型——IDEAL模型,提出了一个具有针对性和可操作性的软件过程改进模型——集成化过程改进模型,并详细讨论了该模型的内部结构和具体内容,以及集成化过程改进模型的理论模型——IPSDCA模型的设计。在对CMM体系的内容进行探讨和分析的基础上,本文根据CMM划分的5个成熟度等级、18个关键过程域涵盖的内容,将整个软件生命周期涉及的活动,按照性质重新整合,划分为19个过程域,分属项目管理、项目研发、 组织支持三类软件过程。借鉴Rational公司开发RUP核心工作流的思想,本文引入“线性+并行+迭代”的技术方法,在软件开发的早期,采用并行和迭代的手段实现需求分析、设计和系统测试的增量式开发,分别对软件技术开发过程域模型和软件技术管理过程域模型进行了设计,实现了在软件项目开发生命周期的全过程中对需求进行全程管理。在软件生命周期前五个项目研发过程域——需求开发、技术预研、系统设计、实现与测试、系统测试的末期都设有缓冲时间——技术评审,以在最高的效率和较好地对未来作出预计之间求得平衡,为软件组织能够应付意外的困难和影响时间进度的变故提供了一种解决方法。鉴于软件过程度量是贯穿整个软件过程的一个尺度,是控制软件产品质量和软件过程质量的必不可少的手段,作者对度量实施的途径和方法作了探讨,开发了基于问题驱动的度量过程模型,为整个软件开发过程提供了控制手段。在探讨了需求管理对软件开发活动以及提高软件过程能力方面的重要性之后,<WP=64>对集成化过程改进模型包含的19个过程域中的风险管理、立项管理、结项管理、需求开发、需求管理5个过程域进行了技术实现,开发出帮助软件组织建立和执行软件需求管理的工具——软件需求管理平台,它为需求分析阶段提供了定义良好的层次化结构,向软件组织提供项目需求分析阶段的软件支持环境,有助于组织对待开发产品的特性进行灵活的增加、删除与改进。文中还给出了平台系统的设计框架和具体实施要求,整个需求管理平台基于三层分布式结构进行开发,前台提供客户端的各种应用程序,中间层以组件的形式实现类和对象,后台数据库服务层分类存放涉及需求分析的组织信息、产品信息和外部支持信息(如将未被评审通过的多个需求变体放置在后台数据库层的定义过程库,已评审通过的需求基线放置在标准过程库),各层之间以邮件通信和消息驱动的方式支持项目相关人员的相互交流和并行开发,在文章的最后对全文进行总结,探讨了针对不同软件项目的开发过程,具体使用该软件需求管理平台时的一些注意事项,指出研究的不足之处和进一步研究的展望。 借助软件需求管理平台,软件组织能对需要的软件功能和约束进行提取、组织和文档化,有助于项目相关人员清晰地理解待开发软件产品所要解决的问题的定义和范围,在迭代的需求分析过程、需求管理过程、需求变更控制过程等方面,平台针对所有的关键开发活动提供了必要的规程、模板和工具指导,并以交互通信的方式确保全体成员共享软件组织的经验知识,需求分析人员能较容易地规定出产品特性的细节和技术上的相关性,以及对某个需求特性进行更集中的讨论,从而提前发现必须解决的问题以及有关待开发产品需要变更的一些功能,从而在软件开发过程中实现需求管理和软件开发后续活动的同步控制。 CMM已经成为继ISO9001之后软件组织普遍关注的焦点,文中叙述的软件需求管理平台实现了基于CMM的集成化过程改进模型的19个过程域中的5个过程域的内容,但还没有实现该模型的全部内容,因此,软件需求管理平台目前还不能支持多项目的开发,这在一定程度上降低了在软件组织内部大范围交互式共享组织经验知识的可能性,这些都是下一阶段研究工作的重点。