Barbara Weber Univ. of Innsbruck, Austria Manfred Reichert Univ. of Ulm, Germany Presenter: Arghyadip Paul Refactoring Process Models in Large Process.

Slides:



Advertisements
Similar presentations
CHAPTER OBJECTIVE: NORMALIZATION THE SNOWFLAKE SCHEMA.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Alternate Software Development Methodologies
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Testing an individual module
Software Engineering Tools and Methods Presented by: Mohammad Enamur Rashid( ) Mohammad Rashim Uddin( ) Masud Ur Rahman( )
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
Chapter 9 – Software Evolution and Maintenance
Manfred Reichert, Barbara Weber, Victoria Torres Large Process Models and Process Model Collections: - Challenges, Methods, Technologies - Barbara Weber.
This chapter is extracted from Sommerville’s slides. Text book chapter
Database Systems: Design, Implementation, and Management Ninth Edition
Chapter 1 Database Systems. Good decisions require good information derived from raw facts Data is managed most efficiently when stored in a database.
OOSE 01/17 Institute of Computer Science and Information Engineering, National Cheng Kung University Member:Q 薛弘志 P 蔡文豪 F 周詩御.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
A Survey of Software Refactoring Tom Mens, Tom Tourwé
Software Engineering Reuse.
Introduction. 
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Ontology Development Kenneth Baclawski Northeastern University Harvard Medical School.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Advanced Programing practices
Refactoring Cristescu Marilena. Definitions Loose Usage: Reorganize a program(or something) As a noun: a change made to the internal structure of some.
Teaching material for a course in Software Project Management & Software Engineering – part II.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Mining and Analysis of Control Structure Variant Clones Guo Qiao.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Of 33 lecture 10: ontology – evolution. of 33 ece 720, winter ‘122 ontology evolution introduction - ontologies enable knowledge to be made explicit and.
Refactoring1 Refactoring DEPARTMENT OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING CONCORDIA UNIVERSITY February 6, 2009.
Composition of UML Described Refactoring Rules Presented by Chin-Yi Tsai.
1 Introduction to Software Engineering Lecture 1.
Refactoring Deciding what to make a superclass or interface is difficult. Some of these refactorings are helpful. Some research items include Inheritance.
UML-1 8. Capturing Requirements and Use Case Model.
1 Computing Challenges for the Square Kilometre Array Mathai Joseph & Harrick Vin Tata Research Development & Design Centre Pune, India CHEP Mumbai 16.
Chapter 3: Software Project Management Metrics
E.Bertino, L.Matino Object-Oriented Database Systems 1 Chapter 5. Evolution Seoul National University Department of Computer Engineering OOPSLA Lab.
REFACTORINGREFACTORING. Realities Code evolves substantially during development Requirements changes 1%-4% per month on a project Current methodologies.
Experiences from Representing Software Architecture in a Large Industrial Project Using Model Driven Development Andres Mattsson 1 Björn Lundell 2 Brian.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Industrial Project (236504) Advanced programming tools for refactoring Java code in Eclipse Student: Alexander Libov Supervisor: Dr. Ran Ettinger, IBM.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
1 ECE 750 Topic 8 Meta-programming languages, systems, and applications Evolving Object-Oriented Designs with Refactorings – Lance Tokuda and Don Batory.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Refactoring. Mathematics: Factor ● fac·tor – One of two or more quantities that divides a given quantity without a remainder, e.g., 2 and 3 are factors.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
Refactoring1 Improving the structure of existing code.
Recommending Adaptive Changes for Framework Evolution Barthélémy Dagenais and Martin P. Robillard ICSE08 Dec 4 th, 2008 Presented by EJ Park.
Refactoring. DCS – SWC 2 Refactoring ”A change made to the internal structure of software to make it easier to understand and cheaper to modify without.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Software Testing.
Design Patterns: MORE Examples
The Development Process of Web Applications
Chapter 11: Software Configuration Management
Software Maintenance.
Software Processes (a)
Software Maintenance PPT By :Dr. R. Mall.
Dealing with Changes of Time-Aware Processes
Chapter 1 Database Systems
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
ece 627 intelligent web: ontology and beyond
Chapter 11: Software Configuration Management
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Chapter 1 Database Systems
Lecture 06:Software Maintenance
Advanced Programing practices
Coupling Interaction: It occurs due to methods of a class invoking methods of other classes. Component Coupling: refers to interaction between two classes.
By Hyunsook Do, Sebastian Elbaum, Gregg Rothermel
Review and comparison of the modeling approaches and risk analysis methods for complex ship system. Author: Sunil Basnet.
Presentation transcript:

Barbara Weber Univ. of Innsbruck, Austria Manfred Reichert Univ. of Ulm, Germany Presenter: Arghyadip Paul Refactoring Process Models in Large Process Repositories

 Motivation and Process Smells  Process Model Refactorings Refactorings for Process Model Trees Refactoring for Process Variants Refactorings for Model Evolution  Summary Contents

Emergence of large model repositories with increasing adoption of PAIS Process adaptations bear the risk of introducing redundancies.(Over the time new Process Model gets included in the Process Model Repositories) This unnecessary complexity makes changes costly and time consuming and makes errors more probable Maintenance of process models is poorly supported in today’s business process modeling tools Motivation

Refactoring Techniques are widely used in Software Engineering Process Model: Software Programming in Large Process Model Designers are either have to refactor process models manually or not process model refactoring is done at all. This paper proposes a catalogue of process model smells for identifying refactoring opportunities. Set of behavior preserving refactoring techniques.

Motivation We know from software engineering that productivity decreases when no continuous efforts are made to keep the code base simple

Motivation Large case study in the healthcare domain and the automotive domain > 130 process models partially created by different designers at different points in time Observations  redundant process fragments in many process models (e.g., activities for scheduling and planning appointments)  names of activities often not intention revealing  process models often unnecessarily complex

Example of an Automotive Engineering Process

Model trees Motivation A B D C + + E F Generic Process Schema A B D C + + E Delete F Variant V1 A B D C + + E Variant V2 Y Delete F Insert Y after C A B x x D Schema S + C E H G + + I Schema S1 + F J K L Schema S2 Process model family

 Motivation and Process Smells  Process Model Refactorings Refactoring for Process Model Trees Refactoring for Process Variants Refactorings for Model Evolution  Summary Contents

Refactorings are model transformations which are behavior-preserving if certain pre- and post conditions are met  Process schemes must be trace equivalent before and after the refactoring  Differs from model transformation where the entire process model is redefined. Refactoring

M Process Model S Trace Equivalence Example: AND-Split/Join A Atomic Activity + Complex Activity + BCD + EF G (Sub) Process Model S3 X YZ + + BCD EF Process Model S2 L + A M + Process Model S’ (Sub) Process Model S3 X YZ

Transformations between models expressed in different modeling languages Transformations which are altering the execution behavior (e.g., change patterns) What Refactoring is Not

When to refactor?(In SE)  Code smells  Quality metrics How to ensure that the execution behavior remains unchanged?  Formal pre- and post conditions  Testing Refactoring

How refactoring is applied and evaluated

Process Smells This list of process smells are not exhaustive, but rather found empirically by investigating a number of process model repositories in the Healthcare and automotive domain

Examples of PMS PMS1: In Source 1 several activities with same intention found like “Appointment”, “Fix Appointment”, “Fix Day” etc PMS2: Unnecessarily using logic gateways in the process model like AND Join and AND Split repetitively. PMS3: Source 1 has different process models for a women clinic. Many process model contain may redundant process fragments which executes the same control flow logic. PMS4: There are process models found with 800 activities. Empirical data shows that larger the process model size is larger will be the flows and lesser will be the understandability. PMS5: Inclusion of more number of process models with less activities makes the entire process model tree burdensome and difficult to understand. Extreme decomposition is not good. PMS6: 46 process models of source 2 shows significant number of flows in the model which are never executed PMS7:Deviate from the process model defined while execution found in Source 3 PMS8: Leads to enlargement of the process model repository. Despite the large similarity between variants they have been captured as separate process models.

3 categories of refactoring  Refactoring for Process Model Trees Can be applied to a single Process Model or a Process Model Tree.  Refactoring for Process Variants To identify a reference process model closest to a given variant collection.  Refactoring for Model Evolution Refactoring technique which considers history data. Refactoring

Refactoring in this category can be applied to a single model or to entire process model trees RF1: Rename Activity: Name of an activity can be changed if it is not intention revealing RF2: Rename Process Model: enables designers to rename a model S into S1 RF3: Substitute Proces Fragment: a fragment G can be substituted by another fragment G0 with simpler structure, but showing same behavior RF4: Extract Process Fragment: Applying RF4 results in the creation of a new (sub) process model S0 implementing the fragment RF5: Replace Process Fragment by Reference: replace a process fragment by a trace- equivalent subprocess model RF6: Inline Process Fragment: used to collapse the hierarchy of a model by in lining the process fragment RF7: Re-label Collection: : is a composed refactoring for re-labeling a particular activity in all models of a model collection RF8: Remove Redundancies Refactorings for Process Model Trees

Example RF3

Refactorings for Process Model Trees RF4, RF5 and RF7 A B F C x X G Process Schema S DE HI Z F C x X Y Process Schema S1 DE T X + + WV A B G Process Schema S‘ HI F C x X DE Process Schema S2 + S2 Z Y Process Schema S1‘ T X + + WV + S2

Challenge is to maintain Process Model Variants of the same Reference Process Model. In many cases the process variants have to be maintained by their own, and even simple changes acting multiple variants require error-prone, manual re-editing of a large number of related process variants.(Due to new laws and engineering effort) In general, the configuration of new variants or the adaptation of existing ones can be done most effectively if the reference model is kept close to the given variant collection by minimizing the average change distance RF9 - Generalize Variant Changes: enables designers to pull changes, which are common to several variants, up to the reference model Refactoring for Process Variants

x x Distance  (S, V1) = 6Bias(S,V1) = Select Examination Order Examination Inform Patient about Procedure Prepare Patient (ward( Perform Examination Create Medical Report Read/Validate Medical Report Select Examination Order Examination Inform Patient about Procedure Prepare Patient (ward) Second Opinion by other Physician Prepare Patient (exam unit) Perform Examination Create Medical Report Read/Validate Medical Report Call Patient Aftercare for Patient ++ Select Examination Order Examination Inform Patient about Procedure Prepare Patient (ward) Prepare Patient (exam unit) Perform Examination Create Medical Report Read/Validate Medical Report Call Patient Aftercare for Patient Create Summary Read Summary Process Configuration Select Examination Order Examination Register Examination Inform Patient about Procedure Prepare Patient Perform Examination Create Medical Report Read/Validate Medical Report Aftercare for Patient Create Summary Read Summary Call Patient + + Select Examination Order Examination Schedule Examination Inform Patient about Procedure Prepare Patient Perform Examination Create Medical Report Read/ Validate Medical Report Aftercare for Patient Create Summary Read Summary Call Patient Tranport Patient Tranport Patient back Reference Model S Variant V1 Variant V3 Variant V2 Variant V4 Distance  (S, V3) = 5Bias(S,V3) = Distance  (S, V2) = 6Bias(S,V2) = Distance  (S, V3) = 7Bias(S,V4) = ABCDE FG H J K L M N O P Q I J I K I K L M I K L M

++ Select Examination Order Examination Inform Patient about Procedure Prepare Patient (ward) Perform Examination Read/Validate Medical Report Call Patient Schedule Examination Aftercare for Patient Create Medical Report AB C DEF G New Reference Model S* x x Distance  (S*, V1) = 4Bias(S,V1) = Select Examination Order Examination Inform Patient about Procedure Prepare Patient (ward) Second Opinion by other Physician Prepare Patient (exam unit) Perform Examination Create Medical Report Read/Validate Medical Report Call Patient Aftercare for Patient ++ Select Examination Order Examination Inform Patient about Procedure Prepare Patient (ward) Prepare Patient (exam unit) Perform Examination Create Medical Report Read/Validate Medical Report Call Patient Aftercare for Patient Create Summary Read Summary Select Examination Order Examination Register Examination Inform Patient about Procedure Prepare Patient Perform Examination Create Medical Report Read/Validate Medical Report Aftercare for Patient Create Summary Read Summary Call Patient + + Select Examination Order Examination Schedule Examination Inform Patient about Procedure Prepare Patient Perform Examination Create Medical Report Read/ Validate Medical Report Aftercare for Patient Create Summary Read Summary Call Patient Tranport Patient Tranport Patient back Variant V1 Variant V3 Variant V2 Variant V4 Distance  (S*, V3) = 6Bias(S,V3) = Distance  (S*, V2) = 4Bias(S,V2) = Distance  (S*, V3) = 6Bias(S,V4) = H J L M N O P Q J I K L M L M

Remove Unused Branch Pull Up Instance Change Refactorings for model evolution are not behavior-preserving However, all traces on S have to be reproducible on S’ Refactoring for Model Evolution

RF10 - Remove Unused Branches  Enables designers to remove non-executed process fragments from a model S.  RF10 is not automatically applied,  Designers have to ensure that the misalignment between model and log design errors execution log not covering all relevant traces.

Remove Unused Branch Refactorings for Model Evolution A B F C X x G Process Schema S DE Instance 1: A, B, C, G Instance 2: A, B, F, G Instance 3: A, B, C, G Instance 4: A, B, F, G Instance 5: A, B, F, G … Execution Log RemoveUnusedGraph(S, {D, E}) A B F C X x G Process Schema S’

Refactoring for Model Evolution RF11 - Pull Up Instance Change  can be used to generalize frequently occurring instance changes by pulling them up to the process type level  Changes are done by the Process Model owner at the execution level only and not at the Process model definition level.  Similar refactoring RF9 which is done from the Variant level.

X Pull Up Instance Change Refactorings for Model Evolution A B D C E Process Schema S I1: ParallelInsert(S,Y,B), Delete(E) I2: ParallelInsert(S,Y,B) I3: Delete(A) I4: ParallelInsert(S,Y,B), Delete(A) I5: ParallelInsert(S,Y,B) Change Biases Change Distance = 7 A B D C E Process Schema S’ x Y I1: Delete(E) I2: I3: Delete(A), Delete(Y) I4: Delete(A) I5: Change Biases Change Distance = 4

 Motivation  Process Model Refactorings Refactoring for Process Model Trees Refactoring for Process Variants Refactorings for Model Evolution  Summary Contents

11 refactoring techniques for business process models Refactorings applicable to process model trees, but also to process variants Proof-of-concept implementation Summary

Thank You

Prototype Implementation Implemented as an Eclipse RCP application on the top of SecServ platform.

Abstractions: