Feb. 23, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.

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

Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Main issues: • Why is reuse so difficult • How to realize reuse
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 7, Object Design.
March 15, 2004CS WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004.
Basic Concepts in Component-Based Software Engineering
1 Specifying Object Interfaces. 2 Major tasks in this stage: --are there any missing attributes or operations? --how can we reduce coupling, make interface.
Feb. 2, 2004CS WPI1 CS 509 Design of Software Systems Lecture #3 Monday, Feb. 2, 2004.
Oct. 9, 2003CS WPI1 CS 509 Design of Software Systems Lecture #6 Thursday, Oct. 9, 2003.
Sept. 11, 2003CS WPI1 CS 509 Design of Software Systems Lecture #2 Thursday, Sept. 11, 2003.
Oct. 2, 2003CS WPI1 CS 509 Design of Software Systems Lecture #5 Thursday, Oct. 2, 2003.
Oct. 30, 2003CS WPI1 CS 509 Design of Software Systems Lecture #9 Thursday, Oct. 30, 2003.
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.
March 22, 2004CS WPI1 CS 509 Design of Software Systems Lecture #9 Monday, March 22, 2004.
Feb. 27, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #13 Tuesday, Feb. 27, 2001.
Feb. 20, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #11 Tuesday, Feb. 20, 2001.
Reuse Activities Selecting Design Patterns and Components
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Systems Analysis and Design in a Changing World, Fifth Edition
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 9, Object Design: Specifying Interfaces.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 8, Object Design: Reusing Pattern Solutions.
CS 240, Prof. Sarwar Slide 1 CS 240: Software Project Fall 2003 Sections 1 & 2 Dr. Badrul M. Sarwar San Jose State University Lecture #13.
CSC 211 Introduction to Design Patterns. Intro to the course Syllabus About the textbook – Read the introduction and Chapter 1 Good attendance is the.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 3: SOA Reference Model OASIS 2006.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Sept. 18, 2003CS WPI1 CS 509 Design of Software Systems Lecture #3 Thursday, Sept. 18, 2003.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
332 Final Review Last updated Fall 2013 Professor Ammann.
OO as a language for acm l OO phrase l Mental model of key concepts.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 9, Object Design: Specifying Interfaces.
Introducing Allors Applications, Tools & Platform.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Design Patterns Introduction
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
February 8, 2006copyright Thomas Pole , all rights reserved 1 Lecture 3: Reusable Software Packaging: Source Code and Text Chapter 2: Dealing.
Feb. 9, 2004CS WPI1 CS 509 Design of Software Systems Lecture #4 Monday, Feb. 9, 2004.
March 1, 2004CS WPI1 CS 509 Design of Software Systems Lecture #6 Monday, March 1, 2004.
1 Here are some quotations to get an overview of the kinds of issues of interest.
CS 5150 Software Engineering Lecture 16 Program Design 3.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CEN th Lecture Advance Software Engineering (CEN-5011) Instructor: Masoud Sadjadi Object Design: Specifying.
Software Engineering Lecture 10: System Engineering.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Chapter 1 The Phases of Software Development. Software Development Phases ● Specification of the task ● Design of a solution ● Implementation of solution.
Oct. 16, 2003CS WPI1 CS 509 Design of Software Systems Lecture #7 Thursday, Oct. 16, 2003.
1 SOA Seminar Seminar on Service Oriented Architecture SOA Reference Model OASIS 2006.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
COP 3331 Object-Oriented Analysis and Design 1 Design Overview  Design Overview (Ch 6)  Review of RAD  System Design  System Design Concepts  System.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Design Patterns: MORE Examples
Design Patterns Lecture part 2.
Introduction to Design Patterns
Distribution and components
TIM 58 Chapter 8: Class and Method Design
Specifying Object Interfaces
Design Tips.
619 Final Review Last updated Spring 2010 © : Paul Ammann.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 8, Design Patterns Introduction
Presentation transcript:

Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004

Feb. 23, 2004CS WPI2 §Term Project Administration §Changes to Course Material §Questions §Quiz #3 §Review of Chapters 8 & 9: §In-class Exercise: l Requirements for new design project Class Format for Today

Feb. 23, 2004CS WPI3 Term Project Administration §Return Phase 2 – Functional Specifications l And Journals §Return Quiz #2 §About Phase 3: l How is the project progressing? l Can we continue as planned? System & Object Design for CTS due next week l Have you started object design, or do you prefer to just focus on system design?

Feb. 23, 2004CS WPI4 Changes to Course Material §Next week start on a new project to design l Home Inventory System (thanks to Michael) l Discuss requirements later tonight §Presentations or 2 phases for last month? §Readings & lecture topics: l Read Chapter 10 for next week l New assignments will be posted to web site §Discuss possible topics for CS562

Feb. 23, 2004CS WPI5 Questions? §About what was covered last time §From the reading §About the Term Project §Anything else?

Feb. 23, 2004CS WPI6 Quiz #3 Chapters 7, 8, 9 You have 15 minutes

Feb. 23, 2004CS WPI7 Chapter 8 Object Design: Reusing Pattern Solutions

Feb. 23, 2004CS WPI8 Overview of Activities §Reuse (Chapter 8) l Pick off-the-shelf components & design patterns §Service specification (Chapter 9) l Precisely describe each class interface §Object model restructuring (Chapter 10) l Improve understandability & extensibility l Optimizations to address performance criteria (time, memory, etc.)

Feb. 23, 2004CS WPI9 Purpose of Object Design §Close the gap between application objects and selected hardware/software platforms §Identify missing functionality not covered by system design §Construct precise specifications of classes, attributes and operations §Produce a model from which a set of classes can be implemented by individual developers

Feb. 23, 2004CS WPI10 Reuse §Off-the-shelf components identified during system design need to be integrated l Class libraries & 3 rd party components selected for basic data structures & services l Wrapping components with custom objects l Refining them using inheritance §Design patterns selected for solving common problems & isolating the effects of change

Feb. 23, 2004CS WPI11 Interface Specifications §Subsystem services identified during system design specified in terms of class interfaces l Operations & Arguments l Type signatures l Constraints & Exceptions §Identify operations & objects needed to transfer data among subsystems

Feb. 23, 2004CS WPI12 Restructuring §Transforming & optimizing the object model should occur after classes & objects have been designed & interfaces fully specified l Often design activities can get side-tracked by optimization concerns l Focusing on interfaces, components & design patterns results in a more flexible design model l Focusing on optimizations first tends to produce design model that is rigid & difficult to modify

Feb. 23, 2004CS WPI13 Reuse Concepts §Application Objects vs. Solution Objects §Inheritance vs. Delegation §The Liskov Substitution Principle §Design Patterns §Application Frameworks

Feb. 23, 2004CS WPI14 Application & Solution Objects §Application domain objects come from the requirements & analysis l Boundary, Control, Entity l Represent concepts in the problem domain §Solution objects developed during design l Represent concepts with no counterparts in the problem domain

Feb. 23, 2004CS WPI15 Inheritance vs. Delegation §Review Set/Hashtable example on pgs §Discuss distinction between inheritance and delegation §Which one is better? Why? §Is it a general rule, or better only in this case? §Are there cases where the other is better? §How does inheritance relate to taxonomy?

Feb. 23, 2004CS WPI16 Liskov Substitution Principle “If an object of type S can be substituted in all the places where an object of type T is expected, then S is a subtype of T. §Who can interpret what this means? §Examples?

Feb. 23, 2004CS WPI17 Intro to Design Patterns §Purpose: l Template solutions to recurring problems §History: l Patterns evolve over time l Refined for maximizing reuse & flexibility §Capture Knowledge: l Document context & trade-offs l Provide guidance about when to use inheritance vs. delegation

Feb. 23, 2004CS WPI18 Design Pattern Participants §Client Class l Accesses the pattern §Pattern Interface l Part of pattern that is visible to the client §Implementor Class(es) l Provides low-level behavior (may be > 1) §Extender Class l Provides a specialized implementation or extended behavior

Feb. 23, 2004CS WPI19 Design Patterns §Adapter §Bridge §Strategy §Abstract Factory §Command §Composite

Feb. 23, 2004CS WPI20 Application Frameworks §Terminology: l Hook Method l Infrastructure Framework l Middleware Framework l Enterprise Application Framework l White Box Framework l Black Box Framework

Feb. 23, 2004CS WPI21 Chapter 9 Object Design: Specifying Interfaces

Feb. 23, 2004CS WPI22 Activities Overview §Identify missing attributes & operations §Specify type signatures & visibility §Specify contracts on classes & methods

Feb. 23, 2004CS WPI23 Interface Spec. Concepts §Participants: l Class implementor l Class extender l Class user (client) §Types, signatures & visibility §Contracts on classes and methods: l Invariants, pre- and post-conditions

Feb. 23, 2004CS WPI24 Participants §Class Implementor l Realizes the class §Class User (Client) l Invokes operations provided by the class §Class Extender l Develops specializations of the class

Feb. 23, 2004CS WPI25 Types, Signatures & Visibility §Type specifies range of valid values: l For attribute, parameters & method return l Examples? §Signature specifies method: l Name, param types, return type §Visibility specifies who can see what l Private, protected, public l What does each mean?

Feb. 23, 2004CS WPI26 Contracts on Classes, Methods §Invariants l Predicate true for all instances of a class §Pre-conditions l Predicate true before an operation is invoked §Post-conditions l Predicate true after an operation has completed §Purpose? §Examples?

Feb. 23, 2004CS WPI27 Object Constraint Language §Formal language for specifying contracts §Constraints should be specified in design document, but may be done more informally §Contracts should also be documented in code, using comments. §See example code on page 358

Feb. 23, 2004CS WPI28 In-class Exercise Requirements for Home Inventory System

Feb. 23, 2004CS WPI29 For Next Time §Phase 3 due (Design Documents) §Read Chapter 10 – Mapping Models to Code §Check course web site for updates l Syllabus l Reading material l Term project §I will send to the class when updated