Presentation is loading. Please wait.

Presentation is loading. Please wait.

SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)

Similar presentations


Presentation on theme: "SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)"— Presentation transcript:

1 SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)

2 SERL - Software Engineering Research Labslide2 Software Reuse Software reuse is the process of creating software systems from existing software systems. (Krueger, 1992) n High level languages n Code scavenging n Code components n Design patterns n Object-oriented frameworks n Application generators

3 SERL - Software Engineering Research Labslide3 Object-Oriented Frameworks n The reusable design of a system or subsystem implemented through a set of classes and their collaborations. n Users complete or extend the framework by adding or customizing application specific components to produce an application. Framework Application Components

4 SERL - Software Engineering Research Labslide4 Users and Developers of Frameworks n There are three main roles associated with frameworks: –Framework designers, also called framework developers or framework builders, develop the original framework –Framework users, also called framework clients or application developers, use the framework to develop applications. –Framework maintainers refine and redevelop the framework to fit new requirements.

5 SERL - Software Engineering Research Labslide5 Framework Design n Frameworks differ from applications –the level of abstraction is different as frameworks provide a solution for a family of related problems, rather than a single one. –to accommodate the family of problems, the framework is incomplete, incorporating hot spots and hooks to allow customization n Frameworks must be designed for flexibility, extensibility, completeness and ease of use.

6 SERL - Software Engineering Research Labslide6 HotDraw Overview n A framework for developing structured graphical editors. n Smalltalk version maintained by Ralf Johnson’s group at the University of Illinois.

7 SERL - Software Engineering Research Labslide7 HotDraw Framework Tool Drawing Controller Figure Composite Figure Drawing View Handle Rectangle Figure Arrow Figure Drawing

8 SERL - Software Engineering Research Labslide8 Hot Spots and Hooks n Frozen Spots: capture the commonalties across applications. n Hot Spots: general areas of variability within a framework. n Hooks: specific ways in which a framework can be customized. Tool Drawing Controller Select ToolNew Tool Type

9 SERL - Software Engineering Research Labslide9 RCIM Graphical Display Figure Composite Figure Handle Rectangle Figure Text Figure Drawing RCIM Drawing RCIM Figure Layout Manager

10 SERL - Software Engineering Research Labslide10 Framework Use n A framework is chosen to match the application requirements. n Framework users must learn the framework before they can develop an application from it. n The application design has to conform to the concepts provided by the framework. Users build extensions to the framework. n Multiple frameworks can be used in a single application, but there may be gaps or overlap in the functionality they provide.

11 SERL - Software Engineering Research Labslide11 Learning to Use the Framework n Frameworks can be difficult to learn so a means of lowering the learning curve is needed. –Tutorial sessions can be held to allow the framework builders to show users what can be done with the framework. –Tools can be used to investigate the operation of the framework and to allow the use of the hooks without learning the whole framework. –Documentation can describe the design and intended use of the framework, and provide examples of use.

12 SERL - Software Engineering Research Labslide12 Framework Experience n EAF (Engineering Application Framework) and Prothos (e-commerce framework) - see www.avrasoft.com n CSF - Client Server Framework - see www.cs.ualberta.ca/~garry/framework/ n Sandwich - Personal Proxy Assistant Framework Framework developments we have been involved in:

13 SERL - Software Engineering Research Labslide13 Framework Evolution n Framework evolution might be categorized as anything beyond use as-is and completion. n Refactorings can be used to restructure the framework while preserving its behavior. n Design patterns can be applied to make the framework more flexible. n What happens to applications when frameworks evolve?

14 SERL - Software Engineering Research Labslide14 Framework Benefits n Reusable implementation and design that captures the expertise of developers within a domain. n The framework should have a quality design which will be ‘inherited’ by applications. n Decreased development time. n Reduced maintenance costs from maintaining a common code base.

15 SERL - Software Engineering Research Labslide15 Framework Concerns n Building a framework requires more resources than building a single application. n When a framework evolves, all applications built from the framework are affected. n A complex framework can take a significant amount of time to learn before it can be used effectively. n It isn’t always easy to determine if the framework is compatible with the desired application.

16 SERL - Software Engineering Research Labslide16 Research Issues n What constitutes framework breakage and what are the issues related to evolvability? (Role of design patterns) n How are frameworks most effectively learned? n Creating of tools in support of framework use - in particular HookMaster. n Exploring the use of experience bases in conjunction with framework development, use and evolution. (FrameScan study) n Continuing to build new frameworks to understand the issues better.

17 SERL - Software Engineering Research Labslide17 Conclusion n An object-oriented framework is the reusable design and implementation of a system or subsystem. n Frameworks are meant to help solve a set of related problems through design reuse. n Design patterns are proven solutions to common design problems and can be used to build frameworks.

18 SERL - Software Engineering Research Labslide18 Potential Collaborative Work n “Integration” framework. n Identifying “hotspots” in current customizations => use cases for framework development and evolution n Use of reengineering tools to assist in better understanding of the existing code base. n Process and quality issues??


Download ppt "SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)"

Similar presentations


Ads by Google