Micro-process of software development

We shortly present the micro-process of software development, its theory, recoding, and usage. A micro-process is the detailed, every-day process of programming (low-level designing, coding, comprehending, testing, understanding) described as a sequence of activities, i.e. events.

Definition

Usually a "software development process" deals with high-level tasks and phases like designing, performing integration tests, or delivering prototypes. This is a "macro" point of view, since it does not cover the details of the tasks, i.e. how they are performed activity by activity. Now, the "micro-process" of software development looks behind the scenes. In software engineering a lot of research has of course been done on how one should perform tests, or conduct module implementation, but only very little on micro-process observation, analysis, and later improvement.

The term "micro-process" is frequently being used in our research group in Berlin. Since "micro-process" has been used for many other research topics in software engineering, we officially use the term "Actual Process" to stress the point that we are observing processes, not defining them. Studying actual processes start naturally bottom-up at the micro level of developer activities.

Take as an example the micro-process of coding, i.e. implementation. Lots of different activities can be observed, like These activities can be described in even more detail, e.g. changing code parts could be These activities actually are events in the micro-process. Of course, these events are related. Typical episodes (= row of events) of programming can be extracted, like

One of the main tasks in studying the micro-process of programming is for example the identification of these episodes, analysing their relation to each other and to product quality measures, or finding correlations to programmer's expertise in solving a problem. For these studies, it is necessary to automatically capture the events and episodes as detailed as possible.

Applications

Some possibilities of utilizing the micro-process of programming are presented below. They can be divided into process-improving and work-supporting applications, plus those that study programmer's behavior.

Improving the micro-process and techniques

Examining the mirco-process during work can highlight some critical process weaknesses.

Supporting work

Studying the programmer's behavior

Environments

We are currently developing an environment for automatically and manually collecting and storing micro-process events with a general mechanism for episode recognition. The collected data can be used for analysing and utilizing the micro-process of programming. For more information, please see the "ECG" Home.

We are aware of three tools for micro-process capturing, the first being the most developed one.

World-wide Interest Group

There's an interest group in micro-processes forming. See the related pages.

Comments

Please add comments below or get in contact with SebastianJekutsch for questions and suggestions.

 

SWTIDSR