176 research outputs found

    Language and tool support for class and state machine refinement in UML-B

    No full text
    UML-B is a ’UML-like’ graphical front end for Event-B that provides support for object-oriented modelling concepts. In particular, UML-B supports class diagrams and state machines, concepts that are not explicitly supported in plain Event-B. In Event-B, refinement is used to relate system models at different abstraction levels. The same abstraction-refinement concepts can also be applied in UML-B. This paper introduces the notions of refined classes and refined state machines to enable refinement of classes and state machines in UML-B. Together with these notions, a technique for moving an event between classes to facilitate abstraction is also introduced. Our work makes explicit the structures of class and state machine refinement in UML-B. The UML-B drawing tool and Event-B translator are extended to support the new refinement concepts. A case study of an auto teller machine (ATM) is presented to demonstrate application and effectiveness of refined classes and refined state machines

    The theory of classification part 17: multiple inheritance and the resolution of inheritance conflicts

    No full text
    The author considers the theoretical issues raised by combining multiple implementations. Then, he considers what it means for an object to belong to multiple parent classes, defining the notion of multiple classification

    JWalk: a tool for lazy, systematic testing of java classes by design introspection and user interaction

    No full text
    Popular software testing tools, such as JUnit, allow frequent retesting of modified code; yet the manually created test scripts are often seriously incomplete. A unit-testing tool called JWalk has therefore been developed to address the need for systematic unit testing within the context of agile methods. The tool operates directly on the compiled code for Java classes and uses a new lazy method for inducing the changing design of a class on the fly. This is achieved partly through introspection, using Java’s reflection capability, and partly through interaction with the user, constructing and saving test oracles on the fly. Predictive rules reduce the number of oracle values that must be confirmed by the tester. Without human intervention, JWalk performs bounded exhaustive exploration of the class’s method protocols and may be directed to explore the space of algebraic constructions, or the intended design state-space of the tested class. With some human interaction, JWalk performs up to the equivalent of fully automated state-based testing, from a specification that was acquired incrementally

    Borrow, copy or steal?: loans and larceny in the orthodox canonical form

    No full text
    Dynamic memory management in C++ is complex, especially across the boundaries of library abstract data types. C++ libraries designed in the orthodox canonical form (OCF) alleviate some of the problems by ensuring that classes which manage any kind of heap structures faithfully copy and delete these. However, in certain common circumstances, OCF heap structures are wastefully copied multiple times. General reference counting is not an option in OCF, since a shared body violates the intended value semantics; although a copy-on-write policy can be made to work with borrowed heap structures. A simpler ownership policy, based on larceny, allows low-level memory manager objects to steal heap structures from temporary variables, in properly isolated circumstances. Various strategies for regulating theft are presented, ranging from pilfer-constructors to locks on heap data. Larceny has similarities with other transfer of ownership patterns, but is more a core implementation technique designed to improve the efficiency and effectiveness of OCF-conformant libraries

    Borrow, copy or steal?: loans and larceny in the orthodox canonical form

    No full text
    Dynamic memory management in C++ is complex, especially across the boundaries of library abstract data types. C++ libraries designed in the orthodox canonical form (OCF) alleviate some of the problems by ensuring that classes which manage any kind of heap structures faithfully copy and delete these. However, in certain common circumstances, OCF heap structures are wastefully copied multiple times. General reference counting is not an option in OCF, since a shared body violates the intended value semantics; although a copy-on-write policy can be made to work with borrowed heap structures. A simpler ownership policy, based on larceny, allows low-level memory manager objects to steal heap structures from temporary variables, in properly isolated circumstances. Various strategies for regulating theft are presented, ranging from pilfer-constructors to locks on heap data. Larceny has similarities with other transfer of ownership patterns, but is more a core implementation technique designed to improve the efficiency and effectiveness of OCF-conformant libraries

    Testing with guarantees and the failure of regression testing in eXtreme Programming

    No full text
    The eXtreme Programming (XP) method eschews all formal design, but compensates for this by rigorous unit testing. Test-sets, which constitute the only enduring specification, are intuitively developed and so may not be complete. This paper presents a method for generating complete unit test-sets for objects, based on simple finite state machines. Using this method, it is possible to prove that saved regression test-sets do not provide the expected guarantees of correctness when applied to modified or extended objects. Such objects, which pass the saved tests, may yet contain introduced faults. This puts the whole practice of regression testing in XP into question. To obtain the same level of guarantee, tests must be regenerated from scratch for the extended object. A notion of guaranteed, repeatable quality after testing is defined

    PwC Tesla

    No full text
    A search engine developed using Django, Haystack and Solr.Software and Computer TechnologyElectrical Engineering, Mathematics and Computer Scienc

    HMR-Asynchronous Boundary Control

    No full text
    The Horseshoe Meadows Ranch has evolved to a hospitality unit that caters to horse owners who are looking for lodging and recreation at the same site as the stable that serves their horses. With access to more than 1618 hectares of open unimproved forestland, the guests of the ranch are having difficulties navigating through the wild scenic, majestic mountains and untamed rivers since many trails and single track features are omitted. Two students from the Delft University of Technology who are in the final phase of the bachelor Computer Science, are asked to develop a methodology with which the trails and features of the unimproved forestland can be mapped in a delivery system. The delivery system should enable the guests of the Horseshoe Meadows Ranch to navigate through the wilderness of Oregon on their own. This report describes the establishment of the launched prototype during 18 weeks of development. The details of the research and implementation process will be discussed throughout the report.Bsc. Computer ScienceComputer ScienceElectrical Engineering, Mathematics and Computer Scienc
    corecore