Although object-oriented programming (OOP) methodologies immensely promote reusable and well-factored decomposition of complex source code, legacy software systems often show symptoms of deteriorating design over time...
详细信息
Although object-oriented programming (OOP) methodologies immensely promote reusable and well-factored decomposition of complex source code, legacy software systems often show symptoms of deteriorating design over time due to lack of maintenance. Software systems may have different business and application contexts, but most of these systems require similar maintenance mechanism of understanding, analysis and transformation. As a consequence, intensive re-engineering efforts based on the model driven approach can be effective ensuring that best practices are followed during maintenance and eventually reducing the development cost. In this paper, we suggest detailed framework of re-engineering which includes: (i) rigorous and automated source code analysis technique for identification, characterization and prioritization of most prominent and threatening design flaws in legacy software, (ii) migration of existing the code to aspect-orientedprogramming (AOP) code by exploiting current state of art for aspect mining mechanism and incorporating behavioral knowledge of cross-cutting concerns. To exemplify how the approach works a case study has been conducted to experimentally validate the idea and analyze the effect of process on specific software quality spectrum. An explicit analysis of prevalent work on the subject and their critical reviews are also presented to further enhance the recognition of proposed re-engineering framework.
This work is a user guide to the FEMPAR scientific software library. FEMPAR is an open-source object-oriented framework for the simulation of partial differential equations (PDEs) using finite element methods on distr...
详细信息
This work is a user guide to the FEMPAR scientific software library. FEMPAR is an open-source object-oriented framework for the simulation of partial differential equations (PDEs) using finite element methods on distributed-memory platforms. It provides a rich set of tools for numerical discretization and built-in scalable solvers for the resulting linear systems of equations. An application expert that wants to simulate a PDE-governed problem has to extend the framework with a description of the weak form of the PDE at hand (and additional perturbation terms for non-conforming approximations). We show how to use the library by going through three different tutorials. The first tutorial simulates a linear PDE (Poisson equation) in a serial environment for a structured mesh using both continuous and discontinuous Galerkin finite element methods. The second tutorial extends it with adaptive mesh refinement on octree meshes. The third tutorial is a distributed-memory version of the previous one that combines a scalable octree handler and a scalable domain decomposition solver. The exposition is restricted to linear PDEs and simple geometries to keep it concise. The interested user can dive into more tutorials available in the FEMPAR public repository to learn about further capabilities of the library, e.g., nonlinear PDEs and nonlinear solvers, time integration, multi-field PDEs, block preconditioning, or unstructured mesh handling. Program summary Program Title: FEMPAR Program Files doi: http://***/10.17632/dtx487wp57.1 Licensing provisions: GNU General Public License 3 programming language: MPI, Fortran2003/2008 (object-oriented programming features) Nature of problem: Computational simulation of a broad range of large-scale application problems governed by Partial Differential Equations Solution method: Arbitrary-order grad-, curl-, and div-conforming finite elements on n-cube and n-simplex meshes. Continuous and Discontinuous Galerkin FEM. Adaptive Mesh Refi
GENASIS Mathematics provides modern Fortran classes furnishing extensible object-oriented function-ality for the solution of fields governed by selected partial differential equations. The initial release included ext...
详细信息
GENASIS Mathematics provides modern Fortran classes furnishing extensible object-oriented function-ality for the solution of fields governed by selected partial differential equations. The initial release included extensible object-oriented implementations of simple meshes and the evolution of generic con-served currents thereon. This revision-Version 2 of Mathematics-includes significant reorganization and streamlining of these classes, higher-order reconstruction by a different method, a Poisson solver, coarsening to avoid Courant time step limitations near coordinate singularities, and the offloading of computational kernels to GPUs. New version program summary Program Title: HomogeneousSpheroid, RectangularContraction, RectangularExpansion, SphericalContraction, SphericalExpansion (example problems illustrating GenASiS Mathematics) CPC Library link to program files: https://***/10.17632/mzvxngwtw6.2 Developer's repository link: https://***/GenASiS Code Ocean capsule: https://***/capsule/4106782 Licensing provisions: GPLv3 programming language: Modern Fortran;OpenMP (tested with recent versions of GNU Compiler Collection (GCC), Cray Compiler Environment (CCE), IBM XL Fortran compiler) Journal reference of previous version: Computer Physics Communications 222 (2018) 384 Does the new version supersede the previous version?: Yes Reasons for the new version: This version includes significant reorganization and streamlining, higher-order reconstruction by a different method, a Poisson solver, coarsening to avoid Courant time step limitations near coordinate singularities, and the offloading of computational kernels to GPUs. Summary of revisions: The left part of Fig. 1 shows the revised structure of GenASiS Mathematics. The Algebra and Calculus divisions contain relatively simple stand-alone functionality for such tasks as root finding, interpolation, numerical integration, and the solution of ordinary differential equations. The major functionali
object-Z is an extension of Z which provides specific constructs to facilitate specification in an object-oriented style. A number of contributions have been made so far to animate object-Z with various object-oriente...
详细信息
object-Z is an extension of Z which provides specific constructs to facilitate specification in an object-oriented style. A number of contributions have been made so far to animate object-Z with various object-oriented programming languages. However, none of the existing animation methods present their mapping rules formally. Also, none of these animation methods prove the correctness of their mapping rules. In our previous work, we informally presented an animation method to map object-Z specifications into C++ code. In this paper, we propose a formal mapping from object-Z specifications to C++ code. We also prove the correctness of the given mapping rules. (C) 2013 Sharif University of Technology. All rights reserved.
Detecting programming errors in software is increasingly important, and building tools that help developers with this task is a crucial area of investigation on which the industry depends. Leveraging on the observatio...
详细信息
Detecting programming errors in software is increasingly important, and building tools that help developers with this task is a crucial area of investigation on which the industry depends. Leveraging on the observation that in object-oriented programming (OOP) it is natural to define stateful objects where the safe use of methods depends on their internal state, we present Java Typestate Checker (JATYC), a tool that verifies Java source code with respect to typestates. A typestate defines the object's states, the methods that can be called in each state, and the states resulting from the calls. The tool statically verifies that when a Java program runs: sequences of method calls obey to object's protocols;objects' protocols are completed;null-pointer exceptions are not raised;subclasses' instances respect the protocol of their superclasses. To the best of our knowledge, this is the first OOP tool that simultaneously tackles all these aspects. (C) 2022 Elsevier B.V. All rights reserved.
Linear systems involved in engineering and scientific calculations can be more easily analyzed using similarity transformation. However, understanding the numerous abstract linear algebra theorems associated with this...
详细信息
Linear systems involved in engineering and scientific calculations can be more easily analyzed using similarity transformation. However, understanding the numerous abstract linear algebra theorems associated with this transformation can be challenging. This paper proposes a systematic approach to organizing these theorems using SymPy, a symbolic mathematics library in Python, and develops an innovative Python module that leverages SymPy. It covers important theorems, including vector space basis, range space, null space, rank and nullity, eigenvalues, generalized eigenvectors, eigenspaces, and diagonal-Jordan canonical form transformations. These theorems are transformed into abstract data models and represented as programmatic objects using object-oriented programming to process input and output data. Two classes, 'rangeSpace' and 'similarTrnsfrm,' were created to handle computations related to range space and similarity transformation, respectively. The effectiveness of these classes has been validated through numerical results, which, when compared to MATLAB functions (null(), pinv(), sym(), and jordan()), demonstrate that the exact symbolic solutions from both classes significantly improve numerical precision for selected application examples from numerical algorithms, power systems and linear algebra. These classes have been uploaded to GitHub as open-source code, providing a versatile Python module that can be used for programming both offline on PCs and online through the web application "SymPy Live," producing satisfactory results even on mobile devices. This user-friendly module enables electrical engineering students and professionals to easily apply abstract linear algebra theorems to practical problems, facilitating computer-based solutions for linear systems that are consistent with analytical results.
HERAS is a tool developed in Matlab for the analysis of reflector antennas using physical optics (PO) theory. Its graphical user interface (GUI) and source code are freely available for educational and research purpos...
详细信息
HERAS is a tool developed in Matlab for the analysis of reflector antennas using physical optics (PO) theory. Its graphical user interface (GUI) and source code are freely available for educational and research purposes. It has the necessity of being a flexible tool to provide adaptability to system engineering requirements and can also be of interest to antenna engineers working on the design of reflector antennas. Due to the increasing demand of broadband services, satellite communications systems are becoming highly complex in order to meet connectivity requirements. To fully exploit the benefits of these systems, multidimensional optimisations are crucial, which call for an efficient estimation of the coverage characteristics. Reflector-based solutions are one of the preferred architectures for very high-throughput satellite (VHTS) systems. A detailed description of HERAS is presented in this paper which has been validated with available commercial software packages. In addition, some examples are described in which the tool has been used for the efficient estimation of VHTS systems performance.
The need for multimethods is preeminent in the domain of object-oriented programming. However, multimethods are far from universally acknowledged. Commonly used languages - C++, Java & C# - are single dispatching ...
详细信息
The need for multimethods is preeminent in the domain of object-oriented programming. However, multimethods are far from universally acknowledged. Commonly used languages - C++, Java & C# - are single dispatching languages. In this paper, we demonstrate the alternatives for multimethods in such languages. The techniques discussed, in this paper, include double dispatching (a well known technique), technique of message dispatching using RTTI (explored in detail by us in this paper), and reflection (a feature provided by some compilers). We implement these techniques for C++, Java and C# languages and discuss issues associated with encapsulating multimethods in single dispatch languages. We also compare techniques in terms of their efficiency, ease of (re)use and type safety.
This paper introduces a new modular software approach combining symbolical and numerical methods for the simulation of the dynamics of mechanical systems. It is based on an exact, noniterative object-oriented algorith...
详细信息
This paper introduces a new modular software approach combining symbolical and numerical methods for the simulation of the dynamics of mechanical systems. It is based on an exact, noniterative object-oriented algorithm, which is applicable to mechanisms with any joint type and any any topology, including branches and kinematic loops. The simulation of big well-partitioned systems has complexity O(N), where N is the total number of simulated bodies. A new design software Virtual System Designer (VSD) integrates this method with the three-dimensional computer aided design tool Autodesk Inventor, which minimizes the cost of the development of models and the training of design engineers. The most time-expensive routine of the simulation process in VSD is the calculation of the accelerations of each body, which needs to find the roots of matrix equations. Accounting for the sparsity of matrices can significantly improve the numerical efficiency of the routine. The preprocessing module, developed using Maple software, performs the symbolic simplification of the matrix multiplications and QR decomposition's procedures. The new coordinate projection method is demonstrated. The results of the simulation of the dynamics of a double insulator chain example show the method's stability and effectiveness.
Change orders are common to most construction projects. They can significantly increase project cost and duration, leading to more claims and disputes and ultimately creating an adversarial relationship among project ...
详细信息
Change orders are common to most construction projects. They can significantly increase project cost and duration, leading to more claims and disputes and ultimately creating an adversarial relationship among project members. Evidence has shown that a contributing factor to the inefficiency of change order management is the management process utilized in most construction projects, which always relates to suboptimal allocation of resources and unnecessary procedures. Discrete event simulation (DES) provides an effective approach to streamline the change order management process by evaluating a series of improvement options. Based on a comparison of two prevailing DES paradigms, activity scanning (AS) and process interaction (PI), this paper presents an object-oriented DES model to investigate the change order management process. A case study has been performed to investigate the change order management process at a Midwestern land-grant university with the proposed simulation model, where the bottlenecks of as-is process have been identified and improved. The developed model employs PI paradigm rather than AS paradigm because the former is capable of capturing the real time state changes of change orders. Sensitivity analysis (SA) is also applied to examine the quantitative impacts of changeable variables to evaluate improvement options. The results indicate that PI paradigm outperforms AS in the investigation of change order management process. It is also expected that the developed model provides an optimization tool to support change order management.
暂无评论