lecture 3ooiwt/cs3283/lect3.pdf · lecture 3 design + planning 27 jan 2017. incremental delivery...
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/1.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/2.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/3.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/4.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/5.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/6.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/7.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/8.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/9.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/10.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/11.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/12.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/13.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/14.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/15.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/16.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/17.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/18.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/19.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/20.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/21.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/22.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/23.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/24.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/25.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022071103/5fdc8bd7d503282b1f1674d3/html5/thumbnails/26.jpg)
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