3,919 research outputs found
Software Process Modeling with Eclipse Process Framework
The software development industry is constantly evolving. The rise of the agile methodologies in the late 1990s, and new development tools and technologies require growing attention for everybody working within this industry. The organizations have, however, had a mixture of various processes and different process languages since a standard software development process language has not been available.
A promising process meta-model called Software & Systems Process Engineering Meta- Model (SPEM) 2.0 has been released recently. This is applied by tools such as Eclipse Process Framework Composer, which is designed for implementing and maintaining processes and method content. Its aim is to support a broad variety of project types and development styles.
This thesis presents the concepts of software processes, models, traditional and agile approaches, method engineering, and software process improvement. Some of the most well-known methodologies (RUP, OpenUP, OpenMethod, XP and Scrum) are also introduced with a comparison provided between them. The main focus is on the Eclipse Process Framework and SPEM 2.0, their capabilities, usage and modeling.
As a proof of concept, I present a case study of modeling OpenMethod with EPF Composer and SPEM 2.0. The results show that the new meta-model and tool have made it possible to easily manage method content, publish versions with customized content, and connect project tools (such as MS Project) with the process content. The software process modeling also acts as a process improvement activity.Ohjelmistoprosessin mallinnus Eclipse Process Frameworkilla
ja SPEM 2.0 metamallilla
Ohjelmistot ja ohjelmistoteollisuus kehittyvät jatkuvasti. Ketterien menetelmien tulo 1990-luvun loppupuolella, uudet kehitystyökalut ja teknologiat vaativat yhä enemmän huomiota alalla työskenteleviltä ihmisiltä. Organisaatioilla on kuitenkin ollut sekalainen kirjo prosesseja ja erilaisia prosessikuvauskieliä, koska standardia kuvauskieltä ei ole ollut saatavilla.
Prosessimetamalli SPEM 2.0 julkaistiin hiljattain. Tätä mallia hyödyntää mm. Eclipse Process Framework Composer (EPFC) –työkalu, joka on suunniteltu prosessien ja menetelmäsisällön kehittämiseen ja ylläpitoon. Työkalun tavoitteena on tukea useita erilaisia projektityyppejä ja kehitystyylejä.
Tässä työssä esitellään seuraavat aiheet ja käsitteet: ohjelmistoprosessit, mallit, perinteiset ja ketterät lähestymistavat, metoditekniikkaa sekä prosessien kehittäminen. Lisäksi tutustutaan muutamiin tunnetuimmista metodologioista (RUP, OpenUP, OpenMethod, XP ja Scrum) ja vertaillaan näitä. Työssä tutkitaan tarkemmin Eclipse Process Framework Composer –työkalua, SPEM 2.0 metamallia, näiden ominaisuuksia, käyttöä sekä mallintamista.
Esitän tutkimustulokset ja tutkimuksenkulun OpenMethodin mallintamisesta EPFC –työkalulla sekä SPEM 2.0 -metamallilla. Tulokset osoittavat, että uusi metamalli ja työkalu helpottavat prosessin ja menetelmäsisällön hallintaa, mahdollistavat räätälöityjen julkaisujen teon sisällöstä, sekä yhdistävät prosessin projektityökaluihin kuten MS Projectiin. Mallinnus voidaan lisäksi ymmärtää osana prosessin kehittämistä.Siirretty Doriast
Software Development Process Modeling. Developers Perspective to Contemporary Modeling Techniques
Formal software development processes and well-defined development methodologies
are nowadays seen as the definite way to produce high-quality software within
time-limits and budgets. The variety of such high-level methodologies is huge
ranging from rigorous process frameworks like CMMI and RUP to more lightweight
agile methodologies. The need for managing this variety and the fact that
practically every software development organization has its own unique set of development
processes and methods have created a profession of software process
engineers. Different kinds of informal and formal software process modeling languages
are essential tools for process engineers. These are used to define processes
in a way which allows easy management of processes, for example process dissemination,
process tailoring and process enactment.
The process modeling languages are usually used as a tool for process engineering
where the main focus is on the processes themselves. This dissertation
has a different emphasis. The dissertation analyses modern software development
process modeling from the software developers’ point of view. The goal of the
dissertation is to investigate whether the software process modeling and the software
process models aid software developers in their day-to-day work and what are
the main mechanisms for this. The focus of the work is on the Software Process
Engineering Metamodel (SPEM) framework which is currently one of the most
influential process modeling notations in software engineering.
The research theme is elaborated through six scientific articles which represent
the dissertation research done with process modeling during an approximately
five year period. The research follows the classical engineering research discipline
where the current situation is analyzed, a potentially better solution is developed
and finally its implications are analyzed. The research applies a variety of different
research techniques ranging from literature surveys to qualitative studies done
amongst software practitioners.
The key finding of the dissertation is that software process modeling notations
and techniques are usually developed in process engineering terms. As a consequence
the connection between the process models and actual development work
is loose. In addition, the modeling standards like SPEM are partially incomplete
when it comes to pragmatic process modeling needs, like light-weight modeling
and combining pre-defined process components. This leads to a situation, where
the full potential of process modeling techniques for aiding the daily development
activities can not be achieved.
Despite these difficulties the dissertation shows that it is possible to use modeling
standards like SPEM to aid software developers in their work. The dissertation
presents a light-weight modeling technique, which software development teams
can use to quickly analyze their work practices in a more objective manner. The
dissertation also shows how process modeling can be used to more easily compare
different software development situations and to analyze their differences in a
systematic way. Models also help to share this knowledge with others.
A qualitative study done amongst Finnish software practitioners verifies the
conclusions of other studies in the dissertation. Although processes and development
methodologies are seen as an essential part of software development, the
process modeling techniques are rarely used during the daily development work.
However, the potential of these techniques intrigues the practitioners.
As a conclusion the dissertation shows that process modeling techniques, most
commonly used as tools for process engineers, can also be used as tools for organizing
the daily software development work. This work presents theoretical solutions
for bringing the process modeling closer to the ground-level software development
activities. These theories are proven feasible by presenting several case studies
where the modeling techniques are used e.g. to find differences in the work methods
of the members of a software team and to share the process knowledge to a
wider audience.Siirretty Doriast
PROCESS CONFORMANCE TESTING: A METHODOLOGY TO IDENTIFY AND UNDERSTAND PROCESS VIOLATIONS IN ENACTMENT OF SOFTWARE PROCESSES
Today's software development is driven by software processes and practices that when followed increase the chances of building high quality software products. Not following these guidelines results in increased risk that the goal for the software's quality characteristics cannot be reached. Current process analysis approaches are limited in identifying and understanding process deviations and ultimately fail in comprehending why a process does not work in a given environment and what steps of the process have to be changed and tailored.
In this work I will present a methodology for formulating, identifying and investigating process violations in the execution of software processes. The methodology, which can be thought of as "Process Conformance Testing", consists of a four step iterative model, compromising templates and tools. A strong focus is set on identifying violations in a cost efficient and unobtrusive manner by utilizing automatically collected data gathered through commonly used software development tools, such as version control systems. To evaluate the usefulness and correctness of the model a series of four studies have been conducted in both classroom and professional environments. A total of eight different software processes have been investigated and tested. The results of the studies show that the steps and iterative character of the methodology are useful for formulating and tailoring violation detection strategies and investigating violations in classroom study environments and professional environments.
All the investigated processes were violated in some way, which emphasizes the importance of conformance measurement. This is especially important when running an empirical study to evaluate the effectiveness of a software process, as the experimenters want to make sure they are evaluating the specified process and not a variation of it.
Violation detection strategies were tailored based upon analysis of the history of violations and feedback from then enactors and mangers yielding greater precision of identification of non-conformities.
The overhead cost of the approach is shown to be feasible with a 3.4% (professional environment) and 12.1% (classroom environment) overhead.
One interesting side result is that process enactors did not always follow the process for good reason, e.g. the process was not tailored for the environment, it was not specified at the right level of granularity, or was too difficult to follow. Two specific examples in this thesis are XP Pair Switching and Test Driven Development. In XP Pair Switching, the practice was violated because the frequency of switching was too high. The definition of Test Driven Development is simple and clear but requires a fair amount of discipline to follow, especially by novice programmers
Mastering Agile Practice Adoption through a Model-Driven Approach for the Combination of Development Methods
Many software companies are adapting their traditional development processes to incorporate agile practices. In this context, it is necessary to count on expert knowledge to evaluate different agile practices and configure them according to project needs. However, this expert knowledge is scarce, difficult to validate, and time-consuming, since it is applied manually. As a solution, the paper presents a model-driven approach, called SIAM, which automatically generates guidelines for the adoption of agile practices through the combination of different development methods. SIAM is supported by a meta-model architecture to implement a knowledge repository that characterizes method configuration decisions, which can be reused in different development projects. SIAM has been implemented in a tool suite that facilitates the specification of models and the identification of issues during the definition of the development processes. The approach has been successfully applied to reconfigure an industrial development process with agile methods, showing that the effort required for tailoring agile practices according to organizational standards is considerably reduced
Intelligent Agile Method Framework
International audienceThe paper addresses the problem of the low quality of the process/product in the software development industry. In particular it deals with the issue of the low usage of software development methods, which is empirically proved to be one of the reasons for failures in software development projects and a contributor to the low quality of software. In this paper, we outline an approach that could help to improve the maturity of software development processes by circumventing the problems that hinder the use of disciplined approaches in the software development practice. The approach is based on the method engineering principles and represents a continuation of our past research in this field
Project-specific software engineering methods : composition, enactment, and quality assurance
Softwareentwicklungsmethoden beschreiben Best-Practice-Ansätze für die Entwicklung von Softwaresystemen. Damit sind Methoden einfachen Ad-Hoc-Ansätzen überlegen und ihr Einsatz unterstützt die Entwicklung von hochqualitativer Software. Jedoch erfordert der effektive Einsatz von Methoden, drei Dinge: Erstens müssen Methoden auf aktuellen Methodeninhalten basieren, zweitens müssen sie auf den Projektkontext angepasst werden und drittens müssen sie wie vorgeschrieben von dem Projektteam angewendet werden. Ansonsten gefährden veraltete, unangepasste oder falsch angewendete Methoden den Projekterfolg. Während andere Ansätze nur einige dieser Aspekte abdecken, präsentieren wir einen umfassenden, werkzeugbasierten Ansatz, der alle Aspekte des Managements von Softwareentwicklungsmethoden abdeckt. Unser Ansatz ermöglicht die Erstellung von formalen, kompositions-basierten Methodenmodellen. Erstens werden Methodenmodelle aus formalen Methodenbausteinen zusammengesetzt. Diese repräsentieren, aktuelle Methodeninhalte und werden in einer aktualisierbaren Methodenbasis gehalten. Zweitens werden Methodenmodelle projektspezifisch und kontextbasiert komponiert. Drittens wird ihre korrekte Anwendung durch den Einsatz einer Process-Engine sichergestellt. Unsere Proof-Of-Concept-Implementierung demonstriert die Machbarkeit unseres Ansatzes und stellt Werkzeugunterstützung für die Definition von Methodenbausteinen, die konsistente Methodenmodellkomposition und die Ausführung mit Standard-Process-Engines zur Verfügung.Software engineering methods describe structured, repeatable best practice approaches for the engineering of software systems. The project team of a software project enacts a method and applies the described activities. As methods are superior to ad-hoc build and fix approaches, they benefit the creation of high-quality software. However, for the efficient use of methods, first, they need to be based on state of the practice method content, second, they need to be tailored to the project context, and third, they need to be enacted as prescribed. Otherwise, outdated, unsuitable, or wrongly enacted methods can impede the creation of the software system. While other approaches focus on supporting some of these aspects, our approach is a holistic tool-supported approach that covers all of them. It allows creating formally defined composition-based method models. First, method models are composed from formal building blocks that represent method content and are stored in an extensible, updatable repository. Second, they are composed specifically for a project and tailored to its characteristics. Here the novel notion of method patterns is used to guide the composition process. Third, their correct enactment is supported with a process engine. Our proof-of-concept implementation demonstrates the feasibility of the approach. It provides tooling to define building blocks, to compose them to method models consistently, and to execute them with standard process engines.Masud Fazal-BaqaieTag der Verteidigung: 15.09.2016Universität Paderborn, Fakultät für Elektrotechnik, Informatik und Mathematik, Univ., Dissertation, 201
VIVACE: A framework for the systematic evaluation of variability support in process-aware information systems
Context: The increasing adoption of process-aware information systems (PAISs) such as workflow management systems, enterprise resource planning systems, or case management systems, together with the high variability in business processes (e.g., sales processes may vary depending on the respective products and countries), has resulted in large industrial process model repositories. To cope with this business process variability, the proper management of process variants along the entire process lifecycle becomes crucial. Objective: The goal of this paper is to develop a fundamental understand-ing of business process variability. In particular, the paper will provide a framework for assessing and comparing process variability approaches and the support they provide for the different phases of the business process life
- …