Object-Oriented Software Design and Software Processes Hans - - PowerPoint PPT Presentation

object oriented software design and software processes
SMART_READER_LITE
LIVE PREVIEW

Object-Oriented Software Design and Software Processes Hans - - PowerPoint PPT Presentation

Object-Oriented Software Design (COMP 304) 7 January 2005 Object-Oriented Software Design and Software Processes Hans Vangheluwe Modelling, Simulation and Design Lab (MSDL) School of Computer Science, McGill University, Montr eal, Canada


slide-1
SLIDE 1

Object-Oriented Software Design (COMP 304) 7 January 2005

Object-Oriented Software Design and Software Processes

Hans Vangheluwe

Modelling, Simulation and Design Lab (MSDL) School of Computer Science, McGill University, Montr´ eal, Canada

Hans Vangheluwe hv@cs.mcgill.ca 1/17

slide-2
SLIDE 2

Overview

  • 1. Software Processes
  • 2. The Process influences Productivity
  • 3. The Rational Unified Process (RUP)
  • 4. Extreme Programming (XP)

Hans Vangheluwe hv@cs.mcgill.ca 2/17

slide-3
SLIDE 3

Software Processes

“The Software Engineering process is the total set of Software Engineering activities needed to transform requirements into software”.

Watts S. Humphrey. Software Engineering Institute, CMU. h t t p : / / p

  • r

t a l . a c m .

  • r

g / c i t a t i

  • n

. c f m ? i d = 7 51 2 2

Some Software Processes:

  • Waterfall model
  • Spiral model
  • Throwaway/Evolutionary prototyping model
  • Incremental/iterative development
  • Automated software synthesis
  • . . .

Hans Vangheluwe hv@cs.mcgill.ca 3/17

slide-4
SLIDE 4

The Waterfall Model (W. Royce. 1970)

h t t p : / / w w w . i n f

  • r

m a t i k . u n i

  • b

r e m e n . d e / g d p a/ d e f / d e f w / W A T E R F A L L . h t m

Hans Vangheluwe hv@cs.mcgill.ca 4/17

slide-5
SLIDE 5

The Process influences Productivity

“Adding manpower to a late software project makes it later”.

Fred Brooks. The Mythical Man-Month. h t t p : / / w w w . e r c b . c

  • m

/ f e a t u r e / f e a t u r e . 0 0 1. h t m l

Hans Vangheluwe hv@cs.mcgill.ca 5/17

slide-6
SLIDE 6

Why Brooks’ Law ? Team Size.

d e v e l

  • p

m e n t r a t e = n

  • m

i n a l _ p r

  • d

u c t i v i t y * ( 1

  • C

_

  • v

e r h e a d * N ˆ 2 ) * N

Hans Vangheluwe hv@cs.mcgill.ca 6/17

slide-7
SLIDE 7

Why Brooks’ Law ? Programmer Behaviour.

Eystein Fredrik Esbensen’s COMP 522 project. h t t p : / / w w w . s t u d . n t n u . n

  • /

˜ e y s t e i n f / f i n a l .h t m l

Hans Vangheluwe hv@cs.mcgill.ca 7/17

slide-8
SLIDE 8

Why Brooks’ Law ? Productivity.

Hans Vangheluwe hv@cs.mcgill.ca 8/17

slide-9
SLIDE 9

Why Brooks’ Law ? Remaining work.

Hans Vangheluwe hv@cs.mcgill.ca 9/17

slide-10
SLIDE 10

The Rational Unified Process (RUP): Activity Workload as Function of Time

Hans Vangheluwe hv@cs.mcgill.ca 10/17

slide-11
SLIDE 11

The Rational Unified Process (RUP): Observations

  • 1. Waterfall-like sequence of

Requirements, Design, Implementation, Testing.

  • 2. Not pure waterfall:
  • Iteration
  • Overlap (concurrency) between activities
  • 3. Testing:
  • Regression (test not only newly developed, but also previously

developed code)

  • Testing starts before design and coding (Extreme Programming)

Hans Vangheluwe hv@cs.mcgill.ca 11/17

slide-12
SLIDE 12

The Rational Unified Process (RUP)

Hans Vangheluwe hv@cs.mcgill.ca 12/17

slide-13
SLIDE 13

Extreme Programming (XP)

w w w . e x t r e m e p r

  • g

r a m m i n g .

  • r

g

Hans Vangheluwe hv@cs.mcgill.ca 13/17

slide-14
SLIDE 14

Extreme Programming (XP) highlights

  • User Stories are written by the customers as things that the system

needs to do for them. They drive the creation of acceptance tests.

  • The project is divided into Iterations.

Hans Vangheluwe hv@cs.mcgill.ca 14/17

slide-15
SLIDE 15

Extreme Programming (XP) highlights

Use Class, Responsibilities, and Collaboration (CRC) Cards to design the system.

Hans Vangheluwe hv@cs.mcgill.ca 15/17

slide-16
SLIDE 16

Extreme Programming (XP) highlights

  • Code the Unit Test first.
  • All code must have Unit Tests; All code must pass all unit tests

before it can be released.

  • Refactor whenever and wherever possible.

Hans Vangheluwe hv@cs.mcgill.ca 16/17

slide-17
SLIDE 17

Extreme Programming (XP) highlights

Pair Programming

Hans Vangheluwe hv@cs.mcgill.ca 17/17