software process modeling - aalborg...

37
Software Process Modeling Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems March 15, 2007

Upload: others

Post on 23-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

Software Process Modeling

Peter Dologdolog [at] cs [dot] aau [dot] dkE2-201Information SystemsMarch 15, 2007

Page 2: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

2Peter Dolog, SOE, Software Process Modeling

Process programming

Our suggestion is that we describe software processes by "programming" them much as we "program" computer applications. We refer to the activity of expressing software process descriptions with the aid of programming techniques as process programming, and suggest that this activity ought to be at the center of what software engineering is all about.

Osterweil, L. "Software Processes are Software Too," Proceedings of the Proceedings of the Ninth International Conference on Software Engineering, Washington, DC, 1987, pp. 2-13.

Page 3: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

3Peter Dolog, SOE, Software Process Modeling

Osterweil

http://sunset.usc.edu/events/2001/dod/Event/dod_presentations/4.3-Osterweil.ppt

Page 4: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

4Peter Dolog, SOE, Software Process Modeling

Perspectives on Process Formalisms forEnhanced Software Effectiveness

Leon J. Osterweil ([email protected])University of MassachusettsAmherst, MA 01003URL: laser.cs.umass.edu

DOD Software SummitUSC -- 7 August 2001

© Osterweil

Page 5: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

5Peter Dolog, SOE, Software Process Modeling

What do we mean by “process”Activities related to the development, verification, evolution,

evaluation, management, etc. of software productsExamples of high level processes:

• Develop requirements• Do Object Oriented Design• Formally verify

Examples of low level processes• Archive result of running a test case• Compile a piece of code

Tend to be concurrent (coordination of people, systems)Usually (regrettably) informal or undefined

© Osterweil

Page 6: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

6Peter Dolog, SOE, Software Process Modeling

Why the interest in process?Superior quality from superior processes

• Build quality in, don’t “test in” quality (manufacturing)• Many observed “process errors”

• Real processes are intricate, have intricate interconnections

• Machines can help people with process complexities• Process effectiveness from human/machine synergy

© Osterweil

Page 7: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

7Peter Dolog, SOE, Software Process Modeling

Processes

Are intangible and invisible• Although their effects are substantial

How to improve their effectiveness?• Make them tangible, visible• Engineer them as first-class objects

Use computer science formalisms to define processes

© Osterweil

Page 8: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

8Peter Dolog, SOE, Software Process Modeling

The Capability Maturity Model (CMM)is a Test Plan for Software Processes

© Osterweil

Page 9: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

9Peter Dolog, SOE, Software Process Modeling

The Capability Maturity Model (CMM)is a Test Plan for Software Processes

It supports a Black Box Testing Approach to Software Process Improvement

© Osterweil

Page 10: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

10Peter Dolog, SOE, Software Process Modeling

The Capability Maturity Model (CMM)is a Test Plan for Software Processes

It supports a Black Box Testing Approach to Software Process Improvement

We advocate White Box Analysis based on explicit process definition

© Osterweil

Page 11: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

11Peter Dolog, SOE, Software Process Modeling

Approaches to Process DefinitionProcess Definition may have different goals

• Communication• Coordination • Intuitive understanding• Verification• Training• Automation• Deep understanding• Etc.

Different definition formalisms support different of these goals to different degrees

Formalisms vary in rigor, precision (semantic detail), semantic scope, clarity © Osterweil

Page 12: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

12Peter Dolog, SOE, Software Process Modeling

Data Flow Diagram ofTraditional Waterfall Model

Low-LevelDesign

Test

High-LevelDesign

Requirements

Code

© Osterweil

Page 13: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

13Peter Dolog, SOE, Software Process Modeling

With More Rework

Requirements

Low-LevelDesign

Code

Test

High-LevelDesign

© Osterweil

Page 14: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

14Peter Dolog, SOE, Software Process Modeling

The Trouble with Dataflow Diagrams

Requirements

Low-LevelDesign

Code

Test

High-LevelDesign

Where does output go?

What causes this rework?

What portion ofactivity should bedone?

How do we break this cycle?

What to do when reviews fail?

© Osterweil

Page 15: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

15Peter Dolog, SOE, Software Process Modeling

Petri Net Requirements specification process

Interview

Develop Spec

Develop Implementation

Developers Real World Users

RW_Desc

Sys_Spec_Diag

Sys_Impl_Diag +Sys_Spec_Diag

Design_Spec

JSD

© Osterweil

Page 16: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

16Peter Dolog, SOE, Software Process ModelingDesign Process Petri net

Req_Spec

Req_Spec

Identify_Object

Objects States

Identify_Operations

Operations Objects States

Establish_Visibility

Operations

Objects States

VisibilityEstablish_Interface

Interface

Create_Implementation

Implementation InterfaceCreate_Design_Spec

Design_Spec

Design_Spec

BOOD

© Osterweil

Page 17: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

17Peter Dolog, SOE, Software Process Modeling

Little JIL

Graphical language with execution semantics• Expresses process coordination• Designed to be used interchangeably with other

product, resource, scheduling factorsVisual JIL is the graphical interface to Little JIL

© Osterweil

Page 18: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

18Peter Dolog, SOE, Software Process Modeling

High-Level Process

© Osterweil

Page 19: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

19Peter Dolog, SOE, Software Process Modeling

Requirements Details

© Osterweil

Page 20: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

20Peter Dolog, SOE, Software Process Modeling

Design Details

© Osterweil

Page 21: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

21Peter Dolog, SOE, Software Process Modeling

Requirements Rework

© Osterweil

Page 22: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

22Peter Dolog, SOE, Software Process Modeling

Opportunities and DirectionsEvolve and Improve Software Processes and ProductsThrough improving process languages by

• Defining key processes• Using them to integrate tools• Automating processes• Analyzing and improving processes

Effecting the definition and automation of superior processes for• Software development• Management• Procurement

To assure superior software products

© Osterweil

Page 23: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

23Peter Dolog, SOE, Software Process Modeling

Osterweil 1987

Software Processes are Software Too

Page 24: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

24Peter Dolog, SOE, Software Process Modeling

End-Users and Applications

Page 25: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

25Peter Dolog, SOE, Software Process Modeling

The Software Practitioner

Page 26: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

26Peter Dolog, SOE, Software Process Modeling

Deriving the Software Practitioner’s Product

Page 27: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

27Peter Dolog, SOE, Software Process Modeling

Process Programs and Process Descriptions

Page 28: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

28Peter Dolog, SOE, Software Process Modeling

Process vs. Process Description

a process is a vehicle for doing a job, a process description is a specification of how the job is to be done

Page 29: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

29Peter Dolog, SOE, Software Process Modeling

Process Programs and Humans

Process programs need not treat humans like robots

Human tasks should be represented as functions or procedures for which the definition is omitted, thereby leaving the human free to execute the task as he or she sees fit.

The level to which any human task is elaborated by the process code is the choice of the process coder, who, in doing so, specifies the extent to which the process isauthoritarian and prescriptive, or permissive and relaxed.

Page 30: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

30Peter Dolog, SOE, Software Process Modeling

Computer Software Processes

software development as a manufacturing activity parts fabrication have considerable intuitive appeal, although they have not been entirely satisfactory.

set of activities carded out in order to effect the development or evolution of a software product should be considered to be a process.

There seems to be a clear analogy between this sort of process and the process by which airplane wings are built, gourmet mealsare prepared and autos are assembled.

Page 31: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

31Peter Dolog, SOE, Software Process Modeling

Process Potential

process description/instantiation/execution capabilities are powerful indeed.

we are able to improvise effective process descriptions on the fly

maintain them in our heads

modify them as necessary and

guide others in their effective execution.

Hypothesis: Just think how much we might be able to achieve were we able to externalize these process descriptions, express them rigorously, promulgate them publicly, store them archivally, and exploit computing power to help us in guiding and measuring their execution.

Page 32: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

32Peter Dolog, SOE, Software Process Modeling

Advantages of Process Programming

... the greatest advantage offered by process programming is that it provides a vehicle for the materialization of the processes by which we develop and evolve software.

... it is startling to realize that we develop and evolve so large, complex, and intangible an object as a large software system without the aid of suitably visible, detailed and formal descriptions of how to proceed.

Through a process program the manager of a project can communicate to workers, customers and other managers just what steps are to be taken in order to achieve product development or evolution goals.

Workers, in particular, can benefit from process programs in that reading them should indicate the way in which work is to be coordinated and the way in which each individual's contribution is to fit with others' contributions.

Page 33: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

33Peter Dolog, SOE, Software Process Modeling

a critical necessity

At present key software process information is locked in the heads of software managers.

It can be reused only when these individuals instantiate it and apply it to the execution of a specific software process.

When these individuals are promoted, resign or die their software process knowledge disappears.

Others who have studied their work may have anecdotal views of the underlying process descriptions, but these descriptions themselves vanish with the individual who conceived them.

Obviously such process knowledge is a valuable commodity and ought to be preserved and passed on. Materializing it is a critical necessity.

Page 34: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

34Peter Dolog, SOE, Software Process Modeling

Non-traditional Domain

... we believe that software process descriptions should be considered to be software. They are created in order to describe the way in which specific information products are to be systematically developed or modified. In this respect they are no different than a payroll program or a matrix inversion program.

... our early work indicates that process programs can be written in compilable, interpretable programming languages

We believe that the primary difference between the process programs which we are suggesting and conventional programs is that process programs represent programming in a non-traditional application domain.

Page 35: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

35Peter Dolog, SOE, Software Process Modeling

Standard Processes

Work in this area is just now beginning to proliferate, and it seems that this kind of work could be most critical to fostering the maturation of software engineering.

If software engineering is to mature into an orderly discipline it seems that it must develop a core set of well-understood, well-supported standard processes, and a cadre of practitioners who understand what the processes are and how to use them.

Certainly the older, better established engineering disciplines, such as Chemical Engineeringand Industrial Engineering, exemplify this sort of use of process.

Page 36: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

36Peter Dolog, SOE, Software Process Modeling

Basis of the Paper

this notion is widespread and

exploitation of it is done very effectively by humans.

Processes are used to effect generalized, indirect problem solving.

The essence of the process exploitation paradigm seems to be that humans solve problems by creating process descriptions and then instantiating processes to solve individual problems.

Rather than repetitively and directly solving individual instances of problems, humans prefer to create generalized solution specifications and make them available for instantiation (often by others) to solve individual problems directly.

Page 37: Software Process Modeling - Aalborg Universitetpeople.cs.aau.dk/~dolog/courses/sweng2007/SOE12.pdf · The Capability Maturity Model (CMM) is a Test Plan for Software Processes It

37Peter Dolog, SOE, Software Process Modeling

Relation to Watts Humphrey

The earliest impetus for the ideas of process programming arose out of meetings and conversations with Watts Humphrey and his team at IBM in the early 1980’s.