Large-scale object-oriented(OO) software systems have recently been found to share global network characteristics such as small world and scale free,which go beyond the scope of traditional software measurement and ...
详细信息
Large-scale object-oriented(OO) software systems have recently been found to share global network characteristics such as small world and scale free,which go beyond the scope of traditional software measurement and assessment *** measure the complexity at various levels of granularity,namely graph,class(and object) and source code,we propose a hierarchical set of metrics in terms of coupling and cohesion-the most important characteristics of software,and analyze a sample of 12 open-source OO software systems to empirically validate the *** results of the correlations between cross-level metrics indicate that the graph measures of our set complement traditional software metrics well from the viewpoint of network thinking,and provide more effective information about fault-prone classes in practice.
This paper describes an ongoing work in the development of a finite element analysis system, called TopFEM, based on the compact topological data structure, TopS [1,2]. This new framework was written to take advantage...
详细信息
This paper describes an ongoing work in the development of a finite element analysis system, called TopFEM, based on the compact topological data structure, TopS [1,2]. This new framework was written to take advantage of the topological data structure together with object-oriented programming concepts to handle a variety of finite element problems, spanning from fracture mechanics to topology optimization, in an efficient, but generic fashion. The class organization of the TopFEM system is described and discussed within the context of other frameworks in the literature that share similar ideas, such as Get-FEM++, ***, FEMOOP and OpenSees. Numerical examples are given to illustrate the capabilities of TopS attached to a finite element framework in the context of fracture mechanics and to establish a benchmark with other implementations that do not make use of a topological data structure. (C) 2013 Elsevier Ltd. All rights reserved.
Currently, there exists a line of research in mechanical CAD that is directed towards using AI and knowledge engineering ideas, but truly unifying approaches in this respect are lacking. The authors hope to fill this ...
详细信息
Currently, there exists a line of research in mechanical CAD that is directed towards using AI and knowledge engineering ideas, but truly unifying approaches in this respect are lacking. The authors hope to fill this gap via a logic-based, theoretical approach. A formulation is given for how a designer's apprentice (or a design workbench) can be established. The relevance of naive physics and commonsense reasoning in machine design are demonstrated. As for the software development methodology several aspects of software engineering are considered. A design base language which is built upon logic programming and object-oriented programming paradigm is proposed.
We present pyOpt, an object-oriented framework for formulating and solving nonlinear constrained optimization problems in an efficient, reusable and portable manner. The framework uses object-oriented concepts, such a...
详细信息
We present pyOpt, an object-oriented framework for formulating and solving nonlinear constrained optimization problems in an efficient, reusable and portable manner. The framework uses object-oriented concepts, such as class inheritance and operator overloading, to maintain a distinct separation between the problem formulation and the optimization approach used to solve the problem. This creates a common interface in a flexible environment where both practitioners and developers alike can solve their optimization problems or develop and benchmark their own optimization algorithms. The framework is developed in the Python programming language, which allows for easy integration of optimization software programmed in Fortran, C, C+ +, and other languages. A variety of optimization algorithms are integrated in pyOpt and are accessible through the common interface. We solve a number of problems of increasing complexity to demonstrate how a given problem is formulated using this framework, and how the framework can be used to benchmark the various optimization algorithms.
The object-oriented design used to implement a self-regular formulation of the boundary element method is presented. The self-regular formulation is implemented to four integral equations: the displacement boundary in...
详细信息
The object-oriented design used to implement a self-regular formulation of the boundary element method is presented. The self-regular formulation is implemented to four integral equations: the displacement boundary integral equation, and the Somigliana's integral identities for displacement, stress and strain. The boundary-layer effect that arises in the classical BEM on the transition from interior to boundary points is eliminated and thus special integration schemes to treat nearly singular integrals become unnecessary. The self-regular formulations lead to very accurate results. Comparisons of displacements, stress and strain obtained from analytical solutions and the numerical results for bidimensional and tridimensional elastostatics problems are presented, and the self-regular formulation shows strong stability. The implemented code is open-source and is available under the GNU General Public License. (C) 2013 Elsevier Ltd. All rights reserved.
To integrate a software component into a system, it must interactproperly with the system's other components. Unfortunately, thedecisions about how a component is to interact with other components aretypically com...
详细信息
To integrate a software component into a system, it must interactproperly with the system's other components. Unfortunately, thedecisions about how a component is to interact with other components aretypically committed long before the moment of integration and aredifficult to change. This paper introduces the flexible packagingmethod, which allows a component developer to defer some decisions aboutcomponent interaction until system integration time. The method dividesthe component's source into two pieces: the ware, which encapsulates thecomponent's functionality; and the packager, which encapsulates thedetails of interaction. Both the ware and the packager are independentlyreusable. A ware, as a reusable part, allows a given piece offunctionality to be employed in systems in different architecturalstyles. A packager, as a reusable part, encapsulates conformance to acomponent standard, like an ActiveX control or an ODBC databaseaccessor. Because the packager's source code is often formulaic, a toolis provided to generate the packager's source from a high-leveldescription of the intended interaction, a description written in thearchitectural description language UniCon. The method and tools areevaluated with a series of experiments in which three wares and ninetypes of packaging are combined to form thirteen components
This paper introduces NiHu, a C++ template library for boundary element methods (BEM). The library is capable of computing the coefficients of discretised boundary integral operators in a generic way with arbitrarily ...
详细信息
This paper introduces NiHu, a C++ template library for boundary element methods (BEM). The library is capable of computing the coefficients of discretised boundary integral operators in a generic way with arbitrarily defined kernels and function spaces. NiHu'S template core defines the workflow of a general BEM algorithm independent of the specific application. The core provides expressive syntax, based on the operator notation of the BEM, reflecting the mathematics behind boundary elements in the C++ source code. The customisable Component library contains elements specific to particular applications such as different numerical integration techniques and regularisation methods. The library can be used for creating a standalone C++ application using external open source libraries, or compiling a Matlab tool-box through the MEX interface. By massively exploiting C++ template metaprogramming, NiHu generates optimised codes for specific applications, including heterogeneous problems. The paper introduces the main concepts of the novel development, demonstrates its versatility and flexibility and compares the implementation's performance to that of other open source projects. (C) 2014 Elsevier Ltd. All rights reserved.
Refactoring is recognized as an essential practice in the context of evolutionary and agile software development. Recognizing the importance of the practice, modern IDEs provide some support for low-level refactorings...
详细信息
Refactoring is recognized as an essential practice in the context of evolutionary and agile software development. Recognizing the importance of the practice, modern IDEs provide some support for low-level refactorings. A notable exception in the list of supported refactorings is the "Extract Class" refactoring. which is conceived to simplify large, complex, unwieldy and less cohesive classes. In this work, we describe a method and a tool, implemented as an Eclipse plugin, designed to fulfill exactly this need. Our method involves three steps: (a) recognition of Extract Class opportunities. (b) ranking of the identified opportunities in terms of the improvement each one is anticipated to bring about to the system design, and (c) fully automated application of the refactoring chosen by the developer. The first step relies on an agglomerative clustering algorithm, which identifies cohesive sets of class members within the system classes. The second step relies on the Entity Placement metric as a measure of design quality. Through a set of experiments we have shown that the tool is able to identify and extract new classes that developers recognize as "coherent concepts" and improve the design quality of the underlying system. (C) 2012 Elsevier Inc. All rights reserved.
C++ [1, 2] extends a modern, general purpose programming language into the object-oriented programming paradigm. The language ameliorates disadvatanges of C while introducing new problems. Advantages and disadvantages...
详细信息
C++ [1, 2] extends a modern, general purpose programming language into the object-oriented programming paradigm. The language ameliorates disadvatanges of C while introducing new problems. Advantages and disadvantages of traditional C [3, 4] have been discussed in [5]. This paper assesses C++, examining why it is better general purpose programming langauge. Since C++ is “object-oriented” we consider how well it implements that metaphor. In this paper we assume the reader has a working knowledge of the C programming language. Section 1 briefly enumerates advantages and disadvantages of C to provide a context for assessing C++. In Section 2 we describe new C++ features and discuss ways they ameliorate shortcomings of C. Section 3 describes philosophical and practical problems with C++. The last section assesses C++ as a successor to C.
In this paper, we present a symbolic approach to automating the elaboration of numerical tools for the simulation of physical processes using the finite element method. We aim at developing a generic environment to au...
详细信息
In this paper, we present a symbolic approach to automating the elaboration of numerical tools for the simulation of physical processes using the finite element method. We aim at developing a generic environment to automate discretization schemes in the context of PDEs. The approach is implemented in a consistent object-oriented tool built in Java. We propose a symbolic environment to automatically build the symbolic forms of elemental contributions corresponding to a variational formulation. These contributions are automatically introduced into a classical simulation tool. The basic object-oriented framework covering the elaboration of the elemental contributions derived from the weak statement is briefly discussed. The approach can be naturally extended to any discretization model in space or time. This approach is illustrated by the example of hyperelasticity. (C) 2016 Elsevier Ltd. All rights reserved.
暂无评论