Executable and Translatable UML. Stephen J. Mellor Marc J. Balcer

Size: px
Start display at page:

Download "Executable and Translatable UML. Stephen J. Mellor Marc J. Balcer"

Transcription

1 Executable and Translatable UML Stephen J. Mellor Marc J. Balcer

2 Contents What s the problem? UML Models Executable UML elements Executable UML behavior The Repository Model Compiler Concepts How model compilers work MDA 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 2

3 What s the Problem? Analysts create high-level application models print them out then the developers look at the models and write the production code These models are independent of the implementation technology Coding adds this design detail 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 3

4 What s the Problem? But once something is in a machine representation we shouldn t have to manually reinterpret it ( elaborate it ) into another. The analyst s diagrams don t have to be complete, correct, or consistent models Keeping the diagrams in sync with the code is a daunting task. The rework introduces development errors and obscures analyst errors 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 4

5 What s the Problem? But once something is in a machine representation Because elaboration is stupid! we shouldn t have to manually reinterpret it ( elaborate it ) into another. The Ant appears courtesy of Leon Starr, Executable UML 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 5

6 Executable Models Analysts create executable models test those executable models and compile the models to produce a running system Developers buy, build, or adapt a model compiler for a software architecture map model elements to the architecture 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 6

7 Executable Models The analyst s models must be complete, correct, and consistent and the models are verifiable. The process always moves forward there s no editing of the translated code, no round-tripping, no reverse-engineering, no getting out of sync. The software deign decisions are formalized in the mappings and translation archetypes 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 7

8 Contents What s the problem? UML Models Executable UML elements Executable UML behavior The Repository Model Compiler Concepts How model compilers work MDA 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 8

9 What s UML? The Unified Modeling Language is a language for specifying, constructing, visualizing, and documenting artifacts of a software-intensive system The UML Summary 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 9

10 What s UML? Common notation for OOA / OOD Goal was to eliminate the notation wars One notation for many purposes Very large Concept of profiles for different uses 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 10

11 UML in Practice Describing a problem Requirements Modeling a solution Analysis Documenting software Design 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 11

12 UML in Practice Just because these use the same notation (UML) doesn t mean these are the same problem. The models are more than just the observable behavior to the user The software design does not follow from the model of the problem 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 12

13 Notation Semantics Open Account Customer name : PersonalName address : MailingAddress phone : TelephoneNumber customerid : CustomerIDNumber : Timer dobilling( ) : BillingGroup billingcomplete( ) billgroup( ) Customer Service Rep Merchant C1 Suspend Account Close Account Submit Charge Issue Credit C2 Collection Agent Timer Billing Clerk Use Case Diagram Call Delinquent Customer Produce Bills for Group Receive Payment is the responsibility of 1 R1 is responsible for 1..* Account number : CardAccountNumber / currentbalance : Money actualcreditlimit : Money Transaction requestedcreditlimit : Money is processed transactiondate : Date interestrate : Percent on accumulates / netamount : Money notes : FreeformText open() 1 R3 0..* approve() suspend() is current presents 0..* reinstate() presentation of R12 close() 1 directs billing of 0..* R2 R5 is billed as part of 1 BillingGroup groupnumber : BillingGroupNumber is currently billingday : BillingDayNumber presented to appears on 1 customer as 0..1 dobilling() Statement billingcomplete() / statementdate : Date is an actual billing of 1 minimumamountdue : Money paymentduedate : Date R4 is actually billed as preparestatement() 0..* applypayment() BillingRun duedatereached() billingdate : Date nopaymentdue() billgroup() allbillsproduced() Class Diagram : Billing Clerk duedatereached( ) applypayment( ) receivepayment( ) : BillingRun : Statement : Payment preparestatement( ) suspend( ) reinstate( ) : Account Collaboration Diagram C3 Open Account preparestatement( statementdate ) Statement Prepared : Billing Clerk : Timer : Payment : Statement Component Diagram HQ Branch Pay Bill Close Account applypayment( transaction ) nopaymentdue duedatereached Paid On Time Payment Past Due applypayment( transaction ) Paid Late No Payment Due receivepayment( ) duedatereached( ) applypayment( ) ignored Remote Branch Activity Diagram State Diagram Sequence Diagram Deployment Diagram Each diagram is well-defined, but how do they fit together? 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 13

14 Contents What s the problem? UML Models Executable UML elements Executable UML behavior The Repository Model Compiler Concepts How model compilers work MDA 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 14

15 UML in Practice Our Focus Describing a problem Requirements Modeling a solution Analysis Documenting software Design 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 15

16 UML Profiles Customer name : PersonalName address : MailingAddress phone : TelephoneNumber customerid : CustomerIDNumber is the responsibility of 1 R1 is responsible for 1..* Account number : CardAccountNumber / currentbalance : Money actualcreditlimit : Money requestedcreditlimit : Money interestrate : Percent open() approve() suspend() reinstate() close() directs billing of 0..* R2 is billed as part of 1 BillingGroup groupnumber : BillingGroupNumber billingday : BillingDayNumber dobilling() billingcomplete() is an actual billing of 1 R4 is actually billed as 0..* BillingRun billingdate : Date is processed Transaction on accumulates transactiondate : Date / netamount : Money 1 R3 0..* notes : FreeformText is current presents 0..* presentation of R12 1 R5 is currently presented to appears on 1 customer as 0..1 Statement / statementdate : Date minimumamountdue : Money paymentduedate : Date preparestatement() applypayment() duedatereached() nopaymentdue() A profile defines how these diagrams represent models billgroup() allbillsproduced() Information Model (things in the problem and how they are related) preparestatement( statementdate ) Statement Prepared applypayment( transaction ) nopaymentdue duedatereached Paid On Time Payment Past Due applypayment( transaction ) Paid Late No Payment Due State Model (lifecycle of an instance of a class) 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 16

17 UML Profiles Customer name : PersonalName address : MailingAddress phone : TelephoneNumber customerid : CustomerIDNumber is the responsibility of 1 R1 is responsible for 1..* Account number : CardAccountNumber / currentbalance : Money actualcreditlimit : Money requestedcreditlimit : Money interestrate : Percent open() approve() suspend() reinstate() close() directs billing of 0..* R2 is billed as part of 1 BillingGroup groupnumber : BillingGroupNumber billingday : BillingDayNumber dobilling() billingcomplete() is an actual billing of 1 R4 is actually billed as 0..* BillingRun billingdate : Date billgroup() allbillsproduced() is processed Transaction on accumulates transactiondate : Date / netamount : Money 1 R3 0..* notes : FreeformText 1 is current presentation of presents 0..* R5 is currently presented to appears on 1 customer as 0..1 Statement / statementdate : Date minimumamountdue : Money paymentduedate : Date preparestatement() applypayment() duedatereached() nopaymentdue() Information Model (things in the problem and how they are related) R12 It also defines a set of diagrams that are derived from the basic models preparestatement( statementdate ) Statement Prepared : Timer : Billing Clerk dobilling( ) billingcomplete( ) duedatereached( ) applypayment( ) receivepayment( ) : BillingGroup : BillingRun : Statement : Payment billgroup( ) preparestatement( ) suspend( ) reinstate( ) : Account Object Communication Model (summary of object interactions) applypayment( transaction ) nopaymentdue duedatereached Paid On Time Payment Past Due applypayment( transaction ) Paid Late No Payment Due : Billing Clerk : Timer receivepayment( ) : Payment : Statement applypayment( ) duedatereached( ) ignored State Model (lifecycle of an instance of a class) Execution Trace (system behavior under one scenario) 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 17

18 Classes Customer name : PersonalName address : MailingAddress phone : TelephoneNumber customerid : CustomerIDNumber is the responsibility of 1 R1 is responsible for 1..* Account number : CardAccountNumber / currentbalance : Money actualcreditlimit : Money requestedcreditlimit : Money interestrate : Percent open() approve() suspend() reinstate() close() directs billing of 0..* R2 is billed as part of 1 BillingGroup groupnumber : BillingGroupNumber billingday : BillingDayNumber dobilling() billingcomplete() is an actual billing of 1 R4 is actually billed as 0..* BillingRun billingdate : Date is processed Transaction on accumulates transactiondate : Date / netamount : Money 1 R3 0..* notes : FreeformText is current presentation of 1 R12 is currently presented to customer as 0..1 appears on 1 Statement / statementdate : Date minimumamountdue : Money paymentduedate : Date preparestatement() applypayment() duedatereached() nopaymentdue() Class abstraction of common characteristics and common behavior presents 0..* R5 Attribute abstraction of a single characteristic of a class derived attribute Association abstraction of a relationship between classes billgroup() allbillsproduced() Event received by the object s state machine association class 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 18

19 Lifecycles Statement initial pseudostate preparestatement( statementdate ) Statement Prepared applypayment( transaction ) nopaymentdue duedatereached State a stage in the lifecycle Paid On Time Payment Past Due applypayment( transaction ) Paid Late No Payment Due Event abstraction of a single signal received by the state machine Transition abstraction of a progression from state to state 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 19

20 State Procedure & Actions Each state has a procedure executed upon entry to the state preparestatement( statementdate ) Statement Prepared Statement Prepared applypayment( transaction ) nopaymentdue duedatereached? Paid On Time Payment Past Due No Payment Due applypayment( transaction ) Paid Late Actions specify what happens in the state procedure 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 20

21 Expressing Actions Statement Prepared? Need to express the semantics of the problem domain - in pseudocode - in Java itself? - in a Java-esque syntax? - in a flowchart? - in a dataflow diagram? - in pipes-and-filters? 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 21

22 Why not pseudocode? in the world or belonging to this customer? Statement Prepared how do we know? entry/ for each transaction not yet billed post that transaction to the statement what does post mean? the statement You talkin to me? You wanna post that transaction to me? 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 22

23 Why not 3GL code? Statement Prepared entry/ query = SELECT * FROM TBL_TRANS, set rst=currentdb().open(query) while not rst.eof rst.edit rst( R5StatementPtr ) = statementid rst.update rst.movenext wend rst.close (Microsoft Visual Basic sort of) Binds the model to a particular implementation Requires other non-application decisions to be made at the same time 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 23

24 What to do about actions? Statement Prepared? Pseudocode is not executable 3GLs bind model to a particular architecture We want to write - from a problem perspective - in terms of the model - not presuming a specific implementation 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 24

25 What about actions? Statement Prepared? UML (pre 1.5) did not have a formalism for actions Precise Action Semantics specification supplements the UML - functional/dataflowbased - established the executable profile - essential for executability 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 25

26 UML Action Semantics Precise Action Semantics for UML Integrated into UML 1.5 Fundamental actions on UML elements (classes, associations, ) Foundations for writing processing in an executable model - in the problem domain - does not presume an implementation 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 26

27 Semantics, not Language Language A Language B Language C Uniform Action Semantics Why not just design an action language? - Highly political - Many vendors had some proprietary (but not fully compliant) action languages. - Syntax issues would obscure semantic issues First define a uniform semantics 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 27

28 Action Languages TALL foreach transaction in self->account->transaction[not.isbilled] self->transaction := transaction; endfor; OAL foreach transaction related by self->account[r12]->transaction[r3] where not selected.isbilled relate transaction to self across R5; end for; Several different tool-specific languages First step is to make all action-semantics compliant Syntax is secondary 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 28

29 Actions Specify the logic for each state s action. Statement Prepared Statement Prepared entry/ foreach transaction related by self->account[r12]->transaction[r3] where not selected.isbilled relate transaction to self across R5; end for; 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 29

30 Actions Other Uses Account number : CardAccountNumber {I} / currentbalance : Money actualcreditlimit : Money requestedcreditlimit : Money interestrate : Percent currentbalance = 0; foreach transaction related by self->transaction[r3] currentbalance = currentbalance + transaction.netamount; end for; Derived Attribute open() approve() suspend() reinstate() close() select many accounts from instances of Account where selected.number == self.number; return ((cardinality accounts) == 1); Constraint 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 30

31 An Executable Model Customer name : PersonalName address : MailingAddress phone : TelephoneNumber customerid : CustomerIDNumber is the responsibility of 1 R1 is responsible for 1..* Account number : CardAccountNumber / currentbalance : Money actualcreditlimit : Money requestedcreditlimit : Money interestrate : Percent open() approve() suspend() reinstate() close() directs billing of 0..* R2 is billed as part of 1 BillingGroup groupnumber : BillingGroupNumber billingday : BillingDayNumber dobilling() billingcomplete() is an actual billing of 1 R4 is actually billed as 0..* BillingRun billingdate : Date billgroup() allbillsproduced() is processed Transaction on accumulates transactiondate : Date / netamount : Money 1 R3 0..* notes : FreeformText is current presentation of 1 Classes R12 presents 0..* R5 is currently presented to appears on 1 customer as 0..1 Statement / statementdate : Date minimumamountdue : Money paymentduedate : Date preparestatement() applypayment() duedatereached() nopaymentdue() Paid On Time preparestatement( statementdate ) Statement Prepared applypayment( transaction ) nopaymentdue duedatereached Payment Past Due applypayment( transaction ) Paid Late No Payment Due Statement Prepared entry/ foreach transaction related by self->account[r12]->transaction[r3] where not selected.isbilled relate transaction to self across R5; end for; Lifecycle of Statement Statement Prepared state procedure 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 31

32 Table of contents What s the problem? UML models Executable UML elements Executable UML behavior The repository Model compiler concepts How model compilers work MDA 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 32

33 Instances An executable model operates on instances. Account number : CardAccountNumber / currentbalance : Money actualcreditlimit : Money requestedcreditlimit : Money interestrate : Percent number currentbalance actualcredit Limit 5000 requestedcredit Limit 5000 interestrate 14% open() approve() suspend() reinstate() close() % 18% Statement / statementdate : Date minimumamountdue : Money paymentduedate : Date statementdate 5/10/2003 minimumamountdue paymentduedate 6/1/2003 preparestatement() applypayment() duedatereached() nopaymentdue() 6/1/2003 6/2/ /21/2003 6/21/ Stephen J. Mellor and Marc J. Balcer All Rights Reserved 33

34 Instances An executable model operates on instances. preparestatement( statementdate ) Statement Prepared duedatereached applypayment( transaction ) nopaymentdue Statement / statementdate : Date minimumamountdue : Money paymentduedate : Date preparestatement() applypayment() duedatereached() nopaymentdue() Paid On Time Payment Past Due No Payment Due preparestatement( statementdate ) applypayment( transaction ) Statement Prepared Paid Late statement A Paid On Time duedatereached applypayment( transaction ) nopaymentdue Payment Past Due No Payment Due preparestatement( statementdate ) Statement Prepared statement B applypayment( transaction ) Paid Late Paid On Time duedatereached applypayment( transaction ) nopaymentdue Payment Past Due applypayment( transaction ) Paid Late No Payment Due statement C 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 34

35 Execution preparestatement( statementdate ) Statement Prepared duedatereached applypayment ( transaction ) nopaymentdue The lifecycle model prescribes execution Paid On Time Payment Past Due No Payment Due applypayment( transaction ) Paid Late When the customer s payment is received, the statement transitions to the next statement and executes actions. preparestatement( statementdate ) Statement Prepared duedatereached applypayment ( transaction ) nopaymentdue Paid On Time Payment Past Due No Payment Due applypayment( transaction ) Paid Late 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 35

36 Executing the Model The model executes in response to signals from: - the outside, - timers (delayed events) preparestatement( statementdate ) Statement Prepared applypayment( transaction ) nopaymentdue duedatereached - other instances as they execute Paid On Time Payment Past Due applypayment( transaction ) No Payment Due Paid Late 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 36

37 Concurrent Execution All instances execute concurrently. preparestatement( statementdate ) Statement Prepared duedatereached applypayment( transaction ) nopaymentdue Statement / statementdate : Date minimumamountdue : Money paymentduedate : Date preparestatement() applypayment() duedatereached() nopaymentdue() Paid On Time Payment Past Due No Payment Due preparestatement( statementdate ) applypayment( transaction ) Statement Prepared Paid Late statement A Paid On Time duedatereached applypayment( transaction ) nopaymentdue Payment Past Due No Payment Due preparestatement( statementdate ) Statement Prepared statement B applypayment( transaction ) Paid Late Paid On Time duedatereached applypayment( transaction ) nopaymentdue Payment Past Due applypayment( transaction ) Paid Late No Payment Due statement C 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 37

38 Communication preparestatement( statementdate ) receivepayment( accountnumber, date, amount ) Statement Prepared Received duedatereached applypayment( transaction ) nopaymentdue checkcleared Accepted Paid On Time before Payment Past Due applypayment( transaction ) Paid Late No Payment Due preparestatement( statementdate ) Statement Prepared duedatereached applypayment( transaction ) nopaymentdue Paid On Time Payment Past Due No Payment Due after applypayment( transaction ) Paid Late 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 38

39 Concurrent Execution Multiple events may be received. preparestatement( statementdate ) receivepayment( accountnumber, date, amount ) Statement Prepared Billing Clerk Received duedatereached applypayment( transaction ) nopaymentdue checkcleared Paid On Time Payment Past Due applypayment( transaction ) No Payment Due Accepted Paid Late 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 39

40 Concurrent Execution Concurrent events can produce different outcomes : Billing Clerk : Timer : Payment : Statement : Account : Billing Clerk : Timer : Payment : Statement : Account duedatereached( ) suspend( ) receivepayment( ) applypayment( ) duedatereached( ) receivepayment( ) applypayment( ) reinstate( ) ignored Two outcomes if the payment is received as the due date passes 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 40

41 Verification Test models in the development environment Check the models just like code 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 41

42 Table of contents What s the problem? UML models Executable UML elements Executable UML behavior The repository Model compiler concepts How model compilers work MDA 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 42

43 Model Repository Model Repository Compilation requires that the models be available in a metamodel-based model repository 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 43

44 Model Repository The repository holds the developers models. Customer name : PersonalName address : MailingAddress phone : TelephoneNumber customerid : CustomerIDNumber is the responsibility of 1 R1 is responsible for 1..* Account number : CardAccountNumber / currentbalance : Money actualcreditlimit : Money requestedcreditlimit : Money interestrate : Percent open() approve() suspend() reinstate() close() directs billing of 0..* R2 is billed as part of 1 BillingGroup groupnumber : BillingGroupNumber billingday : BillingDayNumber dobilling() billingcomplete() is an actual billing of 1 R4 is actually billed as 0..* BillingRun billingdate : Date billgroup() allbillsproduced() is processed Transaction on accumulates transactiondate : Date / netamount : Money 1 R3 0..* notes : FreeformText is current presentation of 1 R12 presents 0..* R5 is currently presented to appears on 1 customer as 0..1 Statement / statementdate : Date minimumamountdue : Money paymentduedate : Date preparestatement() applypayment() duedatereached() nopaymentdue() Paid On Time preparestatement( statementdate ) Statement Prepared applypayment( transaction ) nopaymentdue duedatereached Payment Past Due applypayment( transaction ) Paid Late Model Repository No Payment Due Statement Prepared entry/ foreach transaction related by self->account[r12]->transaction[r3] where not selected.isbilled relate transaction to self across R5; end for; 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 44

45 Metamodel <<Imported>> Domain {1,Domain} name : string {I} description : DescriptionString 1 belongs to 1 belongs to R121 * defines * instances are subject to R124 <<Imported>> AssociationConstraint {308,AssociationConst} 1 restricts values of Association {108,Association} associationnumber : integer {I} * R110 1 name : string {I2} participates formalizes description : DescriptionString in AssociationEnd {109,AssociationEnd} associationnumber : integer {I,I2,R110} classnumber : integer {I,R110} phrase : string {I2} multiplicity : integer OOA of OOA R111 R109 is formalized 0,1 by AssociationClass {115,AssociationClass} Transformer * 1 {114,Transformer} name : string is synchronously modified by <<Imported>> ClassConstraint {307,ClassConstraint} 1..* relates Class 0,1 R125 1 {101,Class} R118 is is classnumber : integer {I} name : string {I2} {disjoint, abbreviation : string {I3} complete} * description : DescriptionString defines R122 synchronously 1..* modifies subclasses are 1 1 restricts values of is a characteristic of R123 * R103 instances are subject to characteristics are * abstracted as Attribute {102,Attribute} name : string description : DescriptionString * defines type of AbstractClass {112,AbstractClass} 1 R * classnumber : integer{i,r118} superclass is must be subclassed discriminator : string according iscomplete : boolean to R102 ConcreteClass {113,ConcreteClass} classnumber : integer{i,r118} R115 Specialization {107,Specialization} <<Imported>> Datatype {2,Datatype} name : string {I} 1 description : DescriptionString is of type Generalization {106,Generalization} * is a specialization of {I} R104 BaseAttribute {103,BaseAttribute} {disjoint, complete} DerivedAttribute {104,DerivedAttribute} 1 R105 1 computes value of 1 return type is R120 = R105+R104+R102 * defines return type of AttributeFormula {105,AttributeFormula} value is computed by 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 45

46 Metamodel Instances Just like an application model, the metamodel has instances. classid name description Customer Account BillingGroup A Customer is any individual or business An account represents a customer s financial A set of accounts that are all billed periodically classid stateid statename NewAccount In Good Standing Suspended Closed 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 46

47 Repository Instances Modeling tools create instances in the repository classid name description Customer Account BillingGroup Statement A Customer is any individual or business An account represents a customer s financial A set of accounts that are all billed periodically A statement is a periodic preparation of the 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 47

48 Table of contents What s the problem? UML models Executable UML elements Executable UML behavior The repository Model compiler concepts How model compilers work MDA 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 48

49 Model Compiler A model compiler is the automated embodiment of how to turn a model into software under a set of rules. Analysts create models Model Compiler produces a running system Developers program the rules 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 49

50 Model Compiler a program that creates code from models Analysts create models Model Compiler produces a running system Developers program the rules 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 50

51 Model Compiler something that makes models executable Analysts create models Model Compiler produces a running system Developers program the rules 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 51

52 Model Compiler it s a model compiler. Analysts create models Model Compiler produces a running system Developers program the rules 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 52

53 The Big Picture Libraries, Legacy, and Hand-Written Code politically incorrect cartoon Executable Models Generator Software System Archetypes and Mappings Execution Engine Model Compiler 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 53

54 Model Compiler Multi-processing and multi-tasking Concurrency and sequentialization A model compiler reads executable UML models and creates a system with certain dimensions Persistence Data structuring Data organization 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 54

55 Examples Financial system Highly distributed Concurrent Transaction-safe with rollback Persistence with rollback J2EE (Java + EJB) Telecommunication system Highly distributed Asynchronous Limited persistence capability C++ Embedded system Single task No operating system Optimized data access and storage C Simulation system Mostly synchronous Few tasks Special-purpose language Import 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 55

56 Table of contents What s the problem? UML models Executable UML elements Executable UML behavior The repository Model compiler concepts How model compilers work MDA 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 56

57 The Big Picture Libraries, Legacy, and Hand-Written Code Executable Models Generator Software System Archetypes and Mappings Execution Engine Model Compiler 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 57

58 Model Compiler.Function Class Class ${Class.name} : public ActiveInstance { private:.invoke PrivateDataMember( Class ) };.Function PrivateDataMember.param Class Class.select many PDM from instances of Attribute related to Class.for each PrivateDataMember ${PDM.Type} ${PDM.Name};.endfor Archetypes Translation rules interpreted by a generator against the repository Execution Engine A limited set of reusable components sufficient to execute Executable UML 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 58

59 Archetypes Archetypes traverse the repository and... classid name description Customer Account BillingGroup A Customer is any individual or business An account represents classid a customer s stateid financial statename A set of accounts that are all billed periodically NewAccount In Good Standing Suspended Closed output text Stephen J. Mellor and Marc J. Balcer All Rights Reserved 59

60 Archetypes Archetypes direct the generation of text..function Class Class ${Class.name} : public ActiveInstance { private:.invoke PrivateDataMember( Class ) }; Placeholder introduced by ${...} text (which happens to be C++).Function PrivateDataMember.param Class Class.select many PDM from instances of Attribute related to Class.for each PrivateDataMember ${PDM.Type} ${PDM.Name};.endfor 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 60

61 Example The archetype language produces text..select many states related to instances of class->[r13]statechart ->[R14]State where (isfinal == False) public: enum states_e { NO_STATE = 0,.for each state in states.if ( not last states ) ${state.name },.else NUM_STATES = ${state.name}.endif.endfor }; public: enum states_e { NO_STATE = 0, NewAccount, InGoodStanding, Suspended, NUM_STATES = Closed }; 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 61

62 Mappings Design-time assignment of different archetypes to distinct elements in the model Separate from the model and the archetypes Uniformity!= Rigidity 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 62

63 Table of contents What s the problem? UML models Executable UML elements Executable UML behavior The repository Model compilers Model compiler concepts How model compilers work MDA 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 63

64 Model Driven Architecture A standard for software development using formal, executable and compilable system specifications Standards should be based on executable UML including the Action Semantics. Interchange can be managed using XML 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 64

65 Executable UML Entry tools: Verification tools: BridgePoint, Rose, others T-Vec, S/R, COSPAN A B C D Exec. UML Common Semantics XML P Q R S Model Compilers turn Executable UML models into systems Stephen J. Mellor and Marc J. Balcer All Rights Reserved 65

66 Building a Market Design time composability - protects IP The models are a valuable corporate resource that are true business models they describe the business, not the software Stephen J. Mellor and Marc J. Balcer All Rights Reserved 66

67 Building a Market Design time composability - protects IP - allows IP to be mapped to multiple implementations Just because we move to a new software platform doesn t mean that we need to recreate the rules of the bank Stephen J. Mellor and Marc J. Balcer All Rights Reserved 67

68 Building a Market We can sell Billing models that can run on many platforms and support many different businesses. Design time composability - protects IP - allows IP to be mapped to multiple implementations - enables a market in IP in software 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 68

69 The Future Executable UML enables a market in model compilers. Application experts build models. -.select the appropriate model compiler, and -.compile the model. Each model compiler targets a specific software platform Stephen J. Mellor and Marc J. Balcer All Rights Reserved 69

70 Conclusion Executable UML, using archetypes to direct the generation, enables: - early error detection through verification - reuse of the execution engine - faster performance tuning - faster integration - faster, cheaper retargeting 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 70

71 Brought to you by 2003 Stephen J. Mellor and Marc J. Balcer All Rights Reserved 71

Executable UML. Stephen J. Mellor Project Technology, Inc.

Executable UML. Stephen J. Mellor Project Technology, Inc. Executable UML Stephen J. Mellor Project Technology, Inc. http://www.projtech.com Application-Independent Software Architecture Physical Telephone On Hook Application Model Off Hook 2 Architecture Code

More information

Executable UML. Stephen J. Mellor

Executable UML. Stephen J. Mellor Executable UML Stephen J. Mellor Executable UML is here. While it is possible today to add code to UML diagrams and then execute them, in so doing you must make a series of decisions about implementation

More information

MDA Distilled Stephen J. Mellor Vice-President Project Technology, Inc.

MDA Distilled Stephen J. Mellor Vice-President Project Technology, Inc. MDA Distilled Stephen J. Mellor Vice-President Project Technology, Inc. http://www.projtech.com PROJECT TECHNOLOGYINC. Table of contents 1. What s the problem? 2. Models 3. Metamodels 4. Mappings 5. Marks

More information

MDA Distilled Stephen J. Mellor Vice-President Project Technology, Inc.

MDA Distilled Stephen J. Mellor Vice-President Project Technology, Inc. MDA Distilled Stephen J. Mellor Vice-President Project Technology, Inc. http://www.projtech.com PROJECT TECHNOLOGYINC. Table of contents 1. What s the problem? 2. Models 3. Metamodels 4. Mappings 5. Marks

More information

Role of Executable UML in MDA. Presented by Shahid Alam

Role of Executable UML in MDA. Presented by Shahid Alam Role of Executable UML in MDA Presented by Shahid Alam salam3@connect.carleton.ca 12/2005 Outline Introduction to MDA Executable UML Does it apply to MDA Model Compilers Conclusion Model Driven Architecture

More information

ASSURING DATA INTEROPERABILITY THROUGH THE USE OF FORMAL MODELS OF VISA PAYMENT MESSAGES (Category: Practice-Oriented Paper)

ASSURING DATA INTEROPERABILITY THROUGH THE USE OF FORMAL MODELS OF VISA PAYMENT MESSAGES (Category: Practice-Oriented Paper) ASSURING DATA INTEROPERABILITY THROUGH THE USE OF FORMAL MODELS OF VISA PAYMENT MESSAGES (Category: Practice-Oriented Paper) Joseph Bugajski Visa International JBugajsk@visa.com Philippe De Smedt Visa

More information

First To Market through Translation of Executable UML

First To Market through Translation of Executable UML 1(40) A swedish friend asked: What is this uml uml that I see everywhere on the web? Humla : Swedish for bumble-bee. 2(40) The old story about the Depending on its weight in relation to the size of its

More information

Building and Implementing Concurrent Specifications

Building and Implementing Concurrent Specifications Building and Implementing Concurrent Specifications Stephen J. Mellor Chief Scientist Cortland D. Starrett Engineering Manager A simple embedded system Set the cooking time, close the door press cook.

More information

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a

More information

The Shlaer-Mellor Method

The Shlaer-Mellor Method The Shlaer-Mellor Method Sally Shlaer Stephen J. Mellor Project Technology, Inc. 10940 Bigge Street San Leandro, California 94577-1123 (510) 567-0255 http://www.projtech.com 1. Introduction Background.

More information

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling UML and Meta ling Topics: UML as an example visual notation The UML meta model and the concept of meta modelling Driven Architecture and model engineering The AndroMDA open source project Applying cognitive

More information

Domain-Frontier approach to. MDA based. software development

Domain-Frontier approach to. MDA based. software development Domain-Frontier approach to MDA based software development Contents! Software Development Yesterday, Today and Tomorrow! Domain-Frontier Paradigms and Cornerstones! Domain-Frontier Development Process

More information

Raising the Level of Development: Models, Architectures, Programs

Raising the Level of Development: Models, Architectures, Programs IBM Software Group Raising the Level of Development: Models, Architectures, Programs Dr. James Rumbaugh IBM Distinguished Engineer Why Is Software Difficult? Business domain and computer have different

More information

The Unified Modeling Language (UML)

The Unified Modeling Language (UML) The Unified Modeling Language (UML) A Very Distilled Introduction to The Unified Modeling Language (UML). A quick introduction to UML is given. Thereafter, the surface of class and activity diagrams and

More information

What is a Model? Copyright hebley & Associates

What is a Model? Copyright hebley & Associates Modeling Overview... as we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there

More information

Rational Software White paper

Rational Software White paper Unifying Enterprise Development Teams with the UML Grady Booch Rational Software White paper 1 There is a fundamental paradox at play in contemporary software development. On the one hand, organizations

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

Model Driven Development with xtuml and BridgePoint

Model Driven Development with xtuml and BridgePoint Model Driven Development with xtuml and BridgePoint xtuml Executable and Translatable UML Unified Modeling Language Industry standard notation Family of languages Executable UML Defines a method, including:

More information

FREQUENTLY ASKED QUESTIONS

FREQUENTLY ASKED QUESTIONS Borland Together FREQUENTLY ASKED QUESTIONS GENERAL QUESTIONS What is Borland Together? Borland Together is a visual modeling platform that enables software teams to consistently deliver on-time, high

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila Software Design and Architecture Software Design Software design is a process of problem-solving

More information

The AXML Artifact Model

The AXML Artifact Model 1 The AXML Artifact Model Serge Abiteboul INRIA Saclay & ENS Cachan & U. Paris Sud [Time09] Context: Data management in P2P systems 2 Large number of distributed peers Peers are autonomous Large volume

More information

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com Department of Software Systems Engineering University of Isfahan Fall 2013 Overview Model & Modeling UML & UML Profile

More information

1. BlueJ bank example with subclasses of BankAccount 2. Transparency of UML diagram for BankAccount class hierarchy

1. BlueJ bank example with subclasses of BankAccount 2. Transparency of UML diagram for BankAccount class hierarchy CS112 Lecture: Fundamental Concepts of Object-Oriented Software Development Last revised 1/13/04 Objectives: 1. To review/introduce key concepts of object-orientation: object, class, data members (class

More information

Open Code Translation from Executable UML Models

Open Code Translation from Executable UML Models Open Code Translation from Executable UML Models Erik Wedin erik.wedin@dynamics.saab.se - Information Systems Development Department, Software Systems (RTLIS) - 2002 Saab Bofors Dynamics AB 2002-10-21

More information

MDSE USE CASES. Chapter #3

MDSE USE CASES. Chapter #3 Chapter #3 MDSE USE CASES Teaching material for the book Model-Driven Software Engineering in Practice by Morgan & Claypool, USA, 2012. www.mdse-book.com MDSE GOES FAR BEYOND CODE-GENERATION www.mdse-book.com

More information

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

Whole Platform Foundation. The Long Way Toward Language Oriented Programming Whole Platform Foundation The Long Way Toward Language Oriented Programming 2008 by Riccardo Solmi made available under the Creative Commons License last updated 22 October 2008 Outline Aim: Engineering

More information

Metamodeling with Metamodels. Using. UML/MOF including OCL

Metamodeling with Metamodels. Using. UML/MOF including OCL Metamodeling with Metamodels Using UML/MOF including OCL Introducing Metamodels (Wikipedia) A metamodel is a model of a model An instantiation of metamodel gives a model Metamodeling is the process of

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

UML and the Cost of Defects

UML and the Cost of Defects UML and the of s Stephen J Mellor stephen_mellor@mentor.com It is common knowledge that software defects, especially in embedded systems, are expensive to repair; less well appreciated is just how very

More information

MDA Driven xuml Plug-in for JAVA

MDA Driven xuml Plug-in for JAVA 2012 International Conference on Information and Network Technology (ICINT 2012) IPCSIT vol. 37 (2012) (2012) IACSIT Press, Singapore MDA Driven xuml Plug-in for JAVA A.M.Magar 1, S.S.Kulkarni 1, Pooja

More information

MDA. SOA = Model Driven SOA

MDA. SOA = Model Driven SOA Introducing Model Driven SOA MDA + SOA = Model Driven SOA SoaML an Emerging Standard for SOA Modeling Dr. Darius Silingas Principal Trainer/Consultant darius.silingas@nomagic.com Introduction Who Am I?

More information

Domain-Driven Development with Ontologies and Aspects

Domain-Driven Development with Ontologies and Aspects Domain-Driven Development with Ontologies and Aspects Submitted for Domain-Specific Modeling workshop at OOPSLA 2005 Latest version of this paper can be downloaded from http://phruby.com Pavel Hruby Microsoft

More information

Chapter 6 Architectural Design

Chapter 6 Architectural Design Chapter 6 Architectural Design Chapter 6 Architectural Design Slide 1 Topics covered The WHAT and WHY of architectural design Architectural design decisions Architectural views/perspectives Architectural

More information

Practical UML - A Hands-On Introduction for Developers

Practical UML - A Hands-On Introduction for Developers Practical UML - A Hands-On Introduction for Developers By: Randy Miller (http://gp.codegear.com/authors/edit/661.aspx) Abstract: This tutorial provides a quick introduction to the Unified Modeling Language

More information

EXECUTABLE UML. Author : Selo Sulistyo and Warsun Najib

EXECUTABLE UML. Author : Selo Sulistyo and Warsun Najib EXECUTABLE UML Author : Selo Sulistyo and Warsun Najib Dept of Information and Communications Technology Agder University College, Norway Email : ssulis01@siving.hia.no wnajib01@siving.hia.no Abstract

More information

SCOS-2000 Technical Note

SCOS-2000 Technical Note SCOS-2000 Technical Note MDA Study Prototyping Technical Note Document Reference: Document Status: Issue 1.0 Prepared By: Eugenio Zanatta MDA Study Prototyping Page: 2 Action Name Date Signature Prepared

More information

1 Executive Overview The Benefits and Objectives of BPDM

1 Executive Overview The Benefits and Objectives of BPDM 1 Executive Overview The Benefits and Objectives of BPDM This is an excerpt from the Final Submission BPDM document posted to OMG members on November 13 th 2006. The full version of the specification will

More information

* Corresponding Author

* Corresponding Author A Model Driven Architecture for REA based systems Signe Ellegaard Borch, Jacob Winther Jespersen, Jesper Linvald, Kasper Østerbye* IT University of Copenhagen, Denmark * Corresponding Author (kasper@it-c.dk)

More information

Big Java Late Objects

Big Java Late Objects Big Java Late Objects Horstmann, Cay S. ISBN-13: 9781118087886 Table of Contents 1. Introduction 1.1 Computer Programs 1.2 The Anatomy of a Computer 1.3 The Java Programming Language 1.4 Becoming Familiar

More information

What is a Data Model?

What is a Data Model? What is a Data Model? Overview What is a Data Model? Review of some Basic Concepts in Data Modeling Benefits of Data Modeling Overview What is a Data Model? Review of some Basic Concepts in Data Modeling

More information

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright Object Model Object Orientated Analysis and Design Benjamin Kenwright Outline Submissions/Quizzes Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean

More information

Introduction to UML. (Unified Modeling Language)

Introduction to UML. (Unified Modeling Language) Introduction to UML (Unified Modeling Language) What Is the UML? UML stands for Unified Modeling Language. UML is a family of graphical notations that help in describing and designing software systems

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Architectural Design. Architectural Design. Software Architecture. Architectural Models

Architectural Design. Architectural Design. Software Architecture. Architectural Models Architectural Design Architectural Design Chapter 6 Architectural Design: -the design the desig process for identifying: - the subsystems making up a system and - the relationships between the subsystems

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Troy Mockenhaupt Chi-Hang ( Alex) Lin Pejman ( PJ ) Yedidsion Overview Definition History Behavior Diagrams Interaction Diagrams Structural Diagrams Tools Effect on Software

More information

PragmaDev. change request. Emmanuel Gaudin. PragmaDev ITU-T SG17 change request Grimstad June 24,

PragmaDev. change request. Emmanuel Gaudin. PragmaDev ITU-T SG17 change request Grimstad June 24, PragmaDev change request Emmanuel Gaudin emmanuel.gaudin@pragmadev.com Languages Table of contents PragmaDev introduction Languages SDL-RT Tool support Market tendancy Change requests Presentation PragmaDev

More information

Notation Standards for TOGAF:

Notation Standards for TOGAF: Welcome! Notation Standards for TOGAF: BPMN and UML Play Together Matt Smith Architecture Consultant Architecture Context Business Modeling Process Information Messaging Participants Software Systems Analysis

More information

Lecture 8: Use Case -Driven Design. Where UML fits in

Lecture 8: Use Case -Driven Design. Where UML fits in Lecture 8: Use Case -Driven Design The Role of UML in the Software Process E.g. ICONIX Domain Models Use Cases 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution

More information

COSC 3351 Software Design. An Introduction to UML (I)

COSC 3351 Software Design. An Introduction to UML (I) COSC 3351 Software Design An Introduction to UML (I) This lecture contains material from: http://wps.prenhall.com/esm_pfleeger_softengtp_2 http://sunset.usc.edu/classes/cs577a_2000/lectures/05/ec-05.ppt

More information

MDA Modeling Conventions

MDA Modeling Conventions Peter J. Fontana Version 2.0 May 25, 2004 PathMATE Series Pathfinder Solutions LLC 90 Oak Point Wrentham, MA 02093 USA www.pathfindermda.com 508-384-1392 2004 by Pathfinder Solutions Table of Contents

More information

Practical Model-Driven Development with the IBM Software Development Platform

Practical Model-Driven Development with the IBM Software Development Platform IBM Software Group Practical Model-Driven Development with the IBM Software Development Platform Osmond Ng (ong@hk1.ibm.com) Technical Consultant, IBM HK SWG 2005 IBM Corporation Overview The Challenges

More information

What Is UML? The Goals and Features of UML. Overview. The goals of UML

What Is UML? The Goals and Features of UML. Overview. The goals of UML What Is UML? Overview The Unified Modeling Language (UML) has been formally under development since 1994. UML is a distillation of three major notations and a number of modeling techniques drawn from widely

More information

WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG

WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES Christian de Sainte Marie ILOG Introduction We are interested in the topic of communicating policy decisions to other parties, and, more generally,

More information

Process Choreographer: High-level architecture

Process Choreographer: High-level architecture IBM Software Group Process Choreographer: High-level architecture Birgit Duerrstein WebSphere Process Choreographer Development IBM Lab Boeblingen duerrstein@de.ibm.com 2004 IBM Corporation Agenda Business

More information

Ways of documenting Session 5: detailed requirements The Data Dictionary one any The Project A data dictionary Data Dictionary may be maintained

Ways of documenting Session 5: detailed requirements The Data Dictionary one any The Project A data dictionary Data Dictionary may be maintained Session 5: The Data Dictionary relationship to systems analysis methodologies relationship to project management data definition vs. data representation taxonomy of data types COMP 477 /377, Spring, 2017

More information

Copyright Wyyzzk, Inc Version 5.0. Introduction to Software Architecture

Copyright Wyyzzk, Inc Version 5.0. Introduction to Software Architecture Introduction to Software Architecture Lesson Goal & Objectives Understand the purpose of software architecture. Upon completion of the lesson, the participant will be able to: Describe the purpose of software

More information

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University Metamodeling Janos ISIS, Vanderbilt University janos.sztipanovits@vanderbilt.edusztipanovits@vanderbilt edu Content Overview of Metamodeling Abstract Syntax Metamodeling Concepts Metamodeling languages

More information

INF5120 and INF9120 Modelbased System development

INF5120 and INF9120 Modelbased System development INF5120 and INF9120 Modelbased System development Lecture 5: 13.02.2016 Arne-Jørgen Berre arneb@ifi.uio.no and Arne.J.Berre@sintef.no Telecom and Informatics 1 Course parts (16 lectures) - 2017 January

More information

Integration With the Business Modeler

Integration With the Business Modeler Decision Framework, J. Duggan Research Note 11 September 2003 Evaluating OOA&D Functionality Criteria Looking at nine criteria will help you evaluate the functionality of object-oriented analysis and design

More information

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends! Requirements Spec. Design Coding and Unit Testing Characteristics of System to be built must match required characteristics (high level) Architecture consistent views Software Engineering Computer Science

More information

CASE TOOLS LAB VIVA QUESTION

CASE TOOLS LAB VIVA QUESTION 1. Define Object Oriented Analysis? VIVA QUESTION Object Oriented Analysis (OOA) is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary

More information

Outline of Unified Process

Outline of Unified Process Outline of Unified Process Koichiro OCHIMIZU School of Information Science JAIST Schedule(3/3) March 12 13:00 Unified Process and COMET 14:30 Case Study of Elevator Control System (problem definition,

More information

INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD. Slides by: Shree Jaswal

INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD. Slides by: Shree Jaswal INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD Slides by: Shree Jaswal What is UML? 2 It is a standard graphical language for modeling object oriented software. It was developed in mid 90 s by collaborative

More information

SysML Past, Present, and Future. J.D. Baker Sparx Systems Ambassador Sparx Systems Pty Ltd

SysML Past, Present, and Future. J.D. Baker Sparx Systems Ambassador Sparx Systems Pty Ltd SysML Past, Present, and Future J.D. Baker Sparx Systems Ambassador Sparx Systems Pty Ltd A Specification Produced by the OMG Process SysML 1.0 SysML 1.1 Etc. RFI optional Issued by Task Forces RFI responses

More information

Introduction to UML p. 1 Introduction to the Object-Oriented Paradigm p. 1 What Is Visual Modeling? p. 6 Systems of Graphical Notation p.

Introduction to UML p. 1 Introduction to the Object-Oriented Paradigm p. 1 What Is Visual Modeling? p. 6 Systems of Graphical Notation p. Introduction p. xxi Introduction to UML p. 1 Introduction to the Object-Oriented Paradigm p. 1 What Is Visual Modeling? p. 6 Systems of Graphical Notation p. 7 Understanding UML Diagrams p. 10 Visual Modeling

More information

Rich Hilliard 20 February 2011

Rich Hilliard 20 February 2011 Metamodels in 42010 Executive summary: The purpose of this note is to investigate the use of metamodels in IEEE 1471 ISO/IEC 42010. In the present draft, metamodels serve two roles: (1) to describe the

More information

The Web Service Sample

The Web Service Sample The Web Service Sample Catapulse Pacitic Bank The Rational Unified Process is a roadmap for engineering a piece of software. It is flexible and scalable enough to be applied to projects of varying sizes.

More information

Chapter 6: Entity-Relationship Model. The Next Step: Designing DB Schema. Identifying Entities and their Attributes. The E-R Model.

Chapter 6: Entity-Relationship Model. The Next Step: Designing DB Schema. Identifying Entities and their Attributes. The E-R Model. Chapter 6: Entity-Relationship Model The Next Step: Designing DB Schema Our Story So Far: Relational Tables Databases are structured collections of organized data The Relational model is the most common

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Practical Database Design Methodology and Use of UML Diagrams Design & Analysis of Database Systems

Practical Database Design Methodology and Use of UML Diagrams Design & Analysis of Database Systems Practical Database Design Methodology and Use of UML Diagrams 406.426 Design & Analysis of Database Systems Jonghun Park jonghun@snu.ac.kr Dept. of Industrial Engineering Seoul National University chapter

More information

Object Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification

Object Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification Object Oriented Design Part 2 Analysis Design Implementation Program Design Analysis Phase Functional Specification Completely defines tasks to be solved Free from internal contradictions Readable both

More information

Developing in OMG s Model-Driven Architecture

Developing in OMG s Model-Driven Architecture Developing in OMG s Model-Driven Architecture Jon Siegel and the OMG Staff Strategy Group Object Management Group White Paper November, 2001 Revision 2.6 In an accompanying white paper 1, the Object Management

More information

The Write Once, Deploy N MDA Case Study

The Write Once, Deploy N MDA Case Study Pieter Van Gorp, The Write Once, Deploy N MDA Case Study Belgisch-Nederlandse Evolution Workshop July 8-9, 2004 @ University of Antwerp The Write Once, Deploy N MDA Case Study Pieter Van Gorp, Dirk Janssens

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) 1.17 Software Engineering Case Study: Introduction to Object Technology and the UML (Required) Object orientation A natural way of thinking about the world and computer programs Unified Modeling Language

More information

Practical UML : A Hands-On Introduction for Developers

Practical UML : A Hands-On Introduction for Developers Borland.com Borland Developer Network Borland Support Center Borland University Worldwide Sites Login My Account Help Search Practical UML : A Hands-On Introduction for Developers - by Randy Miller Rating:

More information

The Eclipse Modeling Framework and MDA Status and Opportunities

The Eclipse Modeling Framework and MDA Status and Opportunities The Eclipse Modeling Framework and MDA Status and Opportunities David Frankel Consulting df@davidfrankelconsulting.com www.davidfrankelconsulting.com Portions adapted from the book Model Driven Architecture:

More information

The Next Step: Designing DB Schema. Chapter 6: Entity-Relationship Model. The E-R Model. Identifying Entities and their Attributes.

The Next Step: Designing DB Schema. Chapter 6: Entity-Relationship Model. The E-R Model. Identifying Entities and their Attributes. Chapter 6: Entity-Relationship Model Our Story So Far: Relational Tables Databases are structured collections of organized data The Relational model is the most common data organization model The Relational

More information

xtuml: Current and Next State of a Modeling Dialect

xtuml: Current and Next State of a Modeling Dialect xtuml: Current and Next State of a Modeling Dialect (Experience Report and Historical View) Cortland Starrett One Fact Inc. 10412 US HWY 52 S Clarks Hill, Indiana 47930 USA cortland.starrett@onefact.net

More information

Unambiguous, Non-Binding Requirements for MDA. -David Hansz, Requirements Analyst -David Fado, Software Architect

Unambiguous, Non-Binding Requirements for MDA. -David Hansz, Requirements Analyst -David Fado, Software Architect Unambiguous, Non-Binding Requirements for MDA -David Hansz, Requirements Analyst -David Fado, Software Architect Why Discuss MDA and Requirements! Experience! Efficient requirements management is a practical

More information

Model Driven Data Interoperability (MDMI)

Model Driven Data Interoperability (MDMI) Model Driven Data Interoperability (MDMI) An OMG Finance Domain task Force Presentation 12/11/2008 By Mark Eisner, co chair 11/27/06 Slide 1 Some of the problem The current messaging environment inhibits

More information

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping. i About the Tutorial SDLC stands for Software Development Life Cycle. SDLC is a process that consists of a series of planned activities to develop or alter the Software Products. This tutorial will give

More information

Slide 1 Welcome to Fundamentals of Health Workflow Process Analysis and Redesign: Process Mapping: Entity-Relationship Diagrams. This is Lecture e.

Slide 1 Welcome to Fundamentals of Health Workflow Process Analysis and Redesign: Process Mapping: Entity-Relationship Diagrams. This is Lecture e. WORKFLOW ANALYSIS Audio Transcript Component 10 Unit 3 Lecture E Fundamentals of Health Workflow Process Analysis & Redesign Interpreting and Creating Process Diagrams Process Mapping UML notation for

More information

Introduction to Software Engineering 10. Software Architecture

Introduction to Software Engineering 10. Software Architecture Introduction to Software Engineering 10. Software Architecture Roadmap > What is Software Architecture? > Coupling and Cohesion > Architectural styles: Layered Client-Server Blackboard, Dataflow,... >

More information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying

More information

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design

More information

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh UML big picture Perdita Stevens School of Informatics University of Edinburgh Plan Whence UML? Parts of UML How it all fits together UML as a language Consistency: what does it mean, do we need it? Defining

More information

Definition of Information Systems

Definition of Information Systems Information Systems Modeling To provide a foundation for the discussions throughout this book, this chapter begins by defining what is actually meant by the term information system. The focus is on model-driven

More information

Lecture 13 Introduction to Software Architecture

Lecture 13 Introduction to Software Architecture Lecture 13 Introduction to Software Architecture Software Systems Design and Implementation ITCS/ITIS 6112/8112 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at

More information

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML D. Beltran*, LLS, Barcelona, Spain M. Gonzalez, CERN, Geneva, Switzerlan Abstract CELLS (Consorcio para la construcción, equipamiento

More information

Questions (Click to see the answers)

Questions (Click to see the answers) Questions (Click to see the answers) 1. What versions of QuickBooks does the Concur manual file import support?... 1 2. Can both Company Cards and Employees be paid via QuickBooks?... 1 3. What data does

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Summarize UML Deployment and Component notation. Design a framework with the Template Method, State, and Command patterns. Introduce issues in object-relational (O-R)

More information

OMG MDA Implementers Conference. UML 2.0 Support for MDA in Dynamic Models: How Practical is Execution from Behavioral Models?

OMG MDA Implementers Conference. UML 2.0 Support for MDA in Dynamic Models: How Practical is Execution from Behavioral Models? OMG MDA Implementers Conference UML 2.0 Support for MDA in Dynamic Models: How Practical is Execution from Behavioral Models? David Fado, May 2003 Introduction! UML 2 behavior diagrams offer enhanced ability

More information

Index. business modeling syntax 181 business process modeling 57 business rule 40

Index. business modeling syntax 181 business process modeling 57 business rule 40 OCL.book Page 203 Tuesday, July 22, 2003 9:48 PM Index Symbols OclAny, of 167 = OclAny, of 167 @pre 34, 86, 155 ^ 34, 156 ^^ 157 A abstract syntax 93 accumulator 153 action in statechart 56 activity

More information

Generating UML diagrams from LEM

Generating UML diagrams from LEM Generating UML diagrams from LEM Steven Ring January 28, 2005 1 Introduction to LEM LEM is a Language for Executable Models based on the modelling language described by Mellor and Balcer [MBJ02] and generally

More information

Programming Languages and Program Development Life Cycle Fall Introduction to Information and Communication Technologies CSD 102

Programming Languages and Program Development Life Cycle Fall Introduction to Information and Communication Technologies CSD 102 Programming Languages and Program Development Life Cycle Fall 2016 Introduction to Information and Communication Technologies CSD 102 Outline The most common approaches to program design and development

More information

Introduction - SENG 330. Object-Oriented Analysis and Design

Introduction - SENG 330. Object-Oriented Analysis and Design Introduction - SENG 330 Object-Oriented Analysis and Design SENG 330 Fall 2006 Instructor: Alex Thomo Email: thomo@cs.uvic.ca Office hours: Office Hours: TWF 12:30-1:30 p.m. Location: ECS 556 Objective:

More information

Model Driven Development Unified Modeling Language (UML)

Model Driven Development Unified Modeling Language (UML) Model Driven Development Unified Modeling Language (UML) An Overview UML UML is a modeling notation standardized by OMG (proposal 1997, ver.1.1 in 1998, ver. 2.0 in 2004) now in 2.4.1 mature based on notations

More information