previously on ecoflow …
DESCRIPTION
Previously on EcoFlow …. Presented By: Joe Bolinger 12/3/09. What is EcoFlow ? The Concept. “An innovative decision support tool that helps maximize the financial and societal benefits of industrial ecology – converting waste to profit” - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/1.jpg)
Previously on EcoFlow…
Presented By: Joe Bolinger
12/3/09
![Page 2: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/2.jpg)
What is EcoFlow?The Concept
“An innovative decision support tool that helps maximize the financial and societal benefits of industrial ecology – converting waste to profit”
“Eco-FlowTM is the first software tool that couples visual editing of network structures with real-time mathematical optimization”
![Page 3: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/3.jpg)
What is EcoFlow?The Business Context
EcoFlow is primarily a methodology of analysis developed by OSU’s Center for ResilienceA standard way of modeling industrial ecology
problemsA standard way of engaging multiple industry
partners to do the analysis
Initially a Spreadsheet was used to implement the modeling and analysis
![Page 4: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/4.jpg)
What is EcoFlow?The New Software
EcoFlow Workbench
![Page 5: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/5.jpg)
3: The Architecture
Presented By: Joe Bolinger
12/3/09
![Page 6: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/6.jpg)
Today’s Outline
ArchitectureFor the Design ProcessConceptual Modeling & Multiple Views
As an Output of Design Software Frameworks & Patterns
Our GoalsDemonstrate an Architectural Process Example ArtifactsWatch for “patterns” again
![Page 7: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/7.jpg)
ArchitectureFor the Design Process
2 Important Conceptual Views of an ArchitectureThe Clients’ Conceptual ViewThe Developers’ Conceptual View
As we go try to see how…Analysis of the Clients’ View lead to the design of the
Developers’ ViewAnalysis of the Developers’ View lead to the selection
of technology and implementation patternsThe Process influenced the artifacts
![Page 8: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/8.jpg)
ArchitectureFor the Design Process
The Clients’ Conceptual View
Network Structure
Output:Costs, Flows,
Emissions
Optimization Solver
Database
Graphical
Interface
![Page 9: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/9.jpg)
ArchitectureFor the Design Process
What does this tell us? Important Visualize Model Analyze workflow
This was always emphasized during requirements discussions Network Structure (i.e. data model) very critical
Highly volatile during discussion too
Only Conceptual To date there is no database But there is persistence What’s the difference?
Think of some use cases…. Searching a Network Model for something Searching a set of Network Models for something
Network Structure
Output:Costs, Flows,
Emissions
Optimization Solver
Database
Graphical
Interface
![Page 10: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/10.jpg)
ArchitectureAn Output of Design
The Developers’ Conceptual View
![Page 11: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/11.jpg)
ArchitectureDesigning for Modifiability: Extensibility
Why?
Decouple Visualize Model Analyze workflow
1 2 3
![Page 12: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/12.jpg)
ArchitectureModifiability: Variability & Maintainability
Break network model into 2 parts Same data used in multiple
ways Easier to extend data for
future modeling or analysis needs
Reuse of editor
![Page 13: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/13.jpg)
ArchitectureMultiple Views
![Page 14: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/14.jpg)
ArchitectureLeading to an Implementation
“Generics & Specifics”EcoFlow’s design includes a few Generic Software
Frameworks Such as the 2 Part Model And the Graphical Editor High skill, reuse potential
And lots of Specifics built on the frameworks Such as the actual data model that’s used to define EcoFlow
Models And the behavior of the Graphical Editor & Diagramming tools Lower skill, little reuse
![Page 15: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/15.jpg)
Architecture“Pareto’s Principle”
Eclipse RCP & GEF Framework provide ~80% of what is needed for EcoFlow’s Generic Graphical Editor Framework
Extending Eclipse’s framework to use our 2 Part Model completes the Generic Framework
![Page 16: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/16.jpg)
ArchitectureLeading to an Implementation
In EcoFlow around 20% of the implementation is for building out critical frameworks These are the pieces that lead to the most customer value The *-ilities that are most critical to control
And most of these are minor extensions of other major reusable components Like GEF & the 2 Part Model Pareto Principle again!
The rest of the implementation effort just follows these general patterns Much less skill involved at this point Perfect for rapid prototyping!
Little harder to do when building out the Generics More next time…
![Page 17: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/17.jpg)
ArchitectureRecap
Modeling & Multiple Views Communicate at Different Levels of Detail
Like between Customer & Architect Structural & Behavioral
Communicate Different Kinds of Concerns No examples here 1 person development team
Note use of context diagramming Less use of class, sequence, & other development diagramming
Use of Frameworks An application architecture has just a few major patterns or frameworks
Relative to their use Most application architectures only require a few novel pieces
Recall the trend to integrate (and expand) rather than build from scratch (or re-invent)
![Page 18: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/18.jpg)
Next Time
Design Patterns & Implementation
![Page 19: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/19.jpg)
4: The Software
Presented By: Joe Bolinger
12/3/09
![Page 20: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/20.jpg)
Today’s Outline
ImplementationDesign PatternsA look inside EcoFlowCode examples
Our GoalsDemonstrate Software Design TechniquesWatch for “patterns” again
![Page 21: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/21.jpg)
Design PatternsThe Pattern Approach
Patterns are reusable ‘idioms’ of designUseful at different scopes for various design processes Business/Enterprise Patterns
“Designing a business” Business Development Organizational Patterns
“Designing a team” Project Management Architecture Patterns
“Designing a product or service offering” Analysis & Software Design
Software Design Patterns “Building a piece of a product or service” Software Implementation
![Page 22: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/22.jpg)
Software Design PatternsBackground
Patterns are documented ways of solving common problemsNot like code or specifications!Do not be fooled!
Describe when to use “Forces”
Explain the consequences of useOften appear in groups in a standardized formatPattern “languages”May be domain or industry specific
![Page 23: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/23.jpg)
Software Design PatternsClassical Examples
Some “classical” families of patternsCreational Ex. Factory, Pool, Singleton
Behavioral Ex. Adapter, Decorator, Proxy
Structural Ex. Command, Mediator, Memento, Null/Default Object
Now a real example…
![Page 24: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/24.jpg)
EcoFlow ExampleAdapter Pattern
Adapter is one of the simplest patternsYou’ve probably already used it, now you can talk
about itName: Adapter (Structural Pattern)An adapter is responsible for translating one interface into
another, typically so that incompatible interfaces can be made compatible without changes to the original interfaces.
Adapters are usually small and simple. Compare to a Mediator or Decorator which may add additional behavior.
See the typical structure of this pattern on Wikipedia
![Page 25: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/25.jpg)
EcoFlow ExampleAdapter Pattern
Typical Structure of an AdapterClientAdaptorAdaptee
Image Source: Wikipedia
![Page 26: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/26.jpg)
EclipseWhy an Adapter?
Important “Forces”Eclipse & GEF FrameworksPlug-in Architecture Lots of plug-ins that need to Interoperate Tons of reusable functionality
For example, Zooming, Panning, a Thumbnail View Everything needs a Thumbnail!
How to build an adapter?Use Interfaces? Sometimes…
![Page 27: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/27.jpg)
EclipseAdapter #1
Eclipse’s IAdaptable interfaceThe Adapter is merged with the Adaptee Inside EcoFlow’s “Network Editor”
![Page 28: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/28.jpg)
EclipseAdapter #1
Simple enough…But the editor has to “know” how to adapt itself Sub-classing or using a wrapper class has similar consequences
Okay here, but often a problem…
What if we want to add images to thingsSo that anything can be adapted to an image but
doesn’t need to know it canAn important change in the “forces”Why?
![Page 29: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/29.jpg)
EclipseAdapter #2
Need a “run-time” adapter for thisOne Way to do this is…1. Provide an “Singleton” Adaptor “Factory” that
anyone can use to adapt things.2. Register your image adaptor with that factory that
is responsible for converting things to images.
Looks like…
![Page 30: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/30.jpg)
EclipseAdapter #2
The Adaptor Factory Manager in Eclipse*
The Image Adapter
*Note adapters in Eclipse can be plugged-in and out dynamically. Why might this be important?
![Page 31: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/31.jpg)
Design PatternsRecap
Common language for designLook for patterns everywhereDesign BooksAPI Documentation
Use them as way to document your design Favor reuse or invention unless you have a good reason
They are not solutions, only suggestions
![Page 32: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/32.jpg)
ConclusionA Pattern Approach
We’ve used a pattern approach in this seriesWhy?Can you find a connection?
![Page 33: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/33.jpg)
ConclusionA Pattern Approach
We’ve used a pattern approach in this seriesWhy?Can you find a connection?
How about “Generics & Specifics”?What kind of developers should build the core frameworks?How will using frameworks change your architecture?How might the design of a framework change the design of
a team or vice versa?Check out Conway’s Law…
![Page 34: Previously on EcoFlow …](https://reader035.vdocuments.net/reader035/viewer/2022081420/56815eee550346895dcdabc8/html5/thumbnails/34.jpg)
The End
Thank You!