Perspectives on Process Formalisms for Enhanced Software Effectiveness

20
Perspectives on Process Formalisms for Enhanced Software Effectiveness Leon J. Osterweil ([email protected]) University of Massachusetts Amherst, MA 01003 URL: laser.cs.umass.edu DOD Software Summit USC -- 7 August 2001

description

Perspectives on Process Formalisms for Enhanced Software Effectiveness. Leon J. Osterweil ([email protected]) University of Massachusetts Amherst, MA 01003 URL: laser.cs.umass.edu DOD Software Summit USC -- 7 August 2001. What do we mean by “process”. - PowerPoint PPT Presentation

Transcript of Perspectives on Process Formalisms for Enhanced Software Effectiveness

Page 1: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

Perspectives on Process Formalisms for

Enhanced Software Effectiveness

Leon J. Osterweil ([email protected])University of Massachusetts

Amherst, MA 01003

URL: laser.cs.umass.edu

DOD Software Summit

USC -- 7 August 2001

Page 2: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

What do we mean by “process”

• Activities related to the development, verification, evolution, evaluation, management, etc. of software products

• Examples 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

Page 3: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

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

Page 4: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

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

Page 5: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

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

Page 6: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

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

It supports a Black Box Testing Approach to Software Process

Improvement

Page 7: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

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

Page 8: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

Approaches to Process Definition• Process 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

Page 9: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

Data Flow Diagram ofTraditional Waterfall Model

Requirements

Low-LevelDesign

Code

Test

High-LevelDesign

Page 10: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

With More Rework

Requirements

Low-LevelDesign

Code

Test

High-LevelDesign

Page 11: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

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?

Page 12: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

Petri Net Requirements specification process

Interview

Develop Spec

Develop Implementation

DevelopersReal World

Users

RW_Desc

Sys_Spec_Diag

Sys_Impl_Diag +Sys_Spec_Diag

Design_Spec

JSD

Page 13: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

Design 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

Page 14: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

HFSP design model

(a) JSD(Real_World | Design_Spec) =>(1)Develop_Spec(Real_World_Desc |System_Spec_Diagram)(2)Develop_Impl(System_Spec_Diagram |System_Impl_Diagram)(3)Where Real_World_Desc = Interview(Users, Developers,Real_World)(4) Design_Spec = union(System_Spec_Diagram, System_Impl_Diagram)

Second_level(b) Develop_Spec(Real_World_Desc |System_Spec_Diagram) =>(1)Develop_System_Model(Real_World_Desc |Real_World_Model, Init_System_Spec_Diagram)(2)Develop_System_Func(Real_World_Model, Init_System_Spec_Diagram |System_Spec_Diagram)

Third_level(c) Develop_System_Model(Real_World_Desc|Real_World_Model, Init_System_Spec_Diagram) =>(1)Model_Reality(Real_World_Desc |Real_World_Model)(2)Model_System(Real_World_Model |Init_System_Spec_Diagram)

(d) Develop_System_Func(Real_World_Model,Init_System_Spec_Diagram |System_Spec_Diagram)(1)Define_Func(Real_World_Model, Init_System_Spec_Diagram |System_Function, Function_Process)(2)Define_Timing(Init_System_Spec_Diagram, System_Function |Timing)(3)Where System_Spec_Diagram =is_composed_of(Init_System_Spec_Diagram, System_Function, Function_Process, Timing)

Fourth_level(e)Model_Reality(Real_World_Desc | Real_World_Model) =>(1)Identify_Entity_Action(Real_World_Desc | Entity_Action_List)(2)Draw_Entity_Structure(Entity_Action_List | Entity_Structure_List)Where Real_World_Model = is(Entity_Structure_List) Real_World_Process = is(Entity_Structure)(f) Model_System(Real_World_Model | Init_System_Spec_Diagram) =>(1)Identify_Model_Process(Real_World_Model | M_Proc_Name_List)(2)Connect(Real_World_Model, M_Proc_Name_List | Connection_List)(3)Specify_Model_Process(Connection_List, Real_World_Model, M_Proc_Name_List |Model_Process_List)(4)Where Init_System_Spec_Diagram = is(Model_Process_List)(5)Connection = is(State_Vector) or is(Data_Stream)

Page 15: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

Little JIL

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

other product, resource, scheduling factors• Visual JIL is the graphical interface to Little JIL

Page 16: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

High-Level Process

Page 17: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

Requirements Details

Page 18: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

Design Details

Page 19: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

Requirements Rework

Page 20: Perspectives on  Process Formalisms for Enhanced Software Effectiveness

Opportunities and Directions• Evolve and Improve Software Processes and Products• Through 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