Executable and Translatable UML. Stephen J. Mellor Marc J. Balcer
|
|
- Tyler Blake
- 5 years ago
- Views:
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. http://www.projtech.com Application-Independent Software Architecture Physical Telephone On Hook Application Model Off Hook 2 Architecture Code
More informationExecutable 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 informationMDA 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 informationMDA 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 informationRole 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 informationASSURING 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 informationFirst 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 informationBuilding 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 informationSOFTWARE 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 informationThe 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 informationThe 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 informationDomain-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 informationRaising 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 informationThe 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 informationWhat 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 informationRational 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 informationChapter 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 informationModel 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 informationFREQUENTLY 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 informationSoftware 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 informationCompositional 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 informationEngr. 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 informationThe 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 informationAn 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 information1. 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 informationOpen 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 informationMDSE 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 informationWhole 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 informationMetamodeling 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 informationComputation 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 informationUML 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 informationMDA 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 informationMDA. 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 informationDomain-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 informationChapter 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 informationPractical 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 informationEXECUTABLE 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 informationSCOS-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 information1 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
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 informationBig 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 informationWhat 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 informationObject 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 informationIntroduction 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 informationObject-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 informationArchitectural 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 informationOBJECT 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 informationUnified 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 informationPragmaDev. 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 informationNotation 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 informationLecture 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 informationCOSC 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 informationMDA 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 informationPractical 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 informationWhat 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 informationWHY 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 informationProcess 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 informationWays 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 informationCopyright 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 informationMetamodeling. 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 informationINF5120 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 informationIntegration 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 informationCoding 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 informationCASE 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 informationOutline 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 informationINTRODUCTION 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 informationSysML 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 informationIntroduction 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 informationRich 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 informationThe 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 informationChapter 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 informationNOTES 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 informationPractical 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 informationObject 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 informationDeveloping 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 informationThe 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 informationUnified 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 informationPractical 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 informationThe 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 informationThe 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 informationxtuml: 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 informationUnambiguous, 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 informationModel 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 informationThis 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 informationSlide 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 informationIntroduction 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 informationChapter 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 informationChapter 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 informationUML 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 informationDefinition 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 informationLecture 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 informationA 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 informationQuestions (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 informationSoftware 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 informationOMG 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 informationIndex. 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 informationGenerating 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 informationProgramming 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 informationIntroduction - 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 informationModel 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