28,534 research outputs found
A Sustainability Catalogue for Software Modelling
Sustainable development is the development that meets the needs of the present without
compromising the needs of our future generations. It covers five different dimensions:
environmental, economic, social, technical, and individual. Such dimensions are also of
interest for software. For example, memory and power efficiency have an impact on the
environmental dimension, the reduction of costs in software development and evolution
relates to the economic dimension, the use of software for general improvement of people’s
lives affects the social dimension, the software’s ability to cooperate with other systems
impacts the technical dimension, and the improvement of well-being of individuals relates
to the individual dimension. These various dimensions and their properties impact on each
other and on the base requirements of a system. Therefore, well-informed design decisions
require improved support to reason on such intra- and inter-relationships and impacts, early
in development. The objective of this dissertation is to propose a catalog of sustainability
requirements for later reuse during the software development process. The envisioned
solution involves using requirement engineering activities to address sustainability in the
early stages of the software development. The first step towards a solution was to perform a
(agile) systematic mapping study in order to gain a complete and profound knowledge about
the existing sustainability and requirement engineering techniques. This study was the base
of our work. Our final artifact is a sustainability catalogue. This catalogue addresses four
out of the five dimensions of sustainability, as well as their qualities and relationships. We
did not treat the individual dimension, for sake of simplicity and time constraints, although
we consider that some of its properties are included in the social dimension. The catalogue
was developed using the iStar framework, and it was implemented in the piStar Tool. Such
catalogue offers a generic approach that can be instantiated for particular application
domains, and for any combination of dimensions. Hence, this work will contribute to the
field of sustainable software development
Safety-Critical Systems and Agile Development: A Mapping Study
In the last decades, agile methods had a huge impact on how software is
developed. In many cases, this has led to significant benefits, such as quality
and speed of software deliveries to customers. However, safety-critical systems
have widely been dismissed from benefiting from agile methods. Products that
include safety critical aspects are therefore faced with a situation in which
the development of safety-critical parts can significantly limit the potential
speed-up through agile methods, for the full product, but also in the
non-safety critical parts. For such products, the ability to develop
safety-critical software in an agile way will generate a competitive advantage.
In order to enable future research in this important area, we present in this
paper a mapping of the current state of practice based on {a mixed method
approach}. Starting from a workshop with experts from six large Swedish product
development companies we develop a lens for our analysis. We then present a
systematic mapping study on safety-critical systems and agile development
through this lens in order to map potential benefits, challenges, and solution
candidates for guiding future research.Comment: Accepted at Euromicro Conf. on Software Engineering and Advanced
Applications 2018, Prague, Czech Republi
An ontology of agile aspect oriented software development
Both agile methods and aspect oriented programming (AOP) have emerged in recent years as new paradigms in software development. Both promise to free the process of building software systems from some of the constraints of more traditional approaches. As a software engineering approach on the one hand, and a software development tool on the other, there is the potential for them to be used in conjunction. However, thus far, there has been little interplay between the two. Nevertheless, there is some evidence that there may be untapped synergies that may be exploited, if the appropriate approach is taken to integrating AOP with agile methods. This paper takes an ontological approach to supporting this integration, proposing ontology enabled development based on an analysis of existing ontologies of aspect oriented programming, a proposed ontology of agile methods, and a derived ontology of agile aspect oriented development
Identifying Agile Requirements Engineering Patterns in Industry
Agile Software Development (ASD) is gaining in popularity in today´s business world. Industry is adopting agile methodologies both to accelerate value delivery and to enhance the ability to deal with changing requirements. However, ASD has a great impact on how Requirements Engineering (RE) is carried out in agile environments. The integration of Human-Centered Design (HCD) plays an important role due to the focus on user and stakeholder involvement. To this end, we aim to introduce agile RE patterns as main objective of this paper. On the one hand, we will describe our pattern mining process based on empirical research in literature and industry. On the other hand, we will discuss our results and provide two examples of agile RE patterns. In sum, the pattern mining process identifies 41 agile RE patterns. The accumulated knowledge will be shared by means of a web application.Ministerio de Economía y Competitividad TIN2013-46928-C3-3-RMinisterio de Economía y Competitividad TIN2016-76956-C3-2-RMinisterio de Economía y Competitividad TIN2015-71938-RED
Agile, Web Engineering and Capability Maturity ModelI ntegration : A systematic literature review
Context
Agile approaches are an alternative for organizations developing software, particularly for those who develop Web applications. Besides, CMMI (Capability Maturity Model Integration) models are well-established approaches focused on assessing the maturity of an organization that develops software. Web Engineering is the field of Software Engineering responsible for analyzing and studying the specific characteristics of the Web. The suitability of an Agile approach to help organizations reach a certain CMMI maturity level in Web environments will be very interesting, as they will be able to keep the ability to quickly react and adapt to changes as long as their development processes get mature.
Objective
This paper responds to whether it is feasible or not, for an organization developing Web systems, to achieve a certain maturity level of the CMMI-DEV model using Agile methods.
Method
The proposal is analyzed by means of a systematic literature review of the relevant approaches in the field, defining a characterization schema in order to compare them to introduce the current state-of-the-art.
Results
The results achieved after the systematic literature review are presented, analyzed and compared against the defined schema, extracting relevant conclusions for the different dimensions of the problem: compatibility, compliance, experience, maturity and Web.
Conclusion
It is concluded that although the definition of an Agile approach to meet the different CMMI maturity levels goals could be possible for an organization developing Web systems, there is still a lack of detailed studies and analysis on the field
Utilising the Software Engineering Methods and Theory framework to critically evaluate software engineering practice in the South African banking industry
A research report submitted to the Faculty of Engineering and The Built Environment of the University of Witwatersrand, Johannesburg
In partial fulfilment of the requirements for the Degree of Master of Science in Engineering
September 2015In recent years, software has become the cornerstone of banking and new business products are
directly dependant on software. The delivery cycles for new features is now related to market share.
This drive to use software as a vehicle for competitive advantage has created an environment in
which software development of new business systems are increasingly on the critical path of many
projects. An organisation’s portfolio of software intensive projects is situated within this complexity
and organisations attempt to mitigate the risks associated with these complexities by implementing
software development processes and practices. A key problem facing the modern bank is how to
define and build a software development process that caters for both the traditional and
increasingly agile genres of software development characteristics in a consistent and manageable
way.
The banks attempt to address this problem through continuous methodology and process
improvements. Comparing and assessing non-standardised software engineering lifecycle models
without a common framework is a complex and subjective task. A standardised language is
important for simplifying the task for developing new methods and practices or for analysing and
documenting existing practices.
The Software Engineering Methods and Theory (SEMAT) initiative has developed a standardised
kernel of essential concepts, together with a language that describes the essence of software
engineering. This kernel, called the Essence, has recently become an Object Management Group
(OMG) standard. The Essence kernel, together with its language, can be used as the underpinning
theory to analyse an existing method and help provide insights that can drive method
enhancements.
The research report proposes a simple, actionable analysis framework to assist organisations to
assess, review and develop their software engineering methods. The core concepts of the
methodology are identified and mapped to the Essence concepts. The governance model of the
Essence is mapped to the governance model of the industry model and a set of practices is identified
and documented in the Essence language. The mapping and resulting analysis can be used to test
the validity of the Essence theory in practice and identify areas for improvement in both the method
and the Essence standard.
The analysis framework has been applied to an operational software development lifecycle of a large
South African bank. A mapping of the Essence concepts to the governance model and method
documented in the lifecycle was completed. This mapping revealed that the Essence is a valid tool
and can be used to describe a method in practice. Furthermore it is useful as an analysis framework
to assess the governance model that manages and measures the progress of an endeavour in the
Bank.
The case study and resulting analysis demonstrate that the Essence standard can be used to analyse
a methodology and identify areas for improvement. The analysis also identified areas for
improvement in the Essence specification
Why and How Your Traceability Should Evolve: Insights from an Automotive Supplier
Traceability is a key enabler of various activities in automotive software
and systems engineering and required by several standards. However, most
existing traceability management approaches do not consider that traceability
is situated in constantly changing development contexts involving multiple
stakeholders. Together with an automotive supplier, we analyzed how technology,
business, and organizational factors raise the need for flexible traceability.
We present how traceability can be evolved in the development lifecycle, from
early elicitation of traceability needs to the implementation of mature
traceability strategies. Moreover, we shed light on how traceability can be
managed flexibly within an agile team and more formally when crossing team
borders and organizational borders. Based on these insights, we present
requirements for flexible tool solutions, supporting varying levels of data
quality, change propagation, versioning, and organizational traceability.Comment: 9 pages, 3 figures, accepted in IEEE Softwar
<i>Trace++</i>: A Traceability Approach for Agile Software Engineering
Agile methodologies have been introduced as an alternative to traditional software engineering methodologies. However, despite the advantages of using agile methodologies, the transition between traditional and agile methodologies is not an easy task. There are several problems associated with the use of agile methodologies. Examples of these problems are related to (i) lack of metrics to measure the amount of rework that occurs per sprint, (ii) interruption of a project after several iterations, (iii) changes in the requirements, (iv) lack of documentation, and (v) lack of management control. In this paper we present Trace++, a traceability technique that extends traditional traceability relationships with extra information in order to support the transition between traditional and agile software development. The use of Trace++ has been evaluated in two real projects of different software development companies to measure the benefits of using Trace++ to support agile software development
- …