Results 1 - 10
of
10
Architecture Recovery in ARES
- In Proc. 2nd ACM SIGSOFT Int. Software Architecture Workshop
, 1996
"... Recovering the architecture of legacy systems requires more than just reverse engineering tools to generate some higherlevel descriptions of the system under study. Design decisions and logical groupings of functions have to be balanced with informal domain knowledge, domain standards and coding gui ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Recovering the architecture of legacy systems requires more than just reverse engineering tools to generate some higherlevel descriptions of the system under study. Design decisions and logical groupings of functions have to be balanced with informal domain knowledge, domain standards and coding guidelines of the developers. Therefore, we combine domain aspects with coding aspects and use reverse engineering tools as one means of recovering the requested information to reason about the underlying architecture of the system. This reasoning is an alternating top-down and bottom-up approach. The architecture recovery process we introduce is one part of the ESPRIT project ARES (Architectural Reasoning for Embedded Systems). 1 1 Introduction and Motivation Reverse engineering techniques are usually applied if information about an existing software system is required, for example, in case of corrective or adaptive maintenance. 2 The recovery of architectural information is different in t...
The Uncertainty Principle in Software Engineering
, 1996
"... This paper makes two contributions to software engineering research. First, we observe that uncertainty permeates software development but is rarely captured explicitly in software models. We remedy this situation by presenting the Uncertainty Principle in Software Engineering (UPSE), which states t ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
This paper makes two contributions to software engineering research. First, we observe that uncertainty permeates software development but is rarely captured explicitly in software models. We remedy this situation by presenting the Uncertainty Principle in Software Engineering (UPSE), which states that uncertainty is inherent and inevitable in software development processes and products. We substantiate UPSE by providing examples of uncertainty in select software engineering domains. We present three common sources of uncertainty in software development, namely human participation, concurrency, and problem-domain uncertainties. We explore in detail uncertainty in software testing, including test planning, test enactment, error tracing, and quality estimation. Second, we present a technique for modeling uncertainty, called Bayesian belief networks, and justify its applicability to software systems. We apply the Bayesian approach to a simple network of software artifacts based on an elev...
Binding object models to source code: an approach to object-oriented re-architecting
- Proc. of the 22nd Computer Software and Applications Conference, IEEE Computer Society
, 1998
"... Object-oriented re-architecting (OORA) concerns identification of objects in procedural code with the goal to transform a procedural into an object-oriented program. We have developed a method to address the problem of object identification from two different directions: 1) building an object model ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
Object-oriented re-architecting (OORA) concerns identification of objects in procedural code with the goal to transform a procedural into an object-oriented program. We have developed a method to address the problem of object identification from two different directions: 1) building an object model of the application based on system documentation to ensure the creation of application-semantic classes; and 2) analyzing the source code to identify potential class candidates on the basis of compound data types and data flow analysis. Object model classes are bound to class candidates to prepare a forward biased and thus semantically meaningful program transformation at the source code level. In this paper, we define a similarity measure for classes to enables the binding process. We also describe the constraints and benefits of human intervention in this process. We have applied this method to a real-world embedded software system to identify potential classes; results from the case study are given in the paper. 1.
Bayesian-network Confirmation of Software Testing Uncertainties
, 1997
"... In this paper, we claim that software development will do well by explicit modeling of its uncertainties using existing uncertainty modeling techniques. This is accomplished initially by stating the Maxim of Uncertainty in Software Engineering (MUSE), followed by a detailed presentation of uncert ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
In this paper, we claim that software development will do well by explicit modeling of its uncertainties using existing uncertainty modeling techniques. This is accomplished initially by stating the Maxim of Uncertainty in Software Engineering (MUSE), followed by a detailed presentation of uncertainty in software testing. We then propose that a specific technique, known as Bayesian Belief Networks, be used to model software testing uncertainties. We demonstrate the use of Bayesian networks to confirm beliefs in the validity of software artifacts and relations in an elevator control system. We describe a prototype implementation that allows for such "software belief networks" to be defined and updated. We conclude with a discussion of issues, concerns, and future prospects for modeling software uncertainties. Keywords: Uncertainty modeling, Bayesian networks, Software testing, Software maxims. 1 1 Introduction Future prospects for software development appear promising. New ...
Application Patterns in Re-Engineering: Identifying and Using Reusable Concepts
- In Proceedings of 6th International Conference on Information Processing and Management of Uncertainty in Knowledge-Based Systems, V.III
, 1996
"... For a substantial improvement of the reengineering task, identifying the general and recurring high level concepts burried in the source code is essential. However, revealing such software patterns cannot be performed by automatic means only, it requires the management of various uncertainty issues. ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
For a substantial improvement of the reengineering task, identifying the general and recurring high level concepts burried in the source code is essential. However, revealing such software patterns cannot be performed by automatic means only, it requires the management of various uncertainty issues. This paper introduces these patterns and discusses how the uncertainty issues arising during re-engineering can be handled. Furthermore, the paper shows the potential of high-level application patterns for improving the COREM re-engineering methodology.
Reverse Engineering: Why and How to Reverse Engineer Software
- in Proceedings of the California Software Symposium (CSS
, 1996
"... Today especially large organizations are not only faced with the problem of replacing their information systems with completely new ones, but they have to maintain and gain control over their legacy applications. Reverse engineering provides the means for this purpose supporting in recapturing lost ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Today especially large organizations are not only faced with the problem of replacing their information systems with completely new ones, but they have to maintain and gain control over their legacy applications. Reverse engineering provides the means for this purpose supporting in recapturing lost information, restructuring complex systems or transforming old systems to a new and more maintainable architecture. This paper introduces the basic concepts of reverse engineering, clarifies related terms and indicates important reverse engineering approaches. Furthermore, a particular reverse engineering methodology for re-architecturing legacy applications is introduced and its impact on software engineering is discussed. Keywords: reverse engineering, re-engineering, software engineering, redocumentation, restructuring, design recovery, re-architecturing. INTRODUCTION For many years software engineering primarily concentrated on the development of new applications. Much research as wel...
Towards a Systematic Object-Oriented Transformation of a Merise Analysis
"... In the Framework of a project whose main goal is to design a reengineering platform for legacy systems, we propose a rule-based approach for a systematic object-oriented transformation of a MERISE analysis. This work is an ongoing research which will lead to the realization of a semiautomatic tool t ..."
Abstract
- Add to MetaCart
In the Framework of a project whose main goal is to design a reengineering platform for legacy systems, we propose a rule-based approach for a systematic object-oriented transformation of a MERISE analysis. This work is an ongoing research which will lead to the realization of a semiautomatic tool to transform a MERISE analysis schema to an object-oriented analysis schema. In this paper we will present the restructuring process and the rules extracted from a real-world case provided by a company wishing to migrate to object-oriented techniques in order to improve its maintenance process and software quality. 1. Introduction Legacy management information systems, implemented in COBOL, need to be modernized in order to gain control of maintenance costs, and to be adaptable to various platforms. We report here a study carried out for a French company wanting to improve its maintenance process and software quality by using object-oriented techniques. This company produces softwares for lar...
Component-Based Development Environment: An Integrated Model of Object-Oriented Techniques and Other Technologies
"... Object-Oriented Programming(OOP) has some weaknesses in that it does not always produce reusable software and is not suitable for a large project and does not support the complete encapsulation of classes due to the inheritance of subclasses. As a evolutionary method of OOP, Component-Based Software ..."
Abstract
- Add to MetaCart
Object-Oriented Programming(OOP) has some weaknesses in that it does not always produce reusable software and is not suitable for a large project and does not support the complete encapsulation of classes due to the inheritance of subclasses. As a evolutionary method of OOP, Component-Based Software Engineering(CBSE) or Component-Based Development(CBD) has recently been hot issues for the Object-Oriented community and reuse community, and the component market is also growing rapidly. Thus, in order to overcome the limitations of OOP and maximize the benefits from reuse, the authors propose an integrated model that links the OOP paradigm with the emerging CBD paradigm. In addition, the authors review most of the technologies related to an integrated CBD environment and describe our current research on re-engineering that will be extended to support a whole CBD environment. 1. Introduction Object-Oriented Techniques have been considered a powerful means of solving software crisis throug...
Towards a Systematic Object-Oriented Transformation of a Merise Analysis
"... In the Framework of a project whose main goal is to design a reengineering platform for legacy systems, we propose a rule-based approach for a systematic object-oriented transformation of a MERISE analysis. This work is an ongoing research which will lead to the realization of a semiautomatic tool t ..."
Abstract
- Add to MetaCart
In the Framework of a project whose main goal is to design a reengineering platform for legacy systems, we propose a rule-based approach for a systematic object-oriented transformation of a MERISE analysis. This work is an ongoing research which will lead to the realization of a semiautomatic tool to transform a MERISE analysis schema to an object-oriented analysis schema. In this paper we will present the restructuring process and the rules extracted from a real-world case provided by a company wishing to migrate to object-oriented techniques in order to improve its maintenance process and software quality. 1. Introduction Legacy management information systems, implemented in COBOL, need to be modernized in order to gain control of maintenance costs, and to be adaptable to various platforms. We report here a study carried out for a French company wanting to improve its maintenance process and software quality by using object-oriented techniques. This company produces softwares for ...
A Survey Of Object Identification In Software Re-Engineering
, 1998
"... In order to translate a non-object-oriented (procedural) program into an object-oriented one, objects must be identified from the procedural program. Object-oriented programs (compared with procedural ones) are considered to be easier to reuse and maintain. Thus, object identification followed by tr ..."
Abstract
- Add to MetaCart
In order to translate a non-object-oriented (procedural) program into an object-oriented one, objects must be identified from the procedural program. Object-oriented programs (compared with procedural ones) are considered to be easier to reuse and maintain. Thus, object identification followed by translation from a non-object-oriented language into an object-oriented language is one way to re-engineer legacy programs. This paper gives an overview of re-engineering in general and of object identification especially. Associated with objectorientation, identification of (design) patterns is discussed, too.

