PhD Research Opportunities
Here are some ideas for PhD projects that I would be prepared to
supervise. If you're interested, email me.
Further details of how to apply for a research degree can be found
on the Department's main website.
Summary: This project brings together a number of different
challenges in software engineering. Program-It-Yourself: PIY is the
idea that, in future, business end-users should be able to specify the kinds
of systems that they need, using domain-specific languages tailored to express
their requirements directly. Scrap-Heap Challenge: SHC is the idea
that, in future, software will be cannibalised from existing systems, but
not at the code-level, rather at the model-level, from which new systems
will be automatically generated. Self-Verification and Test: SVT
is the idea that, in future, design models will be automatically checked
for consistency and completeness and generated code will be automatically
tested against specifications. This is an exciting new field!
Follow links to the ReMoDEL website.
Summary: JWalk is a toolset that performs bounded
exhaustive unit tests on compiled Java classes. So far, the tools discover
the intended specification by a combination of run-time introspection, using
the Java reflection API, and interaction with the programmer, to build up
incremental specifications. There is scope to improve JWalk in
several ways, including: adding annotations to supply algebraic design
information; improving algorithms for state-space exploration; learning
the algebraic specification by induction from oracle examples; generalising
the JWalk approach to multi-class and system-level testing;
integrating JWalk with other environments and Open Source projects.
Follow links to the JWalk website.
Summary: The Discovery Method is a complete
systems analysis and design method for object-oriented systems, developed
here at Sheffield. The method is known for its psychological reinforcement
techniques (the so-called discovery procedures) used in requirements
capture; and for its systematic design transformations that generate
exemplars of recognised Design Patterns at the system level.
Recent work on Discovery has concentrated on providing a complete
formal semantics for the models used. Research opportunities include:
extending the semantics of Tasks and Activity to
State and Command design models; developing tools
to support transformations from Task models to State and
Command models; developing the integration of Task
and Narrative models. A long-term goal is to provide a dedicated
CASE tool for the Discovery Method.
Follow links to the Discovery Method website.
Summary: The idea for this project grew out of
my PhD thesis:
A Language with Class: The Theory of Classification Exemplified
in an Object-Oriented Language, University of Sheffield, 1996.
It aims to design and implement a novel object-oriented programming
language, whose treatment of class follows the theory of
function-bounded polymorphism in the second-order (and higher-order)
λ-calculus. However, the concrete syntax of Poppy
will avoid the use of nested type parameters and will instead support
systematic type substitution as a way of describing the evolution of
closed recursive types under inheritance, and the specialisation of
field-types that would normally be handled by parametric instantiation.
One of the main challenges is to develop an incremental compiler, that
is capable of making late binding optimisations. Follow links
to the Poppy website.