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

Software Requirements
Main issues: • Why is reuse so difficult • How to realize reuse
Ch 3: Unified Process CSCI 4320: Software Engineering.
Object-Oriented Software Development CS 3331 Fall 2009.
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
The Architecture Design Process
Software Requirements
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Software Requirements
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
© Copyright Eliyahu Brutman Programming Techniques Course.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
CLEANROOM SOFTWARE ENGINEERING.
CSE 303 – Software Design and Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
1 Object orientation. 2 What benefits does OO give? Primarily –Encapsulation (Associates data & operations) –Types & specialisation –Software re-use.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
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.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Software Design Process
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Software Prototyping Rapid software development to validate requirements.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
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.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CS223: Software Engineering Lecture 32: Software Maintenance.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Design Patterns: MORE Examples
Software Prototyping.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Introduction to Design Patterns
The Systems Engineering Context
Complexity Time: 2 Hours.
Software Processes.
Chapter 2 – Software Processes
Software life cycle models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 5 Architectural Design.
From Use Cases to Implementation
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 14 Problems in OO Frameworks

 Domain analysis  Architectural design  framework design  Framework implementation  Framework testing  test application generation  application testing  Documentation Framework Development

Framework Development Problems

 determining the right size of the domain.  if the domain is too large,  the development team has not enough experience from the enlarged domain.  the usefulness and applicability of a large domain framework is not clear.  the (financial) investment in a large framework may be so high  the intended reuse benefits cannot be achieved in reasonable time.  if the domain is too small  the resulting framework tends to be sensitive to domain changes. Domain scope

 future is unpredictable, it is very difficult to set clear boundaries for the framework.  it is a very natural, human tendency to increase the size of the framework during (especially early) design Domain Analysis

 to communicate the information about the framework design and other related information  to transfer information on how to use the framework  the documentation is usually  ad-hoc, making it hard to understand and compare.  framework documentation should contain  the purpose of the framework,  information on how to use the framework,  the purpose of the application examples and the actual design of the framework. Framework documentation

 need for the user to understand the underlying principles or basic architecture of the framework.  cardinality of framework objects,  creation and destruction of static and dynamic framework objects,  instantiation order,  synchronization and performance issues.  how to convey this information in a concise form to the framework user? Framework documentation Cont…

 cookbook approach,  meta-patterns approach  framework description language (FDL) Framework documentation Cont…

 technological perspective  business perspective  no reliable business models for framework development exist.  Need for reuse business models that satisfy all relevant requirements Business models

 Framework design introduces some new concepts  During development of the framework an architecture must be selected or developed  The architecture must provide solutions to problems in the domain without blocking possible variations or different solutions to other domain problems  parts of the framework should be designed as a sub- framework or if everything as a single monolithic framework.  inter-operability requirements need to be established Framework development methods

 existing object oriented design methods most often only support  inheritance, aggregation and associations  more emphasis is needed for  abstract classes, dynamic binding, type parametrization, hot-spots and pre- and post- conditions. Framework development methods Cont…

 The practice is to develop test applications using the framework and test the resulting application  versatility of the framework can not be tested by only one application  Testing the framework for errors using traditional methods will not work for the whole framework  testing of abstract implementations, such as abstract base classes Verifying abstract behaviour

 Defining and ensuring release criteria for the framework  The problem of determining the stability within the domain is a two-fold problem.  the domain is not stable in itself, but evolves constantly  domain scope and boundaries  Deciding whether the framework is sufficiently well documented is hard Framework release problem

 outline of how a framework is used  Requirements analysis  architecture for the application is defined  one or more frameworks are selected  application-specific increments  ASIs to be designed and implemented  ASIs to be tested  Verification and testing of complete application Framework Usage

Framework Usage Problems

 the current state of the art in framework-based application development is in the ad-hoc state  The traditional approach for a development process is to start with a specification  it is much more difficult to explicitly write such a specification.  For e.g. specification of the new classes that must be implemented and the classes that requires adaptation by subclassing Managing the development process

 difficulty is to understand the intended domain of the framework and its applicability  the question of domain can be rather complex and contains several dimensions.  functional boundaries of the domain  underlying hardware architecture  Interoperatability  non-functional aspects Applicability of the framework

 problem of using frameworks compared to traditional application development  traditional estimations techniques based on number of produced lines of code is inadequate  sensitivity of estimates of the amount of work required for a specific application  it can be difficult to foresee if a specific requirement is completely supported by the framework. Estimations of the increment

 it is necessary to understand the concepts and architectural style of the framework  evaluating the applicability of a framework and  the amount of required adaptation, and  how the adaptation can be carried out  For e.g. concurrency strategies adopted by the framework  how to obtain this information from framework documentation is another problem  An alternative avoiding the understanding approach is to explicitly specify the constraints that the framework put on the application. Understanding the framework

 For large scale applications, it is advisable that the increment is locally certifiable  based on a specification of what requirements the increment needs to fulfil.  two aspects of verification  functional verification  verification that the increment conforms to the architectural style and design rules imposed by the framework. Verification of the application specific increment

 Traditional debuggers have problems when debugging programs using libraries.  Using single step methods is impossible, and library calls must be skipped in some way.  Frameworks, and especially black-box frameworks, have the same problem as libraries.  One solution approach is to exactly define the interface between the framework and the increment as pre- and post-conditions or behavioural interaction constraints Debugging the application

 a framework that is to be reused needs to be composed with other frameworks or with reusable legacy components.  Composing frameworks, however, may lead to a number of problems  frameworks generally are designed based on the traditional perspective where the framework is in full control Framework Composition