Evolution, Architecture, and Metamorphosis By: Brian Foote and Joseph Yoder University of Illinois Presented by: Gleyner Garden.

Slides:



Advertisements
Similar presentations
Accelerating The Application Lifecycle. DEPLOY DEFINE DESIGN TEST DEVELOP CHANGE MANAGEMENT Application Lifecycle Management #1 in Java Meta, Giga, Gartner.
Advertisements

Design Patterns.
Halliburton Makes Oil Exploration Safer Using MATLAB and Neural Networks MATLAB® and Neural Networks MathWorks Products Used: MATLAB Compiler MATLAB Neural.
Building Bug-Free O-O Software: An Introduction to Design By Contract A presentation about Design By Contract and the Eiffel software development tool.
Functional and non-functional requirements for building Service-oriented assessment model Adelina Aleksieva-Petrova Milen Petrov 5th TENCompetence Open.
Presentation by Priyanka Sawarkar
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp Presented by: Gleyner Garden EEL6883 Software Engineering II.
SRDC Ltd. 1. Problem  Solutions  Various standardization efforts ◦ Document models addressing a broad range of requirements vs Industry Specific Document.
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
T-FLEX DOCs PLM, Document and Workflow Management.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition.
Page 1 Building Reliable Component-based Systems Chapter 19 - Industrial Experience with Dassault Système Component Model Chapter 19 Industrial Experience.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
© M.E. Fayad SJSU -- CmpE Analysis Heuristics Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
The chapter will address the following questions:
Semantic Web. Course Content
Design patterns. What is a design pattern? Christopher Alexander: «The pattern describes a problem which again and again occurs in the work, as well as.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Se Over the past decade, there has been an increased interest in providing new environments for teaching children about computer programming. This has.
Abstract Factory Design Pattern making abstract things.
ISP666 MVC & Design Patterns. Outline Review Event Programming Model Model-View-Controller Revisit Simple Calculator Break Design Patterns Exercise.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Lecture 3 Software Engineering Models (Cont.)
CPSC 871 John D. McGregor Module 6 Session 3 System of Systems.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Pattern Hatching - John Vlissides Pages 85 – 101 Todd Anderson
1 International Technology University CEN 951 Computer Architecture Lecture 1 - Introduction.
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.
Design Patterns -- Omkar. Introduction  When do we use design patterns  Uses of design patterns  Classification of design patterns  Creational design.
Introduction to Design Patterns. Questions What is a design pattern? Who needs design patterns? How different are classes and objects in APL compared.
Intelligent Agent Framework1 From Chapter 7 of Constructing Intelligent Agents with Java.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
L3-S1Analysis Heuristics 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
A Method for Improving Code Reuse System Prasanthi.S.
Modern Systems Analysis and Design Third Edition
PLM, Document and Workflow Management
The Development Process of Web Applications
Software Life Cycle “What happens in the ‘life’ of software”
Modern Systems Analysis and Design Third Edition
Mastering UML with Rational Rose 2002
Introduction to Eclipse Process Framework: EPF Composer and OpenUP
Component Based Software Engineering
Software Processes.
Chapter 4 Automated Tools for Systems Development
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Software Design Lecture : 15.
Software Design Lecture : 14.
CS 350 – Software Design Principles and Strategies – Chapter 14
Chapter 8 Software Evolution.
Applying Use Cases (Chapters 25,26)
A (partial) blueprint for dealing with change
FRAMEWORKS AND REUSE What is “Framework”?
Modern Systems Analysis and Design Third Edition
Designing Scalable Architectures
Presentation transcript:

Evolution, Architecture, and Metamorphosis By: Brian Foote and Joseph Yoder University of Illinois Presented by: Gleyner Garden

About the Authors ► Both involved in researching object oriented programming especially when it comes to design and reuse at the University of Illinois ► Collaborated on this paper to explore new approaches to software development for Caterpillar

Introduction ► Design Pattern definition ► Software Tectonics ► Flexible Foundations ► Metamorphosis

Design Patterns ► According to Object Oriented and Classical Software Engineering, a pattern is a “solution to a general design problem in the form of a set of interacting classes that have to be customized to create a specific design” ► Also can be seen as a partial solution to a common problem

Widget Generator ► Tool that uses the set of classes created by the widget generator

Abstract Factory Pattern ► Abstract classes and abstract (virtual) methods ► The interfaces between client and program and generator are abstract ► The application program is uncoupled from the specific operating system

Patterns and Reusability ► If a design pattern is reused, then an implementation of that pattern probably can also be reused. ► Motivation for reusability: $$$ ► Example: GTE Data services implemented a successful scheme which saved the company $10 million in 5 years

Back to our Paper ► Foote and Yoder wanted to bring this sort of success to the Caterpillar corporation ► By doing so would allow Caterpillar to confront rapid change; “Software that cannot adapt as requirements change will perish”

Software Tectonics ► A high-level pattern which fulfills the need to deal with steady and unrelenting change over a long period of time ► Name derived by analogy of the benefits of many small earthquakes removing stress over a period of time as opposed to a sudden catastrophic one ► Gives the ability to tailor a system to meet individual needs by adapting to change as requirements change in a series of small, controlled steps ► By making a system tailorable, it greatly increases its reuse potential

Examples of Software Tectonics ► Customizable desktops ► Short-cut creation ► Modification of existing abstract classes to meet needs

Flexible Foundations ► Used to resolve some of the forces unleashed by the first by showing how to construct systems that can cope with change ► Name derived again from earthquake analogy ► Allows for selective exposure of the internal architecture of the system so that the elements of this architecture can serve as basis for changes and extensions (substructure, not source code) ► A flexible system that can easily be changed by its developers which will allow for fulfillments of new unexpected needs

Example of Flexible Foundations ► Dupont Model ► graphical model of a view of Profit/Loss statements for businesses. It provides a quick way for managers and accountants to view their return on assets ► A common interface widget that is used many times. By adding a "DuPont widget" to the visual builder with methods for the automatic generation of related code, the developer can quickly tailor different DuPont models to meet the needs of different users

Metamorphosis ► Helps to resolve the forces that arise in evolving systems by providing a means by which a system's behavior can be augmented without changing its primary interface. ► Previous design pattern allows users to add features, this one allows them to change features ► Further extends the life of software

Analogy of Metamorphosis ► There are two ways to change what happens on-stage during a play. The most direct way is to change the script, but you can also change the actors: Jim Carey VS. Anthony Hopkins ► If one wants to change the way a program works, one could change its code or data directly, or change the way that some underlying element of the system on which the application depends works ► Example: extensions to existing tools can be incorporated in the menus for other tools. Instead of creating a whole new tool you can adds capabilities to the existing tool. In order to do this, the tool's menus must be designed using a metamorphosis pattern

Evolution, Architecture, and Metamorphosis ► To be successful, software has to be able to rapidly adapt to changing conditions and requirements. To cope with this fact, software researchers and developers must find new ways to confront the need for continual evolution. ► Software must be designed so that it can change with the requirements that drive its evolution ► These design patterns when used with object oriented programs will allow for change and in doing so, will decrease maintenance and increase the lifespan of a software product

Conclusion by SW Author Brian Cox “Software is not at all like wood or steel. Its paint does not chip and it does not rust or rot. Software does not need dusting, waxing, or cleaning. It often does have faults that do need attention, but this is not maintenance, but repair. Repair is fixing something that has been broken by tinkering with it or something that has been broken all along. Conversely, as the environment around software changes, energy must be expended to keep it current. This is not maintenance; holding steady to prevent decline. Evolution is changing to move ahead.”

Questions/Comments ?