Extending Interface Based Design

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 13 Design Concepts and Principles
Unit 7 Generic Interfaces and Encapsulation, a Class in the Middle Kirk Scott.
Jeremy Wells
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
Concepts of Systems Theory
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Object-Oriented Enterprise Application Development J2EE Blueprints.
ECE 355 Design Patterns Tutorial Part 2 (based on slides by Ali Razavi) Presented by Igor Ivković
Chapter 3.4 Programming Fundamentals. 2 Data Structures Arrays – Elements are adjacent in memory (great cache consistency) – They never grow or get reallocated.
Logical Architecture and UML Package Diagrams
Pattern Abstract Factory
Dependency Injection and Model-View-Controller. Overview Inversion of Control Model-View-Controller.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
CSE 303 – Software Design and Architecture
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
Case Studies on Design Patterns Design Refinements Examples.
SOFTWARE DESIGN AND ARCHITECTURE
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Abstract Factory Design Pattern making abstract things.
Partitioning and Layering Fundamentals. The Basic Problem Change is a fact of life RequirementsTechnologies Bug Fixes Software Must Adapt.
SOFTWARE DESIGN.
 How are you going to collaborate?  How are you going to divide up work?  How are you going to make sure that changes work with other people’s code?
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
Object-Oriented Design Principles and Patterns. © 2005, James R. Vallino2 How Do You Design? What principles guide you when you create a design? What.
Strategy Design Patterns CS 590L - Sushil Puradkar.
Real Time Systems Modeling Structure in UML (Part I)
Design Concepts and Principles Instructor: Dr. Jerry Gao.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Domain and Persistence Patterns. Fundamental Pattern Types Design Patterns Business Logic Patterns.
Refactoring for Testability (or how I learned to stop worrying and love failing tests) Presented by Aaron Evans.
Service Oriented Architecture CCT355H5 Professor Michael Jones Suezan Makkar.
Part VII: Design Continuous
Basic Concepts of Component- Based Software Development (CBSD) Model-Based Programming and Verification.
Operating Systems Structure what is the organizational principle?
Design Patterns -- Omkar. Introduction  When do we use design patterns  Uses of design patterns  Classification of design patterns  Creational design.
آرمان حسين‌زاده آذر  Access to data varies depending on the source of the data.  Access to persistent storage, such as to a database, varies greatly.
Data Abstaraction Chapter 10.
Software Waterfall Life Cycle
Designing Classes. Software changes Software is not like a novel that is written once and then remains unchanged. Software is extended, corrected, maintained,
Java Fundamentals Usman Ependi UBD
UML Package Diagrams. Package Diagrams UML Package Diagrams are often used to show the contents of components, which are often packages in the Java sense.
Advanced Object-oriented Design Patterns Creational Design Patterns.
Motivation FACE architecture encourages modularity of components on data boundaries Transport Services Segment interface is centered on sending and receiving.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Object- oriented Design Principles
Computer Science Topical Paper Presentation #03 Adam Coffman The Cascading Bridge C a s c a d i n g B r i d g e – P a g e 1 The Cascading Bridge.
An object's behavior depends on its current state. Operations have large, multipart conditional statements that depend on the object's state.
Component Object Model(COM)
CompSci 280 S Introduction to Software Development
Introduction to .NET Florin Olariu
Object Oriented Programming
Object-Oriented Principles and Implementations
Presented by Igor Ivković
Chapter 13 Logical Architecture.
Software System Integration
Paper discussed in class: D. Verkest, K. Van Rompay, I. Bolsens, H
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 13 Logical Architecture.
Chapter 10 – Software Testing
CS310 Software Engineering Lecturer Dr.Doaa Sami
Informatics 122 Software Design II
Presented by Igor Ivković
Chapter 8 - Design Strategies
Chapter 13 Logical Architecture.
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Presentation transcript:

Extending Interface Based Design

Logical vs. Physical Design Logical Design Essential vs. Inessential Coupling Interface as Type Design Patterns Physical Design Assemblies Versioning

Goals of Physical Design Easier to test and change smaller units Faster unit tests Easier parallel development Easier change management

Assembly Partitioning Concepts Look for application fault lines Treat Interfaces as fundamental types Design Patterns indicate application partitions

Interfaces as Fundamental Types Interfaces are behavior, not implementation Treat as fundamental types Place in separate assemblies Put implementation in separate assemblies

Patterns Drive Partitions Code that implements the pattern Code that uses the pattern Code the pattern isolates Indicate possible assembly partitioning

Example: Factory Pattern Application CustomerManagerFactory CustomerManager

Assemblies As Components Independent evolution Versioning Testing Goal is partitioning Reuse is possibly emergent

Design For Testability Test smaller units of functionality Faster unit tests Minimize test dependencies Partitioning for testability

Physical Design Challenges Assembly Management Reduced Encapsulation Performance Problems Probability of Change

Summary Partition based on: Fundamental Types Patterns Test Dependencies