During the last fifty years, the development of better numerical methods and more powerful computers has been a major enterprise for the scientific community. Recent advances in computational softwares have lead to th...
详细信息
During the last fifty years, the development of better numerical methods and more powerful computers has been a major enterprise for the scientific community. Recent advances in computational softwares have lead to the possibility of solving more physical and complex problems (coupled problems, nonlinearities, high strain and high strain rate problems, etc.). The development of object-oriented programming leads to better structured codes for the finite element method and facilitates the development, the maintainability and the expandability of such codes. This paper presents an implementation in C++ of an explicit finite element program dedicated to the simulation of impacts. We first present a brief overview of the kinematics, the conservative and constitutive laws related to large deformation inelasticity. Then we present the design and the numerical implementation of some aspects developed with an emphasis on the object-oriented programming adopted. Finally, the efficiency and accuracy of the program are investigated through some benchmark tests. (C) 2002 Elsevier Science Ltd. All rights reserved.
This pilot study examines how students& x2019;performance has evolved in an object-oriented (OO) programming course and contributes to the learning analytic framework for similar programming courses in university ...
详细信息
This pilot study examines how students& x2019;performance has evolved in an object-oriented (OO) programming course and contributes to the learning analytic framework for similar programming courses in university curriculum. First, we briefly introduce the research background, a novel OO teaching practice with consecutive and iterative assignments consisting of programming and testing assignments. We propose a planned quantitative method for assessing students& x2019;gains in terms of programming performance and testing performance. Based on real data collected from students who engaged in our course, we use trend analysis to observe how students& x2019;performance has improved over the whole semester. By using correlation analysis, we obtain some interesting findings on how students& x2019;programming performance correlates with testing performance, which provides persuasive empirical evidence in integrating software testing practices into an object-oriented programming curriculum. Then, we conduct an empirical study on how students& x2019;design competencies are represented by their program code quality changes over consecutive assignments by analyzing their submitted source code in the course system and the GitLab repository. Three different kinds of profiles are found in the students& x2019;program quality in the OO design level. The group analysis results reveal several significant differences in their programming performance and testing performance. Moreover, we conduct systematical explanations on how students& x2019;programming skill improvement can be attributed to their object-oriented design competency. By performing principal component analysis on software statistical data, a predictive OO metrics suite for both students& x2019;programming performance and their testing performance is proposed. The results show that these quality factors can serve as useful predictors of students& x2019;learning performance and can provide effective feedback to the instru
AEIOU is an integrated programming environment developed to support the teaching-learning process of object-oriented programming in a gradual way. AEIOU includes three modules, one for each level of students' expe...
详细信息
AEIOU is an integrated programming environment developed to support the teaching-learning process of object-oriented programming in a gradual way. AEIOU includes three modules, one for each level of students' expertise: novice, intermediate, and advanced. This article describes the features of each module of AEIOU and the experiences and results obtained using this programming environment to support the sequence of programming courses in two Mexican engineering schools. (c) 2011 Wiley Periodicals, Inc. Comput Appl Eng Educ 22:309-319, 2014;View this article online at;DOI
The Finite Element Method (FEM) has become the most popular numerical method for solving a wide variety of complex engineering problems. However, from the programming point of view, when a FEM program has a lot of com...
详细信息
The Finite Element Method (FEM) has become the most popular numerical method for solving a wide variety of complex engineering problems. However, from the programming point of view, when a FEM program has a lot of computational capabilities it is very difficult to maintain and enlarge the program codes. Recently the object-oriented programming paradigm has become a powerful method for overcoming such difficulties. This paper contains the description of an open environment for the FEM, written in C+ +, with explanations about how the sensitivity analysis and the non-linear material behaviour (damage models) have been taken into account. (C) 2001 Elsevier Science Ltd. All rights reserved.
Class invariants-consistency constraints preserved by every operation on objects of a given type-are fundamental to building, understanding, and verifying object-oriented programs. For verification, however, they rais...
详细信息
Class invariants-consistency constraints preserved by every operation on objects of a given type-are fundamental to building, understanding, and verifying object-oriented programs. For verification, however, they raise difficulties, which have not yet received a generally accepted solution. The present work introduces a proof rule meant to address these issues and allow verification tools to benefit from invariants. It clarifies the notion of invariant and identifies the three associated problems: callbacks, furtive access, and reference leak. As an example, the 2016 Ethereum DAO bug, in which $50 million was stolen, resulted from a callback invalidating an invariant. The discussion starts with a simplified model of computation and an associated proof rule, demonstrating its soundness. It then removes one by one the three simplifying assumptions, each removal raising one of the three issues and leading to a corresponding adaptation to the proof rule. The final version of the rule can tackle tricky examples, including "challenge problems" listed in the literature.
Incremental changes add new functionality and new properties to software. They are the basis of software maintenance, evolution, incremental development, agile development, and other important software engineering pro...
详细信息
Incremental changes add new functionality and new properties to software. They are the basis of software maintenance, evolution, incremental development, agile development, and other important software engineering processes. This article presents selected incremental change activities-change request, concept extraction, concept location, impact analysis, actualization, incorporation, change propagation, refactoring, and role splitting-in which programming concepts and program dependencies play a key role. The authors provide an example that illustrates an incremental change in the open source software Drawlets.
This work presents an object-oriented numerical framework for the development of computer programs based on the boundary element method (BEM). The proposed design provides a large set of classes developed specially to...
详细信息
This work presents an object-oriented numerical framework for the development of computer programs based on the boundary element method (BEM). The proposed design provides a large set of classes developed specially to handle those entities most commonly found in BEM solution procedures. The framework is divided into three basic sets of classes that enable the analyst to build the code accordingly to the type of problem to be solved. The design also allows the use of an arbitrary number of subregions, which are connected automatically by imposing compatibility conditions on the interfaces. Code fragments illustrate how the use of the proposed framework can simplify the development cycle of research software based on the BEM. (C) 2004 Elsevier Ltd. All rights reserved.
The embedding of a small but expressive language of multidimensional functional programming in a well known and widely used language of object-oriented programming leads to the combination of two radically different p...
详细信息
The embedding of a small but expressive language of multidimensional functional programming in a well known and widely used language of object-oriented programming leads to the combination of two radically different programming models. In this paper, we formally define the syntax and semantics of GLU, which can be thought of as the multidimensional core of Lucid and GLU, and we describe its implementation as a language embedded in C++. With the aid of a few examples, we argue that the marriage of the two programming models is not only compatible and natural, but also that it produces a new and interesting hybrid language. Copyright (C) 2004 John Wiley Sons, Ltd.
作者:
ODERSKY, MIBM Research
T J Watson Research Center PO Box 704 Yorktown Heights NY 10594 USA
The paper presents an extension of MODULA-2 for objectorientedprogramming. After presenting a set of criteria for object-oriented languages, it discusses several possible strategies for extending MODULA-2. One of the...
详细信息
The paper presents an extension of MODULA-2 for objectorientedprogramming. After presenting a set of criteria for object-oriented languages, it discusses several possible strategies for extending MODULA-2. One of these strategies is then further developed and formalized in a new programming notation, MODULA-90.
The development of high-performance and lower power portable devices relies on both the underlying hardware architecture and technology as well as on the application software that executes on embedded processor cores....
详细信息
The development of high-performance and lower power portable devices relies on both the underlying hardware architecture and technology as well as on the application software that executes on embedded processor cores. One way to confront the increasing complexity and decreasing time-to-market of embedded software is by means of modular and reusable code, forcing software designers to use objected orientedprogramming languages such as C+ + [6]. However, the object-oriented approach is known to introduce a significant performance penalty compared to classical procedural programming. In this paper, the objectorientedprogramming style is evaluated in terms of both performance and power for embedded applications. Profiling results indicate that C++ programs apart from being slower than their corresponding C versions, consume significantly more energy. Further analysis shows that this is mainly due to the increased instruction count, larger code size and increased number of accesses to the data memory for the object-oriented versions. (C) 2003 Elsevier Science B.V. All rights reserved.
暂无评论