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

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Map Architecture Frameworks Design Patterns.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”
Object-Oriented Software Development CS 3331 Fall 2009.
Sommerville, I., Software Engineering, Pearson, 9th Ed., 2010.
Software Reuse SEII-Lecture 28
Framework is l Reusable Code, often domain specific (GUI, Net, Web, etc) l expressed as l a set of classes and l the way objects in those classes collaborate.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
2000-Aug-31SPLC1 Talk1/25 Developing Engineered Product Support Applications H. James Hoover, Tony Olekshy, Garry Froehlich, Paul Sorenson Software Engineering.
Object-Oriented Frameworks n Framework: architecture + implementation + hooks. n The framework serves as the basis for many applications. Developers fill.
Software Reuse Building software from reusable components Objectives
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
© Copyright Eliyahu Brutman Programming Techniques Course.
Building software from reusable components.
Chapter 22 Object-Oriented Design
Course Instructor: Aisha Azeem
The Re-engineering and Reuse of Software
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Design Patterns.
Object-oriented Software Engineering with Reuse Contracts Koen De Hondt, Carine Lucas, Kim Mens, Tom Mens, Patrick Steyaert, Roel Wuyts Programming Technology.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
11 C H A P T E R Artificial Intelligence and Expert Systems.
CS 325: Software Engineering March 17, 2015 Applying Patterns (Part A) The Façade Pattern The Adapter Pattern Interfaces & Implementations The Strategy.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
1 Another group of Patterns Architectural Patterns.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
FlexElink Winter presentation 26 February 2002 Flexible linking (and formatting) management software Hector Sanchez Universitat Jaume I Ing. Informatica.
Architectural Design Identifying system components and their interfaces.
11 Object-Oriented DBMS Figure Table 11.4 The Thirteen OODBMS Rules.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
18 April 2005CSci 210 Spring Design Patterns 1 CSci 210.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Frameworks CompSci 230 S Software Construction.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
1 ECE 750 Topic 8 Meta-programming languages, systems, and applications Evolving Object-Oriented Designs with Refactorings – Lance Tokuda and Don Batory.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Design Patterns in Context ©SoftMoore ConsultingSlide 1.
1 Here are some quotations to get an overview of the kinds of issues of interest.
Lecture 21: Component-Based Software Engineering
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
 What to do if you want to build a new house? › Buy a bunch of wood and nails and start immediately. › Or, put some blueprints to follow, and plan of.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
Contents What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Reverse Engineering Tools Reverse.
Subtopics: 1. Frameworks :Reusable systems 2. Design Patterns 1.
Evolution, Architecture, and Metamorphosis By: Brian Foote and Joseph Yoder University of Illinois Presented by: Gleyner Garden.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Complexity Time: 2 Hours.
Chapter 16 – Software Reuse
Software Engineering with Reusable Components
CS310 Software Engineering Lecturer Dr.Doaa Sami
Presentation transcript:

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

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

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

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.

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.

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.

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

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

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

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.

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.

SERL - Software Engineering Research Labslide12 Framework Experience n EAF (Engineering Application Framework) and Prothos (e-commerce framework) - see n CSF - Client Server Framework - see n Sandwich - Personal Proxy Assistant Framework Framework developments we have been involved in:

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?

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.

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.

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.

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.

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??