Teaching software process improvement through a case study

Cooperative Software Engineering (CSE) means that large-scale, software development and maintenance can be conducted in a distributed organisation or across organisations. CSE can be characterised by distributed process fragments, partly shared workspaces, cooperation planning, and frequent interactions in intra/inter-workspaces. To support CSE processes, we must deal with dynamic, unpredictable processes as well as stable, repeatable processes with totally different characteristics. Traditional workflow and process systems offer good support for stable, pre-planned processes, providing user agendas, invocation of tools, presentation of process state etc. Multi-agent systems are well suited to model and support users involved in cooperative processes. By combining these two technologies, processes with characteristics similar to cooperative software engineering processes can be modelled and supported more completely.The thesis presents a framework called CAGIS Process Centred Environment (PCE), for combining a workflow system with a multi-agent system. These are the main parts of the thesis:- A multi-agent architecture to support cooperative processes. This architecture is particularly useful in modelling and providing support for cooperative activities where software agents act on behalf of the user. The design and implementation of this architecture is described.-A workflow system to support distributed mobile processes. This workflow system allows processes to be fragmented into smaller sub-processes that can be distributed over several workspaces and moved between these workspaces.-A gluing framework to specify the interaction between the workflow system and the multi-agent architecture. The gluemodel defines the relationships between software agents and process fragments (sub-processes), and a GlueServer is used as a middleware between a workflow tool and a multi-agent system. Results from applying the GlueModel framework on a cooperative software engineering (CSE) process is also described.- A Evaluation of the framework by modelling three practical cases:- A conference organising process is modelled in three different process environments (including our own), and evaluated according to modelling completeness and adaptability to process changes.- A CSE scenario describing a software and maintenance process in a Norwegian software company is modelled to show usefulness of the gluing framework.- A project organisation scenario used to demonstrate how software agents can be used in CAGIS Process Centred Environment to deal with evolution of distributed, fragmented workflow models.