Information Technology Reference
In-Depth Information
initial implementation of the project is Erlang/OTP (Open Telecom Platform),
but a crucial aspect of our proposal is the dissemination and adoption of the ap-
proach much more widely, particularly into the model driven development arena
(UML) and other implementation languages (C/C++, Java, etc).
Erlang/OTP has been chosen as the implementation vehicle because of its
robustness and reliability within the telecoms sector; witness, for example, its
success in the implementation of the AXD301 ATM telecoms switch by Ericsson,
one of the project partners. Erlang [AVWW96] is a concurrent functional lan-
guage with specific support for the development of distributed, fault-tolerant sys-
tems with soft real-time requirements. Language and implementation design have
aimed from the start to support a concurrency-oriented programming paradigm
and the massively concurrent systems that it leads to.
The project consortium contains a balance of academics from Universities of
Sheeld, Kent, Politecnica de Madrid, Goteborg, Chalmers University of Tech-
nology, SMEs, and a larger company. One of the SMEs is Quviq which is a
spin-off from academia, founded to commercialise the property-based testing
tool QuickCheck. The remaining industrial partners are system builders (Erics-
son, LambdaStream) together with Erland Solutions who are consultants, system
developers and trainers. These partners provide invaluable insights into what is
required of practical tools, what properties will need to be checked, and ways of
fitting the results from the project into practical software development methods.
Our own work on QuickCheck [AHJW06] combines random test case gener-
ation, with a flexible language for specifying generators, with the use of prop-
erties to adjudge success [CH00]. The inevitable noise in random test cases is
removed by automatic simplification, using an approach resembling Zellers delta-
debugging [ZH02]. This technique enabled us to isolate subtle faults in industrial
telecommunications software [AHJW06], and has also been used successfully to
test software for space missions [GHJ07].
Refactoring has become a well-known technique, particular in the realm of
object oriented software development. It is standard for Integrated Development
Environments, such as Eclipse, NetBeans and IntelliJ IDEA, to support a selec-
tion of refactorings, particularly those to do with the structure of the code base.
Refactorings are also commonly discussed in the context of transforming code
so that it conforms to a particular design pattern or coding standard. Here we
build on existing work undertaken at Kent who have developed refactoring tool
support for functional programming [Tho04] in the languages Erlang [LT08] and
Haskell [LTR05] and their relationship [LT06].
Trace analysis is a natural extension to testing. Instead of only studying the
outcome of a test case, all events (at some appropriate level of detail) during the
test execution are recorded in a trace. By analyzing the trace in an intelligent
way more information can be extracted from a single test. The Erlang run-time
system has a built-in trace recording functionality, which has lead to wide-spread
use of trace analysis as a verification technique for Erlang systems. Trace analysis
for Erlang systems has been studied by [AF02] and further by [ACS04]. Our
previous work on trace analysis for Erlang includes trace abstraction, in which
Search WWH ::




Custom Search