3,062 research outputs found
Recursion Aware Modeling and Discovery For Hierarchical Software Event Log Analysis (Extended)
This extended paper presents 1) a novel hierarchy and recursion extension to
the process tree model; and 2) the first, recursion aware process model
discovery technique that leverages hierarchical information in event logs,
typically available for software systems. This technique allows us to analyze
the operational processes of software systems under real-life conditions at
multiple levels of granularity. The work can be positioned in-between reverse
engineering and process mining. An implementation of the proposed approach is
available as a ProM plugin. Experimental results based on real-life (software)
event logs demonstrate the feasibility and usefulness of the approach and show
the huge potential to speed up discovery by exploiting the available hierarchy.Comment: Extended version (14 pages total) of the paper Recursion Aware
Modeling and Discovery For Hierarchical Software Event Log Analysis. This
Technical Report version includes the guarantee proofs for the proposed
discovery algorithm
Ensuring behavioural equivalence in test-driven porting
In this paper we present a test-driven approach
to porting code from one object-oriented language
to another. We derive an order for
the porting of the code, along with a testing
strategy to verify the behaviour of the
ported system at intra and inter-class level.
We utilise the recently defined methodology
for porting C++ applications, eXtreme porting,
as a framework for porting. This defines
a systematic routine based upon porting
and unit-testing classes in turn. We augment
this approach by using Object Relation
Diagrams to define an order for porting that
minimises class stubbing. Since our strategy
is class-oriented and test-driven, we can ensure
the structural equivalence of the ported
system, along with the limited behavioural
equivalence of each class. In order to extend
this to integration-level equivalence, we exploit
aspect-oriented programming to generate UML
sequence diagrams, and we present a technique
to compare such automatically-generated diagrams
for equivalence. We demonstrate and
evaluate our approach using a case study that
involves porting an application from C++ to
Java
Ensuring behavioural equivalence in test-driven porting
In this paper we present a test-driven approach
to porting code from one object-oriented language
to another. We derive an order for
the porting of the code, along with a testing
strategy to verify the behaviour of the
ported system at intra and inter-class level.
We utilise the recently defined methodology
for porting C++ applications, eXtreme porting,
as a framework for porting. This defines
a systematic routine based upon porting
and unit-testing classes in turn. We augment
this approach by using Object Relation
Diagrams to define an order for porting that
minimises class stubbing. Since our strategy
is class-oriented and test-driven, we can ensure
the structural equivalence of the ported
system, along with the limited behavioural
equivalence of each class. In order to extend
this to integration-level equivalence, we exploit
aspect-oriented programming to generate UML
sequence diagrams, and we present a technique
to compare such automatically-generated diagrams
for equivalence. We demonstrate and
evaluate our approach using a case study that
involves porting an application from C++ to
Java
The development and technology transfer of software engineering technology at NASA. Johnson Space Center
The United State's big space projects of the next decades, such as Space Station and the Human Exploration Initiative, will need the development of many millions of lines of mission critical software. NASA-Johnson (JSC) is identifying and developing some of the Computer Aided Software Engineering (CASE) technology that NASA will need to build these future software systems. The goal is to improve the quality and the productivity of large software development projects. New trends are outlined in CASE technology and how the Software Technology Branch (STB) at JSC is endeavoring to provide some of these CASE solutions for NASA is described. Key software technology components include knowledge-based systems, software reusability, user interface technology, reengineering environments, management systems for the software development process, software cost models, repository technology, and open, integrated CASE environment frameworks. The paper presents the status and long-term expectations for CASE products. The STB's Reengineering Application Project (REAP), Advanced Software Development Workstation (ASDW) project, and software development cost model (COSTMODL) project are then discussed. Some of the general difficulties of technology transfer are introduced, and a process developed by STB for CASE technology insertion is described
Specification Mining of Symbolic Scenario-Based Models
Many dynamic analysis approaches to specification mining that ex-tract behavioral models from execution traces, do not consider ob-ject identities which limit their power when used to analyze traces of general object oriented programs. In this work we present a novel specification mining approach that considers object identi-ties, and, moreover, generalizes from specifications involving con-crete objects to their symbolic class-level abstractions. Our ap-proach uses data mining methods to extract significant scenario-based specifications in the form of Damm and Harel’s live sequence charts (LSC), a formal and expressive extension of classic sequence diagrams. We guarantee that all mined symbolic LSCs are sig-nificant (statistically sound) and all significant symbolic LSCs are mined (statistically complete). The technique can potentially be ap-plied to general object oriented programs to reveal expressive and useful reverse-engineered candidate specifications. 1
Reconstruction of Software Component Architectures and Behaviour Models using Static and Dynamic Analysis
Model-based performance prediction systematically deals with the evaluation of software performance to avoid for example bottlenecks, estimate execution environment sizing, or identify scalability limitations for new usage scenarios. Such performance predictions require up-to-date software performance models. This book describes a new integrated reverse engineering approach for the reconstruction of parameterised software performance models (software component architecture and behaviour)
A methodology of automatic class diagrams generation from source code using Model-Driven Architecture and Machine Learning to achieve Energy Efficiency
The automated generation of class diagrams is a crucial task in software engineering, facilitating the understanding, analysis, and documentation of complex software systems. Traditional manual approaches are time and energy consuming, error-prone, and lack consistency. To address these challenges, this research presents an automated proposed approach that utilizes Graph Neural Networks (GNNs), a machine learning algorithm, to generate class diagrams from source code within the context of Model Driven Architecture (MDA) and reverse engineering. A comprehensive case study is conducted to compare the results obtained from the automated approach with manually created class diagrams. The GNN model demonstrates high accuracy in capturing the system’s structure, associations, and relationships. Notably, the automated approach significantly reduces the time required for class diagram generation, leading to substantial time and energy savings. By advancing automated software documentation, this research contributes to more efficient software engineering practices. It promotes consistency, eliminates human errors, and enables software engineers to focus on higher-value tasks. Overall, the proposed approach showcases the potential of GNNs in automating class diagram generation and its practical benefits for software development and documentation
- …