cheungkt,foltztm,ngop, hannumed,hugheyjm,weavergg,woodhaal 07 - - PowerPoint PPT Presentation

cheungkt foltztm ngop
SMART_READER_LITE
LIVE PREVIEW

cheungkt,foltztm,ngop, hannumed,hugheyjm,weavergg,woodhaal 07 - - PowerPoint PPT Presentation

n Team am 01 amanb,labarpr,walthagd, Sit with your team (in two rows, so 02 breenjw,eatonmi,runchemr, that you can face 03 buqshank,macshake,mcgeevsa,smebaksg each other) 04 correlbn,moravemj,shinnsm,wanstrnj Check out


slide-1
SLIDE 1

n Team am 01 amanb,labarpr,walthagd, 02 breenjw,eatonmi,runchemr, 03 buqshank,macshake,mcgeevsa,smebaksg 04 correlbn,moravemj,shinnsm,wanstrnj 05 parasby,pedzindm,sheetsjr, 06 cheungkt,foltztm,ngop, 07 hannumed,hugheyjm,weavergg,woodhaal 08 carvers,davidsac,kominet,krachtkq 09 beaversr,duganje,lemmersj,popenhjc

Team number used in repository name: http://svn.csse.rose-hulman.edu/repos/csse220-201030-vg-teamXX Sit with your team (in two rows, so that you can face each other) Check out VectorGraphics from SVN Browse its Planning folder

slide-2
SLIDE 2

Object-Oriented Design Begin your VectorGraphics project

slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5

Analysis Design Implementation Testing Deployment Maintenance Software Development

slide-6
SLIDE 6

 Standardized approaches intended to:

  • Reduce costs
  • Increase predictability of results

 Examples:

  • Waterfall model
  • Spiral model
  • “Rational Unified Process”
slide-7
SLIDE 7
  • Do each stage to completion
  • Then do the next stage

Pipe dream model? Analysis Design Implementation Testing Deployment

slide-8
SLIDE 8

 Repeat phases in a cycle  Produce a prototype at end of each cycle  Get early feedback, incorporate changes

  • Schedule overruns
  • Scope creep

Deployment Prototype

slide-9
SLIDE 9

 Like the spiral model with ve

very short cycles

 Pioneered by Kent Beck  One of several “agile” methodologies, focused

  • n building high quality software quickly

 Rather than focus on rigid process, XP

espouses 12 key practices…

slide-10
SLIDE 10
  • Realistic planning
  • Small

l releases

  • Shared metaphors
  • Simplicity
  • Testing

ng

  • Refactor

toring ing

  • Pair

r program ammi ming ng

  • Collective ownership
  • Conti

tinuous nuous integra ratio tion

  • 40-hour week
  • On-site customer
  • Coding

ng standar ards ds

When you see

  • pportunity to make

code better, do it Use descriptive names, Control-Shift-F, etc

slide-11
SLIDE 11

A team project to create a scalable graphics program.

http://www.rose-hulman.edu/class/csse/binaries/VideoDemos/VectorGraphics220.mov

slide-12
SLIDE 12

 A team assignment

  • So some division

vision of labor

  • r is appro

ropri priate ate (indeed, necessary)

 A learning experience, so:

  • Rule 1: eve

very team m member er must partic ticipate ipate in eve very ry major

  • r activity

ivity.

  • Rule 2: Eve

veryth ythin ing g that t you submi mit t for r this s projec ject t shoul

  • uld

d be unders ersto tood

  • d by all team

m members ers.

 Not necessarily all the details, but all the basic ideas

slide-13
SLIDE 13

 Read the specification  Exchange contact info – you may want to add

to your planning folder.

 Start working on your first milestone due

Friday

  • But try to get it done by Thursday so you can get

some feedback in class before it’s graded.

  • Next slides are some review of CRC cards and UML.
slide-14
SLIDE 14

A practical technique

slide-15
SLIDE 15

 We won’t use full-scale, formal

methodologies

  • Those are in later SE courses

 We will practice a common object-oriented

design technique using CRC Cards ds which then get turned into your UML class diagram gram

 Like any design technique,

the e key ey to success ess is practi tice ce

slide-16
SLIDE 16
  • 1. Dis

isco cover er cl classes es based on requirements

 Come from nouns in the problem description

  • 2. Determi

mine ne responsibi nsibili litie ties

  • f each class

 Come from verbs associated with the classes

  • 3. Describ

ibe e rela latio ionsh nship ips s between classes: is is-a, has-a

May… Represent single concepts Circle, Investment Represent visual elements of the project FacesComponent, UpdateButton Be abstractions of real-life entities BankAccount, TicTacToeBoard Be actors Scanner, CircleViewer Be utilities Math

slide-17
SLIDE 17

1.

Pick a responsibility of the program

2.

Pick a class to carry out that responsibility

  • Add that responsibility to the class’s card

3.

Can that class carry out the responsibility by itself?

  • Yes  Return to step 1
  • No 

 Decide which classes should help  List them as collaborators on the first card  Add additional responsibilities to the collaborators’ cards Class name Collaborators Responsibilities

slide-18
SLIDE 18

 Sp

Sprea read d the e cards s out on a table

  • Or sticky notes on a whiteboard instead of cards

 Use a “token” to keep your place

  • A quarter or a magnet

 Focus

us on high gh-level level respons ponsibi ibilit ities ies

  • Some say < 3 per card

 Keep

p it informal mal

  • Rewrite cards if they get to sloppy
  • Tear up mistakes
  • Shuffle cards around to keep “friends” together
slide-19
SLIDE 19

1.

Pick a responsibility

  • f the program

2.

Pick a class to carry out that responsibility

  • Add that responsibility to the class’s card

3.

Can that class carry out the responsibility by itself?

  • Yes  Return to step 1
  • No 

 Decide which classes should help  List them as collaborators

  • n the first card

 Add additional responsibilities to the collaborators’ cards

 High

gh cohesio hesion

 Low

  • w cou
  • upli

ling

 Immu

mmutable able where ere practi ractical al

  • Document

ment where re not

 Inh

nher erit itan ance e for code de reuse

 Interface

terfaces to allow low other ers s to intera eract ct with h your code de

slide-20
SLIDE 20

 Classes stay classes  Responsibilities become properties (methods)  If attributes (fields) are obvious, add them  Collaborators are usually has-a relationships  If is-a relationships are obvious, add them  You can probably work in parallel as two pairs

  • Or a subteam can begin work on your Screen Layout

sketches