论文部分内容阅读
随着软件产业的迅速发展,软件复杂性越来越高,用户需求的不断改变给软件开发带来很大的工作量。良好的软件开发方法可以提高软件的开发效率和开发质量,使生产出的软件产品具有更高的重用性和可维护性,从而降低软件的整体成本。面向对象开发方法(OOSD)提高了软件的可扩展性和可维护性,它利用设计模式、开发框架和预留接口等对已有系统进行代码重用、功能扩展和性能改善,但是OOSD在软件完善性维护中要么对原有程序结构或者代码进行修改,要么新增代码和原有代码耦合性很强,从而降低软件的模块化程度和可理解性,增加软件后期的维护工作量。面向方面编程(AOP)的出现,解决了OOSD在系统性能改善和非功能性需求处理时出现的代码交织和散乱,它将这些涉众关注点分离并用方面封装,提高了软件的灵活性和扩展性,减小了软件扩展的工作量。AOP还促使了面向方面软件开发方法(AOSD)的形成,能够在软件生命周期的各个阶段进行涉众关注点的分离和合成,但是目前面向方面建模都是对非功能性涉众关注点进行建模,没有对系统功能扩展的非核心业务功能建模。针对以上问题,本文结合AOP思想和AOSD技术,对系统扩展的非核心业务功能关注点与系统核心功能关注点运用用例建模技术进行分离,提出了表示系统功能扩展部分的用例加强概念,并给出了其模型表示方法;利用用例切片技术对分离出的非核心业务功能关注点进行分析设计,提出了切面的模型表示,并用AOP进行实现,这样可以按照软件工程的方法对系统进行无损扩展,不用修改系统源码,保证了系统的完整性,并有效降低非核心业务功能关注点与原各模块间的耦合度。结合开源建模工具ArgoUML对其实现简单的功能扩展,减少系统的重复代码,这充分验证了面向方面建模方法的可行性和实用性。应用上述研究成果,对建模工具ArgoUML的功能进行分析和扩展,提取出建模工具中信息的管理功能作为系统的非核心业务功能扩展,包括需求管理、设计管理和模型元素管理,使得开发人员在建模的同时可以对软件过程中所涉及的一些相关信息如版本、作者等进行管理;用纯XML数据库对扩展信息保存,用DOM4J读写XML数据库文档,有利于与建模工具的模型元素信息的转换和统一处理。结果表明采用基于AOSD的方法对已有系统进行非核心业务功能的扩展,效率高,工作量小,可理解性强,对原系统的影响微乎其微,是一种软件维护行之有效的新方法。