1,460 research outputs found

    Levering object-oriented knowledge for service-oriented proficiency

    Get PDF
    As more and more enterprise systems endeavour to interconnect seamlessly by using a service-oriented architecture (SOA) a number of challenges are beginning to surface as a result of the differences in understanding between object-orientated programming (OOP) and service-orientation in technical development teams. These differences are thus explored to determine the potential of subsidising gaps in knowledge through relational learning in order to better prepare development environments for service migration. It emerges that the principles of service-oriented programming can be used within OOP by selectively identifying the existing knowledge found within object-orientation and traditional programming methodologies. The benefit of this approach proposes to lever the expertise of object-oriented developers so as to build service-ready computer software and encourage the seamlessness of SOA

    Textual display program for the dyslexic: An example of object-oriented software development

    Get PDF

    Measure extendibility/extensibility quality attribute using object oriented design metric

    Get PDF
    Software design is one of the very important phases of the software engineering. The costs of software can be minimized if improvements or corrections made during this stage. Several of the current computer aided software engineering (CASE) tools like enterprise architect (EA) v12 do not have the capability to improve the design. This work aims to develop an algorithm that helps the software engineers evaluating the design quality utilizing one of the object-oriented (OO) design models namely quality metrics for object-oriented design (QMOOD) which represents as hierarchical model that describes the relationship between quality attributes such as reusability, extendibility and properties of the design of OO design. This algorithm describesed how the assessment of the extendibility/ extensibility using the software metrics has been done and the impact of the involved metrics in the extendibility value. Results obtained demonstrate the effect of OO design metrics such as inheritance, polymorphism, abstraction and coupling in quality characteristics like extensibility. The results show that lower values of abstraction and coupling, obtain higher value of extendibility which means the class diagram is ready to accept additional improvements. The proposed algorithm has been tested on two different systems (test cases) that vary in their class diagrams, functionalities, and complexities

    Visual iconic object-oriented programming to advance computer science education and novice programming

    Get PDF
    Learning how to program a computer is difficult for most people. Computer programming is a cognitively challenging, time consuming, labor intensive, and frustrating endeavor. Years of formal study and training are required to learn a programming language\u27s world of algorithms and data structures. Instructions are coded in advance before the computer demonstrates the desired behavior. Seeing all the programming steps and instruction code is complicated. There exists a tremendous gap between the representations the human brain uses when thinking about a problem and the representations used in programming a computer. Often people are much better at dealing with specific, concrete objects than working with abstract ideas. Concrete and specific programming examples and demonstrations can be very useful. When cleverly chosen and properly used, programming examples and demonstrations help people understand the abstract concepts. Programming by example or demonstration attempts to extend these novel ideas to novice programming

    A generic architecture for interactive intelligent tutoring systems

    Get PDF
    This thesis was submitted for the degree of Doctor of Philosophy and awarded by Brunel University, 07/06/2001.This research is focused on developing a generic intelligent architecture for an interactive tutoring system. A review of the literature in the areas of instructional theories, cognitive and social views of learning, intelligent tutoring systems development methodologies, and knowledge representation methods was conducted. As a result, a generic ITS development architecture (GeNisa) has been proposed, which combines the features of knowledge base systems (KBS) with object-oriented methodology. The GeNisa architecture consists of the following components: a tutorial events communication module, which encapsulates the interactive processes and other independent computations between different components; a software design toolkit; and an autonomous knowledge acquisition from a probabilistic knowledge base. A graphical application development environment includes tools to support application development, and learning environments and which use a case scenario as a basis for instruction. The generic architecture is designed to support client-side execution in a Web browser environment, and further testing will show that it can disseminate applications over the World Wide Web. Such an architecture can be adapted to different teaching styles and domains, and reusing instructional materials automatically can reduce the effort of the courseware developer (hence cost and time) in authoring new materials. GeNisa was implemented using Java scripts, and subsequently evaluated at various commercial and academic organisations. Parameters chosen for the evaluation include quality of courseware, relevancy of case scenarios, portability to other platforms, ease of use, content, user-friendliness, screen display, clarity, topic interest, and overall satisfaction with GeNisa. In general, the evaluation focused on the novel characteristics and performances of the GeNisa architecture in comparison with other ITS and the results obtained are discussed and analysed. On the basis of the experience gained during the literature research and GeNisa development and evaluation. a generic methodology for ITS development is proposed as well as the requirements for the further development of ITS tools. Finally, conclusions are drawn and areas for further research are identified

    Goal Lifecycles and Ontological Models for Intention Based Assistive Living within Smart Environments

    Get PDF
    Current ambient assistive living solutions have adopted a traditional sensor-centric approach, involving data analysis and activity recognition to provide assistance to individuals. The reliance on sensors and activity recognition in this approach introduces issues with scalability and ability to model activity variations. This study introduces a novel approach to assistive living which intends to address these issues via a paradigm shift from a sensor centric approach to a goal-oriented one. The goal-oriented approach focuses on identification of user goals in order to pro-actively offer assistance by either pre-defined or dynamically constructed instructions. This paper introduces the architecture of this goal-oriented approach and describes an ontological goal model to serve as its basis. The use of this approach is illustrated in a case study which focuses on assisting a user with activities of daily living

    A meta-semantic language for smart component-adapters

    Get PDF
    The issues confronting the software development community today are significantly different from the problems it faced only a decade ago. Advances in software development tools and technologies during the last two decades have greatly enhanced the ability to leverage large amounts of software for creating new applications through the reuse of software libraries and application frameworks. The problems facing organizations today are increasingly focused around systems integration and the creation of information flows. Software modeling based on the assembly of reusable components to support software development has not been successfully implemented on a wide scale. Several models for reusable software components have been suggested which primarily address the wiring-level connectivity problem. While this is considered necessary, it is not sufficient to support an automated process of component assembly. Two critical issues that remain unresolved are: (1) semantic modeling of components, and (2) deployment process that supports automated assembly. The first issue can be addressed through domain-based standardization that would make it possible for independent developers to produce interoperable components based on a common set of vocabulary and understanding of the problem domain. This is important not only for providing a semantic basis for developing components but also for the interoperability between systems. The second issue is important for two reasons: (a) eliminate the need for developers to be involved in the final assembly of software components, and (b) provide a basis for the development process to be potentially driven by the user. To resolve the above remaining issues (1) and (2) a late binding mechanism between components based on meta-protocols is required. In this dissertation we address the above issues by proposing a generic framework for the development of software components and an interconnection language, COMPILE, for the specification of software systems from components. The computational model of the COMPILE language is based on late and dynamic binding of the components\u27 control, data, and function properties. The use of asynchronous callbacks for method invocation allows control binding among components to be late and dynamic. Data exchanged between components is defined through the use of a meta- language that can describe the semantics of the information but without being bound to any specific programming language type representation. Late binding to functions is accomplished by maintaining domain-based semantics as component metainformation. This information allows clients of components to map generic requested service to specific functions

    Feature-based generation of pervasive systems architectures utilizing software product line concepts

    Get PDF
    As the need for pervasive systems tends to increase and to dominate the computing discipline, software engineering approaches must evolve at a similar pace to facilitate the construction of such systems in an efficient manner. In this thesis, we provide a vision of a framework that will help in the construction of software product lines for pervasive systems by devising an approach to automatically generate architectures for this domain. Using this framework, designers of pervasive systems will be able to select a set of desired system features, and the framework will automatically generate architectures that support the presence of these features. Our approach will not compromise the quality of the architecture especially as we have verified that by comparing the generated architectures to those manually designed by human architects. As an initial step, and in order to determine the most commonly required features that comprise the widely most known pervasive systems, we surveyed more than fifty existing architectures for pervasive systems in various domains. We captured the most essential features along with the commonalities and variabilities between them. The features were categorized according to the domain and the environment that they target. Those categories are: General pervasive systems, domain-specific, privacy, bridging, fault-tolerance and context-awareness. We coupled the identified features with well-designed components, and connected the components based on the initial features selected by a system designer to generate an architecture. We evaluated our generated architectures against architectures designed by human architects. When metrics such as coupling, cohesion, complexity, reusability, adaptability, modularity, modifiability, packing density, and average interaction density were used to test our framework, our generated architectures were found comparable, if not better than the human generated architectures

    An Adaptive Integration Architecture for Software Reuse

    Get PDF
    The problem of building large, reliable software systems in a controlled, cost-effective way, the so-called software crisis problem, is one of computer science\u27s great challenges. From the very outset of computing as science, software reuse has been touted as a means to overcome the software crisis issue. Over three decades later, the software community is still grappling with the problem of building large reliable software systems in a controlled, cost effective way; the software crisis problem is alive and well. Today, many computer scientists still regard software reuse as a very powerful vehicle to improve the practice of software engineering. The advantage of amortizing software development cost through reuse continues to be a major objective in the art of building software, even though the tools, methods, languages, and overall understanding of software engineering have changed significantly over the years. Our work is primarily focused on the development of an Adaptive Application Integration Architecture Framework. Without good integration tools and techniques, reuse is difficult and will probably not happen to any significant degree. In the development of the adaptive integration architecture framework, the primary enabling concept is object-oriented design supported by the unified modeling language. The concepts of software architecture, design patterns, and abstract data views are used in a structured and disciplined manner to established a generic framework. This framework is applied to solve the Enterprise Application Integration (EM) problem in the telecommunications operations support system (OSS) enterprise marketplace. The proposed adaptive application integration architecture framework facilitates application reusability and flexible business process re-engineering. The architecture addresses the need for modern businesses to continuously redefine themselves to address changing market conditions in an increasingly competitive environment. We have developed a number of Enterprise Application Integration design patterns to enable the implementation of an EAI framework in a definite and repeatable manner. The design patterns allow for integration of commercial off-the-shelf applications into a unified enterprise framework facilitating true application portfolio interoperability. The notion of treating application services as infrastructure services and using business processes to combine them arbitrarily provides a natural way of thinking about adaptable and reusable software systems. We present a mathematical formalism for the specification of design patterns. This specification constitutes an extension of the basic concepts from many-sorted algebra. In particular, the notion of signature is extended to that of a vector, consisting of a set of linearly independent signatures. The approach can be used to reason about various properties including efforts for component reuse and to facilitate complex largescale software development by providing the developer with design alternatives and support for automatic program verification
    • …
    corecore