Software Quality Attributes and Modularization

In this chapter, we address the effect of architecture design on several different software quality attributes. The following quality attributes will be discussed: security; reliability; performance.

[1]  Rainer Koschke,et al.  Atomic architectural component recovery for program understanding and evolution , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[2]  Pedro Larrañaga,et al.  Estimation of Distribution Algorithms , 2002, Genetic Algorithms and Evolutionary Computation.

[3]  L. R. Dice Measures of the Amount of Ecologic Association Between Species , 1945 .

[4]  Gareth J. Janacek,et al.  Clustering time series from ARMA models with clipped data , 2004, KDD.

[5]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[6]  Ye Wu,et al.  An architecture-based software reliability model , 1999, Proceedings 1999 Pacific Rim International Symposium on Dependable Computing.

[7]  Andrew R. Leach,et al.  An Introduction to Chemoinformatics , 2003 .

[8]  M. Fiedler Algebraic connectivity of graphs , 1973 .

[9]  Ali Maroosi,et al.  Application of honey-bee mating optimization algorithm on clustering , 2007, Appl. Math. Comput..

[10]  Slawomir Zak,et al.  Firefly Algorithm for Continuous Constrained Optimization Tasks , 2009, ICCCI.

[11]  Onaiza Maqbool,et al.  Hierarchical Clustering for Software Architecture Recovery , 2007, IEEE Transactions on Software Engineering.

[12]  Yi-Shen Lin,et al.  An extended study of the K-means algorithm for data clustering and its applications , 2004, J. Oper. Res. Soc..

[13]  Manijeh Keshtgari,et al.  Termite colony optimization: A novel approach for optimizing continuous problems , 2010, 2010 18th Iranian Conference on Electrical Engineering.

[14]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[15]  Jennifer Farkas Using Kohonen maps to determine document similarity , 1994, CASCON.

[16]  John C. Munson,et al.  Software Engineering Measurement , 2003 .

[17]  Brian Everitt,et al.  Cluster analysis , 1974 .

[18]  Jacob Cohen,et al.  Statistical power analysis : a computer program , 1988 .

[19]  Saeed Parsa,et al.  The Design and Implementation of a Framework for Automatic Modularization of Software Systems , 2005, The Journal of Supercomputing.

[20]  Tibor Gyimóthy,et al.  Using information retrieval based coupling measures for impact analysis , 2009, Empirical Software Engineering.

[21]  Witold Pedrycz,et al.  Practical assessment of the models for identification of defect-prone classes in object-oriented commercial systems using design metrics , 2003, J. Syst. Softw..

[22]  Amrit L. Goel,et al.  Software Reliability Models: Assumptions, Limitations, and Applicability , 1985, IEEE Transactions on Software Engineering.

[23]  Thomas W. Reps,et al.  Identifying Modules via Concept Analysis , 1999, IEEE Trans. Software Eng..

[24]  Dominik Endres,et al.  A new metric for probability distributions , 2003, IEEE Transactions on Information Theory.

[25]  Nicolas Privault Discrete-Time Markov Chains , 2013 .

[26]  Ricardo Landa Becerra,et al.  Efficient evolutionary optimization through the use of a cultural algorithm , 2004 .

[27]  T. Sørensen,et al.  A method of establishing group of equal amplitude in plant sociobiology based on similarity of species content and its application to analyses of the vegetation on Danish commons , 1948 .

[28]  Peter Kubat,et al.  Assessing reliability of modular software , 1989 .

[29]  Katerina Goseva-Popstojanova,et al.  Architecture-based approach to reliability assessment of software systems , 2001, Perform. Evaluation.

[30]  E. W. Beals,et al.  Bray-curtis ordination: an effective strategy for analysis of multivariate ecological data , 1984 .

[31]  Paul J. Somerfield,et al.  Identification of the Bray-Curtis similarity index: Comment on Yoshioka (2008) , 2008 .

[32]  Thomas Bäck,et al.  Evolutionary algorithms in theory and practice - evolution strategies, evolutionary programming, genetic algorithms , 1996 .

[33]  Q. Henry Wu,et al.  Group Search Optimizer: An Optimization Algorithm Inspired by Animal Searching Behavior , 2009, IEEE Transactions on Evolutionary Computation.

[34]  Elena Deza,et al.  Distances on Strings and Permutations , 2013 .

[35]  Michalis Vazirgiannis,et al.  Clustering validity checking methods: part II , 2002, SGMD.

[36]  Sargur N. Srihari,et al.  Binary Vector Dissimilarity Measures for Handwriting Identification , 2003, IS&T/SPIE Electronic Imaging.

[37]  Richard C. Holt,et al.  ACCD: an algorithm for comprehension-driven clustering , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[38]  Sung-Hyuk Cha Comprehensive Survey on Distance/Similarity Measures between Probability Density Functions , 2007 .

[39]  C. Tappert,et al.  A Survey of Binary Similarity and Distance Measures , 2010 .

[40]  R. A. Leibler,et al.  On Information and Sufficiency , 1951 .

[41]  Mohamed Zaït,et al.  A comparative study of clustering methods , 1997, Future Gener. Comput. Syst..

[42]  Onaiza Maqbool,et al.  The weighted combined algorithm: a linkage algorithm for software clustering , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[43]  Tung-Kuan Liu,et al.  Hybrid Taguchi-genetic algorithm for global numerical optimization , 2004, IEEE Transactions on Evolutionary Computation.

[44]  Zong Woo Geem,et al.  A New Heuristic Optimization Algorithm: Harmony Search , 2001, Simul..

[45]  Doris L. Carver,et al.  A visual representation model for software subsystem decomposition , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[46]  Ramón López de Mántaras,et al.  A distance-based attribute selection measure for decision tree induction , 1991, Machine Learning.

[47]  Spiros Mancoridis,et al.  On the automatic modularization of software systems using the Bunch tool , 2006, IEEE Transactions on Software Engineering.

[48]  Meir M. Lehman Programs, life cycles, and laws of software evolution , 1980 .

[49]  K. F. Riley,et al.  Mathematical Methods for Physics and Engineering: A Comprehensive Guide , 2002 .

[50]  Amrit L. Goel,et al.  Time-Dependent Error-Detection Rate Model for Software Reliability and Other Performance Measures , 1979, IEEE Transactions on Reliability.

[51]  Alok Mishra,et al.  Java source-code clustering: Unifying syntactic and semantic features , 2013, ACM SIGSOFT Softw. Eng. Notes.

[52]  Ajith Abraham,et al.  Bacterial Foraging Optimization Algorithm: Theoretical Foundations, Analysis, and Applications , 2009, Foundations of Computational Intelligence.

[53]  Kiarash Mahdavi,et al.  A clustering genetic algorithm for software modularisation with a multiple hill climbing approach , 2005 .

[54]  Vassilios Tzerpos,et al.  An effectiveness measure for software clustering algorithms , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[55]  P. Rousseeuw Silhouettes: a graphical aid to the interpretation and validation of cluster analysis , 1987 .

[56]  Jean-Claude Laprie,et al.  Software reliability and system reliability , 1996 .

[57]  Saeed Parsa,et al.  A New Encoding Scheme and a Framework to Investigate Genetic Clustering Algorithms , 2005, J. Res. Pract. Inf. Technol..

[58]  Bo Xing,et al.  Innovative Computational Intelligence: A Rough Guide to 134 Clever Algorithms , 2013 .

[59]  Peter W. Foltz,et al.  An introduction to latent semantic analysis , 1998 .

[60]  Andrew W. Moore,et al.  X-means: Extending K-means with Efficient Estimation of the Number of Clusters , 2000, ICML.

[61]  V. Cutello,et al.  Graph partitioning using genetic algorithms with ODPX , 2002, Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No.02TH8600).

[62]  J. Farris On the Cophenetic Correlation Coefficient , 1969 .

[63]  Ferenc Rudolf,et al.  Modelling and reverse engineering C++ source code , 2005 .

[64]  Jian Feng Cui,et al.  Applying agglomerative hierarchical clustering algorithms to component identification for legacy systems , 2011, Inf. Softw. Technol..

[65]  Brian S. Mitchell,et al.  A heuristic approach to solving the software clustering problem , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[66]  G. N. Lance,et al.  Computer Programs for Hierarchical Polythetic Classification ("Similarity Analyses") , 1966, Comput. J..

[67]  Caro Lucas,et al.  Imperialist competitive algorithm: An algorithm for optimization inspired by imperialistic competition , 2007, 2007 IEEE Congress on Evolutionary Computation.

[68]  Bo Xing,et al.  Fruit Fly Optimization Algorithm , 2014 .

[69]  David Corne,et al.  The Pareto archived evolution strategy: a new baseline algorithm for Pareto multiobjective optimisation , 1999, Proceedings of the 1999 Congress on Evolutionary Computation-CEC99 (Cat. No. 99TH8406).

[70]  Swapna S. Gokhale,et al.  Analytical Models for Architecture-Based Software Reliability Prediction: A Unification Framework , 2006, IEEE Transactions on Reliability.

[71]  Thomas K. Landauer,et al.  Latent Semantic Analysis , 2006 .

[72]  Stefan Boettcher,et al.  Extremal Optimization: an Evolutionary Local-Search Algorithm , 2002, ArXiv.

[73]  S.M. Lopez,et al.  A Metamodel to Carry Out Reverse Engineering of C++ Code into UML Sequence Diagrams , 2006, Electronics, Robotics and Automotive Mechanics Conference (CERMA'06).

[74]  Renée J. Miller,et al.  LIMBO: Scalable Clustering of Categorical Data , 2004, EDBT.

[75]  Stéphane Ducasse,et al.  Software Architecture Reconstruction: A Process-Oriented Taxonomy , 2009, IEEE Transactions on Software Engineering.

[76]  J. Dunn Well-Separated Clusters and Optimal Fuzzy Partitions , 1974 .

[77]  Richard C. Holt,et al.  MoJo: a distance metric for software clusterings , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[78]  Amir Hossein Alavi,et al.  Krill herd: A new bio-inspired optimization algorithm , 2012 .

[79]  Vicente Palmer,et al.  Comparison theory of Lorentzian distance with applications to spacelike hypersurfaces , 2009 .

[80]  Tim Menzies,et al.  Data Mining Static Code Attributes to Learn Defect Predictors , 2007 .

[81]  Lei Sun,et al.  Object-oriented software architecture recovery using a new hybrid clustering algorithm , 2010, 2010 Seventh International Conference on Fuzzy Systems and Knowledge Discovery.

[82]  Patrick D. Surry,et al.  Formal Memetic Algorithms , 1994, Evolutionary Computing, AISB Workshop.

[83]  S. Mansoor Sarwar,et al.  Software clustering techniques and the use of combined algorithm , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[84]  Periklis Andritsos,et al.  Information-theoretic software clustering , 2005, IEEE Transactions on Software Engineering.

[85]  Spiros Mancoridis,et al.  Comparing the decompositions produced by software clustering algorithms using similarity measurements , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[86]  Mark Harman,et al.  A multiple hill climbing approach to software module clustering , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[87]  Mohammad Zulkernine,et al.  Security metrics for source code structures , 2008, SESS '08.

[88]  Swapna S. Gokhale,et al.  Dependency characterization in path-based approaches to architecture-based software reliability prediction , 1998, Proceedings. 1998 IEEE Workshop on Application-Specific Software Engineering and Technology. ASSET-98 (Cat. No.98EX183).

[89]  Thomas Stützle,et al.  The Ant Colony Optimization Metaheuristic: Algorithms, Applications, and Advances , 2003 .

[90]  Grosan Crina,et al.  Stigmergic Optimization: Inspiration, Technologies and Perspectives , 2006 .

[91]  Konstantinos G. Derpanis,et al.  The Bhattacharyya Measure , 2008 .

[92]  Ramin Rajabioun,et al.  Cuckoo Optimization Algorithm , 2011, Appl. Soft Comput..

[93]  Bo Wang,et al.  Lion pride optimizer: An optimization algorithm inspired by lion pride behavior , 2012, Science China Information Sciences.

[94]  Roger C. Cheung A User-Oriented Software Reliability Model , 1980, IEEE Trans. Software Eng..

[95]  Rainer Storn,et al.  Differential Evolution – A Simple and Efficient Heuristic for global Optimization over Continuous Spaces , 1997, J. Glob. Optim..

[96]  Stefan Boettcher,et al.  Extremal Optimization: Methods derived from Co-Evolution , 1999, GECCO.

[97]  Aditya P. Mathur,et al.  On the estimation of reliability of a software system using reliabilities of its components , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[98]  Mikhail Nikulin,et al.  Chi‐squared Tests , 2013 .

[99]  F. Rohlf Consensus indices for comparing classifications , 1982 .

[100]  Naftali Tishby,et al.  The information bottleneck method , 2000, ArXiv.

[101]  A. Isazadeh,et al.  An Analytical Security Model for Existing Software Systems , 2014 .

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

[103]  Peter Nordin,et al.  Genetic programming - An Introduction: On the Automatic Evolution of Computer Programs and Its Applications , 1998 .

[104]  Mikhail Nikulin,et al.  Non-parametric Tests for Complete Data: Bagdonavičius/Non-parametric Tests for Complete Data , 2011 .

[105]  László Orlóci,et al.  Geometric Models in Ecology: I. The Theory and Application of Some Ordination Methods , 1966 .

[106]  Karim O. Elish,et al.  Predicting defect-prone software modules using support vector machines , 2008, J. Syst. Softw..

[107]  Jack D. Tubbs,et al.  A note on binary template matching , 1989, Pattern Recognit..

[108]  D. Wishart,et al.  k-Means Clustering with Outlier Detection, Mixed Variables and Missing Values , 2003 .

[109]  Spiros Mancoridis,et al.  On the evaluation of the Bunch search-based software modularization algorithm , 2007, Soft Comput..

[110]  Akif Günes Koru,et al.  An empirical comparison and characterization of high defect and high complexity modules , 2003, J. Syst. Softw..

[111]  C. Packer,et al.  Group hunting behaviour of lions: a search for cooperation , 1991, Animal Behaviour.

[112]  J. Gower A General Coefficient of Similarity and Some of Its Properties , 1971 .

[113]  H. O. Lancaster FORERUNNERS OF THE PEARSON χ2 , 1966 .

[114]  Peter Harremoës,et al.  Rényi Divergence and Kullback-Leibler Divergence , 2012, IEEE Transactions on Information Theory.

[115]  A. H. Lipkus A proof of the triangle inequality for the Tanimoto distance , 1999 .

[116]  Xin-She Yang,et al.  Bat algorithm: a novel approach for global engineering optimization , 2012, 1211.6663.

[117]  Muzaffar Eusuff,et al.  Shuffled frog-leaping algorithm: a memetic meta-heuristic for discrete optimization , 2006 .

[118]  Riccardo Poli,et al.  Particle swarm optimization , 1995, Swarm Intelligence.

[119]  Alexander Ivanov Sotirov AUTOMATIC VULNERABILITY DETECTION USING STATIC SOURCE CODE ANALYSIS , 2005 .

[120]  Gary McGraw,et al.  Exploiting Software: How to Break Code , 2004 .

[121]  J. T. Curtis,et al.  An Ordination of the Upland Forest Communities of Southern Wisconsin , 1957 .

[122]  Xiuzhen Zhang,et al.  Predicting Defective Software Components from Code Complexity Measures , 2007 .

[123]  J. Motyka,et al.  Preliminary studies on meadows in the south-east of Lublin province. , 1950 .

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

[125]  Zbigniew Michalewicz,et al.  Evolutionary Computation 2 : Advanced Algorithms and Operators , 2000 .

[126]  P. A. Bromiley,et al.  Shannon Entropy, Renyi Entropy, and Information , 2004 .

[127]  Mohammad Zulkernine,et al.  Using complexity, coupling, and cohesion metrics as early indicators of vulnerabilities , 2011, J. Syst. Archit..

[128]  Spiros Mancoridis,et al.  Automatic clustering of software systems using a genetic algorithm , 1999, STEP '99. Proceedings Ninth International Workshop Software Technology and Engineering Practice.

[129]  Kishor S. Trivedi,et al.  Modeling Correlation in Software Recovery Blocks , 1993, IEEE Trans. Software Eng..

[130]  Meir M. Lehman,et al.  Software evolution - Background, theory, practice , 2003, Inf. Process. Lett..

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

[132]  John E. Hunt,et al.  Learning using an artificial immune system , 1996 .

[133]  M. J. Mahjoob,et al.  A novel meta-heuristic optimization algorithm inspired by group hunting of animals: Hunting search , 2010, Comput. Math. Appl..

[134]  András Schubert,et al.  A note on the Jaccardized Czekanowski similarity index , 2014, Scientometrics.

[135]  Emden R. Gansner,et al.  Bunch: a clustering tool for the recovery and maintenance of software system structures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[136]  Kishor S. Trivedi Probability and Statistics with Reliability, Queuing, and Computer Science Applications , 1984 .

[137]  Swapna S. Gokhale,et al.  Reliability prediction and sensitivity analysis based on software architecture , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[138]  Taha Mansouri,et al.  ARO: A new model-free optimization algorithm inspired from asexual reproduction , 2010, Appl. Soft Comput..

[139]  Budi Santosa,et al.  Cat Swarm Optimization for Clustering , 2009, 2009 International Conference of Soft Computing and Pattern Recognition.

[140]  Steven J. Phillips Acceleration of K-Means and Related Clustering Algorithms , 2002, ALENEX.

[141]  Joseph K. Kearney,et al.  Software complexity measurement , 1986, CACM.

[142]  Jing Liu,et al.  An organizational coevolutionary algorithm for classification , 2006, IEEE Trans. Evol. Comput..

[143]  Frederick Mosteller,et al.  Stochastic Models for Learning , 1956 .

[144]  Andreas Zeller,et al.  Mining metrics to predict component failures , 2006, ICSE.

[145]  Kishor S. Trivedi,et al.  Quantifying software performance, reliability and security: An architecture-based approach , 2007, J. Syst. Softw..

[146]  Nicolas Anquetil,et al.  Experiments with clustering as a software remodularization method , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[147]  B. Everitt,et al.  Cluster Analysis: Everitt/Cluster Analysis , 2011 .

[148]  Dervis Karaboga,et al.  Artificial bee colony algorithm , 2010, Scholarpedia.

[149]  Guojun Gan,et al.  Data Clustering: Theory, Algorithms, and Applications (ASA-SIAM Series on Statistics and Applied Probability) , 2007 .

[150]  Richard G. Hamlet,et al.  Theory of software reliability based on components , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[151]  Sung-Hyuk Cha,et al.  Anomaly between Jaccard and Tanimoto Coefficients , 2009 .

[152]  J. A. Lozano,et al.  Towards a New Evolutionary Computation: Advances on Estimation of Distribution Algorithms (Studies in Fuzziness and Soft Computing) , 2006 .

[153]  Jianhong Wu,et al.  Data clustering - theory, algorithms, and applications , 2007 .

[154]  J. Yackel,et al.  The Jeffries–Matusita distance for the case of complex Wishart distribution as a separability criterion for fully polarimetric SAR data , 2014 .

[155]  Timothy Lethbridge,et al.  The Dagstuhl Middle Metamodel: A Schema For Reverse Engineering , 2004, ateM.

[156]  Emden R. Gansner,et al.  Graphviz - Open Source Graph Drawing Tools , 2001, GD.

[157]  Eugene H. Spafford,et al.  Software vulnerability analysis , 1998 .

[158]  M.H. Tayarani-N,et al.  Magnetic Optimization Algorithms a new synthesis , 2008, 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence).

[159]  Siraj Muhammad,et al.  Improved Similarity Measures for Software Clustering , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[160]  Naftali Tishby,et al.  Document clustering using word clusters via the information bottleneck method , 2000, SIGIR '00.