30 research outputs found
New Inheritance Models That Facilitate Source Code Reuse in Object-oriented Programming
Code reusability is a primary objective in the development of software systems. The object-oriented programming methodology is one of the areas that facilitate the development of software systems by allowing and promoting code reuse and modular designs. Object-oriented programming languages (OOPLs) provide different facilities to attain efficient reuse and reliable extension of existing software components. Inheritance is an important language feature that is conducive to reusability and extensibility. Various OOPLs provide different inheritance models based on different interpretations of the inheritance notion. Therefore, OOPLs have different characteristics derived from their respective inheritance models. This dissertation is concerned with solutions for three major problems that limit the utilization of inheritance for code reusability. The range of object -oriented applications and thus the usage of object-oriented programming in general is also discussed. The three major problems are: 1) the relationship between inheritance and other related issues such as encapsulation, access techniques, visibility of inheritance, and subtyping; 2) the hierarchical structure imposed by inheritance among classes; and 3) the accessibility of previous versions of the modified methods defmed in classes located at higher levels of the inheritance structure than the parent classes. 1be proposed solutions for these problems are presented as new inheritance models that facilitate code reuse and relax the restrictions imposed on inheritance models by languages. A survey and taxonomy of the conventional inheritance models, and a comparison and analysis of some of the common OOPLs are also presented in the dissertation.Computer Scienc
State-based testing - a new method for testing object-oriented programs
State-based testing is a new method for testing object-oriented programs. The information stored in the state of an object is of two kinds: control-information and data-storage. The control-information transitions are modelled as a finite state automaton. Every operation of the class under test is considered as a mapping from starting states to a finishing states dependent upon the parameters passed. The possible parameter values are analysed for significant values which combined with the invocation of an operation can be used to represent stimuli applied to an object under test. State-based testing validates the expected transformations that can occur within a class. Classes are modelled using physical values assigned to the attributes of the class. The range of physical values is reduced by the use of a technique based on equivalence partitioning. This approach has a number of advantages over the conceptual modelling of a class, in particular the ease of manipulation of physical values and the independence of each operation from the other operations provided by an object. The technique when used in conjunction with other techniques provides an adequate level of validation for object-oriented programs. A suite of prototype tools that automate the generation of state-based test cases are outlined. These tools are used in four case studies that are presented as an evaluation of the technique. The code coverage achieved with each case study is analysed for the factors that affect the effectiveness of the state-based test suite. Additionally, errors have been seeded into 2 of the classes to determine the effectiveness of the technique for detecting errors on paths that are executed by the test suite. 92.5% of the errors seeded were detected by the state-based test-suite
Automatic generation of software applications: a platform-based MDA approach
The Model Driven Architecture (MDA) allows moving the software development from the time consuming and error-prone level of writing program code to the next higher level of modeling. In order to gain benefit from this innovative technology, it is necessary to satisfy two requirements. These are first, the creation of compact, complete and correct platform independent models (PIM) and second, the development of a flexible and extensible model transformation framework taking into account frequent changes of the target platform. In this thesis a platform-based methodology is developed to create PIM by abstracting common modeling elements into a platform independent modeling library called Design Platform Model (DPM). The DPM contains OCL-based types for modeling primitive and collection types, a platform independent GUI toolkit as well as other common modeling elements, such as those for IO-operations. Furthermore, a DPM profile containing diverse domain specific and design pattern-based stereotypes is also developed to create PIM with high-level semantics. The behavior in PIM is specified using an OCL-like action language called eXecutable OCL (XOCL), which is also developed in this thesis. For model transformation, the model compiler MOCCA is developed based on a flexible and extensible architecture. The model mapper components in the current version of MOCCA are able to map desktop applications onto JSE platform; the both business object layer and persistence layer of a three-layered enterprise applications onto JEE platform and SAP ABAP platform. The entire model transformation process is finished with complete code generation
Making object-oriented databases more knowledgeable (From ADAM to ABEL)
Tesis leida en la Universidad de Aberdeen. 178 p.The salient points of this thesis are as follows:
• Object-Oriented Databases can help in solving the impedance mismatch problem
by introducing methods. However, methods have sometimes been overused in the
sense th at the code encapsulated refers not only to how the operation is implemented
but also to other kinds of knowledge that are implicit in the code. The
disadvantages of this approach for modelling integrity constraints, user-defined relationships
and active behaviour are pointed out.
• The ADAM Object-Oriented Database has been extended to allow the designer
to specify integrity constraints declaratively. A constraint equation approach is
implemented th at supports the inheritance of constraints.
• A need for semantic-rich user-defined relationships has been identified. In this thesis,
relationships are represented as objects. An approach to enhance the semantics
of relationships in both its structural and behavioural aspects is presented. The
most novel idea of the approach presented is the support of the inferred properties
and the operational semantics of relationships.
• Active Databases have recently become an im portant area of research. This thesis
shows how to extend an Object-Oriented Database with active capabilities. The
principal contribution lies in representing as ‘first-class’ objects not only the active
rules but also the rule manager itself. Hence, besides handling active rules as
any other object in the system, future requirements can be supported just by
specialising the current rule manager.
• Active rules have been proposed for several purposes. Several examples, are given
of the direct use of rules. However, higher level tools can be provided of which rule
Recommended from our members
Mathematical modelling of gas flow networks in pellet induratlon systems
The objective of this research is to develop a simulation software tool, GASFLO, which should evaluate pressure, flow and temperature distributions of process gas in pellet induration system networks. Pellet induration systems are complex industrial systems composed of heterogenous components. The magnitude of gas through leaks i.e. the air entering or leaving the system from the points other than the known exits, is substantial and it adversely effects the performance of induration process. These leaks are very difficult to measure because of the hostile environment in the plant. The modelling of such industrial systems requires a notable amount of experimentation so the tool has been designed to enable the user modeller to change the component models and solution algorithms easily.
The conventional methods for flow network simulation are based on process centred approach, mostly composed of homogeneous components. For ease of computation, the non-pipe elements are modelled with an approximate linear or non-linear generic equation, whose coefficients can simulate different states of the element. The resulting set of non-linear equations is linearised and solved simultaneously using some iterative method. By contrast, GASFLO is based on device centred or unit based approach, and uses a two level hierarchical solution algorithm. The pellet induration system network is first idealised into a connected graph of streams (sets of serially connected components) and nodes. At the top or coordination level the flow and pressure distributions satisfying the Kirchhoff's laws are evaluated for the connected graph. At the lower or component level the exact mathematical models of components ale computed, in order of their occurrence in respective streams, using coordination variables as parameters. The converged flows are used for the temperature computation. The solution algorithm requires partitioning of the connected graph into forest and coforest structures, for which secondary algorithms have been developed using specific heuristics relevant to the pellet induration systems. The rigorous application of software engineering techniques for the design and implementation of software, enabled the resolution of the complexity of the modelled system, embedded the characteristics of 'quality software' into the resulting code and benefits from object orientation, even though it is implemented in standard FORTRAN 77.
GASFLO predicted results are in a good agreement with the measured results, it has been validated for a real life pellet induration system. It has been applied to simulate several practical scenarios, like addition of extra wind boxes to the zones and to determine how the plant production can be increased by certain ratio, such simulations were not feasible otherwise. GASFLO takes less than a minute to simulate a real-life pellet induration system on a 486 PC. The combined simulation with an other software tool, INDSYS, which evaluates the heat distribution in the solids, is also feasible
Recommended from our members
A Systematic Performance Study of Object Database Management Systems
Many previous performance benchmarks for Object Database Management Systems (ODBMSs) have typically used arbitrary sets of tests based on what their designers felt were the characteristics of Engineering applications. Increasingly, however, ODBMSs are being used in non-engineering domains, such as Financial Trading, Clinical Healthcare, Telecommunications Network Management, etc. Part of the reason for this is that the technology has matured over the past few years and has become a less risky choice for organisations looking for better w'ays to manage complex data. However, the development of suitable application- or industry-specific benchmarks, based on actual performance studies, has not paralleled this growth.
The research reported here approaches performance evaluation of ODBMSs pragmatically. It uses a combination of case studies and benchmark experiments to investigate the performance characteristics of ODBMSs for particular applications, following the successful use of this approach by Youssef [Youss93] for studying the performance of On- Line Transaction Processing (OLTP) applications for Relational Database Management Systems (RDBMSs).
Six case studies at five organisations show’ that organisations consider a wide range of factors when undertaking their own performance studies or benchmarks. Furthermore, none of the studied organisations considered using any public benchmarks. Six current and derived benchmarks also highlight statistically significant performance differences between three major commercial products: Objectivity/DB, ObjectStore and UniSQL. These benchmarks indicate the suitability of the products tested for particular application domains.
The research could not find any evidence at this time to support the concept of a generic or canonical performance workload for ODBMSs. This is demonstrated by the case studies and supported by the benchmark experiments. However, the research shows that performance benchmarks serve a very useful role in ODBMS evaluations and can help identify architectural and quality problems with products that would not otherwise be observed until significant application or system development was already in progress