Models of Software Evolution: Life Cycle and Process
13
Citation
12
Reference
20
Related Paper
Citation Trend
Abstract:
This module presents an introduction to models of software system evolution and their role in structuring software development. It includes a review of traditional software life-cycle models as well as software process models that have been recently proposed. It identifies three kinds of alternative models of software evolution that focus attention to either the products, production processes, or production settings as the major source of influence. It examines how different software engineering tools and techniques can support life-cycle or process approaches. It also identifies techniques for evaluating the practical utility of a given model of software evolution for development projects in different kinds of organizational settings.Keywords:
Software evolution
Personal software process
Package development process
Social software engineering
Software development is a highly complex and creative process. Producing software systems which fulfill all functional and nonfunctional requirements and exhibit adequate quality is challenging. Software Engineering aims to provide systematic methods and tools to overcome
these challenges and improve the software development process. However, since the development of software is still an endeavor heavily based on creativity and human activities, it is difficult to evaluate whether new methods, practices or tools have a positive impact or not. Empirical Software Engineering applies scientific research strategies to the field of software engineering. These strategies are common in social and behavioral sciences, and support the evaluation of human-based
activities. This paper gives an introduction into empirical strategies in software engineering, especially case studies, and how they can be used to evaluate results of research projects considering their value in practice. With an example thesis project we aim to illustrate how the theories and concepts can be applied. The paper is primarily based on the book Experimentation in Software Engineering by Wohlin et al.
Social software engineering
Personal software process
Software peer review
Software requirements
Cite
Citations (0)
Social software engineering
Personal software process
Package development process
Cite
Citations (9)
This abstract summarizes the paper accepted at the Journal of Systems and Software with the same title [1].
Automated production systems form the backbone of the world’s industrial production. They are highly specialized technical systems, which are comprised of mechanical, electrical and electronic parts and software, all closely interwoven. Software is the defining factor to realize modern trends in manufacturing as defined by mass customization, small lot sizes, high variability of product types, and a changing product portfolio during the lifecycle of an automated production system. However, the software can control the production system only via electrical and mechanical means, which have their individual life cycles and undergo evolution. Hence, the evolution of automated production systems always requires addressing cross-disciplinary evolution challenges.
We provide an interdisciplinary survey on the challenges, the state-of-the-art as well as research directions with respect to the evolution of software in automated production systems. In the first part, we discuss the specifics of the development process as well as the different types of evolutions during the system’s life-cycle. In the second part, we survey the challenges due to evolution covering the different development phases (requirements, design, implementation, validation & verification) and several important cross-cutting aspects (variability management, model-driven engineering, and traceability), and review existing potential approaches. Finally, we outline future research directions for the discussed challenges.
Traceability
Cite
Citations (4)
Sketch
Personal software process
Package development process
Social software engineering
Software documentation
Cite
Citations (7)
Research into traditional software evolution has been tackled from two broad perspectives: that focused on the how, which looks at the processes, methods and techniques to implement and evolve software; and that focused on the what/why perspective, aiming at achieving an understanding of the drivers and general characteristics of the software evolution phenomenon.
The two perspectives are related in various ways: the study of the what/why is for instance essential to achieve an appropriate management of software engineering activities, and to guide innovation in processes, methods and tools, that is, the how. The output of the what/why studies is exemplified by empirical hypotheses, such as the staged model of software evolution,.
This paper focuses on the commonalities and differences between the evolution and patterns in the lifecycles of traditional commercial systems and free/libre/open source software (FLOSS) systems. The existing staged model for software evolution is therefore revised for its applicability on FLOSS systems.
Software evolution
Cite
Citations (0)
Software process modeling has undergone extensive changes in the last three decades, impacting process' structure, degree of control, degree of visualization, degree of automation and integration. These changes can be attributed to several factors. This paper studies two of these factors, the time dimension and the interdisciplinary impact, and assesses their effect on the evolution of process modeling. A literature survey for software process modeling was carried out which provided evidence of how the time dimension and the interdisciplinary impact triggered process evolution and changes in methodology, technology experience and business requirements. Finally, the paper concludes with a theoretical framework to serve as an illustrative model for the effects of the time dimension and interdisciplinary impact on process modeling evolution. This framework can serve as to develop more advanced models for technological forecasting in software process modeling evolution.
Process modeling
Software evolution
Cite
Citations (0)
Research into traditional software evolution has been tackled from two broad perspectives: that focused on the how, which looks at the processes, methods and techniques to implement and evolve software; and that focused on the what/why perspective, aiming at achieving an understanding of the drivers and general characteristics of the software evolution phenomenon.
Software evolution
Software analytics
Social software engineering
Cite
Citations (34)
Empirical modeling improves software development activities by adding the capabilities in terms of computer procedures, associated documentation, and programs. The nature of software engineering is to develop, not produce and empirical is a human-based technology. Integrating empirical modeling in software development life cycle has been proved to reduce cost, time and effort. In addition, it helps to develop quality software and enhances reuse capability of software. The article includes all the associated methods of an empirical model that can help in developing new software with software engineering terminology. The empirical modeling helps in software engineering terminology for the application and tailoring of techniques, life cycle model and methods for estimating software problems, organizations, and projects. The empirical modeling is basically based on the experimental approach and relates with the applications of science and mathematics. This article is proposed for empirical methods to improve the software engineering approaches. A software engineering approach is a systematic approach for the development, operation, maintenance and termination of software. Currently, in software engineering, there is an insufficient set of models, lack of identification of limits of current technologies, lack of insufficient analysis and experimental approach. So here we introduced that why we need empirical methods for the improvement in software engineering.
Software sizing
Social software engineering
Empirical Research
Personal software process
Software requirements
Software metric
Cite
Citations (1)
Social software engineering
Cite
Citations (1)
This paper outlines the major problems and research directions in software process engineering. These problems concern the terminology and language of models; the difference between type and instance ; the inherent reflexivity of detailed process models and the dynamic aspects of process models. Furthermore human factors are shown to impose major difficulties on process engineers.
Cite
Citations (3)