326,635 research outputs found
DeepSoft: A vision for a deep model of software
Although software analytics has experienced rapid growth as a research area,
it has not yet reached its full potential for wide industrial adoption. Most of
the existing work in software analytics still relies heavily on costly manual
feature engineering processes, and they mainly address the traditional
classification problems, as opposed to predicting future events. We present a
vision for \emph{DeepSoft}, an \emph{end-to-end} generic framework for modeling
software and its development process to predict future risks and recommend
interventions. DeepSoft, partly inspired by human memory, is built upon the
powerful deep learning-based Long Short Term Memory architecture that is
capable of learning long-term temporal dependencies that occur in software
evolution. Such deep learned patterns of software can be used to address a
range of challenging problems such as code and task recommendation and
prediction. DeepSoft provides a new approach for research into modeling of
source code, risk prediction and mitigation, developer modeling, and
automatically generating code patches from bug reports.Comment: FSE 201
Reconciling a component and process view
In many cases we need to represent on the same abstraction level not only
system components but also processes within the system, and if for both
representation different frameworks are used, the system model becomes hard to
read and to understand. We suggest a solution how to cover this gap and to
reconcile component and process views on system representation: a formal
framework that gives the advantage of solving design problems for large-scale
component systems.Comment: Preprint, 7th International Workshop on Modeling in Software
Engineering (MiSE) at ICSE 201
Goal-driven agent-oriented software processes
The quality of software processes is acknowledged as a critical factor for delivering quality software systems. Any initiative for improving the quality of software processes requires their explicit representation and management. A current representational metaphor for systems is agent orientation, which has become one of the recently recognized engineering paradigms. In this article, we argue for the convenience of representing the software process using an agent-oriented language to model it and a goal-driven procedure to design it. Particularly we propose using the i* framework which is both an agent- and a goal-oriented modeling language. We review the possibilities of i* as a software process modeling language, and we also show how success factors can be made explicit in i* representations of the software processes. Finally, we illustrate the approach with an example based on the development of a set of ergonomic and safety software tools.Peer ReviewedPostprint (published version
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
A model‐based solution for process modeling in practice environments: PLM4BS
Today's world economic situation is ruled by issues such as reducing cost, improving
quality, maximizing profit, and improving and optimizing processes at organizations. In
this context, business process management can be an essential strategy, but it is not
usually consolidated at software organizations because software process properties
involve a complex business process management application on software lifecycle.
Consequently, software organizations often focus on Software Process Modeling
(SPM), and each involved role performs process execution and orchestration independently
and manually. This fact makes software processes maintenance, monitoring,
and measurement become difficult tasks. This paper proposes a model‐based
approach for SPM taking into account concepts related to process execution, orchestration,
and monitoring. It is framed into a model‐driven engineering‐based and toolbased
framework: Process Lifecycle Management for Business Software (PLM4BS).
We present a SPM metamodel and its concrete syntax (through Unified Modeling
Language profiles) that lays the foundation for extending PLM4BS. Its underlying
metamodel allows managing processes automatically. Furthermore, PLM4BS improves
current state‐of‐the‐art proposals in 6 dimensions: expressiveness, understandability,
granularity, measurability, orchestrability, and business variables and rules. Also,
PLM4BS has been evaluated in a multiple‐case study, in which the 6 mentioned
dimensions were already validated.Ministerio de Economía y Competitividad TIN2016‐76956‐C3‐2‐RMinisterio de Economía y Competitividad TIN2015‐71938‐RED
Machine Learning at Microsoft with ML .NET
Machine Learning is transitioning from an art and science into a technology
available to every developer. In the near future, every application on every
platform will incorporate trained models to encode data-based decisions that
would be impossible for developers to author. This presents a significant
engineering challenge, since currently data science and modeling are largely
decoupled from standard software development processes. This separation makes
incorporating machine learning capabilities inside applications unnecessarily
costly and difficult, and furthermore discourage developers from embracing ML
in first place. In this paper we present ML .NET, a framework developed at
Microsoft over the last decade in response to the challenge of making it easy
to ship machine learning models in large software applications. We present its
architecture, and illuminate the application demands that shaped it.
Specifically, we introduce DataView, the core data abstraction of ML .NET which
allows it to capture full predictive pipelines efficiently and consistently
across training and inference lifecycles. We close the paper with a
surprisingly favorable performance study of ML .NET compared to more recent
entrants, and a discussion of some lessons learned
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
Model-driven Engineering Metrics for Real Time Systems
International audienceAs with other software development processes, model-driven engineering of real time software systems include quality assurance and measurement. Model-driven engineering (MDE) supports the development of real-time software systems by means of a set of languages, processes, methods and tools. To measure the models, a dedicated measurement software has to be developed, which is costly. In this paper, we propose a framework to concisely define and automatically implement an open-ended family of metrics for real-time software systems. The overall contribution of this approach is to give an instant, reliable and low cost implementation of model metrics seamlessly integrated into modeling tool
- …