soen343-week3 - SOEN 343 Software Design Section H Fall...

Info iconThis preview shows pages 1–12. Sign up to view the full content.

View Full Document Right Arrow Icon
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/soen343h-f06.html
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Responsibilities, Principles, Patterns Design Good Design, Smells, Evolutionary Design TDD (Test Driven Design) RDD (Responsibility Driven Design) GRASP Principles Information Expert, Creator,
Background image of page 2
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.
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Design vs. Requirements and Implementation. Requirements Design Implementation
Background image of page 4
Design Levels Architectural design . . . Detailed design . . . Implementation (executable designs)
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Two complimentary approaches to design Planned Design vs. Evolutionary Design Can we get away with only planned design?
Background image of page 6
Evolutionary Design What is the probability that a S/W design will need to be updated? Change is inevitable , evolutionary design recognizes this. As software is changed, generally it becomes more complex unless effort is made to keep it simple .
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Evolutionary Design Practices XP Test driven development (TDD) Do not add code unless you have a test failing … Important characteristics “Full” automated test suites Refactoring Help us learn detailed design idioms, patterns, …
Background image of page 8
Prerequisites to Successful Evolutionary Design? Testing … lots of automated testing. Refactoring … keeping the design simple. Continuous integration Actually, testing is a prerequisite to refactoring.
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Refactoring A refactoring is a change made to the internal structure of S/W to make it easier to understand and less expensive to modify, without changing its observable behavior.
Background image of page 10
design? What is a good design? Satisfies user needs. Is a simple as possible. Kent Beck: Runs all tests Reveals intention. No duplication. Fewest number of classes or methods
Background image of page 11

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 12
This is the end of the preview. Sign up to access the rest of the document.

This document was uploaded on 03/28/2011.

Page1 / 41

soen343-week3 - SOEN 343 Software Design Section H Fall...

This preview shows document pages 1 - 12. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online