software process modeling - aalborg...
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd1835f52e0934e725e8698/html5/thumbnails/37.jpg)
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.