COMP 6471 Software Design Methodologies - PowerPoint PPT Presentation

About This Presentation
Title:

COMP 6471 Software Design Methodologies

Description:

COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp647-winter2006.html Course Introduction Course People ... – PowerPoint PPT presentation

Number of Views:113
Avg rating:3.0/5.0
Slides: 23
Provided by: ENCS
Category:

less

Transcript and Presenter's Notes

Title: COMP 6471 Software Design Methodologies


1
COMP 6471Software Design Methodologies
  • Winter 2006
  • Dr Greg Butler
  • http//www.cs.concordia.ca/gregb/home/comp647-win
    ter2006.html

2
Course Introduction
  • Course People
  • Course Components
  • What the course is
  • What the course is not
  • The CU WME Design Case Study
  • Larmans Design Process
  • What is OO Analysis and Design
  • Design Pattern Example - Command

3
Course People
  • Instructor Dr Greg Butler
  • Office Hours Wednesdays 1600 to 1700
  • Or by appointment
  • But ask questions in class please
  • TAs Bahman Zamani, Farzad Kohantorabi
  • Teaching Fellow Stephen Barrett
  • Labs Wednesday 1530 to 1730 ???

4
Course Components
  • Lectures Mondays 1745 to 2025 H-603-1
  • Assignments 6, every 2 weeks, worth 60
  • Quizzes 2, weeks 6 and 12, worth 40
  • You must pass the quizzes!!!

5
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

6
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!

7
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,

8
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

9
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

10
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

11
Larmans Design Process
12
Domain Model
13
Use Case Model
14
Typical Software Architecture Layers
15
Typical Software Architecture Layers (Simplified)
16
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.

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

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

19
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.

20
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

21
Overview of Patterns
22
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
Write a Comment
User Comments (0)
About PowerShow.com