polymorphic system architecture by jeff bryson software engineer staff lockheed martin simulation,...
Post on 27-Mar-2015
222 Views
Preview:
TRANSCRIPT
Polymorphic System Architecture
By Jeff BrysonSoftware Engineer Staff
Lockheed Martin Simulation, Training, & Support
04/10/23 1Lockheed Martin Simulation, Training, & Supportjeffery.e.bryson@lmco.com
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 jeffery.e.bryson@lmco.com
PSA Definitions
04/10/23 3Lockheed Martin Simulation, Training, & Support jeffery.e.bryson@lmco.com
• 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
jeffery.e.bryson@lmco.com
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 jeffery.e.bryson@lmco.com 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 jeffery.e.bryson@lmco.com
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 jeffery.e.bryson@lmco.com
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
jeffery.e.bryson@lmco.com
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 jeffery.e.bryson@lmco.com
How do we apply polymorphic behavior
• Polymorphic LogicanObject = valueEach enum = a derived
classanObject.doSomething();
04/10/23 Lockheed Martin Simulation, Training, & Support jeffery.e.bryson@lmco.com 10
• Structured LogicCase value is when red => doSomething();when blue => doSomethingElse();when green => doAnotherthing();end case;
Questions
• ?
04/10/23 Lockheed Martin Simulation, Training, & Support jeffery.e.bryson@lmco.com 11
top related