polymorphic system architecture by jeff bryson software engineer staff lockheed martin simulation,...

Post on 27-Mar-2015

222 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

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