Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.

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

Design by Contract.
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Chapter 2 – Software Processes
Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Object-Oriented Analysis and Design
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
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.
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Design Patterns.
Lecture 8 Inheritance Richard Gesick. 2 OBJECTIVES How inheritance promotes software reusability. The concepts of base classes and derived classes. To.
CSCI-383 Object-Oriented Programming & Design Lecture 9.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
The Software Product Line Architectures
Interaction Modeling. Introduction (1) Third leg of the modeling tripod. It describes interaction within a system. The class model describes the objects.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Requirements Analysis Visual Modeling] Lab 02 Visual Modeling (from Visual Modeling with Rational Rose and UML) A way of thinking about problems using.
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
COMP106 Assignment 2 Proposal 1. Interface Tasks My new interface design for the University library catalogue will incorporate all of the existing features,
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Enterprise Architecture Enterprise Architecture = a framework or ‘blueprint’ for how the organization achieves the business objectives at hand and in future.
SE: CHAPTER 7 Writing The Program
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Requirements Collection By Dr. Gabriel. Requirements A requirement is any function, constraint, or property that the system must provide, meet, or satisfy.
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Refining the Use Cases 1. How Use Cases Evolve  Early efforts typically define most of the major use cases.  The refining stages complete the process.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CSCE 240 – Intro to Software Engineering Lecture 3.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
Design Patterns: MORE Examples
Fundamentals of Information Systems, Sixth Edition
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 11 Object-Oriented Design
The Systems Engineering Context
Iterative design and prototyping
Chapter 2 – Software Processes
Lecture 22 Inheritance Richard Gesick.
Software Design Lecture : 15.
Interaction Modeling Extracted from textbook:
Requirements Document
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Human Computer Interaction Lecture 14 HCI in Software Process
Presentation transcript:

Banaras Hindu University

A Course on Software Reuse by Design Patterns and Frameworks

by Dr. Manjari Gupta Department of Computer Science Banaras Hindu University

Lecture 9 Framework Documentation Using Hooks

 higher development productivity,  shorter time-to market, and  higher quality,  these benefits are  only gained over time and  require up-front investments. frameworks promises

 users usually need to spend a lot of effort on understanding its  underlying architecture  design principles  on learning how to customize it  significantly reduced with good documentation and training material steep learning curve

 quickly understanding and applying a framework  at least four different categories of frameworks concerning persons  Frameworks developers  Frameworks selectors  Frameworks users (Application developers)  Frameworks maintainers and developers of other frameworks steep learning curve Cont…

 framework documents focus on  What the framework does  How to use it  Design of the framework  approaches proposed to document a framework  providing multiple views of the design,  using exemplars,  using design patterns,  using metapatterns,  using cookbooks,  using hooks and so on. Framework Documentation

 Six view approach  Documenting classes  Documenting relationships Campbell and Islam’s approach

 Concrete implementation for all  Abstract classes  Interaction Exemplars [Gangopadhyay95]

 Very much popular  Using patterns Pattern Language

 Froehlich developed the notion of hooks  Specify how to reuse a framework  Specify how the framework is intended to be used.  Each hotspot tends to have several hooks within it.  A hook is  inheriting from an existing class in the framework,  adapting the interaction of a large number of classes within the framework. Hooks

 The framework builder defines the hooks  help to ensure that changes or extensions integrate smoothly into the design and implementation  provide an alternative and supplementary view to design documentation  show how and where a design can be changed.  is a point in the framework that is meant to be adapted in some way by  selecting options,  filling in parameters or  creating subclasses. HooksCont…

 documents a problem or requirement  provides guidance about how to use the hook and fulfill the requirement.  details the changes to the design that are required,  specify the constraints that must be adhered to and  specify any effects upon the framework that the hook will impose.  Application developer uses the hook to adapt the framework simply by performing all of the changes within the changes section of the hook in the order given. HooksCont…

 specific format made up of several sections  sections detail different aspects of the hook  sections serve as a guide to the people writing the hooks  The format in which hooks are described helps to  organize the information and  make the description more precise and less ambiguous than pure English narrative. Hook Description

 Name  Requirement  Type  Area  Uses  Participants  Changes  Constraints  Comments Hook DescriptionCont…

 two characterization types  the method of adaption  indicates the type of change that the hook uses  Gives an idea of what the hook does  support type  indicates how difficult it may be to use.  can also serve as a basis for locating a desired hook.  the level of support  indicates how much support the hook provides for the adaption  support type indicates how difficult the hook may be to use. Characterizing hooks

 Enabling a feature  Disabling a feature  Replacing a feature  Augmenting a feature  Adding a feature Method of Adaption

 Option  Supported Pattern  Open-ended Level of Support

 provides the most support  A number of pre-built components are provided and the developer simply chooses one or more without requiring extensive knowledge about the framework.  components are chosen to  enable features within the framework or  to replace default components.  describes the options and how the chosen option(s) can be inserted into the framework  black-box approach Option Hook

 single option hook  multi-option  describe the options and how the chosen option(s) can be inserted into the framework.  If none of the choices are suitable  another hook of a different support type may be provided to allow the developer to produce his/her own solution. Option HookCont…

 are selection oriented.  The changes section outlines  how to choose the components  how to incorporate the chosen components into the application.  The constraints section details  how the selected components affect the rest of the framework. Option HookCont…

 predefined method of fulfilling a requirement  but the details of the method are application dependent  filled-in by the application developer  no complete pre-defined components to choose from, but support is provided for the feature through parameters to components.  often enable, augment, remove or replace features. Supported Pattern Hooks

 needs to supply values or parameters to a single class  The parameters themselves may be  base variables, or  methods or  component classes.  Some common tasks may require the collaboration of multiple classes, and may also have application specific details.  The flow of control is already defined within the hook Supported Pattern HooksCont…

 Changes section can include  new subclasses, or  methods to be overridden or specialized, or  parameters to be filled in  the creation of entirely new classes or new operations is generally not allowed.  some behavior of methods may also be included.  The constraints section will give details on  special conditions placed on the parameters or methods  the effects that using the pattern has on the rest of the framework. Supported Pattern HooksCont…

 requires more knowledge about the framework than does using an option hook  developer does not usually  need to worry about unwanted interactions, or  require a deep understanding of the design of the framework. Supported Pattern HooksCont…

 components or parameters for every possible use cannot be provided.  the framework does not provide direct support for the required change, although it may not hinder it either.  used to point to places in the framework that can be changed by a developer to fulfill certain requirements  These changes will be for  adding, replacing, removing or augmenting features within the framework. Open-ended Hooks

 If the requirement fulfilled by the changes may be applicable to more than one application and no hook exists for it  a new open-ended hook can be defined for the framework.  The changes section will often include  the introduction of new classes which are not subclasses,  the introduction of new operations to classes, and  sometimes the removal or replacement of code in addition to what is done in pattern hooks.  includes explicit control flow information to show the new paths of control that the hook introduces. Open-ended HooksCont…

 The constraints section  indicate the effects that using the hook has on the rest of the framework.  The knowledge about the framework required to use open-ended hooks is generally greater than with the other two support types.  the developer has to be more careful about the effects changes will have on the framework. Open-ended HooksCont…

 ways in which the correct hook could be found  the area and type characterization for a hook  requirements section for a specific requirement  each part of the design can be connected to the hooks that extend or modify it  A browser which provides hooks as an alternative view to the design is needed.  The presence of hooks does not preclude the need for other types of documentation.  hooks will never be able to describe all changes that might be made to a framework.  design of the framework would be needed to obtain more information. Finding the correct hook

 Tool support for the use of individual hooks,  Tool support in the area of evolution of frameworks  A browser for finding the most appropriate hook is needed.  It would also be desirable to connect hooks to the design of the framework  The use of individual hooks may be partially automated.  select a hook  the system guide them through the use of it. Future work

 If the hooks provided for the framework are not useful to developers  the framework may not be meeting its intended purpose and needs to be modified or evolved.  A framework might also evolve to incorporate more support for commonly used hooks.  An open-ended hook may evolve into a pattern hook  A pattern hook may evolve into an option hook  In particular, if a number of open-ended hooks are commonly used, then the framework might evolve to incorporate the new features the open-ended hooks provide.