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 http://www.goobiz.com
…
(*) BMM : Business Motivation Model - voted by the OMG in September 2005
http://www.businessrulesgroup.org/second_paper/BRG-BRMM.pdf
Steps of the « Use Case driven » development What is wrong ?
Use Cases : Services required from a system by its users : Business Goals are not considered !
R
E
Q
U
I
R
E
M
E
N
T
S
Fill
Order
<<HMI>>
Operator
Customer
Manage
Customer
Logical Architecture : Weak longevity
because based on the entities instead
<<MHI>>
of the « GOALS » !
<<UC-CTRL>>
MHI_Cli
UCs-Fill
Order..;C
li
Use Case :
Actor / System Interactions and
rules that realise the goal of the
actor are mixed !
Customer Service
Agent
Technical Architecture of the System
(Updated by design level choices )
Logical Architecture of the System
(Domain Model)
SYSTEM
<<Application>>
Fill Order;
Mng.Cust
<< BUSINESS OBJECTS >>
Order
Cust
Summary Description / UC
Title: Fill Order
Actors: Operator, Customer
Description:UC started when
MHI_Order
...
Line
<<BDD>>
DB_Order
DB_Custo
<<COM>>
Sequence diagram in O.O analysis
the operator receives a call…
01:
MHI
Expanded Description / UC
Title: Fill Order
Actors:..
Description:…
Actor
1. actor asks..
3. Actor fills..
C
O
D
E
:UC-
Identify Cust()
….()
Sequence Diagram in O.O Design
Fill Order
01:
MHI
02:
UC
:Cde
:DBC
de
Syst. Response.
Identify Cust()
2. system identifies..
….()
Sequence diagram for
capturing needs
Activity or State / Transition Diagrams
for UCs scenarios and objects life cycle
:System
Identify Cust()
Fill Order()
….()
INVISIBLE BUSINESS RULES : DISSIMULATED
BEHIND ACTOR
/ SYSTEM INTERACTIONS OF THE « USE CASES »
High Maintenance Efforts in face of changes on the
business rules and goals
Fill Order
Fill Order()
Identify
Customer
...
2
Use Case Driven Development with UML (Summary)
Advantages
Inconvenience
Efficient for capturing requirements on the
basis of usage scenarios (based on the
goals of the users)
Lack of traceability with the business
goals ! GAP between business
requirements and those of the users !
Focus on the actor / system interactions
depending on the choices 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 !
O.O approach based on objects of the
real world discovered on the basis of
requirements and use cases (UC)
« 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
• …
Difficult adaptation of the IT applications in face of changes high level
cost weak business reactivity !
3
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
4
Overview : Steps for aligning IT with the changes using the
« Goal-Driven Development » process according to BMM
RESPONSIBILITY
GOAL
CASE
BUSINESS
GOAL
BUSINESS
GOAL
REAL.
RULE
BUSINESS
GOAL
ENTITY
GOAL
CASE
USE
CASE
PROCESS
ACTION
ENTITY
USE CASE
FORMALISE RULES &
1.GROUP REQUIREMENTS USING 2. DRAFT THE BACKBONE OF THE 3/4.ACTIONS
/ ASSIGN
« GOAL-DRIVEN SERVICE
ORIENTED
ARCHITECTURE »
GOALS : DISCOVER THE
« GOAL-DRIVEN USE CASES »
Behaviours (CIM)
1.1
Java Code
PIM)
RESPONSIBILITES TO
PARTICIPANTS
GUI
USE CASE
GOAL
CASE
1.1
1.2
1.2
BUSINESS
GOAL
REAL.
3.1
3.2
GOAL
CASE
3.3
3.1
3.2
3.3
6. INTEGRATE COMPONENTS
ENTITY
ENTITY
GUI
INTO THE ARCHITECTURE & TEST
USE CASE
5. DESCRIBE BEHAVIOURS OF THE
ARCHITECTURAL COMPONENTS ®
Birol Berkem - © 2005-2007 GOObiz.com 5
1.1 Group Requirements using Goals
BUSINESS
GOAL
BUSINESS
GOAL
BUSINESS
GOAL
« GOAL
CASE »
RULES
<<invoke »
G3.2
«Goal Case»
Register
Visitor
(from Business Goal Cases)
Register
Visitor
Visitor
<<Realize »
:Visitor
:Systeme
GC-Register
Visitor
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)
6
1.2…discover « Goal-Driven Use Cases » at the CIM
BUSINESS
GOAL
«Goal Case»
Present
Products
on the Web
G1.1
Present
Products
<<invokes>>
(from Business Goal Cases)
R1.2.1.a
«Goal Case»
Review Product
Presentation
<<invokes>>
Review
Product
Presentation
(from Business Goal Cases)
<<invokes>>
Consult
Products
«Goal Case»
Consult
Products
G1.2
BUSINESS
GOAL
Marketing_Mgr
(from Actors)
(from Business Goal Cases)
BUSINESS
GOAL
Internet_Visitor
(from Actors)
R3.2.2.a
«Goal Case»
«invokes»
Review
Questionnaire
UC-Register Visitor
:Visitor
G4
Review
Questionnaire
:Systeme
GC-Register
Visitor
Register
Visitor
G3.2
«Goal Case»
Register
Visitor
(from Business Goal Cases)
«invokes»«Goal Case»
Turn Visitor
into Buyer
(from Business Goal Cases)
Turn Visitor
into Buyer
(from Business
Goal Cases)
«invokes»
Sales_Mgr
(from Actors)
GOAL CASE
USE CASE
7
2 - Generate the PIM level « Architectural Backbone » of
the system
BUSINESS
GOAL
RESPONSIBILITY
BUSINESS
GOAL
BUSINESS
GOAL
RULE
<<refine>>
«BUC_Comp»
Visitor_Registration::
Visitor_Entry
USE
+
<<refine>>
?
GOAL
CASE
CASE
complete_fields: boolean
form_incomplete: boolean
visitor_entered: boolean
complete_fields() : void
enter_visitor() : 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
ENTITIES
8
3 -Formalise actions and rules that realise business goals
4- Assign responsibilities required from participants…
BUSINESS
GOAL
REALISATION
RESPONSIBILITY
GC-Present Products on
the Web
:Marketing_Mgr
[Present_Prod]
:Visitor
[Consult_Prod]
GC-Consult
Products
Abandon
R 3.2.6 When registration
Is completedOK inform
Sales
:Visitor
[Registration]
GC-Register Visitor
RULE
Notif linked
Form linked
BUSINESS
GOAL
REALISATION
BUSINESS
GOAL
REALISATION
GC-Turn
Visitors into
Buyers
:Sales_Mgr
[Turn into buyer]
ACTION
GC-Notify
Visitors
GC-Fill
GC-Fill
Questionnaire
Abandon
PROCESS
:Marketing_Mgr
[Prod_Review]
Registration
[requested] R1.2.1.a: Abandon
Rate > 50% after 4 mn.
Review products
R3.1.1
Incite visitors to register
while consulting products
GC-Enter
Visitor
GC-Review
Product
Presentation
:Marketing_Mgr
[Review Quest]
R3.2.2.a
Abandon_rate> 30%
GC-Review
Questionnaire
ENTITY
9
5 - Describe underlying behaviours of previous actions then
transform them as components for the PIM
GUI
(Presentation)
UC
GUI
USE CASE
(Application
Logic)
«BUC_Comp»
Visitor_Registration::
Visitor_Entry
GUI
-
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
-
GC
GOAL CASE
(Business
Logic)
«BGC_Comp»
Visitor_Registration::GC
Visitor_Entry
UC
-
entry_processed: boolean
entry_requested: boolean
form_registered: boolean
form_validated: boolean
+
-
enter_visitor() : void
process_entry() : void
{pre: entry_requested}
register_form() : void
-
ENTITiES
(Persistance)
10
…test integration of the corresponding PIM level components
to plug into the architecture backbone
Application
Layer
UC
Business
Layer
GC
Presentation
Layer
Entity/
Persistance
Layer
11
6 – Plug-in behaviours of the components into the « GoalDriven Architecture »
Client::Browser
<<import>>
WebServer::servlet
<<import>>
<<refine>>
«BUC_Comp»
Visitor_Registration::
Visitor_Entry
<<refine>>
UC
-
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
GC
-
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
<<import>>
UI_Comp for Visitor_Entry
+ UI-Ctrl
Fields to Complete
Fill Form
Thanks for entry
(from Visitor_Entry)
GUI
<<import>>
USE CASE
GOAL CASE
+ Catalog
Notification
+ Visitor
Entry_Form
Product
Questionnaire
Registration_Info
(from Data Model)
ENTITIES
12
…transform CIM level behaviours into PIM level
software comment lines in order to guide developers…
DESIRED BEHAVIOURS USING ACTIONS
and OBJECTS at the CIM
CORRESPONDING
JAVA CODE at the PIM
1.1
1.1
1.2
1.2
3.1
3.2
3.3
3.1
3.2
3.3
13
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
14
1 – Describe Impacts of the changes (V2) on Goal Cases
15
2/3 – Trace impacts (V2) on actions, rules and
responsibilities of the participants
16
4 – Capitalize on your business knowledge and increase your business
reactivity to changes using the stable and traceable architecture backbone
<<refine>>
«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
17
Overview : Steps for aligning IT with the changes using the
« Goal-Driven Development » process according to BMM
RESPONSIBILITY
GOAL
CASE
BUSINESS
GOAL
BUSINESS
GOAL
REAL.
RULE
BUSINESS
GOAL
ENTITY
GOAL
CASE
USE
CASE
PROCESS
ACTION
ENTITY
USE CASE
FORMALISE RULES &
1.GROUP REQUIREMENTS USING 2. DRAFT THE BACKBONE OF THE 3/4.ACTIONS
/ ASSIGN
« GOAL-DRIVEN SERVICE
ORIENTED
ARCHITECTURE »
GOALS : DISCOVER THE
« GOAL-DRIVEN USE CASES »
Behaviours (CIM)
1.1
Java Code
PIM)
RESPONSIBILITES TO
PARTICIPANTS
GUI
USE CASE
GOAL
CASE
1.1
1.2
1.2
BUSINESS
GOAL
REAL.
3.1
3.2
GOAL
CASE
3.3
3.1
3.2
3.3
6. INTEGRATE COMPONENTS
ENTITY
ENTITY
GUI
INTO THE ARCHITECTURE & TEST
USE CASE
5. DESCRIBE BEHAVIOURS OF THE
ARCHITECTURAL COMPONENTS ®
Birol Berkem - © 2005-2007 GOObiz.com18
© Copyright 2026 Paperzz