This work presents a methodology for studying the transportation and energy sectors in an integrated fashion. It is based on an object-oriented model that identifies and simulates transportation activity, both urban a...
详细信息
This work presents a methodology for studying the transportation and energy sectors in an integrated fashion. It is based on an object-oriented model that identifies and simulates transportation activity, both urban and interurban, to compute emissions and energy consumption. The approach is oriented towards strategic planning studies with a time horizon of ten years. A software code using Java technology is developed and applied to the main Chilean transportation systems. The software provides a basis for studying the effects of transportation on the environment. This methodology should be capable of predicting the impact due to the future implementation of technological improvements and policies at a country-wide level. (c) 2008 Elsevier Ltd. All rights reserved.
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.
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.
In objectprogramming languages, the Visitor design pattern allows separation of algorithms and data structures. When applying this pattern to tree-like structures, programmers are always confronted with the difficult...
详细信息
In objectprogramming languages, the Visitor design pattern allows separation of algorithms and data structures. When applying this pattern to tree-like structures, programmers are always confronted with the difficulty of making their code evolve. One reason is that the code implementing the algorithm is interwound with the code implementing the traversal inside the visitor. When implementing algorithms such as data analyses or transformations, encoding the traversal directly into the algorithm turns out to be cumbersome as this type of algorithm only focuses on a small part of the data-structure model (e.g., program optimization). Unfortunately, typed programming languages like Java do not offer simple solutions for expressing generic traversals. Rewrite-based languages like ELAN or Stratego have introduced the notion of strategies to express both generic traversal and rule application control in a declarative way. Starting from this approach, our goal was to make the notion of strategic programming available in a widely used language such as Java and thus to offer generic traversals in typed Java structures. In this paper, we present the strategy language SL that provides programming support for strategies in Java. Copyright (c) 2012 John Wiley & Sons, Ltd.
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.
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.
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
object-Z is an extension of the Z notation which facilitates specification of large, complex software by defining a system as a collection of independent classes. A number of contributions have been made so far to map...
详细信息
object-Z is an extension of the Z notation which facilitates specification of large, complex software by defining a system as a collection of independent classes. A number of contributions have been made so far to map object-Z to various object-oriented languages. However, the given mapping approaches do not cover several object-Z specification constructs, such as class union, object aggregation, object containment and some of the operation operators. Also, in much of the existing work, mapping rules are given in a very abstract form. In other words, they do not consider all cases in a detailed way needed to automate the mapping procedure. In our previous work, we partially tackled these issues;however, in this paper, we present a much more comprehensive way to animate object-Z specifications using C++. The given method covers some constructs that have not been addressed in our previous work. Also, mapping rules are described with enough details facilitating automation. Finally, we consider some level of user interaction in our new method which increases the flexibility and efficiency of final codes from the user point of view. (C) 2012 Sharif University of Technology. Production and hosting by Elsevier B.V. All rights reserved.
A multilayer neural network development environment, called ANNDE, is presented for implementing effective learning algorithms for the domain of engineering design using the object-oriented programming paradigm. It co...
详细信息
A multilayer neural network development environment, called ANNDE, is presented for implementing effective learning algorithms for the domain of engineering design using the object-oriented programming paradigm. It consists of five primary components: learning domain, neural nets, library of learning strategies, learning process, and analysis process. These components have been implemented as five classes in two object-oriented programming languages C++ and G++. The library of learning strategies includes generalized delta rule with error backpropagation. Several examples are presented for learning in the domain of structural engineering.
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.
暂无评论