用户名: 密码: 验证码:
非面向对象系统中对象抽取方法的研究与实现
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
传统的面向过程的程序设计方法设计出来的软件模块独立性差,模块之间的耦合度往往比较高,从而造成系统后期维护上存在较大的困难。将其转换成等价的面向对象系统可以提高软件的可理解性、可重用性和可靠性。由于在非面向对象系统中没有与对象直接对应的概念,因此目前提出了大量的对象抽取方法,通过逆向工程思维,将非面向对象系统转换为面向对象系统。
     本文基于模块性质对对象抽取方法及相关内容进行了深入研究,引入子程序——类型关系图来表示程序中类型和子程序之间的关系,讨论了模块内聚性的几个度量准则,并分析了增删子程序对模块内聚度的影响。在此基础上,提出了基于模块内聚性的对象抽取算法。
Independence of module is bad and coupling between modules is always high in legacy systems written in conventional procedural languages. Transforming legacy systems into equivalent object-oriented systems makes software more maintainable,reliable and understandable. However,there is no concept directly corresponding to objects in non object-oriented systems. A lot of object-extraction approaches for extracting objects from legacy systems into object-oriented systems. The paper did a lot of in-depth research about object-extracting approach on module features. An subprogram-type graph is introduced to represent the relation between subprograms and types in programs. Several module cohesion metrics are discussed,and the effects of adding a subprogram to or deleting a subprogram from a module are analyzed based on module cohesion. An object-extracting algorithm is proposed.
引文
[1]江明德,面向对象程序设计,电子工业出版社,1994
    [2]王燕,面向对象的理论与C++实践,清华大学出版社
    [3]徐宝文 周毓明,对象抽取方法研究与进展,计算机科学,2001
    [4]刘振安,面向对象程序设计,经济科学出版社,1999
    [5]周毓明 徐宝文,一种利用模块内聚性的对象抽取方法,软件学报,2001
    [6]Canfora G, Cimitile A, Munro M.A Reverse Engineering Method for Identifying Reusable Abstract Data Types. Proc. of the First IEEE Working Conf. on Reverse Engineering, Baltimore, Maryland:IEEE Computer Soc. Press, 1993
    [7]Ogando R, Yau S, Liu S, Wilde N. An Object Finder for Program Structure Understanding in Software Maintance. Software Maintenance:Research and Practice, 1994
    [8]Liu S, Wilde N. Identifying Objects in a Conventional Procedural Language:An Example of Data Design Recovery. Proc. of the IEEE Conf. on Software Maintance, San Diego, CA:IEEE Computer Society Press, 1990
    [9]Li Bang-qing, Xu Bao-wen, Yu Hui-ming. Transforming Ada severing tasks into protected objects. Proceedings of the ACM SIGAda Annual International Conference. Washington, DC:ACM Press, 1998
    [10]Pidaparthi S, Zedan H, Luker Z. Resource Usage Matrix in Object Identification and Design Transformation of Legacy Procedural Software. 14th Automatic Software Engineering Conference.
    [11]Canfora G. Cimitile A, Munro M. An Improved Algorithm for Identifying Reusable Objects in Code. Software Practice and Experence.
    [12]Godin R, Mili H. Building and Maintaining Analysis-level Class Hierarchies Using Galois Lattices. ACM SIGPLAN Notices.
    [13]Livadas P, Johnson T.A New Approach to Finding Objects in Programs. Journal of Software Maintenance:Research and Practice, 1994
    [14]Zhou Y, Xu B. Extracting Objects of Ada Programs Using Module Features. Proc. of IEEE Conf. on Software Maintenance, IEEE Society Press, Oxford, 1999
    [15]Snelting G. Reengineering of Configurations Based on Mathematical Concept Analysis. ACM Transactions on Software Engineering and Methodology, 1996
    
    
    [16]Yourdon E. Constantine L L. Structured Design Fundamentals of a Discipline of Computer Program and Systems Design(2nd Edition), Yourdon Press, New York, 1979
    [17]Purtilo J, Swiss T, White E. Extracting Program Structure for Packaging in a Component-based Environment Computer Language, 1995
    [18]Cimitile A, Lucia A, Lucca G, Fasolin A. Identifying Objects in Legacy Systems Using Design Metrics. The Journal of Systems and Software, 1999
    [19]Birkhoff O. Lattice Theory. American Mathematical Society, 1940
    [20]Pedrycz Witold , Waletky James. Fuzzy Clustering in Software Reusability. Software-Practice and Experience, 1997
    [21]Myers G J. Composite/Structured Design, Van Nostrand Reinhold Co, New York,1978

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700