The combination of object-oriented concepts and formal system development methods provides a powerful means for the analysis and design of complex systems. As demonstrated by (A. Hevner and H. Mills, 1993), box struct...
详细信息
The combination of object-oriented concepts and formal system development methods provides a powerful means for the analysis and design of complex systems. As demonstrated by (A. Hevner and H. Mills, 1993), box structures are a mathematical representation of system views that support object-oriented system development. The authors extend the box description language (BDL) in order for it to support a full description of object-oriented features such as object classes, encapsulation and inheritance. The extended language, object-oriented box description language (OOBDL), provides a semantic and syntactic means of describing objects, classes of objects, and their ability to interact with one another by message passing.< >
orientedprogramming (AOP) is good at solving the difficulty in object-oriented programming (OOP) of crosscutting concerns,and loosens the system from higher standpoints. Based on the characteristics of web applicatio...
详细信息
orientedprogramming (AOP) is good at solving the difficulty in object-oriented programming (OOP) of crosscutting concerns,and loosens the system from higher standpoints. Based on the characteristics of web application system,this paper introduces the AOP idea into it,and designs a kind of multi-player architecture based on MVC,emphasizes on the analysis of crosscutting concerns in web system,including authorization,exception,logging and time *** use of the AspectJ language,we design implementations to solve these crosscutting concerns to distributed enterprise web-based systems based on J2EE platform. In the end,comparing with OOP,we make a summary of the advantage of AOP,and list some items of most practice with AspectJ[4,6,8].
Current reverse engineering technology is typically based on program analysis methods such as parsing and data flow analysis. As such, it is limited in what it can accomplish. Knowledge of the application domain conta...
详细信息
Current reverse engineering technology is typically based on program analysis methods such as parsing and data flow analysis. As such, it is limited in what it can accomplish. Knowledge of the application domain containing a program can help overcome this limit and aid the comprehension process. The paper discusses the relationship of application domain analysis and reverse engineering. Two case studies are presented. The first describes how domain knowledge, expressed as an object-oriented framework, can aid the reverse engineering process for a well-understood domain. The second studies how reverse engineering can be used to build a domain model. Issues raised by the confluence of domain analysis and reverse engineering are discussed, and implications on future work in the area are suggested.< >
Regression testing is an important but expensive software maintenance activity aimed at providing confidence in modified software. Selective retest methods reduce the cost of regression testing by selecting tests for ...
详细信息
Regression testing is an important but expensive software maintenance activity aimed at providing confidence in modified software. Selective retest methods reduce the cost of regression testing by selecting tests for a modified program from a previously existing test suite. Many researchers have addressed the selective retest problem for procedural-language software, but few have addressed the problem for object-oriented software. We present a new technique for selective retest, that handles object-oriented software. Our algorithm constructs dependence graphs for classes and applications programs, and uses these graphs to determine which tests in an existing test suite can cause a modified class or program to produce different output than the original. Unlike previous selective retest techniques, our method applies to modified and derived classes. As well as to applications programs that use modified classes. Our technique is strictly code-based, and makes no assumptions about methods used to specify or test the software initially.< >
The paper describes an advanced decision support system for scheduling, that is based on: extensive knowledge about scheduling algorithms, and a new software engineering paradigm developed by the FAW. This paradigm us...
详细信息
The paper describes an advanced decision support system for scheduling, that is based on: extensive knowledge about scheduling algorithms, and a new software engineering paradigm developed by the FAW. This paradigm uses an elaborate compromise between object-orientation, constraint processing, and functional capabilities, and supports distributed computing. The system has the capability to generate a model of itself, ie., an eigenmodel/spl minus/this is a directed graph G representing data structures (nodes of G) and algorithms (edges of G). The methods developed for scheduling problems can, on a "higher" level of abstraction, also be applied to the eigenmodel itself. This can then be used for performance analysis and learning aspects which will eventually provide the user with valuable information about the functioning and performance of the system, thus contributing to the envisioned new generation of decision support systems.< >
We have introduced Peer-Educators through the Supplemental Instruction program and four Team-Based Learning laboratory assignments in our Introduction to programming course. These four laboratory assignments are using...
详细信息
ISBN:
(纸本)9781450358903
We have introduced Peer-Educators through the Supplemental Instruction program and four Team-Based Learning laboratory assignments in our Introduction to programming course. These four laboratory assignments are using Finch Robots to facilitate student comprehension of basic object-oriented programming concepts. In contrast to other lab assignments, Finch labs are team-based activities that revolve around programming Finch, a programmable robot to do activities like moving, sensing the environment, playing music, etc. Introducing the Finch labs has multiple benefits for the students. It helps better anchor the basic concepts of object-oriented programming, since interacting with the Finch robot is done by instantiating a Finch object and performing method calls on the object. This helps students understand many of the objectoriented topics of the course, like object instantiation, method calls, passing arguments to a method and changing the state of an object. Furthermore, the labs facilitate peer learning in a natural way, since students group to work on a physical object. The goal of our intervention is to increase retention in our introduction to programming offerings. We are currently on the third year of our project and after having concluded in the interventions we want to adopt we are evaluating them through post-activity surveys, end of the semester surveys and comparison of retention data.
During maintenance, understanding the source code is required to determine the part that is relevant to the current task. Usually, software developers and engineers depend on source code comments and documentation to ...
详细信息
During maintenance, understanding the source code is required to determine the part that is relevant to the current task. Usually, software developers and engineers depend on source code comments and documentation to understand the code. Unfortunately, descriptive comments are often outdated or not exist. Summarizing the source code automatically can assist in getting over the unavailability of the manually written comments. This paper proposes a technique to automatically generate natural language summaries for software classes written in object-oriented programming languages. The technique parses the program's source code and identifies the stereotype for the target class and its corresponding methods. A set of predefined heuristics are proposed to select the methods that should be reflected in the generated summaries. A case study has been conducted to validate the proposed technique. Results indicated that the generated summaries provide concise and accurate contextual information about the class and help the developers in understanding their source code.
Determining the potential targets of virtual method invocations is essential for inter-procedural optimizations of object-oriented programs. It is generally hard to determine such targets accurately. The problem is es...
详细信息
ISBN:
(纸本)9781581132007
Determining the potential targets of virtual method invocations is essential for inter-procedural optimizations of object-oriented programs. It is generally hard to determine such targets accurately. The problem is especially difficult for dynamic languages such as Java, because additional targets of virtual calls may appear at runtime. Current mechanisms that enable inter-procedural optimizations for dynamic languages, repeatedly validate the optimizations at runtime. This paper addresses this predicament by proposing a novel technique for conservative devirtualization analysis, which applies to a significant number of virtual calls in Java programs. Unlike previous work, our technique requires neither whole program analysis nor runtime information, and incurs no runtime overhead. Our solution is very efficient to compute and is based on a newly introduced, seemingly unrelated security feature of Java file archives. On average, our analysis "seals" (safely devirtualizes) about 39% of the virtual calls (to non-final methods) that appear in SPECjvm98 programs, and about 29% of the calls invoked while executing these programs. In the runtime library ***, about 10% of the packages contain a significant percentage (20--60%) of sealed calls, with a total average of about 8.5%. Most of these calls are also shown to be monomorphic, a fact which can be safely exploited by aggressive inter-procedural optimizations such as direct inlining. These results indicate that our technique has a strong potential for enhancing the analysis and optimization of Java programs.
In this paper we present a newly developed online learning platform which introduces gamification elements into software engineering education. Starting from assumptions based on cognitive load theory we present the d...
详细信息
ISBN:
(纸本)9781467386340
In this paper we present a newly developed online learning platform which introduces gamification elements into software engineering education. Starting from assumptions based on cognitive load theory we present the design of an online gamification-based training system to be used in software engineering contexts. Students can voluntarily solve challenges for which they may earn credits. These small problems serve as assessments;the approach follows the assessment for learning paradigm in that assessments provide formative feedback to enhance the learning experience. The combination of formative assessment and gamification is new to software engineering education. We describe system design as well as the different types of challenges in detail. We also provide several examples for actual challenges used in an object-oriented programming introduction using Java.
This paper describes a tool that mimics the design of the remote procedure call (RPC) system to support the building of replicated objects in a cluster of workstations (COW). The tools include an interface definition ...
详细信息
ISBN:
(纸本)0769510108
This paper describes a tool that mimics the design of the remote procedure call (RPC) system to support the building of replicated objects in a cluster of workstations (COW). The tools include an interface definition language for describing a replica group, a language preprocessor and a runtime library system. The paper also presents one example and discusses some performance issues for replicated objects.
暂无评论