Model-driven development (MDD) is a software engineering discipline which suggests that software development should be done at the modelling level and that applications should be generated from models. A key concept o...
详细信息
Model-driven development (MDD) is a software engineering discipline which suggests that software development should be done at the modelling level and that applications should be generated from models. A key concept of MDD is a model transformation that generates software artifacts, such as code, from models. Since models are 'first-class' citizens in MDD, their verification and validation are important tasks and so are the model transformations. A transformation contract, which is also a model, is a specification of what a particular model transformation must implement and essentially specifies a relation between metamodels and properties that must hold on such a relation. The authors have defined a design pattern that enforces transformation contract correctness over model transformations implementations. This study reports on (i) the proposed design pattern, (ii) the design of the UMLtoEJB model transformation that generates application code, following the Enterprise Java Beans standard, from class diagrams described in the Unified Modelling Language, and (iii) a discussion on how the transformation contracts approach may help different actors, in an MDD software development process with transformation contracts, to identify erroneous situations.
Formalising and automating the software life-cycle processes are key factors in the improvement of software productivity. This paper describes the Project Master Database (PMDB) work, three generations of investigatio...
详细信息
Formalising and automating the software life-cycle processes are key factors in the improvement of software productivity. This paper describes the Project Master Database (PMDB) work, three generations of investigations into the modelling and encoding of software life-cycle processes;it briefly describes past activities and concentrates on more recent investigations. It presents an approach to software process modelling based on an object-based model called the PMDB + model, which includes project elements, relationships between those elements and behavioural descriptions of project life-cycle activities. An overview of the model is presented, together with examples to illustrate the application of the model to existing software processes. It also describes a prototyping exercise that implemented the PMDB + model in an object-oriented database management system. Key results of these investigations, the impact of process implementations on the architecture of environments, and lessons learnt from the exercises are described.
Multi-methods are functions whose calls at runtime are resolved depending on the dynamic types of more than one argument. They are useful for common programming problems. However, while many languages provide differen...
详细信息
Multi-methods are functions whose calls at runtime are resolved depending on the dynamic types of more than one argument. They are useful for common programming problems. However, while many languages provide different mechanisms to implement them in one way or another, there is still, to the best of our knowledge, no library or language feature that handles them in a general and flexible way. In this paper, we present the EVL (Extended Virtual function Library) framework which provides a set of classes in C++ aiming at solving this problem. The EVL framework provides a generalization of virtual function dispatch through the number of dimensions and the selection of the function to invoke using a so-called Function Comparison Operator. Our library provides both symmetric and asymmetric dispatch algorithms that can be refined by the programmer to include criteria other than class inheritance. For instance, the EVL framework provides multi-methods with predicate dispatch by defining a dedicated FCO based not only on the dynamic types of the arguments but also on their values. This flexibility greatly helps to resolve ambiguities without having to define new functions. Our multi-methods also unify dispatch tables and caching by introducing cache strategies for which the implementation is a balance between memory and speed. To define multi-methods in C++, we implement a non-intrusive reflection library providing fast dynamic casting and supporting dynamic class loading. Our multi-methods are policy-based class templates that support virtual but not repeated inheritance. They check the type compatibility of functions at compile-time, preserve type-safety and resolve function calls at runtime by invoking the cache or updating it by computing the selected function for the requested tuple of types. By default, our multi-methods handle dispatch errors at runtime by throwing exceptions but an error-code strategy can be set up by defining a dedicated policy class. Performance
Aspect-orientedprogramming, one of the most promising separation-of-concerns technologies, focuses on concerns that cross-cut a chosen decomposition strategy. Despite its promise, however, AOP has so far failed to ma...
详细信息
Aspect-orientedprogramming, one of the most promising separation-of-concerns technologies, focuses on concerns that cross-cut a chosen decomposition strategy. Despite its promise, however, AOP has so far failed to make the transition to mainstream software development. The authors describe a strategy, based on architecture stratification, that exploits the advantages of aspect-oriented development in model-driven and component-based frameworks.
Development of user-friendly and flexible scientific programs is a key to their usage, extension and maintenance. This article presents an object-oriented programming approach for the development of FER/Mech-a softwar...
详细信息
Development of user-friendly and flexible scientific programs is a key to their usage, extension and maintenance. This article presents an object-oriented programming approach for the development of FER/Mech-a software with interactive graphics for use in the design and analysis of two and three dimensional multibody dynamic systems. The general organization of the developed software system is given which includes the solver and the pre/postprocessors with a friendly Graphical User interfaces. The concept of absolute natural coordinates is discussed to model rigid bodies in order to satisfy the constraints of modularity. Two case studies with graphical representations illustrate some functionalities of the program. (C) 2003 Elsevier Ltd. All rights reserved.
The interest in dispersed generation (DG) is world-widely increasing. The connection of small generating units affects the operation of distribution systems and classical modeling and analyzing techniques must be revi...
详细信息
The interest in dispersed generation (DG) is world-widely increasing. The connection of small generating units affects the operation of distribution systems and classical modeling and analyzing techniques must be revised. Recently, a novel approach to the distribution load-flow problem has been proposed: the object-oriented (OO) paradigm has been applied both to the system modeling and to the Newton-Raphson solving algorithm in the cases of radial and weakly meshed distribution systems. In this paper, the OO load-flow modeling and algorithm are extended to account for the inclusion of DG. The OO paradigm allows easily introducing accurate models of DG interfacing to the network by various electric devices (synchronous generators, induction machines, power electronics converters). Numerical applications are presented to evidence the features of the algorithm evaluating the effects of DG on the operation of two test systems.
SoundWorks, an object-oriented distributed system that lets users interactively manipulate sound through a graphical interface, is discussed. The system handles digitally sampled sounds as well as those generated by s...
详细信息
SoundWorks, an object-oriented distributed system that lets users interactively manipulate sound through a graphical interface, is discussed. The system handles digitally sampled sounds as well as those generated by software and digital signal processing hardware. An overview of the different types of sounds and window interfaces provided by SoundWorks and of the operations that modify these sounds is presented. The high-level architecture and the design of the SoundWorks system the protocol defined between the user interface code and client application, and the sound kernel specification that manages sounds and lines, performs operations on sounds, and interfaces to the digital hardware are described. The NEWS application programming environment, which provided the necessary primitive graphic items for a graphical window-based interface and offered an object-oriented approach for development of the SoundWorks system, is also discussed
The state of knowledge in how to specify sequential programs in object-oriented languages such as Java and C# and the state of the art in automated verification tools for such programs have made measurable progress in...
详细信息
The state of knowledge in how to specify sequential programs in object-oriented languages such as Java and C# and the state of the art in automated verification tools for such programs have made measurable progress in the last several years. This paper describes several remaining challenges and approaches to their solution.
The authors present a navel method for developing reconfigurable systems targeted at embedded system applications. The paper shows how an existing objectoriented design method (MOOSE) has been adapted to include reco...
详细信息
The authors present a navel method for developing reconfigurable systems targeted at embedded system applications. The paper shows how an existing objectoriented design method (MOOSE) has been adapted to include reconfigurable hardware (FPGAs). Previous research an reconfigurable computing has concentrated on the efficient mapping of algorithms to FPGAs. It must be realised that reconfigurable hardware usually forms part of much larger embedded systems, which include other hardware components, memories, and processors executing significant software tasks. The work represents a significant advance over current embedded system design methods in that it integrates the use of reconfigurable hardware components with a systematic design method for complete systems including both hardware and software. The development techniques are illustrated by a practical example. Although the enhanced methodology is applicable to some reconfigurable computing systems, further work is planned to extend our design technique to exploit the potential benefits of embedded systems which can be dynamically reconfigured at system fun-time, The final objective is to produce an abject oriented design methodology where system objects can be seamlessly implemented in either software or reconfigurable hardware.
SWAT(Soil and Water Assessment Tool)and APEX(Agricultural Policy/Environmental eXtender)are respectively large and small watershed simulation models derived from EPIC(Environmental Policy Integrated Climate),a field-s...
详细信息
SWAT(Soil and Water Assessment Tool)and APEX(Agricultural Policy/Environmental eXtender)are respectively large and small watershed simulation models derived from EPIC(Environmental Policy Integrated Climate),a field-scale agroecology simulation *** three models are coded in Fortran and have evolved over several *** are widely used to analyze anthropogenic influences on soil and water quality and *** of the original Fortran code has been retained even though Fortran has been through several cycles of *** now provides functionality originally restricted to languages like C,designed to communicate directly with the operating system and *** can now use an object-oriented style of programming in Fortran,including inheritance,run-time polymorphism and *** order to enhance their utility in research and policy-making,the models are undergoing a major revision to use some of the new Fortran *** these new programming paradigms the developers of SWAT,APEX,and EPIC are working to make communication between the two models *** paper describes the ongoing revision of these models that will make them easier to use,maintain,modify and *** is intended that they will converge as they continue to evolution,while maintaining their distinctive features,capabilities and identities.
暂无评论