Process modelling for requirements capture
As software complexity increases, well defined managerial methods of organising software production become increasingly crucial to the success of software projects. As the investigation into the field of software process methodology continues, two approaches to process modelling have emerged as tools with which to model such processes. Graphical notations provide a clear, intuitive method of describing processes, whilst process modelling languages offer the ability to execute those processes. However, many existing process modelling languages are derived from programming languages, and, as such, inherit the low-level, syntactically complex attributes of these languages. The main goal of this thesis is to provide a process modelling language based on a well-known and practised graphical approach to modelling processes, the Role Activity Diagram (RAD). To ensure a high level of applicability, we emphasise the importance of ensuring that the language is readily accessible to those without a technical background. To this end, as well as being a linguistic approach with origins firmly in the process modelling field, models defined in this language are intended to exhibit a high level of abstraction and intuitiveness. This thesis proposes the Romula process modelling language as a complementary approach to Role Activity Diagrams, and describes a tool developed for animating processes modelled in this language. A discussion is presented which highlights the problems of animating Romula models derived from RADs which had to be overcome when developing Romula. Evaluation of the Romula language was achieved by validation and specification. For validation, the Romula approach was used to represent and execute two complex example process models. The first of these, named ProcMod, is a process model of a hypothetical software development process, itself validated by enacting it on a simple software development scenario. The second example process model is an implementation in Romula of a requirements-oriented process framework, presented as a method for representing the organisation of large software projects across multiple contributing entities. Examples of how this framework can be utilised are implemented in Romula. A method of translating Romula models into the formal specification notation CSP is also provided, demonstrated by example translations. This method enables Romula-derived CSP models to be checked for formal properties such as deadlock, livelock, and reachability, as well as providing a formal specification of the core semantics of the language.