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

Slides:



Advertisements
Similar presentations
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Advertisements

Software Reuse and Component-Based Software Engineering
Main issues: • Why is reuse so difficult • How to realize reuse
Software Reuse SEII-Lecture 28
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Basic Concepts in Component-Based Software Engineering
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Building software from reusable components.
Reuse Activities Selecting Design Patterns and Components
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
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Computer Systems & Architecture Lesson Software Product Lines.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
OO Frameworks Department of Computer Science Kent State University.
©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.
CSE301 Harry R. Erwin, PhD University of Sunderland
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
Introduction to Object-oriented programming and software development Lecture 1.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
UNIT – II ARCHITECTING WEB SERVICES. WHAT ARE WEB SERVICES ? Web Services are loosely coupled, contracted components that communicate via XML-based interfaces.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
02/10/2015 Page 1 R. Theeuws Siemens Atea Filename: CBD_ervaring Werkgroep Component Based Developments Ervaring CBD.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems 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.
Service Oriented Architecture (SOA) Dennis Schwarz November 21, 2008.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
IND Architecture Modernization, Deep Space Information Services Architecture (DISA), A Business Case for SOA-Based Modernization Mike Kolar, Integrated.
Precedence Health Care The MAS – SE Gap: Bridging the Divide Michael Georgeff Precedence Health Care & Monash University Autonomous Agents and Multiagent.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Frameworks CompSci 230 S Software Construction.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Enterprise Architecture HOW COMPANIES ARE EXPLOITING INFORMATION TO THROUGH IT.
Software testing techniques Software testing techniques Object-oriented software testing Presentation on the seminar Kaunas University of Technology.
McGraw-Hill/Irwin © 2009 The McGraw-Hill Companies, All Rights Reserved.
GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü GYTE - Bilgisayar Mühendisliği Bölümü AN ARCHITECTURE FOR NEXT GENERATION MIDDLEWARE.
International Telecommunication Union © ITU-T Study Group 17 Integrated Application of SDL Amardeo Sarma NEC Europe Ltd.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
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.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
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.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Chapter 16 – Software Reuse
Design Patterns: MORE Examples
Software Reuse ©Ian Sommerville 2006.
Chapter 16 – Software Reuse
Model-Driven Analysis Frameworks for Embedded Systems
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Component-Based Software Engineering
Why Object-oriented Programming?
Component--based development
Service Oriented Architecture (SOA)
Quality Assurance for Component-Based Software Development
Chapter 16 – Software Reuse
From Use Cases to Implementation
Presentation transcript:

Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components across the software industry Object-oriented (OO) application frameworks are a promising technology for reifying proven software designs and implementations in order to reduce the cost and improve the quality of software A framework is a reusable, ''semi-complete'' application that can be specialized to produce custom applications

Benefits of OO Application The primary benefits of OO application frameworks stem from the –Modularity –Reusability –Extensibility –Inversion of control they provide to developers

Modularity Frameworks enhance modularity by encapsulating volatile implementation details behind stable interfaces Framework modularity helps improve software quality by localizing the impact of design and implementation changes

Reusability The stable interfaces provided by frameworks enhance reusability by defining generic components that can be reapplied to create new applications. Reuse of framework components can yield substantial improvements in programmer productivity, as well as enhance the quality, performance, reliability and interoperability of software

Extensibility A framework enhances extensibility by providing explicit hook methods that allow applications to extend its stable interfaces Hook methods systematically decouple the stable interfaces and behaviors of an application domain from the variations required by instantiations of an application in a particular context

Inversion of control The run-time architecture of a framework is characterized by an inversion of control This architecture enables canonical application processing steps to be customized by event handler objects that are invoked via the framework's reactive dispatching mechanism

Overview of Widely Used Frameworks Early object-oriented frameworks originated in the domain of graphical user interfaces (GUIs) Application developers in more complex domains have traditionally lacked standard ''off-the-shelf'' frameworks Fortunately, the next generation of OO application frameworks are targeting complex business and application domains

Classifying Application Frameworks Scope System infrastructure frameworks Middleware integration frameworks Enterprise application frameworks Techniques used to extend frameworks White-box frameworks Black-box frameworks

System infrastructure frameworks These frameworks simplify the development of portable and efficient system infrastructure System infrastructure frameworks are primarily used internally within a software organization and are not sold to customers directly

Middleware integration frameworks These frameworks are commonly used to integrate distributed applications and components Middleware integration frameworks are designed to enhance the ability of software developers to modularize, reuse, and extend their software infrastructure to work seamlessly in a distributed environment Middleware integration frameworks represent a thriving market, and are rapidly becoming commodities

Enterprise application frameworks These frameworks address broad application domains and are the cornerstone of enterprise business activities Relative to System infrastructure and Middleware integration frameworks, Enterprise frameworks are expensive to develop and/or purchase. However, Enterprise frameworks can provide a substantial return on investment since they support the development of end-user applications and products directly

White-box & Black-box White-box frameworks rely heavily on OO language features like inheritance and dynamic binding to achieve extensibilty (1) inheriting from framework base classes (2) overriding pre-defined hook methods Black-box frameworks support extensibility by defining interfaces for components that can be plugged into the framework via object composition (1) defining components that conform to a particular interface (2) integrating these components into the framework

White-box & Black-box White-box frameworks require application developers to have intimate knowledge of the frameworks' internal structure Black-box frameworks are structured using object composition and delegation rather than inheritance As a result, black-box frameworks are generally easier to use and extend than white-box frameworks. However, black-box frameworks are more difficult to develop

Strengths and weaknesses of Application Frameworks Development effort Learning curve Integratability Maintainability Validation and defect removal Efficiency Lack of standards

Future Trends Reducing framework development effort Greater focus on domain-specific enterprise frameworks Blackbox frameworks Framework documentation Processes for managing framework development Framework economics

The Articles The articles in this theme issue describe how OO application frameworks provide a powerful vehicle for reuse, as well as a way to capture the essence of successful patterns, architectures, components, policies, services, and programming mechanisms