120 likes | 268 Views
CPSC 875. John D. McGregor Time & Abstraction. One way to slice it. dynamic. static. Connections that Use “applies in” f or specific modes. Ports and structures. definitional. Events. operational. properties. And another. dynamic. static. Flows, states a nd events, threads
E N D
CPSC 875 John D. McGregor Time & Abstraction
One way to slice it dynamic static Connections that Use “applies in” for specific modes Ports and structures definitional Events operational properties
And another dynamic static Flows, states and events, threads and properties like latency Ports, structures, Unconditional connections conceptual Conditional connections, Subprograms, etc Actually bound Structures and] resources concrete
Static • Non-executable • Unchanging • Usually the runtime structure is a copy of the static structure • Static allows analysis to determine exact values for properties of the system
Dynamic • Can change during execution • Transitioning from one state to another is a dynamic action during execution • Whether the transition is feasible may change if an “applies to” clause is used • but that transitioning only occurs because a transition was defined during the definitional phase
Definitional • New structures and relationships must be defined before being used • Traditional architectures usually only do new definitions statically but they will do instantiations dynamically • Newer architectures such as the Java runtime use a reflective architecture to create new classes and relationships on the fly
Operational • During the operation of the program • Runtime structures, checks and constraints • The values stored in memory locations are changing • Discoverable services can be added to a product during operation
Conceptual • Data types • Shows form but not specifics • For example, ports can be defined in terms of direction but not the type of data that will pass through • Processes and threads can be partially defined without which specific subprograms will be called
Concrete • Abstract definitions are reified, i.e. transformed, into specific runtime structures • Specific values are given to ports, variables, etc • Multiplicities are resolved for the particular scenario • Structures are mapped to specific memories and processors
Architectures • The service oriented style is a good one to illustrate this with. • The computation performed by a service is defined statically and abstractly • During the execution of a program using the style, a new service implementation can be obtained by asking a registry for the url of the new service. The service is made available and populated with current data
Design Level • In inheritance there are two static, conceptual definitions • Dynamic instantiation of B combines these definitions results in a single concrete object that combines the 2. • There are no dynamic interactions between A and B. There is a static combing of A and B to get AB A AB B
Architecture level • A layered architecture is a static definition in which the concrete members of one layer have a calling relationship with some of the concrete members of a lower level. A C B