|
PhD in Software Design: Research Ideas
In this page you will find several possible research directions that can be pursued within a PhD (or even an MSc) programme. By no means this is intended to be a comprehensive list! You are invited to contact me to discuss these or your own ideas. Ideas in this page:
Related pages: Tool support in object-oriented designKey terms: Object-oriented programming, CASE tools, software visualization Primary skills: Programming in Java Tool support in object-oriented design (OOD) aims to provide means for capturing abstractions in object-oriented applications and class libraries. Activities which such a tool can support or automate include the following:
The two-tier programming project is an ongoing effort to build tool support for these activities. Possible research directions include:
Related pages: Formal specification of object-oriented designKey terms: Mathematical logic, design patterns, object-oriented programming, software visualization Primary skills: Abstraction, object-oriented programming The objective of formal specification is to deliver precise and concise method of expressing object-oriented design decisions. Objects of specification include design patterns, class libraries, and application frameworks. Our ongoing research in formal specification of OOD has lead us to formulate LePUS3 and Class-Z, a small subset of the Z specification language designed to support both visual and symbolic specifications:
LePUS3 and Class-Z have well-defined semantics and it is axiomatized in the first order predicate calculus. Possible research directions include:
For more details please see: lepus.org.uk LePUS3 in UMLPrimary skills: Object-oriented design and modelling Key terms: Unified Modeling Language (UML), LanguagE for Patterns Uniform Specification (LePUS), version 3 (under development.) LePUS is a formal and visual language for specifying object-oriented design. The objective of this project is to re-define LePUS3 in UML 2.0. Related pages: Abstraction classes in software designKey terms: Software design theory, software architecture Related terms: Mathematical logic Primary skills: Abstraction, broad familiarity with software design What are the primary categories of software design? We observe three categories that divide the spectrum of software design statements:
According to the Intension/Locality hypothesis, these categories can be distinguished formally using the Locality criterion and the Intension criterion as follows:
Possible research directions include:
See also:
Measuring software flexibilityWhat does it mean for software to be flexible? A theory on measuring software flexibility I developed with Tom Mens attempts to answer this question. Given the design pattern, architectural style, or any other well-formed expression of the software's 'design', the notion of evolution complexity can help us assess the complexity of specific evolution steps. Possible research directions include:
Related material:
|
|