Integration issues of component-based systems tend to be targeted at the later phases of the software development, mostly after components have been assembled to form an executable system. However, errors discovered a...
详细信息
Integration issues of component-based systems tend to be targeted at the later phases of the software development, mostly after components have been assembled to form an executable system. However, errors discovered at these phases are typically hard to localise and expensive to. x. To address this problem, the authors introduce assume-guarantee testing, a technique that establishes key properties of a component-based system before component assembly, when the cost of. xing errors is smaller. Assume-guarantee testing is based on the ( automated) decomposition of system-level requirements into local component requirements at design time. The local requirements are in the form of assumptions and guarantees that each component makes on, or provides to the system, respectively. Checking requirements is performed during testing of individual components (i.e. unit testing) and it may uncover system-level violations prior to system testing. Furthermore, assume-guarantee testing may detect such violations with a higher probability than traditional testing. The authors also discuss an alternative technique, namely predictive testing, that uses the local component assumptions and guarantees to test assembled systems: given a non-violating system run, this technique can predict violations by alternative system runs without constructing those runs. The authors demonstrate the proposed approach and its benefits by means of two NASA case studies: a safety-critical protocol for autonomous rendez-vous and docking and the executive subsystem of the planetary rover controller K9.
Recently, language extensions have been proposed for Java and C# to support pattern-based reflective declaration. These extensions introduce a disciplined form of meta-programming and aspect-orientedprogramming to ma...
详细信息
Recently, language extensions have been proposed for Java and C# to support pattern-based reflective declaration. These extensions introduce a disciplined form of meta-programming and aspect-orientedprogramming to mainstream languages: They allow members of a class (i.e., fields and methods) to be declared by statically iterating over and pattern-matching on members of other classes. Such techniques, however, have been unable to safely express simple, but common, idioms such as declaring getter and setter methods for fields. In this paper, we present a mechanism that addresses the lack of expressiveness in past work without sacrificing safety. Our technique is based on the idea of nested patterns that elaborate the outer-most pattern with blocking or enabling conditions. We implemented this mechanism in a language, MorphJ. We demonstrate the expressiveness of MorphJ with real-world applications. In particular, the MorphJ reimplementation of DSTM2, a software transactional memory library, reduces 1,107 lines of Java reflection and bytecode engineering library calls to just 374 lines of MorphJ code. At the same time, the MorphJ solution is both high level and safer, as MorphJ can separately type check generic classes and catch errors early. We present and formalize the MorphJ type system, and offer a type-checking algorithm.
As a solution to eliminating component mismatches, a generative aspect- oriented approach to component adaptation is presented. The approach enjoys high level of automation and capability of deep level adaptation, whi...
详细信息
As a solution to eliminating component mismatches, a generative aspect- oriented approach to component adaptation is presented. The approach enjoys high level of automation and capability of deep level adaptation, which is achieved in an aspect-oriented component adaptation framework by generating and then applying the adaptation aspects under designed weaving process. The aspect generation mechanism facilitates the creation of adaptation aspects that support specific adaptation requirements. An expandable repository of reusable adaptation aspects has been developed based on the proposed two-dimensional aspect model. A prototype tool is built to as a leverage of the approach.
Multiphysics applications are real world problems with a large number of different shape components that obey different physical laws and manufacturing constraints and interact with each other through geometric and ph...
详细信息
Multiphysics applications are real world problems with a large number of different shape components that obey different physical laws and manufacturing constraints and interact with each other through geometric and physical interfaces. They demand accurate and efficient solutions and a modern type of computational modeling, which designs the whole physical system with as much detail as possible. The simulation of gas turbine engine is such a multiphysics application and is realized with GasTurbnLab, an agent-based Multiphysics Problem Solving Environment (MPSE). Its performance and evaluation study is presented in this paper. For this, a short description of the software components and hardware infrastructure is given. The performance and the scalability of the parallelism are depicted, and the communication overhead between agents is studied with respect to the number of agents and their location in the "computational grid." The execution time is recorded, and its analysis verifies the complexity of the solvers in use and the performance of the available hardware. Three different clusters of INTEL Pentium processors were used for experimentation to study how the communication time was affected by processor's homogeneity/heterogeneity and the different connections between the processors. The study of the numerical experiments shows that the domain decomposition and interface relaxation methodology, along with the usage of agent platforms, does not increase the complexity of the simulation problem, and the communication cost is too low, compared with the computations, to reflect on the total simulation time. Therefore, GasTurbnLab is an efficient example of a complex physical phenomena simulation.
The process-based simulation library SALMO-OO represents an object-oriented implementation of mass balance equations for pelagic food webs consisting of diatoms, green algae, blue-green algae and cladocerans, as well ...
详细信息
The process-based simulation library SALMO-OO represents an object-oriented implementation of mass balance equations for pelagic food webs consisting of diatoms, green algae, blue-green algae and cladocerans, as well as nutrient cycles based on PO4-P, NO3-N, DO and detritus in lakes. It gains its structural flexibility from alternative process representations for algal growth and grazing, and zooplankton growth and mortality. Generic model structures of SALMO-OO were determined for three lake categories classified by circulation types reflecting the local climate and morphometry of lakes, and by trophic states reflecting community structures and habitat properties of lakes. Data of six lakes belonging to either of the three lake categories were used to validate the lake category specific structures of SALMO-OO. The study has demonstrated that: (1) JAVA suits well for object-oriented implementations of ecological simulation libraries, (2) object-oriented simulation libraries facilitate the identification of generic model structures for ecosystem categories. Crown Copyright (C) 2008 Published by Elsevier B.V. All rights reserved.
object-oriented modeling methodology is used for encapsulating different methods and attributes of data reconciliation (DR) in classes. Classes which are defined for DR, cover steady-state, dynamic, linear and nonline...
详细信息
object-oriented modeling methodology is used for encapsulating different methods and attributes of data reconciliation (DR) in classes. Classes which are defined for DR, cover steady-state, dynamic, linear and nonlinear DR problems. Two main classes are Constraints and DR and defined for manipulating constraints and general DR problem. The remaining classes are derived from these two classes. A class namely DDRMethod is developed for encapsulating all common attributes and methods needed for any DDR method. Developed DR software and the method of performing dynamic DR are discussed in this paper. Two illustrative examples of Extended Kalman Filtering and artificial neural networks are used for DDR and two classes of DDRByKalman and NetDDRMethod developed by inheritance from DDRMethod class for these two methods. Performance of the proposed method is investigated by DDR of temperature measurements of a distillation column.
Introductory object-oriented programming is considered difficult to teach and a number of different methodologies have been proposed to address this difficulty. One method, which is reported in this paper, involves th...
详细信息
ISBN:
(纸本)9781424419692
Introductory object-oriented programming is considered difficult to teach and a number of different methodologies have been proposed to address this difficulty. One method, which is reported in this paper, involves the use of graphical user interfaces (GUI's). The research question developed for this study is as follows: Does any statistical difference exist in test scores between a control group using text-based object-oriented programming (OOP) and a test group using GUI-based OOP? To answer this research question, quantitative data was collected through the use of common questions on the final CS2 exam for both groups. Data was collected over a period of 3 class offerings for five multiple-choice questions and one question requiring programming. No statistical difference between the groups was found for either the 5 multiple-choice questions or the open programming question. An analysis of the final CS2 course letter grade showed no significant difference between the test and control groups. Further, students who participated in the first year of the study were tracked through Data Structures, the course which follows CS2 in the curriculum sequence. A statistical analysis of the final letter grade for found no significant statistical difference between control and test groups.
Machine learning techniques have been applied to the task of student modeling, more so in building tutors for acquiring programming skill. These were developed for various languages (Pascal, Prolog, Lisp, C++) and pro...
详细信息
ISBN:
(纸本)9783540691303
Machine learning techniques have been applied to the task of student modeling, more so in building tutors for acquiring programming skill. These were developed for various languages (Pascal, Prolog, Lisp, C++) and programming paradigms (procedural and declarative) but never for object-oriented programming in Java. JavaBugs builds a bug library automatically using discrepancies between a student and correct program. While other works analyze code snippets or UML diagrams to infer student knowledge of object-oriented design and programming, JavaBugs examines a complete Java program and identifies the most similar correct program to the student's solution among a collection of correct solutions and builds trees of misconceptions using similarity measures and background knowledge. Experiments show that JavaBugs can detect the most similar correct program 97% of the time, and discover and detect 61.4% of student misconceptions identified by the expert.
Teaching objectorientedprogramming (OOP) to novices is widely known to be quite problematic Students might be able to write a piece of code in an OOP language, usually Java, but their conceptual grasp of object-orie...
详细信息
ISBN:
(纸本)9783540877820
Teaching objectorientedprogramming (OOP) to novices is widely known to be quite problematic Students might be able to write a piece of code in an OOP language, usually Java, but their conceptual grasp of object-oriented concepts seems to he limited. This leads to poor implementation of object-oriented concepts and inability to take advantage of the strengths of OOP. Various teaching approaches and specially designed programming environments have been proposed for supporting the teaching and learning of OOP. In this paper. we present our findings regarding students' conceptual grasp of OOP concepts in two distinct educational programming environments: Blue J and object Karel. Their special feature in comparison with similar environments is that they are highly interactive.
The need to parallelise desktop applications is becoming increasingly essential with the mainstream adoption of multi-cores. In object-oriented languages, sequential iterators handle iterative computations of a sequen...
详细信息
ISBN:
(纸本)9780769534343
The need to parallelise desktop applications is becoming increasingly essential with the mainstream adoption of multi-cores. In object-oriented languages, sequential iterators handle iterative computations of a sequential program;similarly, the parallel iterator was developed to handle the iterative computations of a parallel program. This paper presents the progress of the parallel iterator concept. New features, such as support for reductions and global break semantics, allow the parallel iterator to undertake more situations. With a slight contract modification, the parallel iterator interface now imitates that of the sequential iterator. All these features combine together to promote minimal, if any, code restructuring. The reduction frequently outperforms related work and the importance of providing simple and flexible fine-tuning capability is affirmed.
暂无评论