Polymorphic System Architecture By Jeff Bryson Software Engineer Staff Lockheed Martin Simulation,...
-
Upload
gabrielle-boyle -
Category
Documents
-
view
221 -
download
3
Transcript of Polymorphic System Architecture By Jeff Bryson Software Engineer Staff Lockheed Martin Simulation,...
Polymorphic System Architecture
By Jeff BrysonSoftware Engineer Staff
Lockheed Martin Simulation, Training, & Support
04/10/23 1Lockheed Martin Simulation, Training, & [email protected]
Polymorphic System Architecture
• Definitions• Polymorphic Requirements• Polymorphic Measurements• Polymorphic System Architecture– Strategy Design Pattern– Composite Design Pattern
• Value added• How do you know when to apply
04/10/23 2Lockheed Martin Simulation, Training, & Support [email protected]
PSA Definitions
04/10/23 3Lockheed Martin Simulation, Training, & Support [email protected]
• Containment• Encapsulation• Type• Class• Object• Memory Pointer (GOTO)• Object Reference• Aggregation and Composition• Inheritance• Polymorphism• Abstraction
– Polymorphic Servers– Polymorphic Clients
Polymorphic Requirements• Dynamic Reconfiguration of System
Functionality• Plug-N-Fight• Extendibility• System Redundancy• System Reuse– While encapsulation and inheritance give you
behavior (code) reuse, abstraction gives you control (code) reuse.
• Systems of Systems04/10/23 4Lockheed Martin Simulation, Training, & Support
Polymorphic Mediator
• Software Middleware– CORBA– Web Services
• Non-Software behavior– Call Center– Still requires a well defined abstract interface.
04/10/23 Lockheed Martin Simulation, Training, & Support [email protected] 5
Polymorphic Measurements
• The # of components (or objects) that will contain references to abstract interfaces in the system (Aggregations).– This will identify how many objects that will be
polymorphic clients (or controllers of the building blocks).
• The # of components (or objects) that are derived (or instantiated) based on an abstract interface.– This will identify how many objects will be
polymorphic servers (or building blocks)
04/10/23 6Lockheed Martin Simulation, Training, & Support [email protected]
Strategy Design Pattern• In software, Run-Time Polymorphism is
dependent on creating ‘Abstract’ interfaces• Both the classes/types and
objects/components need to be illustrated
04/10/23 7Lockheed Martin Simulation, Training, & Support [email protected]
Composite Design Pattern• The strategy pattern does have one drawback. It
defines a single point of control• The Composite pattern extends the Strategy
pattern by defining the “StrategyUser” as one of the strategy behaviors
04/10/23 8Lockheed Martin Simulation, Training, & Support
Value Added• Reusable System Designs– As problems get more complex not only is there a
need to reuse software but there is a need to reuse SE artifacts.
• Extendibility– Abstraction allows new building blocks to be
added to the system.• Dynamic reconfiguration• Satisfy Requirements with the System
Architecture
04/10/23 9Lockheed Martin Simulation, Training, & Support [email protected]
How do we apply polymorphic behavior
• Polymorphic LogicanObject = valueEach enum = a derived
classanObject.doSomething();
04/10/23 Lockheed Martin Simulation, Training, & Support [email protected] 10
• Structured LogicCase value is when red => doSomething();when blue => doSomethingElse();when green => doAnotherthing();end case;