98 research outputs found

    Fully Reflective Execution Environments: Virtual Machines for More Flexible Software

    Get PDF
    VMs are complex pieces of software that implement programming language semantics in an efficient, portable, and secure way. Unfortunately, mainstream VMs provide applications with few mechanisms to alter execution semantics or memory management at run time. We argue that this limits the evolvability and maintainability of running systems for both, the application domain, e.g., to support unforeseen requirements, and the VM domain, e.g., to modify the organization of objects in memory. This work explores the idea of incorporating reflective capabilities into the VM domain and analyzes its impact in the context of software adaptation tasks. We characterize the notion of a fully reflective VM, a kind of VM that provides means for its own observability and modifiability at run time. This enables programming languages to adapt the underlying VM to changing requirements. We propose a reference architecture for such VMs and present TruffleMATE as a prototype for this architecture. We evaluate the mechanisms TruffleMATE provides to deal with unanticipated dynamic adaptation scenarios for security, optimization, and profiling aspects. In contrast to existing alternatives, we observe that TruffleMATE is able to handle all scenarios, using less than 50 lines of code for each, and without interfering with the application's logic

    Assessing the Reuse Potential of Objects.

    Get PDF
    In this research, we investigate whether reusable classes can be characterized by object-oriented (OO) software metrics. Three class-level reuse measures for the OO paradigm are defined: inheritance-based reuse, inter-application reuse by extension, and inter-application reuse as a server. Using data from a software company, we collected metrics on Smalltalk classes. Among the 20 metrics collected are cyclomatic complexity, Lorenz complexity, lines of code, class coupling, reuse ratio, specialization ratio and number of direct subclasses. We used stepwise regression to derive prediction models incorporating the 20 metrics as the independent variables and the reuse measures, applied separately, as the dependent variable. Inheritance-based reuse and inter-application reuse by extension can be predicted using a subset of the 20 metrics. Two prediction models for inheritance-based reuse and inter-application reuse by extension were validated using a new set of 310 Smalltalk and VisualAge applications and subapplications. Validation results show that it is possible to predict whether a class from one application can be reused by extension in another application. We also conducted a t-test to test whether the mean metric values between reusable and non-reusable classes are the same. Results suggest that there exists significant differences in the mean metric values between the reusable and non-reusable classes

    Augmenting IDEs with Runtime Information for Software Maintenance

    Get PDF
    Object-oriented language features such as inheritance, abstract types, late-binding, or polymorphism lead to distributed and scattered code, rendering a software system hard to understand and maintain. The integrated development environment (IDE), the primary tool used by developers to maintain software systems, usually purely operates on static source code and does not reveal dynamic relationships between distributed source artifacts, which makes it difficult for developers to understand and navigate software systems. Another shortcoming of today's IDEs is the large amount of information with which they typically overwhelm developers. Large software systems encompass several thousand source artifacts such as classes and methods. These static artifacts are presented by IDEs in views such as trees or source editors. To gain an understanding of a system, developers have to open many such views, which leads to a workspace cluttered with different windows or tabs. Navigating through the code or maintaining a working context is thus difficult for developers working on large software systems. In this dissertation we address the question how to augment IDEs with dynamic information to better navigate scattered code while at the same time not overwhelming developers with even more information in the IDE views. We claim that by first reducing the amount of information developers have to deal with, we are subsequently able to embed dynamic information in the familiar source perspectives of IDEs to better comprehend and navigate large software spaces. We propose means to reduce or mitigate the information by highlighting relevant source elements, by explicitly representing working context, and by automatically housekeeping the workspace in the IDE. We then improve navigation of scattered code by explicitly representing dynamic collaboration and software features in the static source perspectives of IDEs. We validate our claim by conducting empirical experiments with developers and by analyzing recorded development sessions

    The Sixth Annual Workshop on Space Operations Applications and Research (SOAR 1992)

    Get PDF
    This document contains papers presented at the Space Operations, Applications, and Research Symposium (SOAR) hosted by the U.S. Air Force (USAF) on 4-6 Aug. 1992 and held at the JSC Gilruth Recreation Center. The symposium was cosponsored by the Air Force Material Command and by NASA/JSC. Key technical areas covered during the symposium were robotic and telepresence, automation and intelligent systems, human factors, life sciences, and space maintenance and servicing. The SOAR differed from most other conferences in that it was concerned with Government-sponsored research and development relevant to aerospace operations. The symposium's proceedings include papers covering various disciplines presented by experts from NASA, the USAF, universities, and industry

    MS

    Get PDF
    thesisHealth information systems are networks of computers employed by health care enterprises to facilitate the delivery of their health care product. Computers originally entered the medical domain solely as tools aimed at the business functions of the hospital. Having demonstrated their utility in this area, computers were perceived by certain innovators to have usefulness in the clinical domain. As clinical computer applications were successfully developed and implemented, they have over time been merged together into systems offering multiple areas of functionality directly impacting the clinical aspects of health care delivery. Such health information systems have now assumed major importance in the provision of health care in a complex medical environment. Although the focus of substantial investment for development and implementation, relatively little work has been done to assess the value of such health information systems. The business information technology literature and the medical informatics literature each include only a small number of published reports examining the value question in an incomplete manner. No generally accepted valuation strategy has been developed for information systems in either the business or health care domains. Several valuation methods with potential applicability to health information systems have evolved: cost-effectiveness / cost- benefit analysis, return on investment, information economics, measurement systems, the Strassmann approach, the Japanese approach, and the strategic value approach. None of these valuation strategies is clearly superior; each has different strengths and weaknesses. A matrix comparing these strategies on the bases of explicitness and ease of implementation is proposed. Intermountain Health Care (IHC) has been instrumental in the development of health information systems and a leader in the application of such technology in clinical health care delivery. IHC's HELP system has played a seminal role as a catalyst to the development of the health information system industry. Although both historically and functionally important, detailed financial information regarding HELP'S origins and implementation no longer exists. Current IHC budget information demonstrates the major financial commitment underway within this health care enterprise totaling approximately 157millionoverthelastdecadeandwithadditionalexpendituresof157 million over the last decade and with additional expenditures of 47 to $61 million projected annually through fiscal year 2004. The complex budgetary relationships between HELP and the other health information systems at LDS Hospital further obscure the magnitude of the information technology investment within this institution. Benefits of health information systems are potentially most substantial within the domain of clinical integration. IHC has not implemented any formal valuation strategy for its health information systems, but the ad hoc measurement systems valuation approach applied to date is practical, flexible, and the most appropriate of the available systems. Adequate valuation of health information systems cannot readily be achieved given the existing traditional hierarchical accounting structure; an alternative accounting framework patterned after a relational database is proposed

    Improving Reuse of Distributed Transaction Software with Transaction-Aware Aspects

    Get PDF
    Implementing crosscutting concerns for transactions is difficult, even using Aspect-Oriented Programming Languages (AOPLs) such as AspectJ. Many of these challenges arise because the context of a transaction-related crosscutting concern consists of loosely-coupled abstractions like dynamically-generated identifiers, timestamps, and tentative value sets of distributed resources. Current AOPLs do not provide joinpoints and pointcuts for weaving advice into high-level abstractions or contexts, like transaction contexts. Other challenges stem from the essential complexity in the nature of the data, operations on the data, or the volume of data, and accidental complexity comes from the way that the problem is being solved, even using common transaction frameworks. This dissertation describes an extension to AspectJ, called TransJ, with which developers can implement transaction-related crosscutting concerns in cohesive and loosely-coupled aspects. It also presents a preliminary experiment that provides evidence of improvement in reusability without sacrificing the performance of applications requiring essential transactions. This empirical study is conducted using the extended-quality model for transactional application to define measurements on the transaction software systems. This quality model defines three goals: the first relates to code quality (in terms of its reusability); the second to software performance; and the third concerns software development efficiency. Results from this study show that TransJ can improve the reusability while maintaining performance of TransJ applications requiring transaction for all eight areas addressed by the hypotheses: better encapsulation and separation of concern; loose Coupling, higher-cohesion and less tangling; improving obliviousness; preserving the software efficiency; improving extensibility; and hasten the development process

    Uncertainty in Artificial Intelligence: Proceedings of the Thirty-Fourth Conference

    Get PDF

    Knowledge based system development as an engineering process

    Get PDF
    This thesis was submitted for the degree of Doctor of Philosophy and awarded by Brunel University.Knowledge Based System (KBS) development is a difficult and challenging task, in particular in knowledge intensive domains. The traditional view of knowledge engineering is one of mining experts' knowledge and somehow transforming it into a machine usable form. This process, in general, suffers from insufficient or misconstrued representation of experts' problem solving behaviour. It is also unstructured and unduly biased at an early stage by design and implementation issues - normally in the form of incremental prototyping. We believe that both knowledge acquisition and KBS development for real life applications will require a 'structured' approach. This approach should harness a KBS developer's ability in extracting knowledge and developing systems. The structure should also be sufficiently flexible to allow the knowledge engineer to use his sense of creativity in developing a KBS. This thesis puts forward such a structured approach, in which KBS development is carried out in an engineering fashion. A process in which the worker is provided with an environment for developing knowledge based systems as an engineering process, as opposed to that of an artform or crafting. The main emphasis of this work is that part of the process which deals with the analysis and design phases in developing KBS. The analysis is performed at an 'epistemological' level, not coloured by design or implementation issues. The output of this phase captures both an expert's problem solving capability, and the business constraints placed upon the intended system. This is then used by the design process in order to create an optimal, workable, and elegant design architecture for the ultimate system.Commission for the European Communities' ESPRIT programme (Project Number 1098
    • …
    corecore