SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson...
-
Upload
george-cox -
Category
Documents
-
view
217 -
download
4
Transcript of SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson...
SERL - Software Engineering Research Lab
slide1
Frameworks and HooksFrameworks and Hooksby
Garry FroehlichPaul Sorenson
SERL (Software Engineering Research Lab)
SERL - Software Engineering Research Lab
slide2
Software ReuseSoftware Reuse
Software reuse is the process of creating Software reuse is the process of creating software systems from existing software software systems from existing software systems. (Krueger, 1992)systems. (Krueger, 1992)
High level languagesHigh level languages Code scavengingCode scavenging Code componentsCode components Design patternsDesign patterns Object-oriented frameworksObject-oriented frameworks Application generatorsApplication generators
SERL - Software Engineering Research Lab
slide3
Object-Oriented Object-Oriented FrameworksFrameworks
The reusable design of The reusable design of a system or subsystem a system or subsystem implemented through implemented through a set of classes and a set of classes and their collaborations.their collaborations.
Users complete or Users complete or extend the framework extend the framework by adding or by adding or customizing customizing application specific application specific components to components to produce an application.produce an application.
Framework
ApplicationComponents
SERL - Software Engineering Research Lab
slide4
Users and Developers of Users and Developers of FrameworksFrameworks
There are three main roles associated There are three main roles associated with frameworks:with frameworks:– Framework designersFramework designers, also called framework , also called framework
developers or framework builders, develop developers or framework builders, develop the original frameworkthe original framework
– Framework usersFramework users, also called framework , also called framework clients or application developers, use the clients or application developers, use the framework to develop applications.framework to develop applications.
– Framework maintainersFramework maintainers refine and redevelop refine and redevelop the framework to fit new requirements.the framework to fit new requirements.
SERL - Software Engineering Research Lab
slide5
Framework DesignFramework Design
Frameworks differ from applicationsFrameworks differ from applications– the the level of abstractionlevel of abstraction is different as is different as
frameworks provide a solution for a family of frameworks provide a solution for a family of related problems, rather than a single one.related problems, rather than a single one.
– to accommodate the family of problems, the to accommodate the family of problems, the framework is framework is incompleteincomplete, incorporating , incorporating hot hot spotsspots and and hookshooks to allow customization to allow customization
Frameworks must be designed for Frameworks must be designed for flexibility, extensibility, completeness flexibility, extensibility, completeness and ease of use.and ease of use.
SERL - Software Engineering Research Lab
slide6
HotDraw OverviewHotDraw Overview
A framework for A framework for developing structured developing structured graphical editors.graphical editors.
Smalltalk version Smalltalk version maintained by Ralf maintained by Ralf Johnson’s group at Johnson’s group at the University of the University of Illinois.Illinois.
SERL - Software Engineering Research Lab
slide7
HotDraw FrameworkHotDraw Framework
ToolDrawing
Controller
Figure
CompositeFigure
Drawing View
HandleRectangleFigure
ArrowFigure
Drawing
SERL - Software Engineering Research Lab
slide8
Hot Spots and HooksHot Spots and Hooks Frozen SpotsFrozen Spots: :
capture the capture the commonalties across commonalties across applications.applications.
Hot SpotsHot Spots: general : general areas of variability areas of variability within a framework.within a framework.
HooksHooks: specific ways : specific ways in which a framework in which a framework can be customized.can be customized.
Tool
DrawingController
Select Tool New ToolNew Tool
Type
SERL - Software Engineering Research Lab
slide9
RCIM Graphical DisplayRCIM Graphical Display
Figure
CompositeFigure
HandleRectangleFigure
TextFigure
Drawing
RCIMDrawing
RCIMFigure
LayoutManager
SERL - Software Engineering Research Lab
slide10
Framework UseFramework Use A framework is chosen to match the A framework is chosen to match the
application requirements.application requirements. Framework users must Framework users must learnlearn the framework the framework
before they can develop an application from before they can develop an application from it.it.
The application design has to The application design has to conformconform to the to the concepts provided by the framework. Users concepts provided by the framework. Users build extensions to the framework.build extensions to the framework.
Multiple frameworks can be used in a single Multiple frameworks can be used in a single application, but there may be application, but there may be gapsgaps or or overlapoverlap in the functionality they provide.in the functionality they provide.
SERL - Software Engineering Research Lab
slide11
Learning to Use the Learning to Use the FrameworkFramework
Frameworks can be difficult to learn so a means Frameworks can be difficult to learn so a means of lowering the learning curve is needed.of lowering the learning curve is needed.– Tutorial sessionsTutorial sessions can be held to allow the framework can be held to allow the framework
builders to show users what can be done with the builders to show users what can be done with the framework.framework.
– ToolsTools can be used to investigate the operation of the can be used to investigate the operation of the framework and to allow the use of the hooks without framework and to allow the use of the hooks without learning the whole framework.learning the whole framework.
– DocumentationDocumentation can describe the design and can describe the design and intended use of the framework, and provide intended use of the framework, and provide examples of use.examples of use.
SERL - Software Engineering Research Lab
slide12
Framework ExperienceFramework Experience
EAF (Engineering Application Framework)EAF (Engineering Application Framework)and Prothos (e-commerce framework)and Prothos (e-commerce framework)- see - see www.avrasoft.comwww.avrasoft.com
CSF - Client Server FrameworkCSF - Client Server Framework - - see see www.cs.ualberta.ca/~garry/framework/www.cs.ualberta.ca/~garry/framework/
Sandwich - Personal Proxy Assistant Framework Sandwich - Personal Proxy Assistant Framework
Framework developments we have been involved in:
SERL - Software Engineering Research Lab
slide13
Framework EvolutionFramework Evolution
Framework evolution might be categorized Framework evolution might be categorized as anything beyond as anything beyond use as-isuse as-is and and completioncompletion..
Refactorings can be used to restructure the Refactorings can be used to restructure the framework while preserving its behavior.framework while preserving its behavior.
Design patterns can be applied to make the Design patterns can be applied to make the framework more flexible.framework more flexible.
What happens to applications when What happens to applications when frameworks evolve?frameworks evolve?
SERL - Software Engineering Research Lab
slide14
Framework BenefitsFramework Benefits
Reusable implementation and design Reusable implementation and design that captures the expertise of that captures the expertise of developers within a domain.developers within a domain.
The framework should have a quality The framework should have a quality design which will be ‘inherited’ by design which will be ‘inherited’ by applications.applications.
Decreased development time.Decreased development time. Reduced maintenance costs from Reduced maintenance costs from
maintaining a common code base.maintaining a common code base.
SERL - Software Engineering Research Lab
slide15
Framework ConcernsFramework Concerns Building a framework requires Building a framework requires more more
resourcesresources than building a single application. than building a single application. When a framework evolves, all applications When a framework evolves, all applications
built from the framework are built from the framework are affectedaffected.. A complex framework can take a significant A complex framework can take a significant
amount of amount of time to learntime to learn before it can be used before it can be used effectively.effectively.
It isn’t always easy to determine if the It isn’t always easy to determine if the framework is framework is compatiblecompatible with the desired with the desired application.application.
SERL - Software Engineering Research Lab
slide16
Research IssuesResearch Issues What constitutes framework What constitutes framework breakagebreakage and what and what
are the issues related to are the issues related to evolvabilityevolvability? (Role of ? (Role of design patterns)design patterns)
How are frameworks most effectively learned?How are frameworks most effectively learned? Creating of tools in support of framework use - in Creating of tools in support of framework use - in
particular particular HookMasterHookMaster.. Exploring the use of Exploring the use of experience basesexperience bases in in
conjunction with framework development, use and conjunction with framework development, use and evolution. evolution. (FrameScan study)(FrameScan study)
Continuing to build new frameworks to understand Continuing to build new frameworks to understand the issues better.the issues better.
SERL - Software Engineering Research Lab
slide17
ConclusionConclusion
An object-oriented framework is the An object-oriented framework is the reusable design and implementation of reusable design and implementation of a system or subsystem.a system or subsystem.
Frameworks are meant to help solve a Frameworks are meant to help solve a set of related problems through set of related problems through design design reusereuse..
Design patterns are proven solutions to Design patterns are proven solutions to common design problems and can be common design problems and can be used to build frameworks.used to build frameworks.
SERL - Software Engineering Research Lab
slide18
Potential Collaborative Potential Collaborative WorkWork
““Integration” framework.Integration” framework. Identifying “hotspots” in current Identifying “hotspots” in current
customizations => use cases for customizations => use cases for framework development and evolutionframework development and evolution
Use of reengineering tools to assist in Use of reengineering tools to assist in better understanding of the existing better understanding of the existing code base.code base.
Process and quality issues??Process and quality issues??