SOEN 343 Software Design - PowerPoint PPT Presentation

About This Presentation
Title:

SOEN 343 Software Design

Description:

What the course is. What the course is not. Enterprise ... Office Hours: Wednesdays 15:00 to 16:00. Or by appointment. But ask questions in class please ... – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 25
Provided by: ENCS
Category:

less

Transcript and Presenter's Notes

Title: SOEN 343 Software Design


1
SOEN 343Software Design
  • Section H Fall 2006
  • Dr Greg Butler
  • http//www.cs.concordia.ca/gregb/home/soen343h-f0
    6.html

2
Course Introduction
  • Course People
  • Course Components
  • What the course is
  • What the course is not
  • Enterprise Application (Assignments)
  • Larmans Design Process
  • What is OO Analysis and Design
  • Design Pattern Example - Command

3
Course People Section H
  • Instructor Dr Greg Butler
  • Office Hours Wednesdays 1500 to 1600
  • Or by appointment
  • But ask questions in class please
  • TAs Asif Dogar Rajiv Abraham
  • Course Coordinator Dr Patrice Chalin

4
Course Components
  • Lectures WF 1315 to 1430 CL-220
  • Tutorials F 1445 to 1535
  • In Lab to be announced start week 2
  • Assignments 3-4, every 2 weeks, start week 8,
    worth 5-15
  • Midterm Exam week 7, worth 25-35
  • Quizzes 2-3, approx. weeks 4, 10,.. worth 5-10
  • Final Exam worth 50-60 you must pass final

5
Basic Questions (Lets Discuss)
  • What is software design?
  • How is it different from software programming?
    Software development?
  • How do we design software?
  • What is the role of objects, layers,
    architecture, ..?
  • What is the role of tests, responsibilities,
    patterns, models, ?
  • How does design fit into the software lifecycle?
  • What is good design?
  • How does software design differ from design?

6
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

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

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

9
Lectures
  • Review of Java and object-oriented programming
  • Responsibility Driven Design following Larman
  • Each object has responsibility (ies)
  • GRASP principles for distribution of
    responsibilities
  • GoF design patterns
  • Application of principles and patterns to
    examples/assignments
  • Domain Modeling
  • Introduction to Enterprise Applications
  • Fowlers patterns
  • Application of GRASP principles in Fowlers
    patterns
  • Application in assignments
  • Transition from requirements to design following
    Larman

10
Enterprise Applications Patterns
  • Assignments (and some lectures) are about
    building web-based systems for enterprise
    applications
  • Involve
  • Presentation on the web
  • Business Logic and Business Objects
  • Data storage and access
  • use book of Martin Fowler, Patterns of
    Enterprise Application Architecture

11
Fowlers EA Patterns
Template View
Page Controller
Presentation
Front Controller
Transform View
Domain Model
Transaction Script
Domain
Table Module
Active Record
Data Mapper
Row Data Gateway
Table Data Gateway
Data Source
12
Larmans Design Process
13
Domain Model
14
Use Case Model
15
Typical Software Architecture Layers
16
Typical Software Architecture Layers (Simplified)
17
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.

18
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

19
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

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

21
The 9 GRASP Principles
  • Creator
  • Expert
  • Controller
  • Low Coupling
  • High Cohesion
  • Polymorphism
  • Pure Fabrication
  • Indirection
  • Protected Variations

22
Overview of Patterns
23
Command Pattern
  • Problem How to allow the same command to be
    invoked by
  • Menu selection
  • Alt-ctrl shortcut
  • Commandline text entry, etc
  • How to allow (unlimited) undo/redo
  • How to keep a log/audit/history of commands
    invoked
  • How to allow macro commands to be defined

24
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