![Page 1: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/1.jpg)
Scrum & Software Design
CS 461
![Page 2: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/2.jpg)
Scrum: INVESTIndependent The user story should be self-contained, in a way that there is no inherent dependency on another user story.
Negotiable User stories, up until they are part of an iteration, can always be changed and rewritten.
Valuable A user story must deliver value to the end user.
Estimable You must always be able to estimate the size of a user story.
Small User stories should not be so big as to become impossible to plan/task/prioritize with a certain level of certainty.
Testable The user story or its related description must provide the necessary information to make test development possible.
Bill WakeI
N
V
E
S
T
![Page 3: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/3.jpg)
PBI: Product Backlog Item
Specifies the what more than the how of a customer-centric feature
• Often written in User Story form • Has a product-wide definition of done to prevent
technical debt • May have item-specific acceptance criteria • Effort is estimated by the team, ideally in relative units • Effort is roughly 2-3 people 2-3 days, or smaller for
advanced teams
http://scrumreferencecard.com/ScrumReferenceCard.pdf
![Page 4: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/4.jpg)
“A skilled ScrumMaster can help the team identify thin vertical slices of work that still have business value, while promoting a rigorous definition of done that includes proper testing and refactoring.”
http://scrumreferencecard.com/ScrumReferenceCard.pdf
Business Logic Layer
Potentially-shippable product increments
User Interface Layer
Persistence Layer
![Page 5: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/5.jpg)
The Daily WTF: "The Enterprise Dependency"
![Page 6: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/6.jpg)
http://thedailywtf.com/articles/Enterprise-Dependency-Big-Ball-of-Yarn
“Enterprise Dependency Big Ball of Yarn”
Each box is a class
![Page 7: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/7.jpg)
Cycles and Modularity in the Wild
![Page 8: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/8.jpg)
Cycles and Modularity in the Wild
![Page 9: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/9.jpg)
Some are Easier to Slice than Others
Compare:
Old static webpages
+ CSS
+ Javascript
+ database
+ server-side scripting
Desktop application
+ multi-window/panes
+ user configuration
+ installed libraries
+ client-server integration
Com
plex
ity
![Page 10: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/10.jpg)
Design to Manage Complexity• Don’t just let it happen
• Suitable architecture
• Purposeful design and modeling
• Use proven strategies
Reduce dependencies, decouple components
Divide and simplify
Utilize design patterns
Use good OOP: information hiding, inheritance, abstraction
Use Agile methods
Ubiquitous testing
Use liberally: packages, namespaces
Minimize Side Effects :-)
![Page 11: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/11.jpg)
Design Patterns
• Good solution to commonly encountered problem
• Gives different abstractions common names
• Good for languages like Java, C++, C#
![Page 12: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/12.jpg)
Popular Patterns• Singleton
• Iterator
• Observer
• Visitor
• Adaptor
• Command
• Delegate
• Factory
• Decorator
• Model-View-Controller (MVC)
more of a paradigm or architecture
![Page 13: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/13.jpg)
Singleton
![Page 14: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/14.jpg)
Model View Controller (MVC)Java Application Example
S.F. Morse and C. L. Anderson, “Introducting Application Design and Software Engineering Principles in Introductory CS Courses: Model-View-Controller Java Application Framework,” The Journal of Computing Sciences in Colleges 20(2), 190 – 201 (2004).
![Page 15: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/15.jpg)
Detailed Version
Listener (Observer) Pattern
![Page 16: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/16.jpg)
View subsystem
OOP abstractions
![Page 17: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/17.jpg)
Controller — Command subsystem
Command Pattern
![Page 18: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/18.jpg)
Model — with Observer
Observer Pattern
![Page 19: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/19.jpg)
All together
![Page 20: Scrum & Software Designmorses/classes/cs46x/resources/DesignPatterns.pdf · PBI: Product Backlog Item Specifies the what more than the how of a customer- centric feature • Often](https://reader035.vdocuments.us/reader035/viewer/2022081401/5f05f4c87e708231d415916e/html5/thumbnails/20.jpg)