You are previewing Handbook of Research on Emerging Advancements and Technologies in Software Engineering.
O'Reilly logo
Handbook of Research on Emerging Advancements and Technologies in Software Engineering

Book Description

Advanced approaches to software engineering and design are capable of solving complex computational problems and achieving standards of performance that were unheard of only decades ago. Handbook of Research on Emerging Advancements and Technologies in Software Engineering presents a comprehensive investigation of the most recent discoveries in software engineering research and practice, with studies in software design, development, implementation, testing, analysis, and evolution. Software designers, architects, and technologists, as well as students and educators, will find this book to be a vital and in-depth examination of the latest notable developments within the software engineering community.

Table of Contents

  1. Cover
  2. Title Page
  3. Copyright Page
  4. Book Series
  5. Editorial Advisory Board and List of Reviewers
    1. Editorial Advisory Board
  6. Foreword
  7. Preface
  8. Section 1: Software Requirements
    1. Chapter 1: What, Why, Who, When, and How of Software Requirements
      1. ABSTRACT
      2. WHAT
      3. WHY
      4. WHO
      5. WHEN
      6. HOW
      7. CONCLUSION
      8. REFERENCES
      9. ADDITIONAL READING
      10. KEY TERMS AND DEFINITIONS
    2. Chapter 2: Critical Issues in Requirements Engineering Education
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. CURRENT STATUS OF REQUIREMENTS ENGINEERING EDUCATION
      4. 3. CRITICAL ISSUES IN TEACHING REQUIREMENTS ENGINEERING
      5. 4. PROPOSED TEACHING APPROACHES FOR REQUIREMENTS ENGINEERING EDUCATION
      6. 5. FUTURE DIRECTIONS OF REQUIREMENTS ENGINEERING EDUCATION RESEARCH
      7. 6. SUMMARY AND CONCLUSION
      8. REFERENCES
      9. ADDITIONAL READING
      10. KEY TERMS AND DEFINITIONS
    3. Chapter 3: When the Wisdom of Communication is Vital During the Requirements Elicitation Process
      1. ABSTRACT
      2. INTRODUCTION
      3. REQUIREMENTS ENGINEERING BEST PRACTICES
      4. THE ROLE OF COMMUNICATION
      5. REQUIREMENTS ELICITATION PROCESS: THE EXPERIENCE
      6. LESSONS LEARNT
      7. CONCLUSION
      8. REFERENCES
      9. KEY TERMS AND DEFINITIONS
  9. Section 2: Software Design and Construction
    1. Chapter 4: State-of-the Art Concepts and Future Directions in Modelling Coordination
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. ILLUSTRATIVE CASE STUDY
      5. COORDINATION FEATURES
      6. COORDINATION LANGUAGES
      7. ON THE USE OF FORMAL METHODS
      8. FUTURE RESEARCH DIRECTIONS
      9. CONCLUSION
      10. REFERENCES
      11. ADDITIONAL READING
      12. KEY TERMS AND DEFINITIONS
    2. Chapter 5: Low-Overhead Development of Scalable Resource-Efficient Software Systems
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. BACKGROUND AND RELATED WORK
      4. 3. THE FRAMEWORK OF THE SELF-ADAPTIVE CONTAINER LIBRARY AND IMPLEMENTATION
      5. 4. FUTURE RESEARCH DIRECTIONS
      6. 5. CONCLUSION
      7. REFERENCES
      8. KEY TERMS AND DEFINITIONS
    3. Chapter 6: An Empirical Study of the Effect of Design Patterns on Class Structural Quality
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. LITERATURE REVIEW
      4. 3. BACKGROUND
      5. 4. DATA SOURCE AND DATA MINING PROCESS
      6. 5. Analysis and Results
      7. 6. THREATS TO VALIDITY
      8. 7. CONCLUSION AND FUTURE WORK
      9. REFERENCES
      10. KEY TERMS AND DEFINITIONS
      11. ENDNOTES
    4. Chapter 7: Service Discovery Framework for Distributed Embedded Real-Time Systems
      1. ABSTRACT
      2. INTRODUCTION
      3. REQUIREMENTS FOR SERVICE DISCOVERY FRAMEWORKS
      4. RELATED WORK
      5. SERVICE DISCOVERY FRAMEWORK FOR DISTRIBUTED EMBEDDED REAL-TIME SYSTEMS
      6. EVALUATION
      7. COMPARATIVE EVALUATION
      8. LIMITATIONS AND FUTURE RESEARCH DIRECTIONS
      9. CONCLUSION
      10. REFERENCES
      11. KEY TERMS AND DEFINITIONS
    5. Chapter 8: An Algebraic Approach for the Specification and the Verification of Aspect-Oriented Systems
      1. ABSTRACT
      2. 1 INTRODUCTION
      3. 2 BACKGROUND
      4. 3 ASPECT ORIENTED ALGEBRAIC APPROACH
      5. 4 MODULE INTERCONNECTION
      6. 5 ASPECT PREVENTION MECHANISM
      7. 6 CONCLUSION AND FUTURE WORK
      8. ACKNOWLEDGMENT
      9. REFERENCES
      10. KEY TERMS AND DEFINITIONS
  10. Section 3: Model-Driven Development
    1. Chapter 9: Supporting Model-Driven Development
      1. ABSTRACT
      2. INTRODUCTION
      3. MODEL DRIVEN DEVELOPMENT BACKGROUND
      4. CASE STUDIES
      5. CONCLUSION
      6. REFERENCES
      7. ADDITIONAL READING
      8. KEY TERMS AND DEFINITIONS
    2. Chapter 10: A Model-Driven Solution for the Automatic Generation of Executable Code from Business Process Models
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. BACKGROUND
      4. 3. UNDERLYING APPROACHES
      5. 4. AN OVERVIEW OF THE MODEL TRANSFORMATION PROCESS
      6. 5. USING MeTAGeM TO AUTOMATE THE MODEL TRANSFORMATION
      7. 6. CASE STUDY
      8. 7. CONCLUSION AND FUTURE WORK
      9. ACKNOWLEDGMENT
      10. REFERENCES
      11. KEY TERMS AND DEFINITIONS
    3. Chapter 11: Modeling Platform-Independent and Platform-Specific Service Architectures with UML and the ArchiMeDeS Framework
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. PROPOSAL OF PIM-LEVEL UML PROFILE FOR SERVICE ARCHITECTURES
      5. PROPOSAL OF PSM-LEVEL UML PROFILE FOR SERVICE ARCHITECTURES
      6. USING ARCHIMEDES AND UML PROFILES TO ARCHITECT THE GESIMED SYSTEM
      7. CONCLUSION AND FUTURE LINES OF RESEARCH
      8. ACKNOWLEDGMENT
      9. REFERENCES
      10. ADDITIONAL READING
      11. KEY TERMS AND DEFINITIONS
  11. Section 4: Agile Methods
    1. Chapter 12: Back to Basics
      1. ABSTRACT
      2. INTRODUCTION
      3. ORGANIZATION OF THE CHAPTER
      4. CHARACTERISTICS OF A ‘BIG’ SYSTEM
      5. PREFERRED METHODOLOGY FOR ‘BIG’ SYSTEMS
      6. PROBLEMS OF THE WATERFALL MODEL
      7. THE FEAR OF CHANGE
      8. SPECIFYING REQUIREMENTS: WHEN AND HOW?
      9. INCREMENTAL REQUIREMENTS SPECIFICATION
      10. THE LIGHTWEIGHT APPROACH
      11. THE VISION PHASE VS. THE ANALYSIS PHASE
      12. QUALITY CONTROL AND QUALITY ASSURANCE FACTORS
      13. ATTENTION TO FAILURE
      14. INTELLECTUAL AND THEORETICAL SUPPORT FOR AGILE METHODOLOGIES
      15. CONCLUSION
      16. REFERENCES
      17. ADDITIONAL READING
      18. KEY TERMS AND DEFINITIONS
    2. Chapter 13: Integrating Security into Agile Models
      1. ABSTRACT
      2. 1. AGILE MODELS
      3. 2. SOFTWARE SECURITY
      4. 3. ENHANCED AGILE MODELS WITH SECURITY
      5. 4. CONCLUSION
      6. REFERENCES
      7. KEY TERMS AND DEFINITIONS
    3. Chapter 14: Agile Development Processes and Knowledge Documentation
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. SUPPORTING AGILE DOCUMENTATION
      5. REPRESENTATION OF DOMAIN KNOWLEDGE IN THE SYSTEM CODE
      6. THE ADSA SYSTEM DESIGN
      7. DISCUSSION
      8. SUMMARY
      9. REFERENCES
      10. KEY TERMS AND DEFINITIONS
  12. Section 5: Software Quality and Testing
    1. Chapter 15: An Integrated Secure Software Engineering Approach for Functional, Collaborative, and Information Concerns
      1. ABSTRACT
      2. 1 INTRODUCTION
      3. 2 BACKGROUND
      4. 3 FUNCTIONAL SECURITY
      5. 4 COLLABORATIVE SECURITY
      6. 5 INFORMATION SECURITY
      7. 6 A SECURE SOFTWARE ENGINEERING PROCESS
      8. 7 FUTURE TRENDS
      9. 8 CONCLUSION
      10. REFERENCES
      11. KEY TERMS AND DEFINITIONS
    2. Chapter 16: Lessons from Practices and Standards in Safety-Critical and Regulated Sectors
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. BACKGROUND
      4. 3. OVERVIEW AND COMPARISON OF SELECTED STANDARDS
      5. 4. SOLUTIONS AND RECOMMENDATIONS: SW ENGINEERING STANDARDS IN PROCESS IMPROVEMENT
      6. 5. FUTURE RESEARCH DIRECTIONS
      7. 6. CONCLUSION
      8. REFERENCES
      9. ADDITIONAL READING
      10. KEY TERMS AND DEFINITIONS
    3. Chapter 17: The Role of Compliance and Conformance in Software Engineering
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. DESCRIBING SOFTWARE ENGINEERING ARTIFACTS
      5. THE INTERACTION BETWEEN ARTIFACTS
      6. FUTURE RESEARCH DIRECTIONS
      7. CONCLUSION
      8. REFERENCES
      9. ADDITIONAL READING
      10. KEY TERMS AND DEFINITIONS
    4. Chapter 18: T-Way Testing Strategies
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. T-WAY TESTING FUNDAMENTALS
      4. 3. A SURVEY OF T-WAY STRATEGIES
      5. 4. APPLICATIONS OF T-WAY TESTING STRATEGIES
      6. 5. CONCLUSION
      7. ACKNOWLEDGMENT
      8. REFERENCES
      9. KEY TERMS AND DEFINITIONS
    5. Chapter 19: An Improved Model-Based Technique for Generating Test Scenarios from UML Class Diagrams
      1. ABSTRACT
      2. INTRODUCTION
      3. RELATED WORKS
      4. MAIN FOCUS OF THE CHAPTER
      5. PROPOSED TECHNIQUE
      6. IMPLEMENTATION
      7. VALIDATION OF THE TECHNIQUE
      8. MATHEMATICAL MODEL FOR THE PROPOSED TECHNIQUE
      9. EXPERIMENTAL RESULTS
      10. COMPARISON WITH RELATED WORKS
      11. FUTURE RESEARCH DIRECTIONS
      12. CONCLUSION
      13. REFERENCES
      14. ADDITIONAL READING
      15. KEY TERMS AND DEFINITIONS
  13. Section 6: Software Quality Measurement
    1. Chapter 20: A Methodology for Model-Based Reliability Estimation
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. CHALLENGES
      5. FUTURE RESEARCH DIRECTIONS
      6. CONCLUSION
      7. REFERENCES
      8. KEY TERMS AND DEFINITIONS
    2. Chapter 21: Non-Intrusive Adaptation of System Execution Traces for Performance Analysis of Software Systems
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. BACKGROUND
      4. 3. MOTIVATION: UNITE AND IT’S LIMITATIONS
      5. 4. DESIGN AND IMPLEMENTATION OF SETAF
      6. 5. EXPERIMENTAL RESULTS
      7. CONCLUSION AND FUTURE WORK
      8. References
      9. KEY TERMS AND DEFINITIONS
    3. Chapter 22: Code Clone Detection and Analysis in Open Source Applications
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. CODE CLONE DETECTION
      5. EMPIRICAL EVALUATION ON OPEN SOURCE APPLICATIONS
      6. FUTURE RESEARCH DIRECTIONS
      7. CONCLUSION
      8. REFERENCES
      9. ADDITIONAL READING
      10. KEY TERMS AND DEFINITIONS
    4. Chapter 23: Important Issues in Software Fault Prediction
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. BACKGROUND OF THE PROBLEM
      4. 3. FAULT PREDICTION ISSUES
      5. 4. RELATED WORKS
      6. 5. FAULT PREDICTION CHALLENGES
      7. 6. CONCLUSION
      8. ACKNOWLEDGMENT
      9. REFERENCES
      10. KEY TERMS AND DEFINITIONS
      11. ENDNOTES
      12. APPENDIX 1
      13. APPENDIX 2
      14. APPENDIX 3
      15. APPENDIX 4
      16. APPENDIX 5
      17. APPENDIX 6
      18. APPENDIX 7.
    5. Chapter 24: Building Defect Prediction Models in Practice
      1. ABSTRACT
      2. INTRODUCTION
      3. DATA MINING AND KNOWLEDGE DISCOVERY FOR DEFECT PREDICTION
      4. EXPLORING REAL-WORD PROJECTS: AN INDUSTRIAL CASE
      5. CHOOSING LEARNING ALGORITHMS
      6. SELECTING ATTRIBUTES FROM DIFFERENT DATA SOURCES
      7. DEALING WITH NOISE AND DATA QUALITY ISSUES
      8. DEFECT PREDICTION FOR EVOLVING SYSTEMS
      9. CONCLUSION AND FUTURE RESEARCH DIRECTIONS
      10. REFERENCES
      11. KEY TERMS AND DEFINITIONS
  14. Section 7: Software Management and Evolution
    1. Chapter 25: Knowware-Based Software Engineering
      1. ABSTRACT
      2. 1. EXPERIMENT OF SEPARATING APPLICATION KNOWLEDGE DEVELOPMENT FROM SOFTWARE DEVELOPMENT: THE ORIGIN
      3. 2. KNOWWARE AS INDEPENDENT KNOWLEDGE COMMODITY: THE ESSENCE
      4. 3. KNOWWARE ENGINEERING: THE CORE TECHNIQUE (1)
      5. 4. OBJECT ORIENTED MIXWARE (SOFTWARE + KNOWWARE) ENGINEERING: THE CORE TECHNIQUE (2)
      6. 5. KNOWWARE IN COMPLICATED ENVIRONMENT: THE APPLICATIONS
      7. 6. PROMIS/KW, THE KNOWWARE BASED REDESIGN OF PROMIS: THE NEXT STEP (1)
      8. 7. RAPID PROTOTYPING TECHNIQUE OF KNOWWARE ENGINEERING IN POST-J2EE AGE: THE NEXT STEP (2)
      9. 8 RELATED WORK AND CONCLUSION
      10. ACKNOWLEDGMENT
      11. REFERENCES
      12. KEY TERMS AND DEFINITIONS
    2. Chapter 26: Software Evolution Visualization
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. CURRENT STATE AND CHALLENGES IN SOFTWARE EVOLUTION VISUALIZATION
      5. SOLUTIONS AND RECOMMENDATIONS
      6. RESEARCH DIRECTIONS
      7. CONCLUSION
      8. REFERENCES
      9. KEY TERMS AND DEFINITIONS
      10. ENDNOTES
  15. Compilation of References
  16. About the Contributors