Shimba, a prototype reverse engineering environment, has been built to support the understanding of Java software. Shimba uses Rigi and SCED to analyze, visualize, and explore the static and dynamic aspects, respectiv...
详细信息
Shimba, a prototype reverse engineering environment, has been built to support the understanding of Java software. Shimba uses Rigi and SCED to analyze, visualize, and explore the static and dynamic aspects, respectively, of the subject system. The static software artifacts and their dependencies are extracted from Java byte code and viewed as directed graphs using the Rigi reverse engineering environment. The static dependency graphs of a subject system can be annotated with attributes, such as software quality measures, and then be analyzed and visualized using scripts through the end-user programmable interface. Shimba has recently been extended with the Chidamber and Kemerer suite of object-oriented metrics. The metrics measure properties of the classes, the inheritance hierarchy, and the interaction among classes of a subject system. Since Shimba is primarily intended for the analysis and exploration of Java software, the metrics have been tailored to measure properties of software components written in Java. We show how these metrics can be applied in the context of understanding software systems using a reverse engineering environment. The static dependency graphs of the system under investigation are decorated with measures obtained by applying the object-oriented metrics to selected software components. Shimba provides tools to examine these measures, to find software artifacts that have values that are in a given range, and to detect correlations among different measures. The object-oriented analysis of the subject Java system can be investigated further by exporting the measures to a spreadsheet.
This paper presents a technique for verifying specifications which uses the object-oriented state-based language object-Z. The technique is based upon translation of object-Z specifications into transition systems. Th...
详细信息
ISBN:
(纸本)3540672613
This paper presents a technique for verifying specifications which uses the object-oriented state-based language object-Z. The technique is based upon translation of object-Z specifications into transition systems. The translation of object-Z into a transition system allows one to use established techniques and tools in order to verify the specifications. We present the basis of our translation approach and then illustrate it by a case study. The case study consists in proving properties of our antennae parameter setting problem specification.
An adaptive program is an object-oriented program which is abstracted over the particular class structure. This abstraction fosters software reuse, because programmers can concentrate on specifying how to process the ...
详细信息
ISBN:
(纸本)354067263X
An adaptive program is an object-oriented program which is abstracted over the particular class structure. This abstraction fosters software reuse, because programmers can concentrate on specifying how to process the objects which are essential to their application. The compiler of an adaptive program takes care of actually locating the objects. The adaptive programmer merely writes a traversal specification decorated with actions. The compiler instantiates the specification with the actual class structure and generates code that traverses a collection of objects, performing visits and actions according to the specification. Earlier work on adaptive programming merely stated but never verified that compilation of adaptive programs is nothing but partial evaluation. We employ an algebraic framework based on derivatives of traversal specifications to develop an interpretive semantics of adaptive programming. This semantics is naturally staged in up to three stages. Compilation can be achieved using a standard partial evaluator. Slight changes in the binding-time properties yield several variants of the compiler, by trading compile-time computations for run-time computations.
Call graph construction has been an important area of research within the compilers and programming languages community. However, all existing techniques focus on exhaustive analysis of all the call-sites in the progr...
详细信息
ISBN:
(纸本)354067263X
Call graph construction has been an important area of research within the compilers and programming languages community. However, all existing techniques focus on exhaustive analysis of all the call-sites in the program. With increasing importance of just-in-time or dynamic compilation and use of program analysis as part of the software development environments, we believe that there is a need for techniques for demand-driven construction of the call graph. We present a demand-driven call graph construction framework in this paper, focusing on the dynamic calls due to polymorphism. in object-oriented languages. We use a variant of Callahan's Program Summary Graph (PSG) and perform analysis over a set of influencing nodes. We show that our demand-driven technique has the same accuracy as the corresponding exhaustive technique. The reduction in the graph construction time depends upon the ratio of the cardinality of the set of influencing nodes to the set of all nodes.
Modelling languages such as the Unified Modeling Language are used during the early phases of system development to capture requirements and to express high-level designs. Many such languages have no universally fixed...
详细信息
ISBN:
(纸本)3540672613
Modelling languages such as the Unified Modeling Language are used during the early phases of system development to capture requirements and to express high-level designs. Many such languages have no universally fixed interpretations since different development projects often use key concepts, like Class, Generalization and Association, in slightly different ways. Therefore meta-modelling, i.e. the precise specification of the concepts used in a model, is of importance in order to avoid misunderstandings. The BOOM framework, presented in this paper, is intended for this kind of meta-modelling. The framework consists of a collection of modelling constructs specified with a small object-oriented language. The framework is simple enough for an engineer to adjust the modelling concepts to project specific needs. It includes all necessary aspects of language specification, among them definition of abstract syntax, well-formedness rules, and dynamic semantics. To demonstrate its use, this paper includes a specification of some of the constructs defined in the Unified Modeling Language.
object-orientedprogramming is about the creation of reusable classes that are to be extended to capture the specific requirements of the application at hand. However, instead of extending the methods of these classes...
详细信息
object-orientedprogramming is about the creation of reusable classes that are to be extended to capture the specific requirements of the application at hand. However, instead of extending the methods of these classes, programmers often introduce subclasses in which they replace methods with new implementations that are completely detached from the superclass;that is, the subclass method does not invoke, directly or indirectly, its counterpart in the superclass. In this paper, we apply the SPOOL environment to the reverse-engineered C++ source code of the ET++ application framework to investigate the occurrences and causes for method replacements. To this end, we define a method replacement indicator (MRI) that quantifies the extent of method replacements. Based on the data obtained in our case study, we identify and discuss the ten causes why programmers replace non-primitive method implementations of reusable classes.
Current manufacturing systems have a very structured production model, especially when high and precision is required, as in semiconductor devices manufacturing. In addition, rapid changes in production and market req...
详细信息
Current manufacturing systems have a very structured production model, especially when high and precision is required, as in semiconductor devices manufacturing. In addition, rapid changes in production and market requirements may occur, hence great flexibility is also essential. These goals often impose to re-engineer periodically existing models, in order to remove its limitations also adding new capabilities, significantly reducing the time-to-market of new products. Updating a model generally also requires to improve existing applications, both re-writing software components as well as adding new features. Here we consider the current model used inside STMicroelectronics facilities to define production flow. We first describe the model and its limitations, then we introduce an enhanced, object-oriented model, with inheritance and hierarchies support. We also consider which improvements are required on existing applications in order to support such model, introducing an enhanced environment.
An adaptive program is an object-oriented program which is abstracted over the particular class structure. This abstraction fosters! software reuse, because programmers can concentrate on specifying how to process the...
详细信息
ISBN:
(纸本)3540672575
An adaptive program is an object-oriented program which is abstracted over the particular class structure. This abstraction fosters! software reuse, because programmers can concentrate on specifying how to process the objects which are essential to their application. The compiler of an adaptive program takes care of actually locating the objects. The adaptive programmer merely writes a traversal specification decorated with actions. The compiler instantiates the specification with the actual class structure and generates code that traverses a collection of objects, performing visits and actions according to the specification. Previous approaches to compiling adaptive programs rely on, standard methods from automata theory and graph theory to achieve their goal. We introduce a new foundation for the compilation of adaptive programs, based on the algebraic properties of traversal specifications. Exploiting these properties, we develop the underlying theory for an efficient compilation algorithm. A key result is the derivation of a normal form for traversal specifications. This normal form is the basis for directly generating a traversal automaton with a uniformly minimal number of states.
A proof system is presented for the verification and derivation of objectoriented programs with as main features strong typing, dynamic binding, and inheritance. The proof system is inspired on Meyer's system of ...
详细信息
We describe the Visual Interface to PROMELA (VIP) tool that we have recently implemented. VIP supports the visual editing and maintenance of v-Promela models, v-Promela is a visual, object-oriented extension to PROMEL...
详细信息
ISBN:
(纸本)3540672826
We describe the Visual Interface to PROMELA (VIP) tool that we have recently implemented. VIP supports the visual editing and maintenance of v-Promela models, v-Promela is a visual, object-oriented extension to PROMELA, the input language to the SPIN model checker. We introduce the v-Promela notation as supported by the VIP editor, discuss PROMELA code generation, and describe the process of property validation for the resulting models. Our discussion centers around two case studies, a call processing system and the CORBA GIOP protocol.
暂无评论