Research topics in software evolution and maintenance

Más vistas

Research topics in software evolution and maintenance

Libro - ebook

0

Disponibilidad: Disponible


Categoría: Ingeniería de Sistemas

Editorial: Universidad Nacional de Colombia

Universidad Nacional de Colombia

Año de Edición: 2012

2012
This book provides the readers an overview of the main research topics involved in software evolution and maintenance, as well as, a review and explanation of several of their underlying technologies. It is focused on topics such as: program comprehension, mining software repositories, software visu...
Más Información
Nombre de ProductoPrecioAñadir
Research topics in software evolution and maintenance

ISBN: 9789587611625

9789587611625

Libro Impreso

Sin existencias

COP $ 35.000
Aviseme disponibilidad
Research topics in software evolution and maintenance

eISBN: 9789587611670

9789587611670

e-book

COP $ 11.000

O BIEN

SKU: 198126-BW1011213012

Producto creado el 01/01/1970

description~Descripción~pv

Detalles

This book provides the readers an overview of the main research topics involved in software evolution and maintenance, as well as, a review and explanation of several of their underlying technologies. It is focused on topics such as: program comprehension, mining software repositories, software visualization, evolutionary development process models, software change management, software reverse engineering and model-based testing and development. Thus, this book is suitable for researchers and students looking for an introduction and comprehensive overview of current research topics in software evolution and maintenance. The authors are all professors and graduate students at Universidad Nacional de Colombia, members of the Software Engineering Group - ColSWE -, who have been conducting research in this field during the last five years.
grouped.book.tab~Info Libro~pv

Información adicional

Editor / MarcaUniversidad Nacional de Colombia
CiudadBogotá
FacultadVicerrectoría General
Año de Edición2012
Número de Páginas256
Idioma(s)Español
Alto y ancho16.5 x 24
Peso0.5300
Tipo Productolibro
grouped.ebook.tab~Info e-Book~pv

Información adicional

Editor / MarcaUniversidad Nacional de Colombia
DRM
Idioma(s)Inglés
Tipo ProductoPDF
Tipo Archivo (ebooks)PDF
Peso (ebooks)10.37
Opciones de ebookEbook - Descarga
custom_attributes_author~Autor~pv

Varios Autores

información no disponible.

custom_attributes_toc~Tabla de Contenido~pv

Preface

Chapter 1
Summarizing Software Artifacts: Overview and Applications


Abstract
1.1 Introduction
1.2 Essentials on Natural Language Summarization
1.2.1 The Dimensions of Summarization
1.2.2 Summarization Evaluation
1.3 Summarizing Software Artifacts: Existing Approaches
1.3.1 Summarizing Documentation
1.3.2 Summarizing Source Code
1.3.3 Combining Software Artifacts
1.4 Making Easier Software Evolution: Using Software Summaries in Maintenance Activities 1.4.1 Software Comprehension
1.4.2 Reverse Engineering
1.5 Trends and Challenges References

Chapter 2
Survey and Research Trends in Mining Software


Repositories
Abstract
2.1 Introduction
2.2 Understanding Software Repositories
2.2.1 Historical Repositories
2.2.2 Communications Logs
2.2.3 Source Code
2.2.4 Other Kind of Repositories
2.3 Processes of Mining Software Repositories
2.3.1 Techniques
2.3.2 Tools

2.4 Purpose of Mining Software Repositories
2.4.1 Program Understanding
2.4.2 Prediction of Quality of Software Systems
2.4.3 Discovering Patterns of Change and Refactoring’s
2.4.4 Measuring of the Contribution of Individuals
2.4.5 Modeling Social and Development Processes
2.5 Trends and Challenges
2.5.1 Thinking in Distributed Version Control Systems
2.5.2 Integrating and Redesigning Repositories
2.5.3 Simplifying MSR Techniques
2.6 Summary
References

Chapter 3
Software Visualization to Simplify the Evolution of Software Systems


Abstract
3.1 Introduction
3.2 Background on Software Visualization
3.2.1 How Software Visualization Supports Software Evolutions Tasks
3.2.2 The Software Visualization Pipeline
3.2.3 Overview of Visualization Tools
3.2.4 Sources of Information Commonly Used
3.2.5 Differences of Software Visualization and Modeling Languages Like UML
3.3 SV Techniques
3.3.1 Metaphors
3.3.2 2D Approaches
3.3.3 3D Approaches
3.3.4 Virtual Environments
3.4 Towards a Better Software Visualization Process
3.4.1 Other Programming Paradigms
3.4.2 Include Other Languages
3.4.3 Better and More Flexible Metaphors
3.4.4 Educational Issues
3.5 Summary References

Chapter 4
Incremental Change: The Way that Software Evolves


Abstract
4.1 Introduction
4.2 Incremental Change in the Software Development Process
4.2.1 Software Maintenance vs. Software Evolution
4.2.2 Activities of Incremental Change
4.3 Concept and Feature Location
4.3.1 Software Comprehension
4.3.2 Concept Location
4.3.3 Static Techniques
4.4 Impact Analysis
4.5 Summary References

Chapter 5
Software Evolution Supported by Information Retrieval


Abstract
5.1 Introduction
5.2 Information Retrieval
5.2.1 Classic Models
5.2.2 Alternative and Hybrid Models
5.2.3 Web Models
5.3 Software Evolution Activities
5.3.1 Incremental Change
5.3.2 Software Comprehension
5.3.3 Mining Software Repositories
5.3.4 Software Visualization
5.3.5 Reverse Engineering & Reengineering
5.3.6 Refactoring

5.4 Information Retrieval and Software Evolution
5.4.1 Concept/Feature Location
5.4.2 Mining Software Repositories (MSR)
5.4.3 Automatic Categorization of Source
Code Repositories
5.4.4 Summarization of Software Artifacts
5.4.5 Traceability Recovery
5.5 Summary
References

Chapter 6
Reverse Engineering in Procedural Software Evolution


Abstract
6.1 Introduction
6.2 Reverse Engineering Concepts and Relationships
6.2.1 Reverse Engineering and Software Comprehension
6.2.2 Reverse Engineering and Software Maintenance
6.2.3 Reverse Engineering Concepts
6.3 Techniques in Reverse Engineering
6.3.1 Standard Techniques
6.3.2 Specialized Techniques

6.4 Application of Techniques
6.4.1 Description of the System
6.4.2 Considerations for Applying Reverse Engineering
6.4.3 Application of Standard Techniques
6.4.4 Application of Specialized Techniques
6.5 Reverse Engineering Assessment
6.5.1 Assessment of Techniques
6.5.2 Assessment of Tools
6.6 Trends and Challenges
References

Chapter 7
Agility Is Not Only About Iterations but Also About Software Evolution


Abstract
7.1 Introduction
7.2 Evolutionary Software Processes
7.2.1 EVO
7.2.2 Spiral
7.2.3 The Unified Process Family
7.2.4 Staged Model
7.3 Principles, Agility and the Agile Manifesto
7.3.1 The Agile Manifesto
7.3.2 Agile Principles
7.3.3 Agility in Software Development

7.4 Agile Methodologies History
7.4.1 Iterative Development (1970-1990)
7.4.2 The Birth of Agile Methodologies (1990-2001)
7.4.3 The Post-manifesto Age (2001-2011)
7.5 Agile Methodologies Overview
7.5.1 Extreme Programming (XP) 7.5.2 SCRUM
7.5.3 Feature Driven Development (FDD)
7.5.4 Lean Agile Development: LSD, Kanban, Scrumban
7.5.5 Agile Versions of UP: AgileUP, Basic/OpenUP
7.6 Agility and Software Evolution
7.7 Trends and Challenges References

Chapter 8
Software Development Agility in Small and Medium Enterprises (SMEs)


Abstract
8.1 Introduction
8.2 Legal Definition of SMEs
8.2.1 Foreign Definitions
8.2.2 Local Definition (Colombia)

8.3 Agile Methodologies in the Real World
8.3.1 Knowledge about Agile Methodologies
8.3.2 People Who Practiced Agile at a Previous Company
8.3.3 Roles in Agile Usage
8.3.4 Reasons for Agile Adoption
8.3.5 Agile Methodology Used
8.3.6 What Already Have Been Achieved by Using ASDM
8.3.7 Barriers to Further Agile Adoption
8.3.8 Agile Practices
8.3.9 Plans for Implementing Agile on Future Projects
8.3.10 Using Agile Techniques on Outsourced Projects

8.4 Agility Assessment Models
8.4.1 Boehm and Turner's Agility and Discipline Assessment
8.4.2 Pikkarainen and Huomo's Agile Assessment Framework
8.5 Weaknesses and Strengths of Agile
Methodologies
8.6 Challenges Adopting Agile Methodologies in SMEs 8.7 Summary
References

Chapter 9
Model-driven Development and Model-driven Testing


Abstract
9.1 Introduction
9.1.1 Challenges of Software Development
9.1.2 Traditional Testing Process
9.1.3 A solution to face the Problem
9.1.4 Model-based Testing
9.2 Why to Use Model-driven Architecture in Agile Methodologies
9.3 Model-driven Development
9.3.1 Philosophy
9.3.2 Unified Modeling language
9.4 Model-driven Architecture
9.4.1 Software Engineering

9.5 What the Model-driven Architecture Does Not Do
9.6 Notations for Modeling Tests
9.6.1 Transitions-based Modeling
9.6.2 Pre/Post Modeling
9.7 Testing from Finite State Machines
9.7.1 FSM and Model/Unit
9.7.2 Case Study
9.8 Testing from Pre/Post Models
9.8.1 Object Constraint language (OCL)
9.8.2 Case Study
9.9 Trends and Challenges
9.10 Summary
References

Subject Index
Name Index

reviews~Reseñas~pv