For some time now, researchers have been seeking to place software measurement on a more firmly g... more For some time now, researchers have been seeking to place software measurement on a more firmly grounded footing by establishing a theoretical basis for software comparison. Although there has been some work on trying to employ information theoretic concepts for the quantification of code documents, particularly on employing entropy and entropy-like measurements, we propose that employing the Similarity Metric of Li, Vitányi, and coworkers for the comparison of software documents will lead to the establishment of a theoretically justifiable means of comparing and evaluating software artifacts. In this paper, we review previous work on software measurement with a particular emphasis on information theoretic aspects, we examine the body of work on Kolmogorov complexity (upon which the Similarity Metric is based), and we report on some experiments that lend credence to our proposals. Finally, we discuss the potential advantages derived from the application of this theory to areas in the field of software engineering.
The current industry trend to using Test Driven Development (TDD) is a recognition of the high va... more The current industry trend to using Test Driven Development (TDD) is a recognition of the high value of creating executable tests as part of the development process. In TDD, the test code is a formal documentation of the required behaviour of the component or system being developed, but this documentation is necessarily incomplete and often over-specific. An alternative view to TDD is to develop the specification of the required behaviour in a formal notation as a part of the TDD process and to generate test oracles from that specification. In this paper we present tools in support of this approach that allow formal specifications to be written in a readable manner that is tightly integrated with the code through an integrated development environment, and test oracles to be generated automatically. The generated test code integrates smoothly with test frameworks (e.g., JUnit) and so can be directly used in TDD. This approach has the advantage that the specifications can be complete and appropriately abstract but still support TDD.
In this paper I will discuss several aspects relating to the Engineering Design component of Comp... more In this paper I will discuss several aspects relating to the Engineering Design component of Computer Engineering programmes, with particular reference to the structure of our programme at Memorial. I will consider both the quantity of design instruction, with respect to both CEAB accreditation criteria and our perception of the needs of our graduates, and the distribution of it through the programme, both by year and technical area.
ABSTRACT Software testing is an important and time consuming task for developers. Automating the ... more ABSTRACT Software testing is an important and time consuming task for developers. Automating the testing tasks will allow developers to spend their time more productively. The Unified Modeling Language is widely used for designing object oriented software. With the advent of the Object Constraint Language UML allows not only description of the layout of software, but specification of behavior as well. Using documents created at design time, tools exist that will generate automated tests and oracles. While this implies a larger amount of work at the front end of the development cycle, there is a significant gain in quality and time by automating the testing phase.
The paper describes a GPU-based event mechanics (GEM) model of the action of managed pack ice on ... more The paper describes a GPU-based event mechanics (GEM) model of the action of managed pack ice on a floating offshore structure. The ice cover is represented by a large number of discrete polygonal ice floes, of varying thickness. Each ice-structure contact is modeled, as is every ice-ice contact. Time histories of total platform force (net mooring force) and platform position are presented. Ice coverage, floe sizes and thickness are varied in the simulation set. The work represents a further exploration of the possibilities of GEM technology, which was previously used to explore both resistance and local structural loads for ships transiting pack ice. The work is part of a research project at Memorial University of Newfoundland called STePS2 (Sustainable Technology for Polar Ships and Structures).
The current industry trend to using Test Driven Development (TDD) is a recognition of the high va... more The current industry trend to using Test Driven Development (TDD) is a recognition of the high value of creating executable tests as part of the development process. In TDD, the test code is a formal documentation of the required behaviour of the component or system being developed, but this documentation is necessarily incomplete and often over-specific. An alternative view to TDD is to develop the specification of the required behaviour in a formal notation as a part of the TDD process and to generate test oracles from that specification. In this paper we present tools in support of this approach that allow formal specifications to be written in a readable manner that is tightly integrated with the code through an integrated development environment, and test oracles to be generated automatically. The generated test code integrates smoothly with test frameworks (e.g., JUnit) and so can be directly used in TDD. This approach has the advantage that the specifications can be complete and appropriately abstract but still support TDD.
The paper explores the use of a GPU-Event-Mechanics (GEM) simulation to assess local ice loads on... more The paper explores the use of a GPU-Event-Mechanics (GEM) simulation to assess local ice loads on a vessel operating in pack ice. The methodology uses an event mechanics concept implemented using massively parallel programming on a GPU enabled workstation. The simulation domain contains hundreds of discrete and interacting ice floes. A simple vessel is modeled as it navigates through the domain. Each ship-ice collision is modeled, as is every ice-ice contact. Each ship-ice collision event is logged, along with all relevant ice and ship data. Thousands of collisions are logged as the vessel transits many tens of kilometers of ice pack. The GEM methodology allows the simulations to be performed much faster than real time. The resulting impact load statistics are qualitatively evaluated and compared to published field data. The analysis provides insight into the nature of loads in pack ice. The work is part of a large research project at Memorial University called STePS2 (Sustainable Technology for Polar Ships and Structures).
Canadian Conference on Electrical and Computer Engineering, 2010
Software testing is an important step to help ensure that the software is behaving correctly. An ... more Software testing is an important step to help ensure that the software is behaving correctly. An important component of the test process is a test oracle, which determines if the software behavior is correct or not. In this paper, we present tools that enhance an integrated development environment to give the user the ability to write the formal specifications in a readable manner and generate test oracles automatically. The generated test oracles integrate smoothly with test frameworks (e.g., JUnit) and hence they can be directly used to test the behavior of the program. This approach for testing has the advantage that the quality of testing can be high and very efficient.
A fundamental, but often neglected, requirement for automated testing of software and systems is ... more A fundamental, but often neglected, requirement for automated testing of software and systems is that there must be an oracle|a means of determining if the behaviour exhibited by the system under test is acceptable or not. Testing of real-time systems requires that the oracle check that the system satises both behavioural and timing constraints, so human oracles are typically insucient. In this talk I will briey present a real-time system specication technique that is both understandable to domain experts, and precise enough to be used to automatically generate an oracle. I will illustrate how this technique has been used to nd previously undetected errors in a real-time system. 1 Introduction Computer systems are increasingly being used in situations where their correct behaviour is essential for the safety of people, equipment, the environment and businesses. In many cases there are realtime requirements on the behaviour of these systems|failure to satisfy timing constr...
During system testing, determining if the observed behaviour of a real-time system is consistent ... more During system testing, determining if the observed behaviour of a real-time system is consistent with its requirements specification can be difficult. I pro- pose that a system to check the behaviour against the specification, a monitor, be automatically de- rived from the requirements documentation. The monitor would model the system requirements as a modified finite state automaton in which the
System designers have one goal in common: the system must behave according to the design requirem... more System designers have one goal in common: the system must behave according to the design requirements. Designers need to succinctly specify the behavioural requirements of a system. Peters in [1] proposes a technique for documenting system requirements in which the required system behaviour is described in terms of the environmental quantities that the system is required to observe and control; these are modeled as functions of time.
This paper presents an overview of the Xylia software library, this library is being designed for... more This paper presents an overview of the Xylia software library, this library is being designed for the development of user friendly visual editors for the eXtensible Markup Language (XML)[1]. XML is a standard for markup languages. Each language conforming to XML is similar in structure to HTML, but has its own set of permissible tags, and rules about how they may relate. XML is designed to store structured data in a standardized, cross-platform, textual format. The Java programming language and the Swing toolkit from Sun Microsystems [2] are being used to build the library, which is suitable for application developers who wish to create simple, easy to use, robust editors for specific XML languages. Since both technologies are intended to promote cross-platform and cross-application interoperability, they are a good match for each other.
For some time now, researchers have been seeking to place software measurement on a more firmly g... more For some time now, researchers have been seeking to place software measurement on a more firmly grounded footing by establishing a theoretical basis for software comparison. Although there has been some work on trying to employ information theoretic concepts for the quantification of code documents, particularly on employing entropy and entropy-like measurements, we propose that employing the Similarity Metric of Li, Vitányi, and coworkers for the comparison of software documents will lead to the establishment of a theoretically justifiable means of comparing and evaluating software artifacts. In this paper, we review previous work on software measurement with a particular emphasis on information theoretic aspects, we examine the body of work on Kolmogorov complexity (upon which the Similarity Metric is based), and we report on some experiments that lend credence to our proposals. Finally, we discuss the potential advantages derived from the application of this theory to areas in the field of software engineering.
For some time now, researchers have been seeking to place software measurement on a more firmly g... more For some time now, researchers have been seeking to place software measurement on a more firmly grounded footing by establishing a theoretical basis for software comparison. Although there has been some work on trying to employ information theoretic concepts for the quantification of code documents, particularly on employing entropy and entropy-like measurements, we propose that employing the Similarity Metric of Li, Vitányi, and coworkers for the comparison of software documents will lead to the establishment of a theoretically justifiable means of comparing and evaluating software artifacts. In this paper, we review previous work on software measurement with a particular emphasis on information theoretic aspects, we examine the body of work on Kolmogorov complexity (upon which the Similarity Metric is based), and we report on some experiments that lend credence to our proposals. Finally, we discuss the potential advantages derived from the application of this theory to areas in the field of software engineering.
The current industry trend to using Test Driven Development (TDD) is a recognition of the high va... more The current industry trend to using Test Driven Development (TDD) is a recognition of the high value of creating executable tests as part of the development process. In TDD, the test code is a formal documentation of the required behaviour of the component or system being developed, but this documentation is necessarily incomplete and often over-specific. An alternative view to TDD is to develop the specification of the required behaviour in a formal notation as a part of the TDD process and to generate test oracles from that specification. In this paper we present tools in support of this approach that allow formal specifications to be written in a readable manner that is tightly integrated with the code through an integrated development environment, and test oracles to be generated automatically. The generated test code integrates smoothly with test frameworks (e.g., JUnit) and so can be directly used in TDD. This approach has the advantage that the specifications can be complete and appropriately abstract but still support TDD.
In this paper I will discuss several aspects relating to the Engineering Design component of Comp... more In this paper I will discuss several aspects relating to the Engineering Design component of Computer Engineering programmes, with particular reference to the structure of our programme at Memorial. I will consider both the quantity of design instruction, with respect to both CEAB accreditation criteria and our perception of the needs of our graduates, and the distribution of it through the programme, both by year and technical area.
ABSTRACT Software testing is an important and time consuming task for developers. Automating the ... more ABSTRACT Software testing is an important and time consuming task for developers. Automating the testing tasks will allow developers to spend their time more productively. The Unified Modeling Language is widely used for designing object oriented software. With the advent of the Object Constraint Language UML allows not only description of the layout of software, but specification of behavior as well. Using documents created at design time, tools exist that will generate automated tests and oracles. While this implies a larger amount of work at the front end of the development cycle, there is a significant gain in quality and time by automating the testing phase.
The paper describes a GPU-based event mechanics (GEM) model of the action of managed pack ice on ... more The paper describes a GPU-based event mechanics (GEM) model of the action of managed pack ice on a floating offshore structure. The ice cover is represented by a large number of discrete polygonal ice floes, of varying thickness. Each ice-structure contact is modeled, as is every ice-ice contact. Time histories of total platform force (net mooring force) and platform position are presented. Ice coverage, floe sizes and thickness are varied in the simulation set. The work represents a further exploration of the possibilities of GEM technology, which was previously used to explore both resistance and local structural loads for ships transiting pack ice. The work is part of a research project at Memorial University of Newfoundland called STePS2 (Sustainable Technology for Polar Ships and Structures).
The current industry trend to using Test Driven Development (TDD) is a recognition of the high va... more The current industry trend to using Test Driven Development (TDD) is a recognition of the high value of creating executable tests as part of the development process. In TDD, the test code is a formal documentation of the required behaviour of the component or system being developed, but this documentation is necessarily incomplete and often over-specific. An alternative view to TDD is to develop the specification of the required behaviour in a formal notation as a part of the TDD process and to generate test oracles from that specification. In this paper we present tools in support of this approach that allow formal specifications to be written in a readable manner that is tightly integrated with the code through an integrated development environment, and test oracles to be generated automatically. The generated test code integrates smoothly with test frameworks (e.g., JUnit) and so can be directly used in TDD. This approach has the advantage that the specifications can be complete and appropriately abstract but still support TDD.
The paper explores the use of a GPU-Event-Mechanics (GEM) simulation to assess local ice loads on... more The paper explores the use of a GPU-Event-Mechanics (GEM) simulation to assess local ice loads on a vessel operating in pack ice. The methodology uses an event mechanics concept implemented using massively parallel programming on a GPU enabled workstation. The simulation domain contains hundreds of discrete and interacting ice floes. A simple vessel is modeled as it navigates through the domain. Each ship-ice collision is modeled, as is every ice-ice contact. Each ship-ice collision event is logged, along with all relevant ice and ship data. Thousands of collisions are logged as the vessel transits many tens of kilometers of ice pack. The GEM methodology allows the simulations to be performed much faster than real time. The resulting impact load statistics are qualitatively evaluated and compared to published field data. The analysis provides insight into the nature of loads in pack ice. The work is part of a large research project at Memorial University called STePS2 (Sustainable Technology for Polar Ships and Structures).
Canadian Conference on Electrical and Computer Engineering, 2010
Software testing is an important step to help ensure that the software is behaving correctly. An ... more Software testing is an important step to help ensure that the software is behaving correctly. An important component of the test process is a test oracle, which determines if the software behavior is correct or not. In this paper, we present tools that enhance an integrated development environment to give the user the ability to write the formal specifications in a readable manner and generate test oracles automatically. The generated test oracles integrate smoothly with test frameworks (e.g., JUnit) and hence they can be directly used to test the behavior of the program. This approach for testing has the advantage that the quality of testing can be high and very efficient.
A fundamental, but often neglected, requirement for automated testing of software and systems is ... more A fundamental, but often neglected, requirement for automated testing of software and systems is that there must be an oracle|a means of determining if the behaviour exhibited by the system under test is acceptable or not. Testing of real-time systems requires that the oracle check that the system satises both behavioural and timing constraints, so human oracles are typically insucient. In this talk I will briey present a real-time system specication technique that is both understandable to domain experts, and precise enough to be used to automatically generate an oracle. I will illustrate how this technique has been used to nd previously undetected errors in a real-time system. 1 Introduction Computer systems are increasingly being used in situations where their correct behaviour is essential for the safety of people, equipment, the environment and businesses. In many cases there are realtime requirements on the behaviour of these systems|failure to satisfy timing constr...
During system testing, determining if the observed behaviour of a real-time system is consistent ... more During system testing, determining if the observed behaviour of a real-time system is consistent with its requirements specification can be difficult. I pro- pose that a system to check the behaviour against the specification, a monitor, be automatically de- rived from the requirements documentation. The monitor would model the system requirements as a modified finite state automaton in which the
System designers have one goal in common: the system must behave according to the design requirem... more System designers have one goal in common: the system must behave according to the design requirements. Designers need to succinctly specify the behavioural requirements of a system. Peters in [1] proposes a technique for documenting system requirements in which the required system behaviour is described in terms of the environmental quantities that the system is required to observe and control; these are modeled as functions of time.
This paper presents an overview of the Xylia software library, this library is being designed for... more This paper presents an overview of the Xylia software library, this library is being designed for the development of user friendly visual editors for the eXtensible Markup Language (XML)[1]. XML is a standard for markup languages. Each language conforming to XML is similar in structure to HTML, but has its own set of permissible tags, and rules about how they may relate. XML is designed to store structured data in a standardized, cross-platform, textual format. The Java programming language and the Swing toolkit from Sun Microsystems [2] are being used to build the library, which is suitable for application developers who wish to create simple, easy to use, robust editors for specific XML languages. Since both technologies are intended to promote cross-platform and cross-application interoperability, they are a good match for each other.
For some time now, researchers have been seeking to place software measurement on a more firmly g... more For some time now, researchers have been seeking to place software measurement on a more firmly grounded footing by establishing a theoretical basis for software comparison. Although there has been some work on trying to employ information theoretic concepts for the quantification of code documents, particularly on employing entropy and entropy-like measurements, we propose that employing the Similarity Metric of Li, Vitányi, and coworkers for the comparison of software documents will lead to the establishment of a theoretically justifiable means of comparing and evaluating software artifacts. In this paper, we review previous work on software measurement with a particular emphasis on information theoretic aspects, we examine the body of work on Kolmogorov complexity (upon which the Similarity Metric is based), and we report on some experiments that lend credence to our proposals. Finally, we discuss the potential advantages derived from the application of this theory to areas in the field of software engineering.
Uploads
Papers by Dennis Peters