163,063 research outputs found

    Formal Transformations from Graphically-Based Object-Oriented Representations to Theory-Based Specifications

    Get PDF
    Formal software specification has long been touted as a way to increase the quality and reliability of software; however, it remains an intricate, manually intensive activity. An alternative to using formal specifications is to use graphically-based, semi-formal specifications such as those used in many object-oriented specification methodologies. While semi-formal specifications are generally easier to develop and understand, they lack the rigor and precision of formal specification techniques. The basic premise of this investigation is that formal software specifications can be constructed using correctness preserving transformations from graphically-based object-oriented representations. In this investigation, object-oriented specifications defined using Rumbaugh\u27s Object Modeling Technique (OMT) were translated into algebraic specifications. To ensure the correct translation of graphically-based OMT specifications into their algebraic counterparts, a formal semantics for interpreting OMT specifications was derived and an algebraic model of object-orientation was developed. This model defines how object-oriented concepts are represented algebraically using an object-oriented algebraic specification language O-SLANG. O-SLANG combines basic algebraic specification constructs with category theory operations to capture internal object class structure as well as relationships between classes. Next, formal transformations from OMT specifications to O-SLANG specifications were defined and the feasibility of automating these transformations was demonstrated by the development of a proof-of-concept system

    Advanced techniques in reliability model representation and solution

    Get PDF
    The current tendency of flight control system designs is towards increased integration of applications and increased distribution of computational elements. The reliability analysis of such systems is difficult because subsystem interactions are increasingly interdependent. Researchers at NASA Langley Research Center have been working for several years to extend the capability of Markov modeling techniques to address these problems. This effort has been focused in the areas of increased model abstraction and increased computational capability. The reliability model generator (RMG) is a software tool that uses as input a graphical object-oriented block diagram of the system. RMG uses a failure-effects algorithm to produce the reliability model from the graphical description. The ASSURE software tool is a parallel processing program that uses the semi-Markov unreliability range evaluator (SURE) solution technique and the abstract semi-Markov specification interface to the SURE tool (ASSIST) modeling language. A failure modes-effects simulation is used by ASSURE. These tools were used to analyze a significant portion of a complex flight control system. The successful combination of the power of graphical representation, automated model generation, and parallel computation leads to the conclusion that distributed fault-tolerant system architectures can now be analyzed

    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

    Detecting and correcting errors in parallel object oriented systems

    Get PDF
    Our research concerns the development of an operational formalism for the in-source specification of parallel, object oriented systems. These specifications are used to enunciate the behavioural semantics of objects, as a means of enhancing their reliability. A review of object oriented languages concludes that the advance in language sophistication heralded by the object oriented paradigm has, so far, failed to produce a commensurate increase in software reliability. The lack of support in modern object oriented languages for the notion of 'valid object behaviour', as distinct from state and operations, undermines the potential power of the abstraction. Furthermore, it weakens the ability of such languages to detect behavioural problems, manifest at run-time. As a result, in-language facilities for the signalling and handling of undesirable program behaviours or states (for example, assertions) are still in their infancy. This is especially true of parallel systems, where the scope for subtle error is greater. The first goal of this work was to construct an operational model of a general purpose, parallel, object oriented system in order to ascertain the fundamental set of event classes that constitute its observable behaviour. Our model is built on the CSP process calculus and uses a subset of the Z notation to express some aspects of state. This alphabet was then used to construct a formalism designed to augment each object type description with the operational specification of an object's behaviour: Event Pattern Specifications (EPS). EPSs are a labeled list of acceptable object behaviours which form part of the definition of every type. The thesis includes a description of the design and implementation of EPSs as part of an exception handling mechanism for the parallel, object oriented language Solve. Using this implementation, we have established that the run-time checking of EPS specifications is feasible, albeit it with considerable overhead. Issues arising from this implementation are discussed and we describe the visualization of EPSs and their use in semantic browsing

    Software reliability measurement : a survey

    Get PDF
    In complex software systems, reliability is the most important aspect of software quality, a multi-dimensional property including other factors like functionality, usability, performance, serviceability, capability, installability, maintainability, and documentation. Software reliability engineering is becoming a standard, widespread practice applicable to the different phases of the software development process. The first chapter of the survey provides an introduction to software measurement. Traditional and object-oriented software metrics are analyzed in detail, comprehensive study of some empirical work is also provided in order to validate the usefulness of the selected software metrics. An overview of software reliability is then introduced from the basic terminologies to the reasons for the need of software reliability. Following is the classification of the existing software reliability measures and measurement tools discussed in several chapters. Firstly, the procedure of software reliability measurement procedure along with a framework is addressed. Secondly, software reliability modeling is introduced in detail together with model classification schemes. Thirdly, the relationship between software reliability engineering and Software development process is outlined. Fourthly, we show a classification of current development tools with some usage information. In the final part of this survey, the research directions of software reliability engineering are explore

    Unity-inspired object-oriented concurrent system development

    Get PDF
    The design of correct software remains difficult, especially when dealing with concurrency. The primary goal of the research presented here is to devise a pragmatic software development method which aids the software designer in producing reliable software, is scalable, is understandable, follows a unified approach towards software development (is applicable to different implementation architectures), promotes reuse, has seamless transitions between the software development phases, guarantees general availability and minimises developmental resources. The two main characteristics of the proposed new development method are captured in its name, viz. Single Location Object-Oriented Programming (SLOOP) . It is an object-oriented method, but its computational model is that of a set of statements that execute infinitely often and in any order. A program with such a computational model is called a Single Location Program (SLP). A UNITY program can also be classified as a Single Location Program. In the UNITY theory of programming it was demonstrated how this computational model could simplify correctness reasoning, particularly for concurrent systems. It is this simplification, together with the structuring and reuse features of object-orientation, that is leveraged in the SLOOP method to produce a mechanism whereby ordinary software practitioners can take advantage of the benefits of a more rigorous approach towards software development without requiring an in-depth understanding of the underlying mathematics. The following features of the SLOOP method contribute towards achieving the above goals: its computational model (it simplifies correctness reasoning, thereby promoting understandability and scalability, and also facilitates designs that are independent of the target implementation architectures), its object-oriented nature (apart from promoting reuse of frameworks, design patterns and classes, the SLOOP method provides the necessary mechanisms to facilitate reuse of correctness properties, correctness arguments as well as mappings to implementation architectures), its emphasis on correctness reasoning throughout the software development life cycle (its "constructive approach" aids reliability and seamlessness), the unique way in which the correctness properties can be specified, reused and reasoned about (this contributes towards understandability and scalability), the checklist of useful correctness properties that is provided (this promotes reliability), the incorporation of existing notations into the SLOOP syntax (this guarantees general availability, minimises developmental resources and aids understandability). The main contribution of this thesis is that it presents a unique way of incorporating the SLP computational model into an object-oriented method with the specific aim of simplifying informal correctness reasoning and promoting reuse. The notation used for the specification of correctness properties facilitates reuse of correctness properties, ensures the integrity of these specifications and allows one to specify correctness properties at a higher level of abstraction. The SLOOP method offers a unique way of modelling concurrency in object-oriented systems (via its parallel methods), which takes full advantage of the encapsulation and inheritance features of object-orientation. The issues surrounding mappings to implementation architectures are addressed, showing how even mappings can be reused. Finally, the general applicability of the SLOOP method is demonstrated.Thesis (PhD (Computer Science))--University of Pretoria, 2007.Computer Scienceunrestricte

    Investigating the factors that influence the quality of open source systems

    Get PDF
    Open Source Software (OSS) has impacted software industry and recently became extremely popular. Many agencies, especially the Malaysian government agencies are capitalizing on open source projects due to the merit it offers. Due to the vast usage in the industry and government administrations, there is a colossal need to investigate on the quality of applications. Therefore, this research will study the quality factors of OSS used by Malaysian government, namely MyMeeting, and MyTaskManager. In this research, McCall’s Quality Factor Model is used as a quality model and it emphasizes on quality factors such as maintainability, correctness, reliability, efficiency and usability. This research utilizes six object-oriented metrics by Chidamber and Kemerer (CK) to measure the quality factors of OSS. The metrics were analyzed using Statistical Package for Social Sciences (SPSS). Results from the data analysis show that coupling and complexity influence the class size

    Reverse Software Engineering

    Get PDF
    The goal of Reverse Software Engineering is the reuse of old outdated programs in developing new systems which have an enhanced functionality and employ modern programming languages and new computer architectures. Mere transliteration of programs from the source language to the object language does not support enhancing the functionality and the use of newer computer architectures. The main concept in this report is to generate a specification of the source programs in an intermediate nonprocedural, mathematically oriented language. This specification is purely descriptive and independent of the notion of the computer. It may serve as the medium for manually improving reliability and expanding functionally. The modified specification can be translated automatically into optimized object programs in the desired new language and for the new platforms. This report juxtaposes and correlates two classes of computer programming languages: procedural vs. nonprocedural. The nonprocedural languages are also called rule based, equational, functional or assertive. Non-procedural languages are noted for the absence of side effects and the freeing of a user from thinking like a computer when composing or studying a procedural language program. Nonprocedural languages are therefore advantageous for software development and maintenance. Non procedural languages use mathematical semantics and therefore are more suitable for analysis of the correctness and for improving the reliability of software. The difference in semantics between the two classes of languages centers on the meaning of variables. In a procedural language a variable may be assigned multiple values, while in a nonprocedural language a variable may assume one and only one value. The latter is the same convention as used in mathematics. The translation algorithm presented in this report consists of renaming variables and expanding the logic and control in the procedural program until each variable is assigned one and only one value. The translation into equations can then be performed directly. The source program and object specification are equivalent in that there is a one to one equality of values of respective variables. The specification that results from these transformations is then further simplified to make it easy to learn and understand it when performing maintenance. The presentation of translation algorithms in this report utilizes FORTRAN as the source language and MODEL as the object language. MODEL is an equational language, where rules are expressed as algebraic equations. MODEL has an effective translation into the object procedural languages PL/1, C and Ada

    CRUD-DOM: a model for bridging the gap between the object-oriented and the relational paradigms : an enhanced performance assessment based on a case study

    Get PDF
    The development of database applications comprises three different tiers: application tier, database tier and finally the middle tier also known as the data access layer. The development of each tier per-se entails many challenges. Very often the most difficult challenges to be addressed derive from non-functional requirements, as productivity, usability, performance, reliability, high-availability and transparency. This paper is focused on defining and presenting a model for the data access layer aimed to integrate object-oriented application tiers and relational database tiers. The model addresses situations on which users need to explicitly write down complex static CRUD expressions and simultaneously get advantages regarding some non-functional requirements. The model, known as CRUD Data Object Model (CRUD-DOM), tackles the following non-functional requirements: performance, usability and productivity. The main contributions of this paper are threefold: 1) to present an extended model of CRUD-DOM; 2) to carry out an extended performance assessment based on a case study; 3) to present a tool, called CRUD Manager (CRUD-M), which provides automatic code generation with complementary support for software test and maintenance. The main outcome from this paper is the evidences that the pair CRUD-DOM and CRUD-M effectively addresses productivity, performance and usability requirements in the aforementioned context
    corecore