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


slide-1
SLIDE 1

Object-Oriented Software Design (COMP 304)

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/22

slide-2
SLIDE 2

Overview

  • 1. (Software) Process: definition
  • 2. Various Software Processes
  • 3. The Process Influences Productivity:

Dynamic Process Modelling using Forrester System Dynamics

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

slide-3
SLIDE 3

Process: A Queueing System

Physical View Queue Cashier Departure Arrival Departure Queue Abstract View Cashier [ST distribution] [IAT distribution] Arrival

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

slide-4
SLIDE 4

Event/Activity/Process

Cust2 Process Cust1 Activity

Cust2 Arrival Cust2 Start Queueing Cust2 End pay cashier Cust2 Leave

t

Cust2 End Queueing Cust2 Start pay cashier

Cust2 Activity Event

Cust1 Arrival Cust1 Start pay cashier Cust1 End pay cashier Cust1 Leave

Cust1 Process Cust2 Activity queue pay cashier pay cashier Hans Vangheluwe hv@cs.mcgill.ca 4/22

slide-5
SLIDE 5

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. http://portal.acm.org/citation.cfm?id=75122

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

slide-6
SLIDE 6

Software Processes (see notes)

  • Waterfall (Royce)
  • V Model (German Ministry of Defense)
  • Prototyping
  • Operational Specification
  • Transformational (automated software synthesis)
  • Phased Development: Increment and Iteration
  • Spiral Model (Boehm)
  • The Rational Unified Process (RUP)
  • Extreme Programming (XP)

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

slide-7
SLIDE 7

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

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

slide-8
SLIDE 8

The Rational Unified Process (RUP): Observations

  • 1. Waterfall-like sequence of

Requirements, Design, Implementation, Testing.

  • 2. Not pure waterfall:
  • Phased Development (iterative)
  • 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 8/22

slide-9
SLIDE 9

RUP: Phased Development

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

slide-10
SLIDE 10

Extreme Programming (XP)

www.extremeprogramming.org

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

slide-11
SLIDE 11

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 11/22

slide-12
SLIDE 12

Extreme Programming (XP) highlights

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

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

slide-13
SLIDE 13

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 13/22

slide-14
SLIDE 14

Extreme Programming (XP) highlights

Pair Programming www.charm.net/ jriley/pairall.html

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

slide-15
SLIDE 15

The Process influences Productivity

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

Fred Brooks. The Mythical Man-Month. http://www.ercb.com/feature/feature.0001.html

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

slide-16
SLIDE 16

Why Brooks’ Law ? Team Size.

Model in Forrester System Dynamics using Vensim PLE (www.vensim.com)

development rate = nominal_productivity* (1-C_overhead*(N*(N-1)))*N

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

slide-17
SLIDE 17

Team Size N = 5

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

slide-18
SLIDE 18

Team Size N = 3 . . . 9

Optimal Team Size between 7 and 8

Hans Vangheluwe hv@cs.mcgill.ca 18/22

slide-19
SLIDE 19

The Effect of Adding New Personnel (FSD model)

development rate = nominal_productivity* (1-C_overhead*(N*(N-1)))* (1.2*num_exp_working + 0.8*num_new)

Hans Vangheluwe hv@cs.mcgill.ca 19/22

slide-20
SLIDE 20

5 New Programmers after 100 days

Hans Vangheluwe hv@cs.mcgill.ca 20/22

slide-21
SLIDE 21

5 New Programmers after 100 days

Hans Vangheluwe hv@cs.mcgill.ca 21/22

slide-22
SLIDE 22

0 . . . 6 New Programmers after 100 days

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