338,691 research outputs found

    Designing Software Architectures As a Composition of Specializations of Knowledge Domains

    Get PDF
    This paper summarizes our experimental research and software development activities in designing robust, adaptable and reusable software architectures. Several years ago, based on our previous experiences in object-oriented software development, we made the following assumption: ‘A software architecture should be a composition of specializations of knowledge domains’. To verify this assumption we carried out three pilot projects. In addition to the application of some popular domain analysis techniques such as use cases, we identified the invariant compositional structures of the software architectures and the related knowledge domains. Knowledge domains define the boundaries of the adaptability and reusability capabilities of software systems. Next, knowledge domains were mapped to object-oriented concepts. We experienced that some aspects of knowledge could not be directly modeled in terms of object-oriented concepts. In this paper we describe our approach, the pilot projects, the experienced problems and the adopted solutions for realizing the software architectures. We conclude the paper with the lessons that we learned from this experience

    Object-Oriented Development "The New Design Problem"

    Get PDF
    New techniques often involve innovative approaches and looking at the problem they address from a different perspective: OO will be of heavy impact of the software construction. The technological shift from classical development and structured methods to evolutionary development and object-oriented methods is certainly not easy. We must given it the time and the means in terms of structures, training, staff, and support for all to come effective. C,S has joined several R&D projects to test if and how Object Orientation can be applied to its software. We share here our considerations on OO development and the understanding obtained through practical experiences within the CMS object oriented activities and the RD41 (Moose) project

    The AutoProof Verifier: Usability by Non-Experts and on Standard Code

    Get PDF
    Formal verification tools are often developed by experts for experts; as a result, their usability by programmers with little formal methods experience may be severely limited. In this paper, we discuss this general phenomenon with reference to AutoProof: a tool that can verify the full functional correctness of object-oriented software. In particular, we present our experiences of using AutoProof in two contrasting contexts representative of non-expert usage. First, we discuss its usability by students in a graduate course on software verification, who were tasked with verifying implementations of various sorting algorithms. Second, we evaluate its usability in verifying code developed for programming assignments of an undergraduate course. The first scenario represents usability by serious non-experts; the second represents usability on "standard code", developed without full functional verification in mind. We report our experiences and lessons learnt, from which we derive some general suggestions for furthering the development of verification tools with respect to improving their usability.Comment: In Proceedings F-IDE 2015, arXiv:1508.0338

    An environment for object-oriented real-time system design

    Get PDF
    A concise object-oriented method for the development of real-time systems has been composed. Hardware components are modelled by (software) base objects; base objects are controlled by a hierarchy of coordinator objects, expressed in an organizational diagram. The behaviour of objects is specified by state transition diagrams. This approach considerably promotes requirements analysis and communication with the customer. A CASE tool has been constructed with diagram editors for graphical specifications of real-time systems. The tool can generate executable code for PLCs from these graphical specifications; reuse of previous results is supported by the repository function of the tool. Experiences attained in practice with method and tool show that time spent in system testing and installation is reduced considerabl

    An integrated approach to system design, reliability, and diagnosis

    Get PDF
    The requirement for ultradependability of computer systems in future avionics and space applications necessitates a top-down, integrated systems engineering approach for design, implementation, testing, and operation. The functional analyses of hardware and software systems must be combined by models that are flexible enough to represent their interactions and behavior. The information contained in these models must be accessible throughout all phases of the system life cycle in order to maintain consistency and accuracy in design and operational decisions. One approach being taken by researchers at Ames Research Center is the creation of an object-oriented environment that integrates information about system components required in the reliability evaluation with behavioral information useful for diagnostic algorithms. Procedures have been developed at Ames that perform reliability evaluations during design and failure diagnoses during system operation. These procedures utilize information from a central source, structured as object-oriented fault trees. Fault trees were selected because they are a flexible model widely used in aerospace applications and because they give a concise, structured representation of system behavior. The utility of this integrated environment for aerospace applications in light of our experiences during its development and use is described. The techniques for reliability evaluation and failure diagnosis are discussed, and current extensions of the environment and areas requiring further development are summarized

    Aha\u27 Experiences in Object-Oriented Education: Searching for a Theoretical Foundation

    Get PDF
    The transition to object-oriented software development can be difficult because it represents a paradigm shift. This paper is based on the assumption that students may need to undergo one or more \u27Aha\u27 experiences in order to successfully make this transition. Literature which is relevant to research in this area is reviewed and a theoretical foundation is presente

    Orienting the Teaching of an Introductory Object-Oriented Programming to Meet the Learning Objective

    Get PDF
    This paper describes our experiences in teaching a first year object-oriented programming course. We used Java as a vehicle to teach programming principles and BlueJ as a Java development environment. The course was heavily supported by web-based resources delivered through WebCT. So far we consider the overall students’ learning experience as being considerably enriched and a positive one
    • 

    corecore