COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler

Slides:



Advertisements
Similar presentations
CS590L - Lecture 6 1 CS590L Distributed Component Architecture References: - E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of.
Advertisements

SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Oct 2, Ron McFadyen1 From the Merriam-Webster’s online dictionary ( Main Entry: an·thro·po·mor·phism Pronunciation: -"fi-z&m Function:
NJIT More GRASP Patterns Chapter 22 Applying UML and Patterns Craig Larman Prepared By: Krishnendu Banerjee.
Fall 2009ACS-3913 Ron McFadyen1 idea was first put forth by Christopher Alexander (1977) in his work on architectural design principles a pattern is a.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Introduction To System Analysis and design
Software Development Process
Software Engineering CS B Prof. George Heineman.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Craig Larman’s Applying UML and Patterns: Hands-on Mastery of OOA/D.
GRASP Principles. How to Design Objects The hard step: moving from analysis to design How to do it? –Design principles (Larman: “patterns”) – an attempt.
EECE 310 Software Engineering Lecture 0: Course Orientation.
An Introduction to Software Architecture
Object-Oriented Analysis and Design OVERVIEW. Objectives  Describe Information Systems  Explain the role of a systems analyst  Introduce object-oriented.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Chapter 17. GRASP General Responsibility Assignment Software Patterns (Principles) OOD: after identifying requirements, create domain model, define responsiblities.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
1 SAD2 - UML 4 th Lecture Class Diagram in Construction Phase Patterns Case Study Lecturer: Dr Dimitrios Makris
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
BTS430 Systems Analysis and Design using UML Design Patterns.
Software Specification and Design Sirisin Kongsilp & James Brucker.
Chapter 17. Initial Object Design Inputs: requirements meetings various Use Cases – 10% complete Key risks addressed with preliminary programming System.
CSC 211 Introduction to Design Patterns. Intro to the course Syllabus About the textbook – Read the introduction and Chapter 1 Good attendance is the.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Course Guide IS325 Systems Analysis & Design II Ms Fatima Khan Prince Sultan University, College for Women.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1.
GoF Design Patterns (Ch. 26). GoF Design Patterns Adapter Factory Singleton Strategy Composite Façade Observer (Publish-Subscribe)
Design Patterns. Patterns “Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Chapter 7 Applying UML and Patterns Craig Larman
Copyright © Craig Larman All Rights Reserved Responsibility-Driven Design with the GRASP Patterns.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Object-Oriented Design Part 2
Systems Analysis and Design in a Changing World, 3rd Edition
Object-Oriented Analysis and Design Fall 2009.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
GRASP: Designing Objects with Responsibilities
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Object Design and Use- Case Realizations with GRASP Patterns.
TK2023 Object-Oriented Software Engineering CHAPTER 12 Introduction to Responsibility-Driven Design.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN Objectives Describe the book goals and scope Define OOA/D (Object-Oriented Analysis and Design) Illustrate.
Elaboration Iteration 3 – Part 3 - Persistence Framework -
Copyright © Craig Larman All Rights Reserved COMP-350 Object-Oriented Analysis and Design GRASP: Designing Objects with Responsibilities Reference:
Chapter 17 Designing with Responsibilities. Fig
GRASP: More Patterns for Assigning Responsibilities Presented By Dr. Shazzad Hosain.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Elaboration: Iteration 2. Elaboration: Iteration 2 Basics Iteration 1 ends with : All the software has been tested: The idea in the UP is to do early,
GoF Patterns (GoF) popo.
Introduction to Design Patterns
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Apply Expert, Creator, Controller, Low Coupling, High Cohesion
GRASP : Designing Objects with Responsibilities
EECE 310 Software Engineering
Introduction to Design Patterns Part 1
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin.
Object oriented analysis and design
Software Design Lecture : 14.
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin.
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin.
Presentation transcript:

COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler

Course Introduction Course People Course Components What the course is What the course is not The CU WME Design Case Study Larman’s Design Process What is OO Analysis and Design Design Pattern Example - Command

Course People Instructor: Dr Greg Butler Office Hours: Wednesdays 16:00 to 17:00 Or by appointment But ask questions in class please TAs: Bahman Zamani, Farzad Kohantorabi Teaching Fellow: Stephen Barrett Labs: Wednesday 15:30 to 17:30 ???

Course Components Lectures: Mondays 17:45 to 20:25 H Assignments: 6, every 2 weeks, worth 60% Quizzes: 2, weeks 6 and 12, worth 40% You must pass the quizzes!!!

Course Objectives “Think in Objects” Analyze requirements with use cases Create domain models Apply an iterative & agile Unified Process (UP) Relate analysis and design artifacts Read & write high- frequency UML Practice Apply agile modeling Design object solutions –Assign responsibilities to objects –Design collaborations –Design with patterns –Design with architectural layers –Understand OOP (e.g., Java) mapping issues

What the course is: A (first) look at OO design! Design process: domain model, use cases, design Emphasis: models, GRASP principles, design patterns, responsibility, collaboration Mentions: RDD, TDD, MDD, extensibility Closely follows textbook!

What the course is not: A course in UML, Java You should know the basics of these And become expert (as needed) yourself A course in tools: Eclipse, XDE, JUnit You can work through tutorials yourself A course in UI design, DB design A course in software engineering, software architecture, software reuse, …

The CU WME Design Case Study Concordia University Work Management Environment (CU WME) provides support for an organisation of people who produce and publish documents Components: User Management File Management Change Management Activity Management Collaborative Publication Project Management

The CU WME Design Case Study No UI required No DB design required But … we design APIs to hide these Assignments: Short problem statement Domain model Use case model Design and code (proof-of-concept) Refinement – add some special cases Refinement – handle some exceptions

The CU WME Design Case Study Team of up to six members – preferably 5 or 6 Individual work on individual component of CU WME Rotate responsibility for components Components must be consistent Therefore teamwork essential

Larman’s Design Process

Domain Model

Use Case Model

Typical Software Architecture Layers

Typical Software Architecture Layers (Simplified)

What is Design? Developing a blueprint (plan) for a mechanism that performs the required task, … taking into account all the constraints, & … making trade-offs between constraints when they are in conflict.

What is OO Analysis and Design Object-Oriented Analysis –Important domain concepts or objects? –Vocabulary? –Visualized in the UP Domain Model Object-Oriented Design –Design of software objects –Responsibilities –Collaborations –Design patterns –Visualized in the UP Design Model

Important Concepts Model Abstraction hiding (unimportant) details Eg, cover of Larman’s book GRASP Principle for assigning responsibility Design pattern Solution to design problem in context Eg, Command pattern

Responsibility-Driven Design (RDD) Detailed object design is usually done from the point of view of the metaphor of: –Objects have responsibilities –Objects collaborate Responsibilities are an abstraction. –The responsibility for persistence. Large-grained responsibility. –The responsibility for the sales tax calculation. More fine-grained responsibility.

The 9 GRASP Principles 1.Creator 2.Expert 3.Controller 4.Low Coupling 5.High Cohesion 6.Polymorphism 7.Pure Fabrication 8.Indirection 9.Protected Variations

Present solutions to common software problems arising within a certain context Overview of Patterns Capture recurring structures & dynamics among software participants to facilitate reuse of successful designs The Proxy Pattern 11 Proxy service Service service AbstractService service Client Help resolve key software design forces Flexibility Extensibility Dependability Predictability Scalability Efficiency Generally codify expert knowledge of design strategies, constraints & “best practices”

Command Pattern You have commands that need to be –executed, –undone, or –queued Command design pattern separates –Receiver from Invoker from Commands All commands derive from Command and implement do(), undo(), and redo() Also allows recording history, replay