Framework of Quality Measurement in CASE Tool Based Software Development
Total Page:16
File Type:pdf, Size:1020Kb
Framework of Quality Measurement in CASE Tool Based Software Development Dissertation zur Erlangung des akademischen Grades Doktoringenieur (Dr.‐Ing.) angenommen durch die Fakultät für Informatik der Otto‐von‐Guericke‐Universität Magdeburg von: M.Sc. in DKE Hashem Yazbek geb. am 17.10.1974 in Homs, Syrien Gutachter: Prof. Dr.‐Ing. habil. Reiner Dumke Prof. Dr.‐Ing. habil. Georg Paul Prof. Dr. Juan José Cuadrado‐Gallego Magdeburg, den 28.09.2010 Contents Acknowledgement iii List of Figures v List of Tables vii List of Abbreviations ix 1 Introduction 1 1.1 Motivation 1 1.2 Research Questions 1 1.3 Thesis Structure 2 2 Software Process Descriptions and Models 3 2.1 Software Process Characteristics 3 2.2 Software Process Modelling 8 2.3 Software Process Improvement and Evaluation Approaches 17 2.3.1 General Maturity Models 18 2.3.2 The CMMI Approach 20 2.3.3 The SPICE Approach 25 2.3.4 The Six Sigma Approach 26 2.3.5 The ITIL Approach 27 2.3.6 Further Software Process Evaluation 29 2.4 Summary 31 3 CASE‐Based Software Development 33 3.1 CASE Tools 33 3.2 CASE‐Based Processes 36 3.3 Summary 40 4 Software Process Measurement and Evaluation 41 4.1 Software Process Indicators and Criteria 42 4.2 Software Process Laws 45 4.3 Software Process Principles and Rules 47 4.4 Software Process Rules of Thumb 58 4.5 Software Process Experiments 59 4.6 Software Process Case Studies 63 4.7 Software Process Metrics and Measures 64 4.8 Process Metrics Repositories 76 i 4.9 Process Measurement Levels 84 4.9.1 Software Process Establishment by Indicators and Criteria 85 4.9.2 Software Process Improvement Modelling by Laws, Process Principles and Rules 86 4.9.3 Empirical Software Process Modelling by Rules of Thumb, Process Experiments and Case Studies 87 4.9.4 Software Process Measurement Model by Process Metrics 88 4.9.5 Software Process Management Models by Process Improvement Approaches 89 4.10 Summary 91 5 Framework of Quality Assurance Using CASE Tools 93 5.1 Framework Principles: CASE Tool Based Software Processes 93 5.1.1 General Principles 93 5.1.2 CASE‐Based Orientation 94 5.1.3 CASE Tool Based Process Evaluation 95 5.2 Framework Kernel: Quality Measurement and Improvement 96 5.2.1 Software Measurement Components 96 5.2.2 Software Measurement Process Evaluation 103 5.2.3 Software Measurement Improvements 106 5.3 Framework Steps: Phases and Contents 107 5.3.1 Analyzing the CASE Tool Based Process Situation 107 5.3.2 Planning the CASE Tool Based Process Improvements 111 5.3.3 Implementing the CASE Tool Based Process Improvements 112 5.4 Summary 113 6 Framework Application and Validation 115 6.1 Chosen CASE Tool Situation 115 6.2 CASE‐Based Test Scenario 116 6.3 Appraisal of CASE Tool Evaluation Results 116 6.3.1 Together Measurement Level 116 6.3.2 Metrication in Visual Studio 118 6.3.3 Measurement in Enterprise Architect 120 6.3.4 Metrics Eclipse Plug‐in 122 6.3.5 Metrics One Measurement Level 123 6.3.6 Metrication in Embarcadero RAD Studio 2010 125 6.4 Evaluation of CASE‐Based Quality Assurance 126 6.5 Summary 129 7 Conclusions and Future Work 131 References 133 ii Acknowledgement I would like to thank my supervisor, Prof. Dr. Reiner Dumke for the help throughout this work. Especially his patience and advice that he provided over the years. A special thanks goes out to Prof. Georg Paul and Prof. Juan J. Cuadrado‐Gallego for their efforts in reviewing and providing their expert opinions on the thesis at hand. Magdeburg, September 2010 Hashem Yazbek iii iv List of Figures Figure 1: Managerial foundations of software engineering 3 Figure 2: Context diagram for software process models 4 Figure 3: Activities supporting by process models 6 Figure 4: The software process improvement cycle by Lepasaar et al. 8 Figure 5: Roles of technology in software applications or products 10 Figure 6: Components of the software product 11 Figure 7: Dimensions of the software engineering 13 Figure 8: Components of the software process 13 Figure 9: Components of the software development resources 15 Figure 10: Components of the software maintenance 16 Figure 11: Components of the software product application 17 Figure 12: Dependencies of software process evaluation methods and standards 18 Figure 13: Overview of chosen process maturity and improvement models 19 Figure 14: The CMMI model components 21 Figure 15: The CMMI project management process areas 22 Figure 16: The SPICE process assessment model 26 Figure 17: Basic characteristics of the Six Sigma approach 27 Figure 18: The relationship between the service standards and ITIL 28 Figure 19: The “What to Build” pattern for product line project management 30 Figure 20: The PSP approach 31 Figure 21: Simplified CASE tool architecture 33 Figure 22: Eclipse tool GUI architecture 34 Figure 23: Four essential types of CASE tool integration 35 Figure 24: CASE tools in the dimensions of the software engineering 35 Figure 25: CASE and software process evaluation methods and standards 37 Figure 26: Overview of chosen process maturity and improvement models 37 Figure 27: A model showing the stages of measurement that organizations typically go through 44 Figure 28: Intentions of chosen software engineering laws 47 Figure 29: User’s cognitive structure of software evaluation by Wong and Jeffery 48 Figure 30: The LIPE activities and product flow among them by Zettel et al. 48 Figure 31: Metrics depends on stakeholder needs 49 Figure 32: The enterprise project management model 54 Figure 33: Schema of a IT Balanced Scorecard 55 Figure 34: Project definition, priorities and incremental development 58 Figure 35: Function Points per hour in different IT domains 59 Figure 36: The history of function point methods development 69 Figure 37: Layers of metrics data bases 77 Figure 38: Distribution by business domain of ISBSG projects that provided defect data in percentage 80 Figure 39: The ISBSG repository using in the Web 81 Figure 40: The concept of Basili’s Experience Factory 82 Figure 41: The measurement data warehouse approach 82 Figure 42: The mediated measurement repository 83 Figure 43: The service bus‐oriented measurement repository 83 Figure 44: A holistic presentation of the software process involvements 84 v Figure 45: The SPE based process network 85 Figure 46: The PIM based process related semantic network 86 Figure 47: An EMP based process related semantic network 87 Figure 48: A SMP based process related semantic network 88 Figure 49: The different process semantic network levels 90 Figure 50: metrics tools integrated into CASE‐Tool 112 Figure 51: Together metrics dialog 117 Figure 52: Visual Studio Code Metrics Results Window 118 Figure 53: Enterprise Architect Use Case Metrics dialog 120 Figure 54: Eclipse metrics view 123 Figure 55: Metrics One Class metrics 124 Figure 56: Kiviat charts in RAD Studio 125 vi List of Tables Table 1: Chosen maturity models 19 Table 2: Characteristics of different sigma levels 26 Table 3: Software Quality Drivers 44 Table 4: Expenditures by activity for a conventional software project 59 Table 5: Percentage of respondents in a European survey of management practices 63 Table 6: Delivered defects per Function Points 63 Table 7: Percentages of process activities in different kinds of projects 64 Table 8: Percentage of Organizations having QA and metrics efforts in place Based on a worldwide survey 64 Table 9: Attributes of the ISBSG Benchmarking Data CD Release 8 80 Table 10: The supported metrics in Metrics Eclipse Plug‐in 122 Table 11: Overview of metrics concept 127 vii viii List of Abbreviations AOP Aspect‐Oriented Programming ANSI American National Standards Institute AOSE Agent‐Oriented Software Engineering API Application Programming Interface ASG Allen Systems Group BPMN Business Process Modeling Notation BPEL Business Process Execution Language CASE Computer‐Aided Software Engineering CAME Computer Assisted software Measurement and Evaluation CBSE Component‐Based Software Engineering CBO Coupling Between Objects CFP Cosmic Function Point CMM Capability Maturity Model CMMI Capability Maturity Model Integration COCOMO Constructive Cost Model COM Component Object Model CORBA Common Object Request Broker Architecture COSMIC the Common Software Measurement International Consortium COTS Commercial, Off‐The‐Shelf CSV Comma‐Separated Values CWM Common Warehouse Metamodel C&K Chidamber and Kemerer DACS Data & Analysis Center for Software ix DAML DARPA Agent Markup Language DBMS Database Management System DBS Database System DCE Distributed Computing Environment DDL Data Definition Language DML Data Manipulating Language DIT Depth of Inheritance Tree DPDS DACS Productivity Center DTD Document Type Definition EAI Enterprise Application Integration EBD Event‐Based Design EF Experience Factory ERP Enterprise Resource Planning ETL Extract Transform Load FOD Feature‐Oriented Design FP Function Point GQM Goal‐Question‐Metric GUI Graphical User Interface HTML Hyper Text Markup Language ICASE Integrated Computer Aided Software Engineering ICT Information and Communication Technology IDL Interactive Data Language IEC International Electrotechnical Commission IEEE Institute of Electrical & Electronics Engineers x IFPUG International Function Point Users Group IPD‐CMM Integrated Product Development CMM IPSE Integrated Project Support Environment ISBSG International Software Benchmarking Standard Group ISO International Standardization Organization IT Information Technology J2EE Java Platform, Enterprise Edition KDSI Kilo Delivered Source Instructions LCOM Lack of Cohesion in Methods LOC Lines