26,941 research outputs found
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
A Platform-Based Software Design Methodology for Embedded Control Systems: An Agile Toolkit
A discrete control system, with stringent hardware constraints, is effectively an embedded real-time system and hence requires a rigorous methodology to develop the software involved. The development methodology proposed in this paper adapts agile principles and patterns to support the building of embedded control systems, focusing on the issues relating to a system's constraints and safety. Strong unit testing, to ensure correctness, including the satisfaction of timing constraints, is the foundation of the proposed methodology. A platform-based design approach is used to balance costs and time-to-market in relation to performance and functionality constraints. It is concluded that the proposed methodology significantly reduces design time and costs, as well as leading to better software modularity and reliability
Agile methods for agile universities
We explore a term, Agile, that is being used in various workplace settings, including the management of universities. The term may have several related but slightly different meanings. Agile is often used in the context of facilitating more creative problem-solving and advocating for the adoption, design, tailoring and continual updating of more innovative organizational processes. We consider a particular set of meanings of the term from the world of software development. Agile methods were created to address certain problems with the software development process. Many of those problems have interesting analogues in the context of universities, so a reflection on agile methods may be a useful heuristic for generating ideas for enabling universities to be more creative
Automated user documentation generation based on the Eclipse application model
An application's user documentation, also referred to as the user manual, is
one of the core elements required in application distribution. While there
exist many tools to aid an application's developer in creating and maintaining
documentation on and for the code itself, there are no tools that complement
code development with user documentation for modern graphical applications.
Approaches like literate programming are not applicable to this scenario, as
not a library, but a full application is to be documented to an end-user.
Documentation generation on applications up to now was only partially feasible
due to the gap between the code and its semantics. The new generation of
Eclipse rich client platform developed applications is based on an application
model, closing a broad semantic gap between code and visible interface. We use
this application model to provide a semantic description for the contained
elements. Combined with the internal relationships of the application model,
these semantic descriptions are aggregated to well-structured user
documentations that comply to the ISO/IEC 26514. This paper delivers a report
on the Ecrit research project, where the potentials and limitations of user
documentation generation based on the Eclipse application model were
investigated.Comment: 9 pages, 9 figure
JWalk: a tool for lazy, systematic testing of java classes by design introspection and user interaction
Popular software testing tools, such as JUnit, allow frequent retesting of modified code; yet the manually created test scripts are often seriously incomplete. A unit-testing tool called JWalk has therefore been developed to address the need for systematic unit testing within the context of agile methods. The tool operates directly on the compiled code for Java classes and uses a new lazy method for inducing the changing design of a class on the fly. This is achieved partly through introspection, using Java’s reflection capability, and partly through interaction with the user, constructing and saving test oracles on the fly. Predictive rules reduce the number of oracle values that must be confirmed by the tester. Without human intervention, JWalk performs bounded exhaustive exploration of the class’s method protocols and may be directed to explore the space of algebraic constructions, or the intended design state-space of the tested class. With some human interaction, JWalk performs up to the equivalent of fully automated state-based testing, from a specification that was acquired incrementally
<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
T-Reqs: Tool Support for Managing Requirements in Large-Scale Agile System Development
T-Reqs is a text-based requirements management solution based on the git
version control system. It combines useful conventions, templates and helper
scripts with powerful existing solutions from the git ecosystem and provides a
working solution to address some known requirements engineering challenges in
large-scale agile system development. Specifically, it allows agile
cross-functional teams to be aware of requirements at system level and enables
them to efficiently propose updates to those requirements. Based on our
experience with T-Reqs, we i) relate known requirements challenges of
large-scale agile system development to tool support; ii) list key requirements
for tooling in such a context; and iii) propose concrete solutions for
challenges.Comment: Accepted for publication in Proc. of 26th IEEE Int. Requirements Eng.
Conf., Demo Track, Banff, Alberta, Canada, 201
- …