SlideShare una empresa de Scribd logo
1 de 49
Modeling and Notations Software Architecture Lecture 10
Continuing Our Survey ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Continuing Our Survey ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Early Architecture Description Languages ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Darwin ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Darwin Example component DataStore{ provide landerValues; } component Calculation{ require landerValues; provide calculationService; } component UserInterface{ require calculationService; require landerValues; } component LunarLander{ inst U: UserInterface; C: Calculation; D: DataStore; bind C.landerValues -- D.landerValues; U.landerValues -- D.landerValues; U.calculationService -- C.calculationService;  } Canonical Textual Visualization Graphical Visualization Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Programmatic Darwin Constructs component WebServer{ provide httpService; } component WebClient{ require httpService; } component WebApplication(int numClients){ inst S: WebServer; array C[numClients]: WebClient; forall k:0..numClients-1{ inst C[k] @ k; bind C[k].httpService -- S.httpService; } } Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Darwin Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Rapide ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Rapide Example type DataStore is interface action in  SetValues(); out NotifyNewValues(); behavior begin SetValues => NotifyNewValues();; end DataStore; type Calculation is interface action in  SetBurnRate(); out DoSetValues(); behavior action CalcNewState(); begin SetBurnRate => CalcNewState(); DoSetValues();; end Calculation; type Player is interface action out DoSetBurnRate(); in  NotifyNewValues(); behavior TurnsRemaining : var integer := 1; action UpdateStatusDisplay(); action Done(); Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Rapide Example (cont’d) type DataStore is interface action in  SetValues(); out NotifyNewValues(); behavior begin SetValues => NotifyNewValues();; end DataStore; type Calculation is interface action in  SetBurnRate(); out DoSetValues(); behavior action CalcNewState(); begin SetBurnRate => CalcNewState(); DoSetValues();; end Calculation; type Player is interface action out DoSetBurnRate(); in  NotifyNewValues(); behavior TurnsRemaining : var integer := 1; action UpdateStatusDisplay(); action Done(); begin (start or UpdateStatusDisplay) where  ($TurnsRemaining > 0) => if ( $TurnsRemaining > 0 ) then TurnsRemaining := $TurnsRemaining - 1;  DoSetBurnRate(); end if;; NotifyNewValues => UpdateStatusDisplay();; UpdateStatusDisplay where $TurnsRemaining == 0 => Done();; end UserInterface; architecture lander() is P1, P2 : Player; C : Calculation; D : DataStore; connect P1.DoSetBurnRate to C.SetBurnRate; P2.DoSetBurnRate to C.SetBurnRate; C.DoSetValues to D.SetValues; D.NotifyNewValues to P1.NotifyNewValues(); D.NotifyNewValues to P2.NotifyNewValues(); end LunarLander; Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Simulation Output 1-player 2-player Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Rapide Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Wright ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Wright Example Component DataStore Port getValues  (behavior specification) Port storeValues  (behavior specification) Computation  (behavior specification) Component Calculation Port getValues  (behavior specification) Port storeValues  (behavior specification) Port calculate  (behavior specification) Computation  (behavior specification)  Component UserInterface Port getValues  (behavior specification) Port calculate  (behavior specification) Computation  (behavior specification) Connector Call Role Caller =  Role Callee =  Glue =  Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Wright Example Component DataStore Port getValues  (behavior specification) Port storeValues  (behavior specification) Computation  (behavior specification) Component Calculation Port getValues  (behavior specification) Port storeValues  (behavior specification) Port calculate  (behavior specification) Computation  (behavior specification)  Component UserInterface Port getValues  (behavior specification) Port calculate  (behavior specification) Computation  (behavior specification) Connector Call Role Caller =  Role Callee =  Glue =  Configuration LunarLander Instances DS : DataStore C : Calculation UI : UserInterface CtoUIgetValues, CtoUIstoreValues, UItoC, UItoDS : Call  Attachments C.getValues as CtoUIgetValues.Caller DS.getValues as CtoUIgetValues.Callee C.storeValues as CtoUIstoreValues.Caller DS.storeValues as CtoUIstoreValues.Callee UI.calculate as UItoC.Caller C.calulate as UItoC.Callee UI.getValues as UItoDS.Caller DS.getValues as UItoDS.Callee End LunarLander. Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Wright Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Domain- and Style-Specific ADLs ,[object Object],[object Object],[object Object]
Koala ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Koala Example Single system Product line of two systems Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.   interface IDataStore{ void setAltitude(int altitudeInMeters); int getAltitude(); void setBurnRate(int newBurnRate); int getBurnRate(); ... }
Koala Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Weaves ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Weaves Example Generic Weaves System Lunar Lander in Weaves Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Augmenting Weaves ,[object Object],[object Object],The connection from  User Interface  to  Calculation  (via Q1) carries objects that include a burn-rate and instruct the calculation component to calculate a new Lander state.  The connection from  Calculation  to  User Interface  (via Q2) indicates when the calculation is complete and also includes the termination state of the application.  The connections from  User Interface  and  Calculation  to  Data Store  (via Q3) carry objects that either update or query the state of the Lander.  The connections back to  User Interface  and  Calculation  from  Data Store  (via Q4) carry objects that contain the Lander state, and are sent out whenever the state of the Lander is updated.
Weaves Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AADL: The Architecture Analysis & Design Language ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AADL (Partial) Example data lander_state_data end lander_state_data; bus lan_bus_type end lan_bus_type; bus implementation lan_bus_type.ethernet properties Transmission_Time => 1 ms .. 5 ms; Allowed_Message_Size => 1 b .. 1 kb; end lan_bus_type.ethernet; system calculation_type features network : requires bus access    lan_bus.calculation_to_datastore; request_get  : out event port; response_get  : in event data port lander_state_data; request_store  : out event port lander_state_data; response_store : in event port; end calculation_type; system implementation calculation_type.calculation subcomponents the_calculation_processor :    processor calculation_processor_type; the_calculation_process : process    calculation_process_type.one_thread; Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
AADL (Partial) Example data lander_state_data end lander_state_data; bus lan_bus_type end lan_bus_type; bus implementation lan_bus_type.ethernet properties Transmission_Time => 1 ms .. 5 ms; Allowed_Message_Size => 1 b .. 1 kb; end lan_bus_type.ethernet; system calculation_type features network : requires bus access    lan_bus.calculation_to_datastore; request_get  : out event port; response_get  : in event data port lander_state_data; request_store  : out event port lander_state_data; response_store : in event port; end calculation_type; system implementation calculation_type.calculation subcomponents the_calculation_processor :    processor calculation_processor_type; the_calculation_process : process    calculation_process_type.one_thread; connections bus access network -> the_calculation_processor.network; event data port response_get ->    the_calculation_process.response_get; event port the_calculation_process.request_get ->    request_get; event data port response_store ->    the_calculation_process.response_store; properties Actual_Processor_Binding => reference   the_calculation_processor applies to  the_calculation_process; end calculation_type.calculation; processor calculation_processor_type features network : requires bus access    lan_bus.calculation_to_datastore; end calculation_processor_type; process calculation_process_type features request_get  : out event port; response_get  : in event data port lander_state_data; request_store  : out event data port lander_state_data; response_store : in event port; end calculation_process_type; Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
AADL (Partial) Example data lander_state_data end lander_state_data; bus lan_bus_type end lan_bus_type; bus implementation lan_bus_type.ethernet properties Transmission_Time => 1 ms .. 5 ms; Allowed_Message_Size => 1 b .. 1 kb; end lan_bus_type.ethernet; system calculation_type features network : requires bus access    lan_bus.calculation_to_datastore; request_get  : out event port; response_get  : in event data port lander_state_data; request_store  : out event port lander_state_data; response_store : in event port; end calculation_type; system implementation calculation_type.calculation subcomponents the_calculation_processor :    processor calculation_processor_type; the_calculation_process : process    calculation_process_type.one_thread; connections bus access network -> the_calculation_processor.network; event data port response_get ->    the_calculation_process.response_get; event port the_calculation_process.request_get ->    request_get; event data port response_store ->    the_calculation_process.response_store; properties Actual_Processor_Binding => reference   the_calculation_processor applies to  the_calculation_process; end calculation_type.calculation; processor calculation_processor_type features network : requires bus access    lan_bus.calculation_to_datastore; end calculation_processor_type; process calculation_process_type features request_get  : out event port; response_get  : in event data port lander_state_data; request_store  : out event data port lander_state_data; response_store : in event port; end calculation_process_type; thread calculation_thread_type features request_get  : out event port; response_get  : in event data port lander_state_data; request_store  : out event data port lander_state_data; response_store : in event port; properties Dispatch_Protocol => periodic; end calculation_thread_type; process implementation calculation_process_type.one_thread subcomponents calculation_thread : thread client_thread_type; connections event data port response_get ->    calculation_thread.response_get; event port calculation_thread.request_get -> request_get; event port response_store ->    calculation_thread.response_store; event data port request_store -> request_store; properties Dispatch_Protocol => Periodic; Period => 20 ms; end calculation_process_type.one_thread;  Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
AADL Example Explained a Bit ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AADL Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Extensible ADLs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Acme ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Acme Example //Global Types Property Type returnsValueType = bool; Connector Type CallType = { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType;  }; System LunarLander = { //Components Component DataStore = {  Ports { getValues; storeValues; } }; Component Calculation = { Ports { calculate; getValues; storeValues; } }; Component UserInterface = { Ports { getValues; calculate; } }; // Connectors Connector UserInterfaceToCalculation : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Connector UserInterfaceToDataStore : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Acme Example //Global Types Property Type returnsValueType = bool; Connector Type CallType = { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType;  }; System LunarLander = { //Components Component DataStore = {  Ports { getValues; storeValues; } }; Component Calculation = { Ports { calculate; getValues; storeValues; } }; Component UserInterface = { Ports { getValues; calculate; } }; // Connectors Connector UserInterfaceToCalculation : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Connector UserInterfaceToDataStore : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Connector CalculationToDataStoreS : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = false; } Connector CalculationToDataStoreG : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Attachments { UserInterface.getValues to    UserInterfaceToDataStore.callerRole; UserInterfaceToDataStore.calleeRole to DataStore.getValues; UserInterface.getValues to    UserInterfaceToDataStore.callerRole; UserInterfaceToDataStore.calleeRole to DataStore.getValues; UserInterface.calculate to UserInterfaceToCalculation.callerRole; UserInterfaceToCalculation.calleeRole to Calculation.calculate; Calculation.storeValues to  CalculationToDataStoreS.callerRole; CalculationToDataStoreS.calleeRole to DataStore.storeValues; Calculation.getValues to CalculationToDataStoreG.callerRole; CalculationToDataStoreG.calleeRole to DataStore.getValues; }; }  Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Acme Extensions //Global Types Property Type returnsValueType = bool; Connector Type CallType = { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType;  }; System LunarLander = { //Components Component DataStore = {  Ports { getValues; storeValues; } }; Component Calculation = { Ports { calculate; getValues; storeValues; } }; Component UserInterface = { Ports { getValues; calculate; } }; // Connectors Connector UserInterfaceToCalculation : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Connector UserInterfaceToDataStore : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Connector CalculationToDataStoreS : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = false; } Connector CalculationToDataStoreG : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Attachments { UserInterface.getValues to    UserInterfaceToDataStore.callerRole; UserInterfaceToDataStore.calleeRole to DataStore.getValues; UserInterface.getValues to    UserInterfaceToDataStore.callerRole; UserInterfaceToDataStore.calleeRole to DataStore.getValues; UserInterface.calculate to UserInterfaceToCalculation.callerRole; UserInterfaceToCalculation.calleeRole to Calculation.calculate; Calculation.storeValues to  CalculationToDataStoreS.callerRole; CalculationToDataStoreS.calleeRole to DataStore.storeValues; Calculation.getValues to CalculationToDataStoreG.callerRole; CalculationToDataStoreG.calleeRole to DataStore.getValues; }; }  Property Type StoreType = enum { file,  relationalDatabase, objectDatabase }; Component DataStore = { Ports { getValues; storeValues;  } Property storeType : StoreType =  relationalDatabase; Property tableName : String = “LanderTable”; Property numReplicas: int = 0; };  Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
Acme Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ADML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ADML Example ,[object Object],<Component ID=”datastore” name=”Data Store”> <ComponentDescription> <ComponentBody> <Port ID=”getValues”  name=”getValues”/> <Port ID=”storeValues” name=”storeValues”/> </ComponentBody> </ComponentDescription> </Component>  Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
xADL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
xADL Example <types:component xsi:type=&quot;types:Component&quot;    types:id=&quot;myComp&quot;> <types:description xsi:type=&quot;instance:Description&quot;>   MyComponent </types:description>  <types:interface xsi:type=&quot;types:Interface&quot;  types:id=&quot;iface1&quot;> <types:description xsi:type=&quot;instance:Description&quot;> Interface1 </types:description> <types:direction xsi:type=&quot;instance:Direction&quot;> inout </types:direction> </types:interface> </types:component> Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
xADL Example <types:component xsi:type=&quot;types:Component&quot;    types:id=&quot;myComp&quot;> <types:description xsi:type=&quot;instance:Description&quot;>   MyComponent </types:description>  <types:interface xsi:type=&quot;types:Interface&quot;  types:id=&quot;iface1&quot;> <types:description xsi:type=&quot;instance:Description&quot;> Interface1 </types:description> <types:direction xsi:type=&quot;instance:Direction&quot;> inout </types:direction> </types:interface> </types:component> component{ id = &quot;myComp&quot;; description = &quot;MyComponent&quot;;  interface{ id = &quot;iface1&quot;; description = &quot;Interface1&quot;; direction = &quot;inout&quot;; } } Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
xADL Example <types:component xsi:type=&quot;types:Component&quot;    types:id=&quot;myComp&quot;> <types:description xsi:type=&quot;instance:Description&quot;>   MyComponent </types:description>  <types:interface xsi:type=&quot;types:Interface&quot;  types:id=&quot;iface1&quot;> <types:description xsi:type=&quot;instance:Description&quot;> Interface1 </types:description> <types:direction xsi:type=&quot;instance:Direction&quot;> inout </types:direction> </types:interface> </types:component> component{ id = &quot;myComp&quot;; description = &quot;MyComponent&quot;;  interface{ id = &quot;iface1&quot;; description = &quot;Interface1&quot;; direction = &quot;inout&quot;; } } Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
xADL Tools Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
ArchStudio Environment Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
xADL Schemas (Modules) Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; ©  2008 John Wiley & Sons, Inc. Reprinted with permission.
xADL Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Caveat 1 ,[object Object],[object Object],[object Object],[object Object]
Caveat 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

[2016/2017] Architectural languages
[2016/2017] Architectural languages[2016/2017] Architectural languages
[2016/2017] Architectural languagesIvano Malavolta
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
 
Aspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETAspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETWaqas Tariq
 
Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Marco Brambilla
 
Architecture: where do you start?
 Architecture: where do you start? Architecture: where do you start?
Architecture: where do you start?Skills Matter
 

La actualidad más candente (9)

Ch08lect3 ud
Ch08lect3 udCh08lect3 ud
Ch08lect3 ud
 
[2016/2017] Architectural languages
[2016/2017] Architectural languages[2016/2017] Architectural languages
[2016/2017] Architectural languages
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
Aspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETAspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NET
 
Ch09lect2 ud
Ch09lect2 udCh09lect2 ud
Ch09lect2 ud
 
Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...
 
DeepaShetty
DeepaShettyDeepaShetty
DeepaShetty
 
Architecture: where do you start?
 Architecture: where do you start? Architecture: where do you start?
Architecture: where do you start?
 

Similar a 10 modeling and_notations

12 visualizing software_architectures_part_2
12 visualizing software_architectures_part_212 visualizing software_architectures_part_2
12 visualizing software_architectures_part_2Majong DevJfu
 
Crafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoCrafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoJAXLondon2014
 
Android classes-in-pune-syllabus
Android classes-in-pune-syllabusAndroid classes-in-pune-syllabus
Android classes-in-pune-syllabuscncandrwebworld
 
Android training in Nagpur
Android training in Nagpur Android training in Nagpur
Android training in Nagpur letsleadsand
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicDavid Solivan
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobilityMajong DevJfu
 
Whidbey old
Whidbey old Whidbey old
Whidbey old grenaud
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011YoungSu Son
 
Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1willmation
 
Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Sandro Mancuso
 
AGADOS function & feature Chapter-02 biz logic define
AGADOS function & feature Chapter-02 biz logic defineAGADOS function & feature Chapter-02 biz logic define
AGADOS function & feature Chapter-02 biz logic defineYongkyoo Park
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
Implementing DDD with C#
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#Pascal Laurin
 
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan
 
Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Sandro Mancuso
 
Webinar Oracle adf12c EN
Webinar Oracle adf12c ENWebinar Oracle adf12c EN
Webinar Oracle adf12c ENatSistemas
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)stanbridge
 
Verilog presentation final
Verilog presentation finalVerilog presentation final
Verilog presentation finalAnkur Gupta
 
13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architecturesMajong DevJfu
 

Similar a 10 modeling and_notations (20)

12 visualizing software_architectures_part_2
12 visualizing software_architectures_part_212 visualizing software_architectures_part_2
12 visualizing software_architectures_part_2
 
Crafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoCrafted Design - Sandro Mancuso
Crafted Design - Sandro Mancuso
 
Android classes-in-pune-syllabus
Android classes-in-pune-syllabusAndroid classes-in-pune-syllabus
Android classes-in-pune-syllabus
 
Android training in Nagpur
Android training in Nagpur Android training in Nagpur
Android training in Nagpur
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobility
 
Whidbey old
Whidbey old Whidbey old
Whidbey old
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011
 
Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1
 
Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014
 
AGADOS function & feature Chapter-02 biz logic define
AGADOS function & feature Chapter-02 biz logic defineAGADOS function & feature Chapter-02 biz logic define
AGADOS function & feature Chapter-02 biz logic define
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Implementing DDD with C#
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#
 
Sw Software Design
Sw Software DesignSw Software Design
Sw Software Design
 
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2
 
Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014
 
Webinar Oracle adf12c EN
Webinar Oracle adf12c ENWebinar Oracle adf12c EN
Webinar Oracle adf12c EN
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)
 
Verilog presentation final
Verilog presentation finalVerilog presentation final
Verilog presentation final
 
13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architectures
 

Más de Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

Más de Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

Último

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Último (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

10 modeling and_notations

  • 1. Modeling and Notations Software Architecture Lecture 10
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Darwin Example component DataStore{ provide landerValues; } component Calculation{ require landerValues; provide calculationService; } component UserInterface{ require calculationService; require landerValues; } component LunarLander{ inst U: UserInterface; C: Calculation; D: DataStore; bind C.landerValues -- D.landerValues; U.landerValues -- D.landerValues; U.calculationService -- C.calculationService; } Canonical Textual Visualization Graphical Visualization Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 7. Programmatic Darwin Constructs component WebServer{ provide httpService; } component WebClient{ require httpService; } component WebApplication(int numClients){ inst S: WebServer; array C[numClients]: WebClient; forall k:0..numClients-1{ inst C[k] @ k; bind C[k].httpService -- S.httpService; } } Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 8.
  • 9.
  • 10. Rapide Example type DataStore is interface action in SetValues(); out NotifyNewValues(); behavior begin SetValues => NotifyNewValues();; end DataStore; type Calculation is interface action in SetBurnRate(); out DoSetValues(); behavior action CalcNewState(); begin SetBurnRate => CalcNewState(); DoSetValues();; end Calculation; type Player is interface action out DoSetBurnRate(); in NotifyNewValues(); behavior TurnsRemaining : var integer := 1; action UpdateStatusDisplay(); action Done(); Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 11. Rapide Example (cont’d) type DataStore is interface action in SetValues(); out NotifyNewValues(); behavior begin SetValues => NotifyNewValues();; end DataStore; type Calculation is interface action in SetBurnRate(); out DoSetValues(); behavior action CalcNewState(); begin SetBurnRate => CalcNewState(); DoSetValues();; end Calculation; type Player is interface action out DoSetBurnRate(); in NotifyNewValues(); behavior TurnsRemaining : var integer := 1; action UpdateStatusDisplay(); action Done(); begin (start or UpdateStatusDisplay) where ($TurnsRemaining > 0) => if ( $TurnsRemaining > 0 ) then TurnsRemaining := $TurnsRemaining - 1; DoSetBurnRate(); end if;; NotifyNewValues => UpdateStatusDisplay();; UpdateStatusDisplay where $TurnsRemaining == 0 => Done();; end UserInterface; architecture lander() is P1, P2 : Player; C : Calculation; D : DataStore; connect P1.DoSetBurnRate to C.SetBurnRate; P2.DoSetBurnRate to C.SetBurnRate; C.DoSetValues to D.SetValues; D.NotifyNewValues to P1.NotifyNewValues(); D.NotifyNewValues to P2.NotifyNewValues(); end LunarLander; Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 12. Simulation Output 1-player 2-player Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 13.
  • 14.
  • 15. Wright Example Component DataStore Port getValues (behavior specification) Port storeValues (behavior specification) Computation (behavior specification) Component Calculation Port getValues (behavior specification) Port storeValues (behavior specification) Port calculate (behavior specification) Computation (behavior specification) Component UserInterface Port getValues (behavior specification) Port calculate (behavior specification) Computation (behavior specification) Connector Call Role Caller = Role Callee = Glue = Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 16. Wright Example Component DataStore Port getValues (behavior specification) Port storeValues (behavior specification) Computation (behavior specification) Component Calculation Port getValues (behavior specification) Port storeValues (behavior specification) Port calculate (behavior specification) Computation (behavior specification) Component UserInterface Port getValues (behavior specification) Port calculate (behavior specification) Computation (behavior specification) Connector Call Role Caller = Role Callee = Glue = Configuration LunarLander Instances DS : DataStore C : Calculation UI : UserInterface CtoUIgetValues, CtoUIstoreValues, UItoC, UItoDS : Call Attachments C.getValues as CtoUIgetValues.Caller DS.getValues as CtoUIgetValues.Callee C.storeValues as CtoUIstoreValues.Caller DS.storeValues as CtoUIstoreValues.Callee UI.calculate as UItoC.Caller C.calulate as UItoC.Callee UI.getValues as UItoDS.Caller DS.getValues as UItoDS.Callee End LunarLander. Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 17.
  • 18.
  • 19.
  • 20. Koala Example Single system Product line of two systems Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. interface IDataStore{ void setAltitude(int altitudeInMeters); int getAltitude(); void setBurnRate(int newBurnRate); int getBurnRate(); ... }
  • 21.
  • 22.
  • 23. Weaves Example Generic Weaves System Lunar Lander in Weaves Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 24.
  • 25.
  • 26.
  • 27. AADL (Partial) Example data lander_state_data end lander_state_data; bus lan_bus_type end lan_bus_type; bus implementation lan_bus_type.ethernet properties Transmission_Time => 1 ms .. 5 ms; Allowed_Message_Size => 1 b .. 1 kb; end lan_bus_type.ethernet; system calculation_type features network : requires bus access lan_bus.calculation_to_datastore; request_get : out event port; response_get : in event data port lander_state_data; request_store : out event port lander_state_data; response_store : in event port; end calculation_type; system implementation calculation_type.calculation subcomponents the_calculation_processor : processor calculation_processor_type; the_calculation_process : process calculation_process_type.one_thread; Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 28. AADL (Partial) Example data lander_state_data end lander_state_data; bus lan_bus_type end lan_bus_type; bus implementation lan_bus_type.ethernet properties Transmission_Time => 1 ms .. 5 ms; Allowed_Message_Size => 1 b .. 1 kb; end lan_bus_type.ethernet; system calculation_type features network : requires bus access lan_bus.calculation_to_datastore; request_get : out event port; response_get : in event data port lander_state_data; request_store : out event port lander_state_data; response_store : in event port; end calculation_type; system implementation calculation_type.calculation subcomponents the_calculation_processor : processor calculation_processor_type; the_calculation_process : process calculation_process_type.one_thread; connections bus access network -> the_calculation_processor.network; event data port response_get -> the_calculation_process.response_get; event port the_calculation_process.request_get -> request_get; event data port response_store -> the_calculation_process.response_store; properties Actual_Processor_Binding => reference the_calculation_processor applies to the_calculation_process; end calculation_type.calculation; processor calculation_processor_type features network : requires bus access lan_bus.calculation_to_datastore; end calculation_processor_type; process calculation_process_type features request_get : out event port; response_get : in event data port lander_state_data; request_store : out event data port lander_state_data; response_store : in event port; end calculation_process_type; Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 29. AADL (Partial) Example data lander_state_data end lander_state_data; bus lan_bus_type end lan_bus_type; bus implementation lan_bus_type.ethernet properties Transmission_Time => 1 ms .. 5 ms; Allowed_Message_Size => 1 b .. 1 kb; end lan_bus_type.ethernet; system calculation_type features network : requires bus access lan_bus.calculation_to_datastore; request_get : out event port; response_get : in event data port lander_state_data; request_store : out event port lander_state_data; response_store : in event port; end calculation_type; system implementation calculation_type.calculation subcomponents the_calculation_processor : processor calculation_processor_type; the_calculation_process : process calculation_process_type.one_thread; connections bus access network -> the_calculation_processor.network; event data port response_get -> the_calculation_process.response_get; event port the_calculation_process.request_get -> request_get; event data port response_store -> the_calculation_process.response_store; properties Actual_Processor_Binding => reference the_calculation_processor applies to the_calculation_process; end calculation_type.calculation; processor calculation_processor_type features network : requires bus access lan_bus.calculation_to_datastore; end calculation_processor_type; process calculation_process_type features request_get : out event port; response_get : in event data port lander_state_data; request_store : out event data port lander_state_data; response_store : in event port; end calculation_process_type; thread calculation_thread_type features request_get : out event port; response_get : in event data port lander_state_data; request_store : out event data port lander_state_data; response_store : in event port; properties Dispatch_Protocol => periodic; end calculation_thread_type; process implementation calculation_process_type.one_thread subcomponents calculation_thread : thread client_thread_type; connections event data port response_get -> calculation_thread.response_get; event port calculation_thread.request_get -> request_get; event port response_store -> calculation_thread.response_store; event data port request_store -> request_store; properties Dispatch_Protocol => Periodic; Period => 20 ms; end calculation_process_type.one_thread; Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. Acme Example //Global Types Property Type returnsValueType = bool; Connector Type CallType = { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType; }; System LunarLander = { //Components Component DataStore = { Ports { getValues; storeValues; } }; Component Calculation = { Ports { calculate; getValues; storeValues; } }; Component UserInterface = { Ports { getValues; calculate; } }; // Connectors Connector UserInterfaceToCalculation : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Connector UserInterfaceToDataStore : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 35. Acme Example //Global Types Property Type returnsValueType = bool; Connector Type CallType = { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType; }; System LunarLander = { //Components Component DataStore = { Ports { getValues; storeValues; } }; Component Calculation = { Ports { calculate; getValues; storeValues; } }; Component UserInterface = { Ports { getValues; calculate; } }; // Connectors Connector UserInterfaceToCalculation : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Connector UserInterfaceToDataStore : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Connector CalculationToDataStoreS : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = false; } Connector CalculationToDataStoreG : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Attachments { UserInterface.getValues to UserInterfaceToDataStore.callerRole; UserInterfaceToDataStore.calleeRole to DataStore.getValues; UserInterface.getValues to UserInterfaceToDataStore.callerRole; UserInterfaceToDataStore.calleeRole to DataStore.getValues; UserInterface.calculate to UserInterfaceToCalculation.callerRole; UserInterfaceToCalculation.calleeRole to Calculation.calculate; Calculation.storeValues to CalculationToDataStoreS.callerRole; CalculationToDataStoreS.calleeRole to DataStore.storeValues; Calculation.getValues to CalculationToDataStoreG.callerRole; CalculationToDataStoreG.calleeRole to DataStore.getValues; }; } Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 36. Acme Extensions //Global Types Property Type returnsValueType = bool; Connector Type CallType = { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType; }; System LunarLander = { //Components Component DataStore = { Ports { getValues; storeValues; } }; Component Calculation = { Ports { calculate; getValues; storeValues; } }; Component UserInterface = { Ports { getValues; calculate; } }; // Connectors Connector UserInterfaceToCalculation : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Connector UserInterfaceToDataStore : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Connector CalculationToDataStoreS : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = false; } Connector CalculationToDataStoreG : CallType { Roles { callerRole; calleeRole; }; Property returnsValue : returnsValueType = true; } Attachments { UserInterface.getValues to UserInterfaceToDataStore.callerRole; UserInterfaceToDataStore.calleeRole to DataStore.getValues; UserInterface.getValues to UserInterfaceToDataStore.callerRole; UserInterfaceToDataStore.calleeRole to DataStore.getValues; UserInterface.calculate to UserInterfaceToCalculation.callerRole; UserInterfaceToCalculation.calleeRole to Calculation.calculate; Calculation.storeValues to CalculationToDataStoreS.callerRole; CalculationToDataStoreS.calleeRole to DataStore.storeValues; Calculation.getValues to CalculationToDataStoreG.callerRole; CalculationToDataStoreG.calleeRole to DataStore.getValues; }; } Property Type StoreType = enum { file, relationalDatabase, objectDatabase }; Component DataStore = { Ports { getValues; storeValues; } Property storeType : StoreType = relationalDatabase; Property tableName : String = “LanderTable”; Property numReplicas: int = 0; }; Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. xADL Example <types:component xsi:type=&quot;types:Component&quot; types:id=&quot;myComp&quot;> <types:description xsi:type=&quot;instance:Description&quot;> MyComponent </types:description> <types:interface xsi:type=&quot;types:Interface&quot; types:id=&quot;iface1&quot;> <types:description xsi:type=&quot;instance:Description&quot;> Interface1 </types:description> <types:direction xsi:type=&quot;instance:Direction&quot;> inout </types:direction> </types:interface> </types:component> Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 42. xADL Example <types:component xsi:type=&quot;types:Component&quot; types:id=&quot;myComp&quot;> <types:description xsi:type=&quot;instance:Description&quot;> MyComponent </types:description> <types:interface xsi:type=&quot;types:Interface&quot; types:id=&quot;iface1&quot;> <types:description xsi:type=&quot;instance:Description&quot;> Interface1 </types:description> <types:direction xsi:type=&quot;instance:Direction&quot;> inout </types:direction> </types:interface> </types:component> component{ id = &quot;myComp&quot;; description = &quot;MyComponent&quot;; interface{ id = &quot;iface1&quot;; description = &quot;Interface1&quot;; direction = &quot;inout&quot;; } } Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 43. xADL Example <types:component xsi:type=&quot;types:Component&quot; types:id=&quot;myComp&quot;> <types:description xsi:type=&quot;instance:Description&quot;> MyComponent </types:description> <types:interface xsi:type=&quot;types:Interface&quot; types:id=&quot;iface1&quot;> <types:description xsi:type=&quot;instance:Description&quot;> Interface1 </types:description> <types:direction xsi:type=&quot;instance:Direction&quot;> inout </types:direction> </types:interface> </types:component> component{ id = &quot;myComp&quot;; description = &quot;MyComponent&quot;; interface{ id = &quot;iface1&quot;; description = &quot;Interface1&quot;; direction = &quot;inout&quot;; } } Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 44. xADL Tools Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 45. ArchStudio Environment Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 46. xADL Schemas (Modules) Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 47.
  • 48.
  • 49.