Design for Ease in Contraction and Extension

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Designing Software for Ease of Extension and Contraction
Ch4: Software Architecture and Design. 1 What is a design?
Design Patterns CS is not simply about programming
R R R Program Families CSE870 Discussion April 14, 2003.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Design Patterns Module Name - Object Oriented Modeling By Archana Munnangi S R Kumar Utkarsh Batwal ( ) ( ) ( )
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Chapter 22 Object-Oriented Design
Designing Software for Ease of Extension and Contraction Presented by William Greenwell February 27, 2002.
CS 325: Software Engineering March 17, 2015 Applying Patterns (Part A) The Façade Pattern The Adapter Pattern Interfaces & Implementations The Strategy.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
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.
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
Software Design Process
Behavioral Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
Lecture 18: Object-Oriented Design
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Design. Practices Principles Patterns What are the characteristics of good design? What are good solutions to common design problems? How do we go about.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Process 4 Hours.
Chapter 2 Object-Oriented Paradigm Overview
Examples (D. Schmidt et al)
ITIL: Service Transition
Software Design.
Design Patterns: MORE Examples
Strategic Capacity Management
The Movement To Objects
Systems Analysis and Design
The Development Process of Web Applications
Chapter 5:Design Patterns
GoF Patterns (GoF) popo.
Systems Analysis and Design With UML 2
Introduction to Design Patterns
Lecture 9- Design Concepts and Principles
Software Design and Architecture
Systems Analysis and Design With UML 2
object oriented Principles of software design
Designing Software for Ease of Extension and Contraction
The Object Oriented Approach to Design
Inheritance B.Ramamurthy 11/7/2018 B.Ramamurthy.
Database Management System (DBMS)
Chapter 19: Interfaces and Components
CSE 303 – Software Design and Architecture
Component-Level Design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Engineering Lecture #8.
Informatics 122 Software Design II
Object-Oriented Design
Software Architecture
Lecture 9- Design Concepts and Principles
Chapter 5 Architectural Design.
Chapter 0 : Introduction to Object Oriented Design
An Introduction to Software Architecture
Chapter 19: Interfaces and Components
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Strategy and Template Method Patterns, Single User Protection
Structural Patterns: Adapter and Bridge
Informatics 122 Software Design II
Chapter 2. Problem Solving and Software Engineering
Chapter 8, Design Patterns Introduction
Terms: Data: Database: Database Management System: INTRODUCTION
Dependency Inversion principle
Chapter 6: Architectural Design
Chapter 8 - Design Strategies
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Computer Science 210 Computer Organization
Presentation transcript:

Design for Ease in Contraction and Extension CSE870 Discussion April 16, 2003

Key Ideas Design for change Maintainability Identified characteristics of “non-adaptable” programs Undesirable properties Distributing related information over numerous programs Chaining of data transformations Designing multi-function components Circular-uses Subset: Smallest useful collection of functions High cohesion among the functions

Key Ideas (cont’d) Uses hierarchy: Virtual Machines: Degree in which one program uses other programs Levels: 0: programs that do NOT use any other programs Single-purpose programs I: programs that use at least one program at (I-1) level, not above I-1. Multi-purpose Virtual Machines: SW abstraction/instructions for instructions provided by the HW. May have several layers of abstractions that can be customized for specific applications

Key Ideas (cont’d) General vs Specific General: Specific: SW could work without modification Not as much concern for designing for flexibility Run-time costs: customization can be expensive Specific: Solution to specific problem SW footprint can be reduced because it does not contain extraneous functionality Program can be more efficient Narrow focus of program

Key Ideas (cont’d) Flexible design: Information Hiding: Takes specific approach Provide general services with WELL-DEFINED interfaces Have specific implementations for these services that are kept ``secret’’ Information Hiding: Implementation details of modules (or functions within modules)

Comparison to Program Families Extension/Contraction paper gives specific techniques for how to build program families

Impact on Modern Technology Frameworks: Possible relationship to Graybox (have ability to extend) while adhering closely to superclass interfaces

Impact on Modern Tech (cont’d) Design Patterns: Iterator (operations can be indep of data type) Model View Controller Bridge: decouples the abstract services from its implementation Strategy pattern: Add strategies Decouple interface for a strategy’s purpose from the specific algorithm. Factory Pattern: Composes the abstract components that can then be realized by concrete components Chain of responsibility: Each unit should have minimal functionality that can then be extended to provide additional capabilities.

Impact on Modern Day Tech (cont’d) Distinguishes specification from implementation Specification: Implementation: Later clarified by Lamport, Lynch, Abadi Potential impact on Aspect-Oriented Programming Advocate collection of like-purpose functionalities into single module Interdependence with compiler (def-use) and Russell and Whitehead’s mathematical formulation for set theory (early 19XX’s)