An approach to automatized object-oriented code refactoring is described that applies LP structures theory to type hierarchy transformations, which merge attributes sharing common subclasses. A distinctive feature of ...
详细信息
ISBN:
(纸本)9783030595357;9783030595340
An approach to automatized object-oriented code refactoring is described that applies LP structures theory to type hierarchy transformations, which merge attributes sharing common subclasses. A distinctive feature of these algebraic structures is their ability to model aggregation not as a relation between independent sets of types and attributes, but as a relation between specific types. The property enables a more adequate modeling of type hierarchies. The described approach is dual to the "Pull Up Field" refactoring method that was considered in the previous works related to the applications of LP structures theory. In this paper, LP structures on type lattices are extended to be able to model a wider range of type hierarchies and to accommodate external constraints on the refactoring process. Also, the paper details the process of constructing and applying the model.
The large number of published assessment procedures in geotechnical engineering, as well as the large and ever-growing number of field and experimental data sets makes it difficult to perform a full validation of a ne...
详细信息
ISBN:
(纸本)9783030320294;9783030320287
The large number of published assessment procedures in geotechnical engineering, as well as the large and ever-growing number of field and experimental data sets makes it difficult to perform a full validation of a new procedure. Essentially demonstrating that the new procedure is superior to existing approaches across all existing observed evidence. To enable more effective validation, this paper presents a framework for linking experimental/field data with geotechnical assessment procedures using physically based object-orientated databases. A brief explanation of physically based object-oriented programming in engineering is presented, as well as a framework for the development of compatible databases. The database design covers several key aspects: behaviour based type checking, identification numbers for objects, object methods handle saving and loading exceptions, and the use of default attribute names. This philosophy is then applied to a specific problem of earthquake geotechnical engineering where publicly available centrifuge test results are compared with simplified methods for prediction of the build up of excess pore pressure and the triggering of seismically induced soil liquefaction.
An approach of automatized object-oriented code refactoring is described that applies lattice-based algebraic structures for type hierarchy representation and optimization. A distinctive feature of these algebraic str...
详细信息
ISBN:
(纸本)9783030500979
An approach of automatized object-oriented code refactoring is described that applies lattice-based algebraic structures for type hierarchy representation and optimization. A distinctive feature of these algebraic structures is their ability to model aggregation not as a relation between two independent sets of types and attributes, but as a relation between two specific types. The property makes it possible to perform a more careful optimization of type hierarchy. The described approach focuses on redundant attributes removal and on the relocation of identical attributes into their common superclasses ("Pull Up Field" technique). In this paper it is demonstrated how the adopted algebraic structures can be extended to model a wide range of type hierarchies. Also, they are shown to be able to perform transformations allowing for external constraints. Such constraints may represent some additional knowledge of the type hierarchy or of the refactoring process itself. The described approach employs only the fundamental ideas of object-oriented programming. Supplemented with language-specific features it may be used as a basis for building intellectual systems that facilitate object-oriented code refactoring.
A complete textbook and reference for engineers to learn the fundamentals of computer programming with modern C++ Introduction to programming with C++ for Engineers is an original presentation teaching the fundamental...
详细信息
ISBN:
(数字)9781119431152
ISBN:
(纸本)9781119431107
A complete textbook and reference for engineers to learn the fundamentals of computer programming with modern C++ Introduction to programming with C++ for Engineers is an original presentation teaching the fundamentals of computer programming and modern C++ to engineers and engineering students. Professor Cyganek, a highly regarded expert in his field, walks users through basics of data structures and algorithms with the help of a core subset of C++ and the Standard Library, progressing to the object-oriented domain and advanced C++ features, computer arithmetic, memory management and essentials of parallel programming, showing with real world examples how to complete tasks. He also guides users through the software development process, good programming practices, not shunning from explaining low-level features and the programming tools. Being a textbook, with the summarizing tables and diagrams the book becomes a highly useful reference for C++ programmers at all levels. Introduction to programming with C++ for Engineers teaches how to program by: Guiding users from simple techniques with modern C++ and the Standard Library, to more advanced object-oriented design methods and language features Providing meaningful examples that facilitate understanding of the programming techniques and the C++ language constructions Fostering good programming practices which create better professional programmers Minimizing text descriptions, opting instead for comprehensive figures, tables, diagrams, and other explanatory material Granting access to a complementary website that contains example code and useful links to resources that further improve the reader’s coding ability Including test and exam question for the reader’s review at the end of each chapter Engineering students, students of other sciences who rely on computer programming, and professionals in various fields will find this book invaluable when learning to program with C++.
In this work, we examine whether repeated participation in an after-school computing program influenced student learning of computational thinking concepts, practices, and perspectives. We also examine gender differen...
详细信息
In this work, we examine whether repeated participation in an after-school computing program influenced student learning of computational thinking concepts, practices, and perspectives. We also examine gender differences in learning outcomes. The program was developed through a school-university partnership. Data were collected from 138 students over a 2.5-year period. Data sources included pre-post content assessments of computational concepts related to programming in addition to computational artifacts and interviews with a purposeful sample of 12 participants. Quantitative data were analyzed using statistical methods to identify gains in pre- and post-learning of computational thinking concepts and examine potential gender differences. Interview data were analyzed qualitatively. Results indicated that students made significant gains in their learning of computational thinking concepts and that gains persisted over time. Results also revealed differences in learning of computational thinking concepts among boys and girls both at the beginning and end of the program. Finally, results from student interviews provided insights into the development of computational thinking practices and perspectives over time. Results have implications for the design of after-school computing programs that help broaden participation in computing.
The development of complex systems within multi-domain environments requires an effective way of capturing, sharing and integrating knowledge of the involved experts. Modern Knowledge-Based Engineering (KBE) systems f...
详细信息
ISBN:
(纸本)9789897584749
The development of complex systems within multi-domain environments requires an effective way of capturing, sharing and integrating knowledge of the involved experts. Modern Knowledge-Based Engineering (KBE) systems fulfill this function, making formalized knowledge executable by using highly specialized environments and languages. However, the dedication of these environments to their domain of application poses limitations on the cross-domain integration of KBE applications. The use of Semantic Web Technologies (SWT) delivers a domain-neutral way of knowledge formalization and data integration which promises to drastically reduce the effort required to integrate knowledge of multiple domains in a single representation. Especially within the complex field of aeronautical vehicle design the authors are working in, characterized by several individual disciplines having to be considered simultaneously, the combined usage of KBE and SWT technologies seems an attractive approach for the continued digitalization of the design process. In this paper, the COllaborative DEsign and eXploration (Codex) framework is presented which aims at merging these two technologies into a single framework that can be used to create domain-specific knowledge-bases and integrate these into a single model of the overall product. Formalizing and executing this model will lead to a more transparent and integrated view on complex product design.
In recent times, the subject of interoperability has become very popular. In large-scale software applications development, it is a common practice to combine multiple languages in solving peculiar problems and develo...
详细信息
In recent times, the subject of interoperability has become very popular. In large-scale software applications development, it is a common practice to combine multiple languages in solving peculiar problems and developing robust solutions. The ability to combine multiple languages allows an easy migration of an existing project from one language to another or use existing libraries in another language. This makes interoperability a force to be reckoned with when developing new programming languages. The Eolang programming language is a new research and development initiative aimed at achieving true object-oriented programming by having all components of the program as objects. As such, the construct and syntax of Eolang is vastly different from that of Java. This makes integration and interoperability between these two languages a challenging issue related to method/object naming conventions, keywords and operators, etc. In this paper we explore the potential of Eolang interoperability with Java by looking at the interoperability mechanisms of some other languages with Java, describe ways to overcome these challenges with Eolang and develop the solution. Specifically, we focus on the possibility to call Java code from Eolang while the semantics of both languages remain preserved. Our solution allows Java code to be called in Eolang through wrappers that turn Java classes and methods into Eolang objects.
The aliasing question (can two reference expressions point, during an execution, to the same object?) is both one of the most critical in practice, for applications ranging from compiler optimization to programmer ver...
详细信息
Polymorphism is challenging for novice programmers because it is an emergent consequence of multiple language features. OO polymorphism is critical to flexible software design, but no model currently explains student ...
详细信息
ISBN:
(纸本)9781450367936
Polymorphism is challenging for novice programmers because it is an emergent consequence of multiple language features. OO polymorphism is critical to flexible software design, but no model currently explains student comprehension. In this research, students implemented the Strategy pattern to improve their comprehension of polymorphism, then were assessed by professional developers in whiteboard interviews. From these data, the authors work toward deriving a model of novice comprehension of polymorphism.
Agility in software development means being able to adapt to ever-changing requirements. A major factor in agility is keeping the codebase easy to read and to extend. This kind of code is commonly called "clean c...
详细信息
Agility in software development means being able to adapt to ever-changing requirements. A major factor in agility is keeping the codebase easy to read and to extend. This kind of code is commonly called "clean code". Clean code is simple, elegant, and does not repeat itself. Writing clean code means that the cost of adding, changing, and removing features is kept to a minimum. It front-loads more of the work into the design stages of development, where it is cheaper both financially as well as mentally.
This thesis describes some of the main principles of clean code and shows how they can be used in analyzing game code. The game under scrutiny is The Last Cube, a large-scale puzzle game project in which the author is the lead programmer. The game has been in development in the Unity game engine over 3 years. Parts of the code of The Last Cube are described and then analyzed using various methods and tools. The analysis of the code revealed hundreds of major violations of the clean code principles listed in the thesis, including problems with coupling, complexity, and duplication. The problems are analyzed and discussed. One instance of coupling is taken under closer scrutiny and analyzed further. The section is then refactored, improving the section’s maintainability and reducing coupling.
暂无评论