MDE software process lines in small companies (original) (raw)

A model-driven approach to managing and customizing software process variabilities

2010

This paper presents a model-driven approach to managing and customizing software process variabilites. It promotes the productivity increase through: (i) the process reuse; and (ii) the integration and automation of the definition, customization, deployment and execution activities of software processes. Our approach is founded on the principles and techniques of software product lines and model-driven engineering. In order to evaluate the feasibility of our approach, we have designed and implemented it using existing and available technologies.

A Practical Experience of a Software Process Line Creation

Software process definition is a complex, time consuming and error prone activity. Such activity can be facilitated by a process reuse strategy. This strategy can be implemented through process line and components structures. This work presents a case study of a real process line creation in the context of an oil and gas company in Brazil. The results indicate both practical use and its potential to assess completeness and to identify inconsistencies in the organizational process.

Automating the Variability Management, Customization and Deployment of Software Processes: A Model-Driven Approach

2010

This paper presents a model-driven and integrated approach to variability management, customization and execution of software processes. Our approach is founded on the principles and techniques of software product lines and model-driven engineering. Model-driven engineering provides support to the specification of software processes and their transformation to workflow specifications. Software product lines techniques allows the automatic variability management of process elements and fragments. Additionally, in our approach, workflow technologies enable the process execution in workflow engines. In order to evaluate the approach feasibility, we have implemented it using existing model-driven technologies. The software processes are specified using Eclipse Process Framework (EPF). The automatic variability management of software processes has been implemented as an extension of an existing product derivation tool. Finally, ATL and Acceleo transformation languages are adopted to transform EPF process to jPDL workflow language specifications in order to enable the deployment and execution of software processes in the JBoss BPM workflow engine.

An MDE approach to software process tailoring

2011

Defining organizational processes is essential for enhancing maturity. However the best process depends on the particularities of each project. Typically a process engineer defines a specific process for each project in an ad-hoc fashion, which is expensive, unrepeatable and error prone. Trying to deal with this challenge we propose a model-based approach to software process tailoring that generates project specific processes based on the organizational process and the project context. The approach is systematic, repeatable and it does not depend on the people using it. The proposal has been applied for tailoring the Requirements Engineering process of a medium size company. The obtained results were validated by process engineers of the company. Processes obtained using the proposed approach matched the ones used in the company for planned contexts and also they were reasonable for non-expected situations.

Process Institutionalization Using Software Process Lines

Proceedings of the 11th International Conference on Enterprise Information, 2009

Software Process Institutionalization is an important step which must be carried out by organizations if they are to improve their processes, and must take place in a coherent manner in accordance with the organization's policies. However, process institutionalization implies adapting processes from a set of the organization's standard processes, and these standard processes must be continually maintained and updated through the standardization of best practices, since adaptation in itself cannot create capable processes. In this paper we propose using the philosophy of software process lines to design a cycle and specify a set of techniques and practices to institutionalize software processes. The cycle, techniques and practices include both process tailoring and process standardization to offer organizations an infrastructure with which to generate processes that are better fitted to their necessities. The use of our cycle will enable capable processes to be tailored from software process lines, and the analysis of these processes will permit the improvement of the organization's set of standard processes and of the software process line.

Scoping software process lines

Software Process: Improvement and Practice, 2009

Defining organization-specific process standards by integrating, harmonizing, and standardizing heterogeneous and often implicit processes is an important task, especially for large development organizations. On the one hand, such a standard must be generic enough to cover all of the organization's development activities; on the other hand, it must be as detailed and precise as possible to support employees' daily work. Today, organizations typically maintain and advance a plethora of individual processes, each addressing specific problems. This requires enormous effort, which could be spent more efficiently. This article introduces an approach for developing a Software Process Line that, similar to a Software Product Line, promises to reduce the complexity and thus, the effort required for managing the processes of a software organization. We propose Scoping, Modeling, and Architecting the Software Process Line as major steps, and describe in detail the Scoping approach we recommend, based on an analysis of the potential products to be produced in the future, the projects expected in the future, and the respective process capabilities needed. In addition, the article sketches experience from determining the scope of space process standards for satellite software development. Finally, it discusses the approach, draws conclusions, and gives an outlook on future work.

Towards an Integration of Software Product and Software Process Modeling

Integrated Computer-Aided Engineering, 1996

This paper discusses the integration of software product and software process modeling and management in the context of "programming-in-the large" software engineering environments. We analyze the principal concepts developed to give a formal description of software products and how such products are manufactured in such environments. Focusing on software products. we show the earliest attempts to give formal representations of the application of data modeling concepts with respect to software engineering requirements. This study has been carried out primarily in the context of software configuration management systems. Focusing on the software processes. we highlight recent efforts in the development of programming languages to describe the software processes. We conclude by presenting the ADELE/TEMPO project. which is a software environment combining software product with software process modeling and configuration management with software process control.

Process Models in Software Engineering

Introduction Software systems come and go through a series of passages that account for their inception, initial development, productive operation, upkeep, and retirement from one generation to another. This article categorizes and examines a number of methods for describing or modeling how software systems are developed. It begins with background and definitions of traditional software life cycle models that dominate most textbook discussions and current software development practices. This is followed by a more comprehensive review of the alternative models of software evolution that are of current use as the basis for organizing software engineering projects and technologies.

Tailoring and instantiation of MDE process models: a Y model-based approach

The adoption of MDE in software development has drastically changed the way of developing software products. It gives a way of automating software development while reducing production time. While software companies need continually to improve and customize their software processes, a quick approach to do so is still lacking. Most of those companies have an organizational process that is used whenever they have an upcoming development project. Reusing the same process for any development project is somehow inadequate. So, tailoring of such a process is necessary to fit projects specificities. However, even if that tailored process can be used for a specific project, it still lacks information about resources needed for execution. In this article, we propose a Y model-based approach that allows tailoring a MDE process model and instantiating it for a specific project in the context of an organization. This approach is made possible by using models transformations. We defined metamodels to express the context and resources of a project. It results in a more optimal use of stakeholder's roles and a better way of producing software. We illustrate our approach with the UWE Process in a context of a maintenance project with J2EE.

Meta Model Based Architecture for Software Process Instantiation

Lecture Notes in Computer Science, 2009

In order to re-use software processes for a spectrum of projects they are described in a generic way. Due to the uniqueness of software development, processes have to be adapted to project specific needs to be effectively applicable in projects. This instantiation still lacks standardization and tool support making it error prone, time consuming and thus expensive. Siemens AG has started research projects aiming to improve software process related activities. Part of these efforts has been the development of a New Software Engineering Framework (NSEF) enabling a more effective and efficient instantiation and application of processes. A system supporting project managers in instantiation of software processes is being developed. It aims to execute instantiation decision made by humans and to automatically restore correctness of the resulting process.