course 5 november 2 2015 adrian iftene [email protected]/scoala/2016/aset/... ·...

54
Course 5 – November 2 2015 Adrian Iftene [email protected] 1

Upload: others

Post on 25-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

Course 5 – November 2 2015

Adrian [email protected]

1

Page 2: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

Next week we will not do the course and laboratories.

We will meet between 16-18 November

Plan your second meeting with the person who coordinates the research practice!

Deadline: 8th week!

2

Page 3: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

Recapitulation course 4◦ Modeling (EMF, IBM Rational Rose Modeler)

Business Process Modeling Notation◦ Introduction

◦ Elements

◦ Examples

◦ Frameworks

Aspect Oriented Programming ◦ Introduction

◦ Terminology

◦ Frameworks

AspectJ (for Eclipse and Netbeans)

3

Page 4: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

Modeling ◦ The Value of Modeling

◦ EMF

◦ IBM Rational Rose Modeler

4

Page 5: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

5

Who?

What is modeling?

Why model?

Page 6: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

6

EMF Ecore

Page 7: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

7

Page 8: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

BPMN - graphical representation for specifying business processes in a business process modeling

BPMN was developed by Business Process Management Initiative (BPMI), and is currently maintained by the OMG (http://www.bpmn.org/)

The objective of BPMN is to support business process management for both technical users and business users

The current version of BPMN is 2.0.1 (http://www.omg.org/spec/BPMN/2.0.1/)

8

Page 9: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

BPMN is based on a flowcharting technique very similar to activity diagrams from UML

The primary goal of BPMN is to provide a standard notation that is readily understandable by all business stakeholders:◦ business analysts - who create and refine the processes

◦ technical developers - responsible for implementing

◦ business managers - who monitor and manage the processes

Business Process Execution Language (BPEL) = execution languages

9

Page 10: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

10

Page 11: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

11

Page 12: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

Event - something that happens◦ Catching - they might catch an incoming message to Start process

◦ Throwing - they might throw a message at the End of the process

12

Page 13: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

Activity - describes the kind of work which must be done◦ Task - a single unit of work

◦ Sub-process - Used to hide or reveal

additional levels of business process

detail

◦ Transaction - A form of sub-process

in which all contained activities must

be treated as a whole

13

Page 14: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

All contained activities must all be completed to meet an objective, and if any one of them fails they must all be compensated (undone)

14

Page 15: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

A Gateway is represented with a diamond shape and will determine forking and merging of paths depending on the conditions expressed

15

Page 16: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

A Sequence Flow shows in which order the activities will be performed

A Message Flow tells us what messages flow across organizational boundaries

An Association is used to associate an Artifact or text to a Flow Object

16

Page 17: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

Swimlanes are a visual mechanism of organizing and categorizing activities◦ Pool - Represents major participants in a process (contains one

or more lanes (like a real swimming pool)) A pool can be open(showing internal detail) or collapsed (hiding internal detail)

◦ Lane - Used to organize and categories activities within a pool according to function or role. A lane contains the Flow Objects, Connecting Objects and Artifacts.

17

Page 18: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

18

Page 19: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

Artifacts allow developers to bring some more information into the model/diagram◦ Data Objects show the reader which data is

required or produced in an activity

◦ An Annotation is used to give the reader of the model/diagram an understandable impression

◦ A Group is used to group different activities but does not affect the flow in the diagram

19

Page 20: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

20

Page 21: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

21

Page 22: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

22

Page 23: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

23

Private (internal) business processes – are internal to a specific organization and are called workflow or BPM processes

Abstract (public) processes - represent the interactions between a private business process and another process or participant

Collaboration (global) processes - A collaboration process depicts the interactions between two or more business entities.

Page 24: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

24

Page 25: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

25

Page 26: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

26

Page 27: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

27

Page 28: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

Visio BPMN modeler◦ Microsoft Visio Professional 2010, 2013 (e-academy)

Intalio◦ Java, Eclipse

Jadex◦ Java, Eclipse

JBPM◦ Java, Apache Ant

28

Page 29: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

29

Page 30: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

30

Page 31: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

31

Page 32: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

32

Page 33: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

33

Page 34: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

34

Page 35: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

35

Page 36: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

36

AOP is a programming paradigm which isolates secondary or supporting functions from the main program’s business logic

AOP increases modularity by allowing the separation of cross-cutting concerns

AOP includes programming techniques and tools that support the modularization of concerns at the level of the source code

Page 37: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

37

Aspects emerged out of object-oriented programming and computational reflection

Aspects relate closely to subjects, mixings, delegation

Since at least the 1970s, developers have been using forms of interception and dispatch-patching

Designers have considered alternative ways to achieve separation of code, such as C#'s partial types, but such approaches lack a quantification mechanism that allows reaching several join points of the code with one declarative statement

Page 38: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

38

AOP as such has a number of antecedents: the Visitor Design Pattern, CLOS MOP (Common Lisp Object System - MetaobjectProtocol)

AspectJ developed by Gregor Kiczales and colleagues at Xerox PARC (2001)

Page 39: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

Hyper/J and Concern Manipulation Environment offered by IBM's research team in 2001 (which have not seen wide usage)

EmacsLisp changelog added AOP related code in version 19.28

39

Page 40: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

40

Cross-cutting concerns - aspects of a program which affect other concerns

Advice - additional code

Pointcut - point where additional code is executed

Aspect - the combination of the pointcut and the advice

Page 41: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

41

Even though most classes in an OO model will perform a single, specific function, they often share common, secondary requirements with other classes

For example, we may want to add logging to classes within the data-access layer and also to classes in the UI layer whenever a thread enters or exits a method. Even though each class has a very different primary functionality, the code needed to perform the secondary functionality is often identical.

Page 42: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

42

This is the additional code that you want to apply to your existing model

In our previous example, this is the logging code that we want to apply whenever the thread enters or exits a method.

Page 43: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

43

This is the term given to the point of execution in the application at which cross-cutting concern needs to be applied

In our previous example, a pointcut is reached when the thread enters a method, and another pointcut is reached when the thread exits the method

Page 44: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

44

The combination of the pointcut and the advice

In the example above, we add a logging aspect to our application by defining a pointcut and giving the correct advice.

Page 45: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

45

Utility for aspect-oriented languages designed to take instructions specified by aspects and generate the final implementation code

Takes information from raw class and aspects and creates new class => woven class

The weaver integrates aspects into the locations specified by the software as a pre-compilation step

Page 46: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

46

AspectJ - the most mature and fully featured framework

JBoss AOP - is a 100% Pure Java usuable in any programming environment

Aspectwerkz (AW) - one of the quickest and most fully featured AOP frameworks available

Nanning - a simple yet scalable aspect-oriented framework for Java (Nanning is also nice "little" town in Guanxi province in southern China)

Page 47: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

47

Eclipse IDE + AJDT (http://www.eclipse.org/ajdt/)

Create “New” + “AspectJ Project” (AspectJ Development Tools)

Page 48: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

48

Page 49: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

49

aspect

pointcut

advice

Page 50: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

50

AspectJ Plugin for NetBeans 6.7.x: http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=22964

Using the AspectJ Plug-In Module for NetBeans 6.0+: http://www.jroller.com/ramlog/entry/using_the_aspectj_plug_in1

Page 51: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

51

Page 52: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

52

Use BPMN to create a business model, and use it in a new project component related to your project theme

Use AOP or MOP in your implementation

Page 53: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

53

BPMN: http://www.bpmn.org/

BPMS Process Mapping BPM: http://interfacing.com/

Visio BPMN modeler Tutorial: http://www.interfacing.com/uploads/File/Tutorial.pdf

Business process case studies: http://interfacing.com/Literature/Business-process-case-studies/

Intalio: http://www.intalio.com/downloads

Jadex packages: http://jadex-processes.informatik.uni-hamburg.de/xwiki/bin/view/Download/Available+Packages

Jadex Installation: http://jadex-processes.informatik.uni-hamburg.de/xwiki/bin/view/BPMN+Tutorial/02+Installation

Jadex: How to install the plugin? http://code.google.com/p/plugin-eclipse-jadex/wiki/Getting_Started

jBPM: http://jboss.org/jbpm

Page 54: Course 5 November 2 2015 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2016/ASET/... · 2015-11-01 · The current version of BPMN is 2.0.1 ... technical developers - responsible

54

AOP: http://onjava.com/pub/a/onjava/2004/01/14/aop.html, http://en.wikipedia.org/wiki/Aspect-oriented_programming

AspectJ: http://www.eclipse.org/aspectj/

AspectJ Downloads: http://www.eclipse.org/aspectj/downloads.php

Aspectwerkz (AW): http://aspectwerkz.codehaus.org/

Nanning: http://nanning.codehaus.org/

jBoss AOP: http://www.jboss.org/jbossaop

Spring AOP tutorial: http://technologiquepanorama.wordpress.com/2009/05/18/spring-aop-tutorial-i/

AJDT: AspectJ Development Tools: http://www.eclipse.org/ajdt/

AOP in Netbeans: http://www.jroller.com/ramlog/entry/using_the_aspectj_plug_in1http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=22964

Framework for AOP in C#: http://rail.dei.uc.pt/