Software, Process, Business Process and Software Process Tao Xie Research work was done while being a summer intern at Software Technology Research Department Avaya Labs Research
Outline Process Conceptual Framework Software & Process Business Process & Software Process Process Program Design PASTA Process Modeling & Automation Conclusions 2
Background Leon J. Osterweil, Software Processes are Software Too, ICSE 9 (Awarded as Most Influential Paper 10 years later) Software Software Process Our approach: Business Process Software Process Software Process Using PASTA (Process and Artifact State Transition Abstraction) to model and automate FAST (Family-Oriented Abstraction, Specification, and Translation) SARB (Software Architecture Review Board) Business Processes (workflow) 3
Process Conceptual Framework Role Work On (Manual) Activity Control flow (Automated) Activity Data flow Artifact Data flow Process Abstraction 4
Software and Process Method/ Component (Manual) Activity Role I/O Work On Software, Process, Business Process and Software Process Method Call/ Connector Control flow Control flow in the end of method; Continuation Concurrency Data flow and control flow are relatively independent Method/ Component (Automated) Activity Data flow Data flow Inter-procedural dataflow Process Abstraction Artifact Data variable / Data structure 5
Process Program vs. Conventional Program High flexibility and customizability Process flow (control flow) is explicitly defined and enforced. Process flow instance (artifact instances) are explicitly distinguished and maintained automatically Process Automation Process Modeling Model Process Enactment Process-Centered Environment Process Modeling Tools Build time Model Process Flow Engine Runtime 6
Business Process vs. Software Process More iterations Higher organization flexibility More non-intrusive support More complex artifacts Different process instances need modification of process Few concurrent multiple process instances Artifact instance version control 7
Process Correctness Software, Process, Business Process and Software Process Are we building the right process? Are we building the process right? Are we building the process the participants are willing to follow? Process Definition Process Enactment 8
Modeling Language Design Principles Expressiveness vs. usability Activity decomposition Process vs. control abstraction Control flow Event-based vs. state-based Data flow Param passing vs. Artifact association 9
Process Design Principles Software, Process, Business Process and Software Process Guidance vs. non-intrusiveness Control constraints among activities Process abstraction level Artifact representation option Incremental top-down vs. bottom-up Information hiding- artifact abstraction Process evaluation Process language & process 10
More on Process Design Software, Process, Business Process and Software Process Modeling is Not Enough Model checking/analysis Process enactment or simulation Support What Can Be Supported Preparation meeting Different forms of software artifacts - Integrator 11
PASTA (Process and Artifact State Transition Abstraction) Role (S) Process/Activity (V) Artifact (O) 12
PASTA Conceptual Framework Role in hierarchy GUI Form Artifact Role list for P-state Entrance Cond P-state (fill) Exit Cond State-of(A) = empty State-of(A) = filled Entrance Exit Cond Cond P-state (check) State-of(A) = filled State-of(A) = checked Artifact List for P-state Artifact A Referenced Artifact List for P-state empty fill filled check A-state machine checked 13
P-State Machine -> Petri Net Software, Process, Business Process and Software Process state-of(economic_model)=referenced. A-state as place Domain_Engineer Gather_Data Operation as transition state-of(economic_model)=started Role as triggering of transition Domain_Manager Analyze_Data state-of(economic_model)=reviewed Domain_Manager Reject Accept Domain_Manager state-of(family_artifact:1)=domain_rejected state-of(family_artifact:1)=domain_qualified 14
SARB PASTA Role Hierarchy 15
SARB PASTA Artifact Hierarchy 16
SARB PASTA Artifact State Machine 17
SARB PASTA P-state Hierarchy 18
SARB PASTA P-state Machine 19
Analogy between PASTA and Software PASTA Process Traditional Software P-state P-state hierarchy Artifact Artifact hierarchy Artifact-state (control state) Component/Subsystem/Method System decomposition hierarchy Data variable/data structure Data structure hierarchy Actual value of data variable P-state machine Transition in P-state machine A-state machine Petri-Net like executable state transition abstraction Runtime dynamic state transition Software architecture with different scope and abstraction Connector in architecture/ Method call between methods Inter-procedural program slicing for certain data variable Static function call graph Dynamic function call graph 20
PASTA Main System Components 21
PASTA Agent GUI 22
Conclusion Software and Process Process Program and Conventional Program Business Process and Software Process Process Program Design PASTA Modeling and Automation 23