Method for object-oriented software diagnostic
DOI:
https://doi.org/10.18372/2306-1472.42.1831Keywords:
design flaws, design rules, object-oriented design, software qualityAbstract
During software maintenance changes are introduced often in harsh terms and conditions of limited resources. As a result, its structure degraded and, consequently, it becomes difficult to understand and modify. This phenomenon is known as software decay and is extremely harmful, as tends to be unnoticed at first, but then grow with time. Therefore the problem of developing methods and diagnostics software is an issue.The purpose of the paper is to develop a method of object-oriented software diagnostic to detect design defects in the phase of their appearance and monitoring their development. For achieve a purpose following tasks are supplied and solved: develop a metamodel that enables to perform analysis of design defects history based on it; develop a set of graphics to facilitate the tracking of defects in various aspects; determine which tasks may be solved by studying graphic images.The essence of method of object-oriented software diagnosing is to monitor the design defects. The method is implemented by using the proposed meta-history of design flaws (DDHM - Design Flaws History Model) object-oriented software and multidimensional visualization of defects of the design elements at various levels of abstraction. In DDHM first defect is modeled as a separate entity, able to change their characteristics with time. Considered the following quantitative characteristics of the defect: the degree of deficiency, symptoms of defect intensity and average intensity of the defect symptoms.Analysis of graphic images give next opportunities: highlight the most dangerous defects, a more efficient allocation of resources aimed at supporting the maintenance of software; identify restructuring - information on where and when the restructuring of the software necessary for understanding how and to some extent, why the structure of the software was modified; implement early detection of defects, using information on the development of defects from version to version, with maintenance engineers can diagnose the defect in the early stages of development and adjustment of working with maintenance, so as to prevent the need for restructuring in the future; determine the circumstances of the emergence and development of the defect - the modern tools of automation software life cycle, such as Microsoft Visual Studio Team System, store data about all the changes the source code, for example, who brought these changes and why, so it is possible to determine who, and because of what requirements made defect.To implement the method we developed diagnostics software SEM (Software Evolution Miner).
References
Lehman M. M. On Understanding Laws, Evolution, and Conservation in the Large-Program Life Cycle / M.M. Lehman // The Journal of Systems and Software. – 1980. – Vol. 1. – P. 213−221.
Izurieta C. How Software Designs Decay: A Pilot Study of Pattern Evolution / Clemente Izurieta, James M. Bieman // Proceedings of the First International Symposium on Empirical Software Engineering and Measurement (ESEM’07), September 20−21 2007. – Washington, 2007. – P. 449−451.
Godfrey М. The past, present, and future of software evolution / M.W. Godfrey, D.M. German // Frontiers of Software Maintenance, 2008. – Beijing, 2008. – P. 129−138.
Нечай О.С. Методи та засоби виявлення дефектів проектування об’єктно-орієнтованого програмного забезпечення / О.С. Нечай, М.О. Сидоров // Вісник НАУ. – 2009. – №3. – С. 200−205.
Ciupke O. Automatic detection of design problems in object-oriented reengineering / Oliver Ciupke // Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS’99). – Washington: IEEE Computer Society, 1999. – Р. 18–32.
Hovemeyer D. Finding bugs is easy / David Hovemeyer, William Pugh // ACM SIGPLAN Notices. – 2004. – Vol.39, No.12. – P.92−106.
Marinescu R. Measurement and Quality in Object-Oriented Design: Ph.D thesis / R. Marinescu. – “Politehnica” University of Timisoara, 2002. – 155 p.
Moha N. A Domain Analysis to Specify Design Defects and Generate Detection Algorithms / N. Moha, Y. Guéhéneuc, F. Le Meur, L. Duchien // Proceedings of the 11th Intern. Conf. on Fundamental Approaches to Software Engineering. – Springer-Verlag, March-April 2008. – Р. 276−291.
Ratiu D. Using history information to improve design flaws detection / D. Ratiu, S. Ducasse, T. Girba, R. Marinescu // Proceedings of European Conference on Software Maintenance and Reengineering (CSMR’04), March 24−26 2004. – Washington, 2004. – P. 223–232.
Нечай О.С. Метод побудови моделей дефектів проектування об’єктно-орієнтованого програмного забезпечення / О.С. Нечай, М.О. Сидоров // Наукоємні технології. – 2009. – № 2. – С. 58−64.
Laguë B. An analysis framework for understanding layered software architectures / Bruno Laguë, Charles Leduc, André Le Bon, Ettore Merlo, Michel Dagenais // Proceedings of the 6th International Workshop on Program Comprehension (IWPC’98), June 24−26 1998. – Washington, 1998. – P. 37−48.
Tichelaar S. FAMIX and XMI / Sander Tichelaar, Stéphane Ducasse, Serge Demeyer // Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00), November 23−25 2000. – Washington, 2000. – P. 296−306.
Greevy O. Dynamix − a Meta-Model to Support Feature-Centric Analysis / Orla Greevy // 1st International Workshop on FAMIX (FAMOOSR 2007), June 25 2007. – Zurich, 2007. – P. 25−29.
Girba T. Modeling History to Understand Software Evolution: Ph.D thesis / T. Girba. – Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultat der Universitat Bern, 2005. – 168 p.
Tichelaar S. Modeling Object-Oriented Software for Reverse Engineering and Refactoring: Ph.D thesis / Sander Tichelaar. – University of Berne, 2001. – 186 p.
Antoniol G. An automatic approach to identify class evolution discontinuities / Guliano Antoniol, Massimiliano, Di Penta, Ettore Merlo // Proceedings of IEEE International Workshop on Principles of Software Evolution (IWPSE’04), September 06−07 2004. – Washington, 2004. – P. 31−40.
Zou L. Detecting merging and splitting using origin analysis / Lijie Zou, Michael W. Godfrey // Proceedings of the 10th Working Conference on Reverse Engineering (WCRE’03), November 13−17 2003. – Washington, 2003. – P. 146−154.
Stasko J. T. Software Visualization -Programming as a Multimedia Experience / J. T. Stasko, J. Domingue, M. H. Brown, B. A. Price. – The MIT Press, 1998. – 596 p.
D'Ambros, M. "A Bug's Life" Visualizing a Bug Database / M. D'Ambros, M. Lanza, M. Pinzger // Proceedings of 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT 2007), June 24−25 2007. – Banf,2007. – P. 113−120.
Lanza М. The Evolution Matrix: Recovering Software Evolution using Software Visualization Techniques / Michele Lanza // Proceedings of International Workshop on Principles of Software Evolution (IWPSE’01), September 10−11 2001. –New York, 2001. – P. 37−42.
Lungu M. Reverse Engineering Super-Repositories / Mircea Lungu, Michele Lanza, Tudor Girba, Reinout Heeck // Proceedings of 14th Working Conference on Reverse Engineering (WCRE 2007), October 28−31 2007. – Vancouver, 2007. – P. 120−129.
Wattenberg M. Baby Names, Visualization, and Social Data Analysis / Martin Wattenberg // Proceedings of IEEE Symposium on Information Visualization (InfoVis 2005), October 23−25 2005. – Minneapolis, 2005. – P. 1−6.
А.с. Комп’ютерна програма «Software Evolution Miner» («SEM») / О.С. Нечай (Україна). – № 29953 ; заявл. 19.06.09 ; опубл. 19.08.09.