lecture 3ooiwt/cs3283/lect3.pdf · lecture 3 design + planning 27 jan 2017. incremental delivery...

26
Lecture 3 Design + Planning 27 Jan 2017

Upload: others

Post on 26-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Lecture 3 Design + Planning

27 Jan 2017

Page 2: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Incremental Delivery• Week 5 - Week 9 (and beyond)

• One sprint per week

• Add / enhance features every week

• Potentially shippable product every sprint

Page 3: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Value

Risk

Sprints

Page 4: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

What count as potentially shippable?

Page 5: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

tested valuable

integrated

Page 6: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Early sprints

• may not be efficient

• may not be user friendly

• may not be secure

• may not be “smart”

Page 7: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

A good software architecture is important

Page 8: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

low coupling high cohesion

Page 9: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Modifiability

if we replace X with Y, how much code do we need to change?

Page 10: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Modifiability

if we change X, how much code (outside of X) do we need to

change?

Page 11: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Modifiability

can we delay deciding on how to do X until later?

Page 12: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Testability

can we test X without needing other components?

(e.g., no UI? no DB?)

Page 13: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Reusability

can X be reused in other systems / context ?

Page 14: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Good architectural diagrams

Page 15: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

A good architecture diagram should reflect the functions of the software

Page 16: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

DBLogicUI

What is this application about?

Page 17: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Bus DB

Path FinderUI

src and dest

best route

bus routes

src and dest

What about this one?

Page 18: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Bus DB

DB adaptorUI

src and dest

best route

Controller

Client API

bus routes

bus routes

best route

Path Finder

Reduce coupling

Page 19: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Bus DB

DB adaptorUI

src and dest

best route

Controller

Client API

bus routes

bus routes

best route

Path Finder Reusable /

Testable

ReplaceableReplaceable

Page 20: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Tips• List down the responsibilities of each

box

• If too many, can the box be decomposed further?

• Does the label of the box reflect the responsibility?

Page 21: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Tips• Can you reduce the number of

arrows?

• Introducing new boxes may help

Page 22: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Sprint Planning

Page 23: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Incremental Delivery• Week 5 - Week 9 (and beyond)

• One sprint per week

• Add / enhance features every week

• Potentially shippable product every sprint

Page 24: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Important Task for Week 4• Determine what to deliver at end of

Week 5

• Which user stories to complete first?

• Dependencies among user stories

• Value of each user stories

• Estimated complexity of each user stories

Page 25: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Important Task for Week 4

• Ideal: one user story, one task

• Break down a user story if:

• cannot complete in each sprint

• too complex (“epic”)

Page 26: Lecture 3ooiwt/cs3283/lect3.pdf · Lecture 3 Design + Planning 27 Jan 2017. Incremental Delivery ... Reusability can X be reused in other systems / context ? Good architectural diagrams

Target for Next Week• Refined requirements

• Refined design

• Plan for Week 5

• Get familiarize with the tools/library/framework

• Setup GitHub, Heroku, Travis with skeleton