Software Engineering within a DigitalBusiness Ecosystem
Giulio Marcon
Salzburg University of Applied Sciences, A-5412 Puch / Salzburg, Austria
July 6, 2006
AuthorsGiulio MarconSalzburg University of Applied Sciences, A-5412 Puch / Salzburg, Austria
Angelo CoralloeBMS - ISUFI, University of Lecce, 73100 Lecce, Italy
Maurizio de TommasieBMS - ISUFI, University of Lecce, 73100 Lecce, Italy
Thomas HeistracherSalzburg University of Applied Sciences, A-5412 Puch / Salzburg, Austria
Outline
1 Natural language software specification
2 An ecosystem of companies and components
3 Code generation
4 Synchronization of specification from adapted software
SBVR Digital Ecosystem Code generation Synchronization
Specification in UML/SBVR
Natural language software specification
time
acce
ssib
ility
ofsp
ecifi
cati
on
customer level ofunderstanding
UML
SBVR (detailed)
deployment
SBVR (first draft)
Standard current practices (UML) drop very soon below the levelof understanding of the customers, contrarily to natural languagebased techniques (SBVR).
SBVR Digital Ecosystem Code generation Synchronization
Role of SBVR in the MDA
SBVR in the Model-Driven Architecture
SBVROther aspects of business modeling: busi-ness process, organization structure, etc.
Business Model (CIM)
Platform Independent Model (PIM)
Platform Specific Model (PSM)
transformation
Model-Driven Architecture
According to the vision of the Object Management Group, SBVRis the language of choice for Computational Independent Modelsin the Model-Driven Architecture.
SBVR Digital Ecosystem Code generation Synchronization
SBVR model example
SBVR model examplebranch
Concept Type: organization functionDefinition: rental organization unit that has rental responsability
car movementDefinition: planned movement of a rental car of a specified car group from a sending
branch to a receiving branchreceiving branch
Concept Type: roleDefinition: branch that is the destination of a car movement
sending branchConcept Type: roleDefinition: branch that is the origin of a car movement
car movement has receiving branchNecessity: each car movement has exactly one receiving branch
car movement has sending branchNecessity: each car movement has exactly one sending branch
rental car is assigned to car movementNecessity: At most one rental car is assigned to each car movement
car movement being internationalConcept Type: characteristicDefinition: car movement having country of sending branch that is not the country of
receiving branch of the car movement.
SBVR Digital Ecosystem Code generation Synchronization
Service Oriented Architecture with a Digital Ecosystem
Service Oriented Architecture with a Digital Ecosystemde
com
posi
tion
ecosystemdeveloper
automaticcomposition
SBVR
software
SBVR Digital Ecosystem Code generation Synchronization
How a request can be satisfied
How a request can be satisfied
deco
mpo
siti
on
ecosystemdeveloper
automaticcomposition
SBVR
software
Some implementor finds the request and offers to develop it;several components existing in the digital ecosystem can bere-used to satisfy the request and the additional parts necessaryare developed by some implementors;all the necessary components are already in the digitalecosystem and only fine-grained optimization prior todeployment needs to be done.
SBVR Digital Ecosystem Code generation Synchronization
Levels of automation
Levels of automation
deco
mpo
siti
on
ecosystemdeveloper
automaticcomposition
SBVR
software
Decompose the request/specification in atomic units;match the atomic components to the ones available;offer the best solutions to the requester;combine the components to satisfy the request;open bids for developers to implement missing components.
SBVR Digital Ecosystem Code generation Synchronization
Zachman Framework
Zachman Framework
PHONE (810) 231-0531 FAX: (810) 231-6631
www.zifa.com10895 Lakepointe Drive
Pinckney, MI 48169Zachman Institutefor Framework Advancement
lŒ™š@•‰@t‹Œ”Š™@i“–•˜š„”š@š•@š‹ˆ@b›™Œ”ˆ™™
@@e”šŒš @]@c’„™™@•‰b›™Œ”ˆ™™@t‹Œ”Š
lŒ™š@•‰@p˜•†ˆ™™ˆ™@š‹ˆ@b›™Œ”ˆ™™@pˆ˜‰•˜“™
n•‡ˆ@]@m„Ž•˜@b›™Œ”ˆ™™@@@@@@@@@@@@@@@@@@@@@@@@@l•†„šŒ•”
lŒ™š@•‰@o˜Š„”Œ¡„šŒ•”™@i“–•˜š„”š@š•@š‹ˆ@b›™Œ”ˆ™™
tŒ“ˆ@]@m„Ž•˜@b›™Œ”ˆ™™@eœˆ”šOc †’ˆ
lŒ™š™@•‰@b›™Œ”ˆ™™@g•„’™Osš˜„šˆŠŒˆ™
ˆNŠNL@sˆ“„”šŒ†@m•‡ˆ’
e”šŒš @]@b›™Œ”ˆ™™@e”šŒš rˆ’„šŒ•”™‹Œ–@]@b›™Œ”ˆ™™@@@@@@@@@@@@@@@@@@@@rˆ’„šŒ•”™‹Œ–
ˆNŠNL@dŒ™š˜Œ…›šˆ‡@s ™šˆ“@a˜†‹Œšˆ†š›˜ˆ
n•‡ˆ@]@iOs@f›”†šŒ•”Hp˜•†ˆ™™• L@sš•˜„ŠˆL@ˆš†NIlŒ”‘@]@lŒ”ˆ@c‹„˜„†šˆ˜Œ™šŒ†™
ˆNŠNL@l•ŠŒ†„’@d„š„@m•‡ˆ’
e”šŒš @]@d„š„@e”šŒš rˆ’„šŒ•”™‹Œ–@]@d„š„@rˆ’„šŒ•”™‹Œ–
NŠNL@a––’Œ†„šŒ•”@a †‹Œš †š›˜
p˜•†ˆ™™@]@a––’Œ†„šŒ•”@f›”†šŒ•”iOo@]@u™ˆ˜@vŒˆž™
ˆNŠNL@h›“„”@i”šˆ˜‰„†ˆ@a˜†‹Œšˆ†š›˜ˆ
pˆ•–’ˆ@]@r•’ˆw•˜‘@]@dˆ’Œœˆ˜„…’ˆ
ˆNŠNL@p˜•†ˆ™™Œ”Š@sš˜›†š›˜ˆ
tŒ“ˆ@]@s ™šˆ“@eœˆ”šc †’ˆ@]@p˜•†ˆ™™Œ”Š@c †’ˆ
ˆNŠNL@b›™Œ”ˆ™™@r›’ˆ@m•‡ˆ’
e”‡@]@sš˜›†š›˜„’@a™™ˆ˜šŒ•”mˆ„”™@]@a†šŒ•”@a™™ˆ˜šŒ•”
ˆNŠNL@p‹ ™Œ†„’@d„š„@m•‡ˆ’
e”šŒš @]@sˆŠ“ˆ”šOt„…’ˆOˆš†Nr ’„šŒ•”™‹Œ–@]@p•Œ”š Okˆ O š†N
ˆNŠNL@s ™šˆ“@dˆ™ŒŠ”
p˜•†ˆ™™@]@c•“–›šˆ˜@f›”†šŒ•”iOo@]@d„š„@e’ˆ“ˆ”š™Osˆš™
NŠNL@@t †‹”•’•Š @a †‹Œš †š›˜
n•‡ @]@h‡žOs ™š “@s•‰šž„˜lŒ”‘@]@lŒ” @s– †Œ‰Œ†„šŒ•”™
NŠNL@p˜ ™ˆ”š„šŒ•”@a †‹Œš †š›˜
pˆ•–’ˆ@]@u™ˆ˜w•˜‘@]@s†˜ˆˆ”@f•˜“„š™
ˆNŠNL@c•”š˜•’@sš˜›†š›˜ˆ
tŒ“ˆ@]@eŸˆ†›šˆc †’ˆ@]@c•“–•”ˆ”š@c †’ˆ
ˆNŠNL@r›’ˆ@dˆ™ŒŠ”
e”‡@]@c•”‡ŒšŒ•”@mˆ„”™@]@a†šŒ•”
ˆNŠNL@p˜•Š˜„“
p˜•†ˆ™™@]@l„”Š›„Šˆ@sš„šˆ“ˆ”šiOo@]@c•”š˜•’@b’•†‘
ˆNŠNL@d„š„@dˆ‰Œ”ŒšŒ•”
e”šŒš @]@fŒˆ’‡rˆ’„šŒ•”™‹Œ–@]@a‡‡˜ˆ™™
ˆNŠNL@sˆ†›˜Œš @a˜†‹Œšˆ†š›˜ˆ
pˆ•–’ˆ@]@i‡ˆ”šŒš w•˜‘@]@j•…
ˆNŠNL@nˆšž•˜‘@a˜†‹Œšˆ†š›˜ˆ
n•‡ˆ@]@a‡‡˜ˆ™™lŒ”‘@]@p˜•š•†•’
ˆNŠNL@tŒ“Œ”Š@dˆ‰Œ”ŒšŒ•”
tŒ“ˆ@]@i”šˆ˜˜›–šc †’ˆ@]@m„†‹Œ”ˆ@c †’ˆ
ˆNŠNL@r›’ˆ@s–ˆ†Œ‰Œ†„šŒ•”
e”‡@]@s›…M†•”‡ŒšŒ•”@mˆ„”™@]@sšˆ–
?
p˜•†ˆ™™@]@c’„™™@•‰@b›™Œ”ˆ™™@p˜•†ˆ™™
lŒ™š@•‰@l•†„šŒ•”™@Œ”@w‹Œ†‹@š‹ˆ@b›™Œ”ˆ™™@o–ˆ˜„šˆ™
pˆ•–’ˆ@]@m„Ž•˜@o˜Š„”Œ¡„šŒ•”„’@u”Œš
lŒ™š@•‰@eœˆ”š™Oc †’ˆ™@sŒŠ”Œ‰Œ†„”š@š•@š‹ˆ@b›™Œ”ˆ™™
e”‡™Omˆ„”™@]@m„Ž•˜@b›™Œ”ˆ™™@g•„’Osš˜„šˆŠ
NŠNL@b›™Œ”ˆ™™@l•ŠŒ™šŒ†™@s ™š “
n•‡ˆ@]@b›™Œ”ˆ™™@l•†„šŒ•”lŒ”‘@]@b›™Œ”ˆ™™@lŒ”‘„Šˆ@
ˆNŠNL@w•˜‘@f’•ž@m•‡ˆ’
pˆ•–’ˆ@]@o˜Š„”Œ¡„šŒ•”@u”Œšw•˜‘@]@w•˜‘@p˜•‡›†š
ˆNŠNL@m„™šˆ˜@s†‹ˆ‡›’ˆ
tŒ“ˆ@]@b›™Œ”ˆ™™@eœˆ”šc †’ˆ@]@b›™Œ”ˆ™™@c †’ˆ
ˆNŠNL@b›™Œ”ˆ™™@p’„”
e”‡@]@b›™Œ”ˆ™™@o…Žˆ†šŒœˆmˆ„”™@]@b›™Œ”ˆ™™@sš˜„šˆŠ
ˆNŠNL@b›™Œ”ˆ™™@p˜•†ˆ™™@m•‡ˆ’
p˜•†ˆ™™@]@b›™Œ”ˆ™™@p˜•†ˆ™™iOo@]@b›™Œ”ˆ™™@rˆ™•›˜†ˆ™
e.g.: DATA e.g.: FUNCTION e.g.: NETWORK e.g.: ORGANIZATION e.g.: SCHEDULE e.g.: STRATEGY
© John A. Zachman
TM
DATA FUNCTION NETWORK PEOPLE TIME MOTIVATIONWHAT HOW WHERE WHO WHEN WHY
{out-of-context}
{physical}
{logical}
{conceptual}
{contextual}
{out-of-context}
{physical}
{logical}
{conceptual}
{contextual}
SBVR Digital Ecosystem Code generation Synchronization
Zachman Framework
In Zachman Framework terms
PHONE (810) 231-0531 FAX: (810) 231-6631
www.zifa.com10895 Lakepointe Drive
Pinckney, MI 48169Zachman Institutefor Framework Advancement
lŒ™š@•‰@t‹Œ”Š™@i“–•˜š„”š@š•@š‹ˆ@b›™Œ”ˆ™™
@@e”šŒš @]@c’„™™@•‰b›™Œ”ˆ™™@t‹Œ”Š
lŒ™š@•‰@p˜•†ˆ™™ˆ™@š‹ˆ@b›™Œ”ˆ™™@pˆ˜‰•˜“™
n•‡ˆ@]@m„Ž•˜@b›™Œ”ˆ™™@@@@@@@@@@@@@@@@@@@@@@@@@l•†„šŒ•”
lŒ™š@•‰@o˜Š„”Œ¡„šŒ•”™@i“–•˜š„”š@š•@š‹ˆ@b›™Œ”ˆ™™
tŒ“ˆ@]@m„Ž•˜@b›™Œ”ˆ™™@eœˆ”šOc †’ˆ
lŒ™š™@•‰@b›™Œ”ˆ™™@g•„’™Osš˜„šˆŠŒˆ™
ˆNŠNL@sˆ“„”šŒ†@m•‡ˆ’
e”šŒš @]@b›™Œ”ˆ™™@e”šŒš rˆ’„šŒ•”™‹Œ–@]@b›™Œ”ˆ™™@@@@@@@@@@@@@@@@@@@@rˆ’„šŒ•”™‹Œ–
ˆNŠNL@dŒ™š˜Œ…›šˆ‡@s ™šˆ“@a˜†‹Œšˆ†š›˜ˆ
n•‡ˆ@]@iOs@f›”†šŒ•”Hp˜•†ˆ™™• L@sš•˜„ŠˆL@ˆš†NIlŒ”‘@]@lŒ”ˆ@c‹„˜„†šˆ˜Œ™šŒ†™
ˆNŠNL@l•ŠŒ†„’@d„š„@m•‡ˆ’
e”šŒš @]@d„š„@e”šŒš rˆ’„šŒ•”™‹Œ–@]@d„š„@rˆ’„šŒ•”™‹Œ–
NŠNL@a––’Œ†„šŒ•”@a †‹Œš †š›˜
p˜•†ˆ™™@]@a––’Œ†„šŒ•”@f›”†šŒ•”iOo@]@u™ˆ˜@vŒˆž™
ˆNŠNL@h›“„”@i”šˆ˜‰„†ˆ@a˜†‹Œšˆ†š›˜ˆ
pˆ•–’ˆ@]@r•’ˆw•˜‘@]@dˆ’Œœˆ˜„…’ˆ
ˆNŠNL@p˜•†ˆ™™Œ”Š@sš˜›†š›˜ˆ
tŒ“ˆ@]@s ™šˆ“@eœˆ”šc †’ˆ@]@p˜•†ˆ™™Œ”Š@c †’ˆ
ˆNŠNL@b›™Œ”ˆ™™@r›’ˆ@m•‡ˆ’
e”‡@]@sš˜›†š›˜„’@a™™ˆ˜šŒ•”mˆ„”™@]@a†šŒ•”@a™™ˆ˜šŒ•”
ˆNŠNL@p‹ ™Œ†„’@d„š„@m•‡ˆ’
e”šŒš @]@sˆŠ“ˆ”šOt„…’ˆOˆš†Nr ’„šŒ•”™‹Œ–@]@p•Œ”š Okˆ O š†N
ˆNŠNL@s ™šˆ“@dˆ™ŒŠ”
p˜•†ˆ™™@]@c•“–›šˆ˜@f›”†šŒ•”iOo@]@d„š„@e’ˆ“ˆ”š™Osˆš™
NŠNL@@t †‹”•’•Š @a †‹Œš †š›˜
n•‡ @]@h‡žOs ™š “@s•‰šž„˜lŒ”‘@]@lŒ” @s– †Œ‰Œ†„šŒ•”™
NŠNL@p˜ ™ˆ”š„šŒ•”@a †‹Œš †š›˜
pˆ•–’ˆ@]@u™ˆ˜w•˜‘@]@s†˜ˆˆ”@f•˜“„š™
ˆNŠNL@c•”š˜•’@sš˜›†š›˜ˆ
tŒ“ˆ@]@eŸˆ†›šˆc †’ˆ@]@c•“–•”ˆ”š@c †’ˆ
ˆNŠNL@r›’ˆ@dˆ™ŒŠ”
e”‡@]@c•”‡ŒšŒ•”@mˆ„”™@]@a†šŒ•”
ˆNŠNL@p˜•Š˜„“
p˜•†ˆ™™@]@l„”Š›„Šˆ@sš„šˆ“ˆ”šiOo@]@c•”š˜•’@b’•†‘
ˆNŠNL@d„š„@dˆ‰Œ”ŒšŒ•”
e”šŒš @]@fŒˆ’‡rˆ’„šŒ•”™‹Œ–@]@a‡‡˜ˆ™™
ˆNŠNL@sˆ†›˜Œš @a˜†‹Œšˆ†š›˜ˆ
pˆ•–’ˆ@]@i‡ˆ”šŒš w•˜‘@]@j•…
ˆNŠNL@nˆšž•˜‘@a˜†‹Œšˆ†š›˜ˆ
n•‡ˆ@]@a‡‡˜ˆ™™lŒ”‘@]@p˜•š•†•’
ˆNŠNL@tŒ“Œ”Š@dˆ‰Œ”ŒšŒ•”
tŒ“ˆ@]@i”šˆ˜˜›–šc †’ˆ@]@m„†‹Œ”ˆ@c †’ˆ
ˆNŠNL@r›’ˆ@s–ˆ†Œ‰Œ†„šŒ•”
e”‡@]@s›…M†•”‡ŒšŒ•”@mˆ„”™@]@sšˆ–
?
p˜•†ˆ™™@]@c’„™™@•‰@b›™Œ”ˆ™™@p˜•†ˆ™™
lŒ™š@•‰@l•†„šŒ•”™@Œ”@w‹Œ†‹@š‹ˆ@b›™Œ”ˆ™™@o–ˆ˜„šˆ™
pˆ•–’ˆ@]@m„Ž•˜@o˜Š„”Œ¡„šŒ•”„’@u”Œš
lŒ™š@•‰@eœˆ”š™Oc †’ˆ™@sŒŠ”Œ‰Œ†„”š@š•@š‹ˆ@b›™Œ”ˆ™™
e”‡™Omˆ„”™@]@m„Ž•˜@b›™Œ”ˆ™™@g•„’Osš˜„šˆŠ
NŠNL@b›™Œ”ˆ™™@l•ŠŒ™šŒ†™@s ™š “
n•‡ˆ@]@b›™Œ”ˆ™™@l•†„šŒ•”lŒ”‘@]@b›™Œ”ˆ™™@lŒ”‘„Šˆ@
ˆNŠNL@w•˜‘@f’•ž@m•‡ˆ’
pˆ•–’ˆ@]@o˜Š„”Œ¡„šŒ•”@u”Œšw•˜‘@]@w•˜‘@p˜•‡›†š
ˆNŠNL@m„™šˆ˜@s†‹ˆ‡›’ˆ
tŒ“ˆ@]@b›™Œ”ˆ™™@eœˆ”šc †’ˆ@]@b›™Œ”ˆ™™@c †’ˆ
ˆNŠNL@b›™Œ”ˆ™™@p’„”
e”‡@]@b›™Œ”ˆ™™@o…Žˆ†šŒœˆmˆ„”™@]@b›™Œ”ˆ™™@sš˜„šˆŠ
ˆNŠNL@b›™Œ”ˆ™™@p˜•†ˆ™™@m•‡ˆ’
p˜•†ˆ™™@]@b›™Œ”ˆ™™@p˜•†ˆ™™iOo@]@b›™Œ”ˆ™™@rˆ™•›˜†ˆ™
e.g.: DATA e.g.: FUNCTION e.g.: NETWORK e.g.: ORGANIZATION e.g.: SCHEDULE e.g.: STRATEGY
© John A. Zachman
TM
DATA FUNCTION NETWORK PEOPLE TIME MOTIVATIONWHAT HOW WHERE WHO WHEN WHY
{out-of-context}
{physical}
{logical}
{conceptual}
{contextual}
{out-of-context}
{physical}
{logical}
{conceptual}
{contextual}
From row 2, the conceptual business model, to row 3, the logicalsystem model.
SBVR Digital Ecosystem Code generation Synchronization
From SBVR models to UML class diagrams and code
From SBVR models to UML class diagrams and code
UML Class Diagram generationCode Generation
class CarMovement {
private Branch sendingBranch;private Branch receivingBranch;
/* SBVR_Concept_Type: Characteristic */public bool isInternational () {
Country countryFrom = sendingBranch.getCountry();Country countryTo = receivingBranch.getCountry();return !contryFrom.equals(countryTo);
}
}
- country : Country
Branch
+setCountry(Country)+ getCountry() : Country
send
ingB
ranc
h
CarMovement
+isInternational() : bool
rece
ivin
gBra
nch
1 1
**
car movement being internationalConcept Type: characteristicDefinition: car movement having country of sending branch that is
not the country of receiving branch of the car movement.
Example from ruleset for transformation of unary fact types(characteristics).
SBVR Digital Ecosystem Code generation Synchronization
Re-adaptation of specification
Re-adaptation of specification
deco
mpo
siti
on
auto
mat
icco
mpo
siti
on
SBVR
software
SBVRadaptation
sync
hron
izat
ion
Round-trip engineering with SBVR
An SBVR model is created;the corresponding UML models are generated;code is generated from the annotated UML models;UML models or the source code are modified;the original SBVR model is updated with the modification.
References
Heistracher, T., Kurz, T., Marcon, G., Masuch, C.:Collaborative software engineering with a digital ecosystem.In: Proc. International Conference on Global Software Engineering, Costao do Santinho,Florianopolis, Brazil (2006) (accepted).
Nachira, F.:Toward a network of digital business ecosystems fostering the local development.Discussion paper,http://www.digital-ecosystems.org/doc/discussionpaper.pdf (2002)
OMG:Semantics of Business Vocabulary and Business Rules Specification. (2006) First interimspecification, http://www.omg.org/docs/dtc/06-03-02.pdf.
G. Marcon, H. Okada, T. Kurz, and T. Heistracher.D16.3, Report on Adaptive Service Generator.DBE Project, EU-IST 507953, June 2006.
Software Engineering within a DigitalBusiness Ecosystem
Giulio Marcon
Salzburg University of Applied Sciences, A-5412 Puch / Salzburg, Austria
July 6, 2006