how to increase your business reactivity using the « goal-driven development » process according...
Post on 21-Dec-2015
215 views
TRANSCRIPT
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
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 ?
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 !
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
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
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)
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
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}
??
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
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
11
…test integration of the corresponding PIM level components to plug into the architecture backbone
Entity/Persistance
Layer
BusinessLayer
ApplicationLayer
PresentationLayer
UC GC
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
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
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
15
1 – Describe Impacts of the changes (V2) on Goal Cases
16
2/3 – Trace impacts (V2) on actions, rules and responsibilities of the participants
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>>
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