Visualização de software baseada em uma metáfora do universo utilizando o conjunto de métricas CK

The software development process is a complex, costly and difficult task, being subject of several studies over the years. In order to turn software more tangible, metrics calculation is used to provide useful informations to support developers in decision-making process. This present study used Chidamber and Kemerer suite metrics (CK metrics) to measure software developed under object oriented paradigm. A sistematic review was conducted and exposed the efficiency of CK metrics in several studies. Some metrics as CBO, RFC and WMC were successfully used in all studies analyzed, while other (LCOM , DIT and NOC) were successful in only a few. In addition, a table with values of these measures indicated possible software problems, such as predicting error prone, was created. A new visualization model is proposed, based on a simplistic metaphor of universe, which aims to facilitate the understanding of softwares transforming the classes of a system in celestial bodies have stipulated characteristics according to the value of metrics. This model was implemented in a software, called SUVsoft, that performs visualization software and calculate the CK metrics suite. Finally, five softwares of different sizes and contexts were visualized and analyzed, and it was observed that the application of gravitational force herewith color and radius allowed the identification of classes with discrepant values in CK metrics. The results of this dissertation can be used to guide future studies of CK metrics and also to assist Software Engineering activities through the visualization using the proposed model.

[1]  Jehad Al Dallal Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics , 2012, Inf. Softw. Technol..

[2]  Alberto Sillitti,et al.  Does Refactoring Improve Reusability? , 2006, ICSR.

[3]  Rainer Koschke,et al.  Journal of Software Maintenance and Evolution: Research and Practice Software Visualization in Software Maintenance, Reverse Engineering, and Re-engineering: a Research Survey , 2022 .

[4]  Colin Ware,et al.  Information Visualization: Perception for Design , 2000 .

[5]  Letha H. Etzkorn,et al.  Empirical Validation of Three Software Metrics Suites to Predict Fault-Proneness of Object-Oriented Classes Developed Using Highly Iterative or Agile Software Development Processes , 2007, IEEE Transactions on Software Engineering.

[6]  Gerald W. Both,et al.  Object-oriented analysis and design with applications , 1994 .

[7]  Daniela Cruzes,et al.  The evolution and impact of code smells: A case study of two open source systems , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[8]  Witold Pedrycz,et al.  Identification of defect-prone classes in telecommunication software systems using design metrics , 2006, Inf. Sci..

[9]  Alberto Bacchelli,et al.  Manhattan: Supporting real-time visual team activity awareness , 2013, 2013 21st International Conference on Program Comprehension (ICPC).

[10]  Christoph Wysseier,et al.  Visualizing live software systems in 3D , 2006, SoftVis '06.

[11]  P. Kidwell,et al.  The mythical man-month: Essays on software engineering , 1996, IEEE Annals of the History of Computing.

[12]  Raed Shatnawi,et al.  The effectiveness of software metrics in identifying error-prone classes in post-release software evolution process , 2008, J. Syst. Softw..

[13]  Barry Boehm,et al.  A view of 20th and 21st century software engineering , 2006, ICSE.

[14]  Michele Lanza,et al.  Visualizing Software Systems as Cities , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[15]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[16]  Matt Zandstra,et al.  Version Control with Subversion , 2010 .

[17]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[18]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

[19]  B. Travençolo,et al.  Automated use case similarity computation can aid the assessment cohesion and method complexity of classes , 2013 .

[20]  Barbara Kitchenham,et al.  What's up with software metrics? - A preliminary mapping study , 2010, J. Syst. Softw..

[21]  John T. Stasko,et al.  Visualization of test information to assist fault localization , 2002, ICSE '02.

[22]  Benjamin Jotham Fry,et al.  Organic information design , 2000 .

[23]  Fernando Brito e Abreu,et al.  Object-Oriented Software Engineering: Measuring and Controlling the Development Process , 1994 .

[24]  Daniel M. Berry,et al.  The Inevitable Pain of Software Development: Why There Is No Silver Bullet , 2002, RISSEF.

[25]  Danny Holten,et al.  Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data , 2006, IEEE Transactions on Visualization and Computer Graphics.

[26]  Wei Li,et al.  Object-Oriented Metrics Which Predict Maintainability , 1993 .

[27]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[28]  Yaneer Bar-Yam,et al.  When systems engineering fails-toward complex systems engineering , 2003, SMC'03 Conference Proceedings. 2003 IEEE International Conference on Systems, Man and Cybernetics. Conference Theme - System Security and Assurance (Cat. No.03CH37483).

[29]  Satwinder Singh,et al.  Effectiveness of encapsulation and object-oriented metrics to refactor code and identify error prone classes using bad smells , 2011, SOEN.

[30]  Carl G. Davis,et al.  A Hierarchical Model for Object-Oriented Design Quality Assessment , 2002, IEEE Trans. Software Eng..

[31]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..

[32]  Yuming Zhou,et al.  Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults , 2006, IEEE Transactions on Software Engineering.

[33]  Kwan-Liu Ma,et al.  code_swarm: A Design Study in Organic Software Visualization , 2009, IEEE Transactions on Visualization and Computer Graphics.

[34]  Richard Torkar,et al.  Software fault prediction metrics: A systematic literature review , 2013, Inf. Softw. Technol..

[35]  Michael English,et al.  Fault detection and prediction in an open-source software project , 2009, PROMISE '09.

[36]  Mark Lorenz,et al.  Object-oriented software metrics - a practical guide , 1994 .

[37]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[38]  Rachel Harrison,et al.  An Investigation into the Applicability and Validity of Object-Oriented Design Metrics , 1998, Empirical Software Engineering.

[39]  Arvinder Kaur,et al.  Validation of object oriented metrics using open source software system: an empirical study , 2012, SOEN.

[40]  Stephan Diehl,et al.  Software Visualization - Visualizing the Structure, Behaviour, and Evolution of Software , 2007 .

[41]  Thomas Ball,et al.  Software Visualization in the Large , 1996, Computer.

[42]  Raed Shatnawi,et al.  A Quantitative Investigation of the Acceptable Risk Levels of Object-Oriented Metrics in Open-Source Systems , 2010, IEEE Transactions on Software Engineering.

[43]  Andrian Marcus,et al.  Comprehension of software analysis data using 3D visualization , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[44]  Hausi A. Müller,et al.  Cognitive design elements to support the construction of a mental model during software exploration , 1999, J. Syst. Softw..

[45]  J. J. van Wijk,et al.  Visualization of Graphs and Trees for Software Analysis , 2005 .

[46]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[47]  Niklaus Wirth,et al.  A Brief History of Software Engineering , 2008, IEEE Annals of the History of Computing.

[48]  Margaret-Anne Storey SHriMP Views: An Interactive Environment for Exploring Multiple Hierarchical Views of a Java Program , 2001 .

[49]  John C. Mitchell,et al.  Concepts in programming languages , 2002 .

[50]  Tim Menzies,et al.  Local vs. global models for effort estimation and defect prediction , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[51]  Daniela Cruzes,et al.  Are all code smells harmful? A study of God Classes and Brain Classes in the evolution of three open source systems , 2010, 2010 IEEE International Conference on Software Maintenance.

[52]  Tibor Gyimóthy,et al.  Empirical validation of object-oriented metrics on open source software for fault prediction , 2005, IEEE Transactions on Software Engineering.

[53]  Johnson M. Hart Windows System Programming (3rd Edition) , 2004 .

[54]  Capers Jones,et al.  Why software fails , 1996 .

[55]  Ramanath Subramanyam,et al.  Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects , 2003, IEEE Trans. Software Eng..

[56]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[57]  Tom DeMarco,et al.  Controlling Software Projects: Management, Measurement, and Estimates , 1986 .

[58]  Arie van Deursen,et al.  Understanding Execution Traces Using Massive Sequence and Circular Bundle Views , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[59]  Tim Menzies,et al.  When to use data from other projects for effort estimation , 2010, ASE.

[60]  T. R. Gopalakrishnan Nair,et al.  Defect proneness estimation and feedback approach for software design quality improvement , 2012, Inf. Softw. Technol..

[61]  Hong Yul Yang,et al.  A Solar System Metaphor for 3D Visualisation of Object Oriented Software Metrics , 2004, InVis.au.

[62]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[63]  Michel S. Soares,et al.  Detection of Software Anomalies Using Object-oriented Metrics , 2014, ICEIS.

[64]  David P. Darcy,et al.  Managerial Use of Metrics for Object-Oriented Software: An Exploratory Analysis , 1998, IEEE Trans. Software Eng..

[65]  Romain Robbes,et al.  Software systems as cities: a controlled experiment , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[66]  Michele Lanza,et al.  CodeCrawler-lessons learned in building a software visualization tool , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[67]  Blaine A. Price,et al.  A Principled Taxonomy of Software Visualization , 1993, J. Vis. Lang. Comput..

[68]  Bente Anda,et al.  Assessing Software Product Maintainability Based on Class-Level Structural Measures , 2006, PROFES.

[69]  James R. McKee Maintenance as a function of design , 1984, AFIPS '84.

[70]  Andrew H. Caudwell Gource: visualizing software version control history , 2010, SPLASH/OOPSLA Companion.

[71]  Satwinder Singh,et al.  Effectiveness of refactoring metrics model to identify smelly and error prone classes in open source software , 2012, SOEN.

[72]  Ioannis Stamelos,et al.  Layer assessment of object-oriented software: A metric facilitating white-box reuse , 2013, J. Syst. Softw..

[73]  A. Abuasad,et al.  Evaluating the correlation between software defect and design coupling metrics , 2012, 2012 International Conference on Computer, Information and Telecommunication Systems (CITS).