Brief Introduction to Object- Oriented Frameworks Kurt Stirewalt.

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

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Object-Oriented Software Development CS 3331 Fall 2009.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Part 1: Introducing User Interface Design Chapter 1: Introduction –Why the User Interface Matters –Computers are Ubiquitous –The Importance of Good User.
Introduction To System Analysis and Design
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Chapter 14 (Web): Object-Oriented Data Modeling
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
Design Patterns CS is not simply about programming
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
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.
Chapter 14: Object-Oriented Data Modeling
Chapter 14: Object-Oriented Data Modeling
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Introduction To System Analysis and design
OO Frameworks Department of Computer Science Kent State University.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
An Object-Oriented Approach to Programming Logic and Design
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Software Design: An Introduction by David Budgen Presented by Shane Marcus EEL 6883 – Spring 2007 Presented by Shane Marcus EEL 6883 – Spring 2007.
Database Management System Prepared by Dr. Ahmed El-Ragal Reviewed & Presented By Mr. Mahmoud Rafeek Alfarra College Of Science & Technology Khan younis.
Unified Modeling Language, Version 2.0
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
CSE 425: Object-Oriented Programming I Object-Oriented Programming A design method as well as a programming paradigm –For example, CRC cards, noun-verb.
R R R More Frameworks Acknowledgements: –K. Stirewalt –R. Johnson, B. Foote –Johnson, Fayad, Schmidt.
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.
CHAPTER 13 (ONLINE): OBJECT-ORIENTED DATA MODELING © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition.
1 The Modular Structure of Complex Systems Presented by: SeyedMasoud Sadjadi and Wei Zhu David L. Parnas, Paul C. Clement, and David M. Weiss ICSE 1984.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Unit 4 Object-Oriented Design Patterns NameStudent Number CAI XIANGHT082182A KYAW THU LINHT082238Y LI PENGFEIHT082220L NAUNG NAUNG LATTHT082195L PLATHOTTAM.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Object-Oriented Data Modeling
Frameworks CompSci 230 S Software Construction.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Introducing Allors Applications, Tools & Platform.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Programmeerimine Delphi keskkonnas MTAT Programmeerimine Delphi keskkonnas MTAT Jelena Zaitseva
Java Beans. Definitions A reusable software component that can be manipulated visually in a ‘builder tool’. (from JavaBean Specification) The JavaBeans.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Introduction (Continued) Design Patterns (I) Lecture Two.
Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Kyung Hee University Class Diagramming Notation OOSD 담당조교 석사과정 이정환.
Basic Characteristics of Object-Oriented Systems
Object Oriented Analysis & Design By Rashid Mahmood.
R R R CSE870: Advanced Software Engineering (Frameworks, Part 2) More Frameworks Acknowledgements: –K. Stirewalt –R. Johnson, B. Foote –Johnson, Fayad,
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
CompSci 280 S Introduction to Software Development
Object-Oriented Modeling
Review: Java GUI Programming
Reusability 11/29/2018© 2006 ITT Educational Services Inc.
CSE870: Advanced Software Engineering (Frameworks, Part 2)
Presentation transcript:

Brief Introduction to Object- Oriented Frameworks Kurt Stirewalt

Overview of talk OO Frameworks: –Definitions and characteristics –Example: Java AWT Issues in framework design: –Usability –Extensibility, efficiency, and maintenance Frameworks and code generation

Object-Oriented Frameworks A.k.a: Object-oriented abstract design: Salient features: –Corpus of (partially implemented) classes –Framework classes expect to collaborate with others –Instantiated by subclassing framework classes and providing or over-riding polymorphic operations Many well-known examples: oModern UI toolkits (e.g., Java AWT, subArctic, MFC). oDistributed computing toolkits (e.g., ACE).

Brief example (and notation) addActionListener(…) ButtonActionListener actionPerformed(…) MyApplicationClass actionPerformed(…)

Frameworks programming model Often: oUser-defined methods invoked by framework code. oFramework plays the role of ``main program''. This inversion of control allows frameworks to serve as extensible code skeletons. User-supplied methods tailor generic framework algorithms for a specific application.

Example: Java AWT Framework

Example instantiation: Online orders AppletButtonTextBoxPanel … OrderEntryAppletStoreFrontDisplay

Overview of talk OO Frameworks: –Definitions and characteristics –Example: Java AWT Issues in framework design: –Usability –Extensibility, efficiency, and maintenance Frameworks and code generation

Issues in framework design Usability: –Some frameworks require more implementation knowledge to use than others –White- vs. black-box distinction Extensibility/maintenance: –Successful frameworks get large and bulky –Monolithic vs. collaboration-stratified frameworks

Framework usability “The AWT[1.0] event model is the son of Satan!” -- Ian Smith, subArctic developer White-box: –Override to customize –Internal structure of classes exposed Black-box: –Configure to customize –Only interfaces exposed

Example: AWT event handling White box (version 1.02) –Every UI component had handleEvent method –To catch events, define subclass and override method Black box (version 1.1) –UI components “fire” events to interested listeners –Objects that implement a listener interface can register for event notification from a UI component Instantiation in 1.1 uses knowledge of an abstract protocol, not UI-component implementation

Black-box evolution of AWT Observe: Can take a long time to migrate a white-box to a black-box framework White-box Black-box AWT v1.0 AWT v1.1JFC/Swing

Why is black-box better? Possible answers: –Maturity of product –Separation of concerns –Better conceptual abstractions –Better understanding of key collaborations Observe: All of these features are important for code generation

Maintenance & Evolution Problem: Framework classes can get bulky –Function of dependencies among the classes –Also backward compatibilty in presence of new features. –But, not all classes communicate with all others! Rather, classes involved in smaller collaborations. –Classes play roles in a collaboration –Role often involves only subset of class’ operations Solution: GenVoca style layering/composition useful for organizing frameworks

Overview of talk OO Frameworks: –Definitions and characteristics –Example: Java AWT Issues in framework design: –Usability –Extensibility, efficiency, and maintenance Frameworks and code generation

Easier to build tool to specialize well-defined classes than to build a general-purpose code generator –[Johnson & Foote’88]. Frameworks provide: – (partial) specification for new components and –template for implementing them UML class/state diagrams good at representing framework classes and behaviors Meridian: Can we automatically instantiate framework classes from UML-model specifications