how to increase your business reactivity using the « goal-driven development » process according...

18
How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a case study using Enterprise Architect… Birol Berkem (Goobiz.com) Last References http://www.jot.fm (Journal of Object Technology) – Mars / April 2006 http :// www.jot. fm (Journal of Object Technology) – July / August 2005 http://www.bpmg.org (Business Process Management Group) other presentations of the « Goal-Driven Development » on http ://www.omg. org and ht tp://www.goobiz.com (*) BMM : Business Motivation Model - voted by the OMG in September 2005 http://www.businessrulesgroup.org/second_paper/BRG-BRMM.pdf

Post on 21-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ?

A step by step presentation on a case study using Enterprise Architect…

Birol Berkem (Goobiz.com)

Last Referenceshttp://www.jot.fm (Journal of Object Technology) – Mars / April 2006

http://www.jot.fm (Journal of Object Technology) – July / August 2005

http://www.bpmg.org (Business Process Management Group)

other presentations of the « Goal-Driven Development » on

http://www.omg.org and http://www.goobiz.com

(*) BMM : Business Motivation Model - voted by the OMG in September 2005 http://www.businessrulesgroup.org/second_paper/BRG-BRMM.pdf

Page 2: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

2

SYSTEM

Manage Customer

Steps of the « Use Case driven » development

Use Cases : Services required from a system by its users : Business Goals are not considered !

Summary Description / UC

Title: Fill Order Actors: Operator, Customer

Description:UC started when the operator receives a call…

Expanded Description / UC

Title: Fill Order

Actors:..Description:…

Actor Syst. Response.

1. actor asks.. 2. system identifies..3. Actor fills..

REQUIREMENTS

CODE

Identify Customer

Fill Order

...

Activity or State / Transition Diagrams for UCs scenarios and objects life cycle

Sequence diagram in O.O analysis

Logical Architecture of the System(Domain Model)

Order

LineCust

<<HMI>>

UCs-Fill Order..;Cli

<<UC-CTRL>>

<< BUSINESS OBJECTS >>

Fill Order

Identify Cust()

….()

:UC-01:MHI

Fill Order()

Identify Cust()

….()

:Cde02:UC

01:MHI

:DBCde

….()

Sequence Diagram in O.O Design

Sequence diagram forcapturing needs

:System

Identify Cust()

Fill Order()

Technical Architecture of the System(Updated by design level choices )

Fill Order; Mng.Cust

MHI_CliMHI_Order

...

<<MHI>>

<<Application>>

<<COM>>DB_OrderDB_Custo

<<BDD>>

Operator Customer

Customer ServiceAgent

Use Case :Actor / System Interactions and rules that realise the goal of the

actor are mixed !

INVISIBLE BUSINESS RULES : DISSIMULATEDBEHIND ACTOR

/ SYSTEM INTERACTIONS OF THE « USE CASES »High Maintenance Efforts in face of changes on the

business rules and goals

Logical Architecture : Weak longevity because based on the entities instead

of the « GOALS » !

Fill Order

What is wrong ?

Page 3: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

3

Use Case Driven Development with UML (Summary)

Efficient for capturing requirements on the basis of usage scenarios (based on the goals of the users)

Focus on the actor / system interactions depending on the choices of the users

O.O approach based on objects of the real world discovered on the basis of requirements and use cases (UC)

Lack of traceability with the business goals ! GAP between business requirements and those of the users !

Lack of visibility of the business rules that support these interactions important maintenance efforts in face of change of the business goals and their supporting rules !

« 1 to N » relationship between use cases (functional) and objects :

• Difficult maintenance : Object models difficult to evolve in face of changes on the requirements

• Impossible to confer longevity to O.O Architectures that are built upon tightly coupled business objects

• …

Advantages Inconvenience

Difficult adaptation of the IT applications in face of changes high level cost weak business reactivity !

Page 4: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

4

Relationships between Goals,Courses of Actions, Rules, Processes… from the Business Motivation Model (BMM) - voted by the OMG in September 2005

http://www.businessrulesgroup.org/second_paper/BRG-BRMM.pdf

Page 5: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

5

ENTITY

USE CASE

GOAL CASE BUSINESS

GOAL

1.GROUP REQUIREMENTS USING GOALS : DISCOVER THE

« GOAL-DRIVEN USE CASES »

3/4. FORMALISE RULES & ACTIONS / ASSIGN

RESPONSIBILITES TO PARTICIPANTS

GOAL CASE

USE CASE

BUSINESS GOAL

GUI

GOAL CASE

USE CASE

ENTITY

BUSINESSGOALREAL.

2. DRAFT THE BACKBONE OF THE « GOAL-DRIVEN SERVICE

ORIENTED ARCHITECTURE »

3.1

3.1

3.2

3.3

3.2

3.3

1.1

1.21.1

1.2

Java Code PIM)

Behaviours (CIM)GUI

ENTITY

USE CASE

GOAL CASE

5. DESCRIBE BEHAVIOURS OF THE ARCHITECTURAL COMPONENTS

Birol Berkem - © 2005-2007 GOObiz.com

®

Overview : Steps for aligning IT with the changes using the « Goal-Driven Development » process according to BMM

6. INTEGRATE COMPONENTS INTO THE ARCHITECTURE & TEST

ENTITY

BUSINESSGOAL REAL.

RESPONSIBILITY

ACTION

RULE

PROCESS

Page 6: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

6

1.1 Group Requirements using Goals

BUSINESS GOAL

BUSINESS GOAL

BUSINESS GOAL

« GOAL CASE »

RULES

GC-Register Visitor

Register

Visitor

:Visitor :Systeme

Visitor (from Business Goal Cases)

«Goal Case»Register Visitor

G3.2

<<Realize »

<<invoke »

GOAL CASE : Set of requirements that belong to a goal unit of the system directly

achievable by the participation of actors. (To be realised, goal cases require participation of

actors via USE CASES)

Page 7: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

7

(from Business Goal Cases)

«Goal Case»Present

Products on the Web

G1.1

R1.2.1.a

(from Business Goal Cases)

«Goal Case»Review Product

Presentation

Present Products

Review Product

Presentation

Review

Questionnaire

Turn Visitor into Buyer

«invokes»

Consult Products Marketing_Mgr

(from Actors)

Internet_Visitor(from Actors)

Sales_Mgr(from Actors)

<<invokes>>

<<invokes>>

<<invokes>>

Register

Visitor

«invokes»

«invokes»

(from Business Goal Cases)

«Goal Case»

Turn Visitor into Buyer

G4

(from Business Goal Cases)

Consult «Goal Case»

Products

G1.2

(from Business Goal Cases)

«Goal Case»Register Visitor

G3.2

(from Business Goal Cases)

«Goal Case»Review

Questionnaire

R3.2.2.a

GOAL CASE

USE CASE

BUSINESS GOAL

BUSINESSGOAL

BUSINESSGOAL

1.2…discover « Goal-Driven Use Cases » at the CIM

:Visitor :Systeme GC-Register Visitor

UC-Register Visitor

Page 8: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

8

2 - Generate the PIM level « Architectural Backbone » of the system

ENTITIESUSE

CASE

BUSINESSGOAL

GOAL CASE

RESPONSIBILITY

RULE

BUSINESS GOAL

BUSINESS GOAL

«BUC_Comp»Visitor_Registration::

Visitor_Entry

- complete_fields: boolean- form_incomplete: boolean- visitor_entered: boolean

- complete_fields() : void+ enter_visitor() : void- fill_form() : void

<<refine>> <<refine>>

«BGC_Comp»Visitor_Registration::

Visitor_Entry

- entry_processed: boolean- entry_requested: boolean- form_registered: boolean- form_validated: boolean

+ enter_visitor() : void- process_entry() : void

{pre: entry_requested}

??

Page 9: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

9

GC-Consult Products

GC-Review ProductPresentation

GC-Present Products onthe Web

:Marketing_Mgr [Prod_Review]

:Marketing_Mgr [Present_Prod]

:Visitor [Consult_Prod]

GC-Register Visitor

GC-NotifyVisitors

GC-Fill GC-FillQuestionnaire

GC-EnterVisitor

:Visitor [Registration]

GC-Turn Visitors intoBuyers:Sales_Mgr

[Turn into buyer]

GC-Review Questionnaire:Marketing_Mgr

[Review Quest]

R3.2.2.a Abandon_rate> 30%

Notif linkedForm linked

R3.1.1 Incite visitors to register

while consulting products

Registration [requested]

ENTITY

BUSINESSGOAL

REALISATION

RESPONSIBILITY

ACTION

RULE

PROCESS

4- Assign responsibilities required from participants…

BUSINESSGOAL

REALISATION

BUSINESSGOAL

REALISATION

R 3.2.6 When registration Is completedOK informSales

Abandon

Abandon

R1.2.1.a: Abandon Rate > 50% after 4 mn. Review products

3 -Formalise actions and rules that realise business goals

Page 10: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

10

5 - Describe underlying behaviours of previous actions then transform them as components for the PIM

GUI(Presentation)

ENTITiES (Persistance)

USE CASE (Application

Logic)UC GC

GOAL CASE (Business

Logic)

«BUC_Comp»Visitor_Registration::

Visitor_Entry

- complete_fields: boolean- form_incomplete: boolean- visitor_entered: boolean

- complete_fields() : void+ enter_visitor() : void- fill_form() : void

{pre : visitor_entered}- thanks_for_entry() : void

«BGC_Comp»Visitor_Registration::

Visitor_Entry

- entry_processed: boolean- entry_requested: boolean- form_registered: boolean- form_validated: boolean

+ enter_visitor() : void- process_entry() : void

{pre: entry_requested}- register_form() : void- validate_form() : void

UCGC

c d U I_ C om p

U I_ C om p for V is ito r_ E ntry

+ U I-C trl

F i e l d s to C o m p l e te

F i l l Fo rm

T h a n ks fo r e n try

GUI

GUI

Page 11: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

11

…test integration of the corresponding PIM level components to plug into the architecture backbone

Entity/Persistance

Layer

BusinessLayer

ApplicationLayer

PresentationLayer

UC GC

Page 12: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

12

«BGC_Comp»Visitor_Registration::

Visitor_Entry

- entry_processed: boolean- entry_requested: boolean- form_registered: boolean- form_validated: boolean

+ enter_visitor() : void- process_entry() : void

{pre: entry_requested}- register_form() : void- validate_form() : void

Data Model for Register Visitor

+ Catalog Notification

+ Visitor

Entry_Form Product Questionnaire

Registration_Info

(from Data Model)

UI_Comp for Visitor_Entry

+ UI-Ctrl

Fields to Complete

Fill Form Thanks for entry

(from Visitor_Entry)

«BUC_Comp»Visitor_Registration::

Visitor_Entry

- complete_fields: boolean- form_incomplete: boolean- visitor_entered: boolean

- complete_fields() : void+ enter_visitor() : void- fill_form() : void

{pre : visitor_entered}- thanks_for_entry() : void

WebServer::servlet

Client::Browser

<<import>>

<<import>>

<<import>>

<<import>>

<<refine>> <<refine>>

6 – Plug-in behaviours of the components into the « Goal-Driven Architecture »

ENTITIES

GOAL CASEUSE CASE

GUI

UCGC

Page 13: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

13

…transform CIM level behaviours into PIM level software comment lines in order to guide developers…

3.1

3.1

3.2

3.3

3.2

3.3

1.1

1.2

1.1

1.2

CORRESPONDINGJAVA CODE at the PIM

DESIRED BEHAVIOURS USING ACTIONS and OBJECTS at the CIM

Page 14: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

14

How to manage changes using the Goal-Driven Service Oriented Architecture (GD-SOA) ?

Changes on the Business Goal (V2) : « Motivate visitors to register using a bonus and lotery systems » …

New Business Objective (V2) : 100 registrants / week

Before V2 After V2

Page 15: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

15

1 – Describe Impacts of the changes (V2) on Goal Cases

Page 16: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

16

2/3 – Trace impacts (V2) on actions, rules and responsibilities of the participants

Page 17: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

17

4 – Capitalize on your business knowledge and increase your business reactivity to changes using the stable and traceable architecture backbone

«BGC_Comp»Visitor_Registration_V2

- added_to_lottery: boolean- bonus_assigned: boolean- new_state: boolean- questionnaire_filled: boolean- state: char- transaction_aborted: boolean- visitor_notified: boolean- visitor_registered: boolean

- abort_transaction() : void- add_to_lottery() : boolean- assign_bonus() : boolean- enter_visitor() : void- fill_questionnaire() : void- notify_visitor() : boolean+ register_visitor() : void

<<refine>>

Page 18: How to increase your business reactivity using the « Goal-Driven Development » Process according to MDA and BMM (*) ? A step by step presentation on a

18

ENTITY

USE CASE

GOAL CASE BUSINESS

GOAL

1.GROUP REQUIREMENTS USING GOALS : DISCOVER THE

« GOAL-DRIVEN USE CASES »

3/4. FORMALISE RULES & ACTIONS / ASSIGN

RESPONSIBILITES TO PARTICIPANTS

GOAL CASE

USE CASE

BUSINESS GOAL

GUI

GOAL CASE

USE CASE

ENTITY

BUSINESSGOALREAL.

2. DRAFT THE BACKBONE OF THE « GOAL-DRIVEN SERVICE

ORIENTED ARCHITECTURE »

3.1

3.1

3.2

3.3

3.2

3.3

1.1

1.21.1

1.2

Java Code PIM)

Behaviours (CIM)GUI

ENTITY

USE CASE

GOAL CASE

5. DESCRIBE BEHAVIOURS OF THE ARCHITECTURAL COMPONENTS

Birol Berkem - © 2005-2007 GOObiz.com

®

Overview : Steps for aligning IT with the changes using the « Goal-Driven Development » process according to BMM

6. INTEGRATE COMPONENTS INTO THE ARCHITECTURE & TEST

ENTITY

BUSINESSGOAL REAL.

RESPONSIBILITY

ACTION

RULE

PROCESS