117,795 research outputs found
MDA-based ATL transformation to generate MVC 2 web models
Development and maintenance of Web application is still a complex and
error-prone process. We need integrated techniques and tool support for
automated generation of Web systems and a ready prescription for easy
maintenance. The MDA approach proposes an architecture taking into account the
development and maintenance of large and complex software. In this paper, we
apply MDA approach for generating PSM from UML design to MVC 2Web
implementation. That is why we have developed two meta-models handling UML
class diagrams and MVC 2 Web applications, then we have to set up
transformation rules. These last are expressed in ATL language. To specify the
transformation rules (especially CRUD methods) we used a UML profiles. To
clearly illustrate the result generated by this transformation, we converted
the XMI file generated in an EMF (Eclipse Modeling Framework) model.Comment: International Journal of Computer Science & Information
Technology-201
Automated Predictive Diagnosis (APD): A 3-tiered shell for building expert systems for automated predictions and decision making
The APD software features include: On-line help, Three level architecture, (Logic environments, Setup/Application environment, Data environment), Explanation capability, and File handling. The kinds of experimentation and record keeping that leads to effective expert systems is facilitated by: (1) a library of inferencing modules (in the logic environment); (2) an explanation capability which reveals logic strategies to users; (3) automated file naming conventions; (4) an information retrieval system; and (5) on-line help. These aid with effective use of knowledge, debugging and experimentation. Since the APD software anticipates the logical rules becoming complicated, it is embedded in a production system language (CLIPS) to insure the full power of the production system paradigm of CLIPS and availability of the procedural language C. The development is discussed of the APD software and three example applications: toy, experimental, and operational prototype for submarine maintenance predictions
Recovering Trace Links Between Software Documentation And Code
Introduction Software development involves creating various artifacts at different levels of abstraction and establishing relationships between them is essential. Traceability link recovery (TLR) automates this process, enhancing software quality by aiding tasks like maintenance and evolution. However, automating TLR is challenging due to semantic gaps resulting from different levels of abstraction. While automated TLR approaches exist for requirements and code, architecture documentation lacks tailored solutions, hindering the preservation of architecture knowledge and design decisions.
Methods This paper presents our approach TransArC for TLR between architecture documentation and code, using componentbased architecture models as intermediate artifacts to bridge the semantic gap. We create transitive trace links by combining the existing approach ArDoCo for linking architecture documentation to models with our novel approach ArCoTL for linking architecture models to code.
Results We evaluate our approaches with five open-source projects, comparing our results to baseline approaches. The model-to-code TLR approach achieves an average F1-score of 0.98, while the documentation-to-code TLR approach achieves a promising average F1-score of 0.82, significantly outperforming baselines.
Conclusion Combining two specialized approaches with an intermediate artifact shows promise for bridging the semantic gap. In future research, we will explore further possibilities for such transitive approaches
Recovering Trace Links Between Software Documentation And Code
Introduction Software development involves creating various artifacts at different levels of abstraction and establishing relationships between them is essential. Traceability link recovery (TLR) automates this process, enhancing software quality by aiding tasks like maintenance and evolution. However, automating TLR is challenging due to semantic gaps resulting from different levels of abstraction. While automated TLR approaches exist for requirements and code, architecture documentation lacks tailored solutions, hindering the preservation of architecture knowledge and design decisions.
Methods This paper presents our approach TransArC for TLR between architecture documentation and code, using componentbased architecture models as intermediate artifacts to bridge the semantic gap. We create transitive trace links by combining the existing approach ArDoCo for linking architecture documentation to models with our novel approach ArCoTL for linking architecture models to code.
Results We evaluate our approaches with five open-source projects, comparing our results to baseline approaches. The model-to-code TLR approach achieves an average F1-score of 0.98, while the documentation-to-code TLR approach achieves a promising average F1-score of 0.82, significantly outperforming baselines.
Conclusion Combining two specialized approaches with an intermediate artifact shows promise for bridging the semantic gap. In future research, we will explore further possibilities for such transitive approaches
A software architecture for autonomous maintenance scheduling: Scenarios for UK and European Rail
A new era of automation in rail has begun offering developments in the operation and maintenance of industry standard systems. This article documents the development of an architecture and range of scenarios for an autonomous system for rail maintenance planning and scheduling. The Unified Modelling Language (UML) has been utilized to visualize and validate the design of the prototype. A model for information exchange between prototype components and related maintenance planning systems is proposed in this article. Putting forward an architecture and set of usage mode scenarios for the proposed system, this article outlines and validates a viable platform for autonomous planning and scheduling in rail
Maintenance of Automated Test Suites in Industry: An Empirical study on Visual GUI Testing
Context: Verification and validation (V&V) activities make up 20 to 50
percent of the total development costs of a software system in practice. Test
automation is proposed to lower these V&V costs but available research only
provides limited empirical data from industrial practice about the maintenance
costs of automated tests and what factors affect these costs. In particular,
these costs and factors are unknown for automated GUI-based testing.
Objective: This paper addresses this lack of knowledge through analysis of
the costs and factors associated with the maintenance of automated GUI-based
tests in industrial practice.
Method: An empirical study at two companies, Siemens and Saab, is reported
where interviews about, and empirical work with, Visual GUI Testing is
performed to acquire data about the technique's maintenance costs and
feasibility.
Results: 13 factors are observed that affect maintenance, e.g. tester
knowledge/experience and test case complexity. Further, statistical analysis
shows that developing new test scripts is costlier than maintenance but also
that frequent maintenance is less costly than infrequent, big bang maintenance.
In addition a cost model, based on previous work, is presented that estimates
the time to positive return on investment (ROI) of test automation compared to
manual testing.
Conclusions: It is concluded that test automation can lower overall software
development costs of a project whilst also having positive effects on software
quality. However, maintenance costs can still be considerable and the less time
a company currently spends on manual testing, the more time is required before
positive, economic, ROI is reached after automation
Invertible Program Restructurings for Continuing Modular Maintenance
When one chooses a main axis of structural decompostion for a software, such
as function- or data-oriented decompositions, the other axes become secondary,
which can be harmful when one of these secondary axes becomes of main
importance. This is called the tyranny of the dominant decomposition. In the
context of modular extension, this problem is known as the Expression Problem
and has found many solutions, but few solutions have been proposed in a larger
context of modular maintenance. We solve the tyranny of the dominant
decomposition in maintenance with invertible program transformations. We
illustrate this on the typical Expression Problem example. We also report our
experiments with Java and Haskell programs and discuss the open problems with
our approach.Comment: 6 pages, Early Research Achievements Track; 16th European Conference
on Software Maintenance and Reengineering (CSMR 2012), Szeged : Hungary
(2012
Post-Development Software Architecture
Abstract Software architecture (SA) plays an important role in software development. Since the lifecycle stages post development become more and more important and face with many challenges similar to the development, it is a natural idea to introduce or extend SA into the stages post development. In this paper, we present our practices and experiences on applying software architecture into the deployment and maintenance of J2EE (Java 2 Platform Enterprise Edition) applications, including the tool and principles of SAbased J2EE deployment and SA-based J2EE online maintenance. It demonstrates that 1) SA can help to achieve a holistic, finegrained and automated deployment of large-scale distributed systems by visualizing the structure of the system to be deployed; 2) SA can provide an understandable, operational and global view for online maintenance by organizing the fragmented and trivial management mechanisms; 3) Extending SA into the stages post development makes it possible that the whole lifecycle of a software system can be governed by SA with many benefits, e.g. consistency, traceability, responsiveness, etc
Unified Software Engineering Reuse: A Methodology for Effective Software Reuse
Software is a necessity in the modern world, and that need is continuously growing. As expensive as the creation of all this new software is, the maintenance costs are even greater. One solution to this problem is software reuse, whereby already written software can be applied to new problems after some modification, thus reducing the overall input of new code. The goal in traditional software reuse is to produce a piece of software with enough flexibility to be used at least twice. Unfortunately, there are many difficulties in achieving software reuse using modern programming techniques. Even software built specifically for reuse is severely restricted in its utility for new applications. It is easy for new programs to require entirely new logic or new objects. Because of this, they become quickly outdated, and any labor spent creating reusable software is nullified. The solution is a method to vastly increase the reusability of software by concentrating on the base knowledge and overall goals of software rather than the details on a case-by-case basis. Finding patterns in the problem and solution spaces allows unification into a smaller solution set. Instead of each problem receiving its own solution from marginally reusable components, multiple problems are resolved with the same architecture and object set. As an added benefit, this solution will not only vastly improve software reuse, but it will make feasible systems that can construct software architecture on demand and provide the first steps to fully automated software development
- …