Jump into Release 1
description
Transcript of Jump into Release 1
![Page 1: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/1.jpg)
Jump into Release 1
Pepper
![Page 2: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/2.jpg)
Goals for End of Class• Project delivery• Diagrams (new class & firm state, use, context, sequence)• Agile cycles with SCRUM management - live it• Project management terms and tasks
– assigning man hours and tracking completion; critical path; gantt chart and burndown chart
• Testing Levels + How to write a test case• Change control - live it• Mysql and Junit and GIT - just enough• Design classes - touch on design patterns (need stronger
Class UML first)
![Page 3: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/3.jpg)
Test Plans
• Test Driven Development– Unit test plan first
• Code coverage• Automated Regression built as you go• Debug is easier• Serves as system doc
– Still need system test on top– Legacy code might not have the plans
![Page 4: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/4.jpg)
Test Plan levels
•User Acceptance•System (integration)•Unit test (TDD concerned with these)
•Regression
![Page 5: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/5.jpg)
Type• Try to break it• Validate flows (from state to state)• Validate Specifications (including use cases
and sequence diagrams) • Stress test• Code inspection• Black box vs white box
– Black - From spec - no design knowledge– White - look at code to find decisions
![Page 6: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/6.jpg)
A Good Test Case
• Setup situation - environment to input into• Action to test - actual input• Assertion of result - what the environment
looks like when you are done
![Page 7: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/7.jpg)
Chose cases
• Input / output partitions (similar characteristics)– One from each paritition; boundaries and null
• Cause all failure types (every failure error msg)• Sequences: have only 1 in a sequence; have
none in a sequence; also act on first, middle and last
• Input / output buffer overflow• Try to force invalid outputs
![Page 8: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/8.jpg)
Environments
• Good test environments encourage good tests– Refresh periodically– One per user + One shared
• Bypass Database with stubs to return from a DB call– Quick– Not complete
![Page 9: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/9.jpg)
Testing Wrap UP
• Levels - unit / system / user• Structure - situation / input / expected output• TDD - code test before coding program• Choose cases - partitions (border, null,
sample) / sequences / buffer limits / force errors
• You will be able to : – Write a user acceptance test plan– Write good test cases on paper
![Page 10: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/10.jpg)
Scrum - Plan a Sprint• Great Video (but added release /sprint layer)http://www.youtube.com/watch?v=XU0llRltyFM - pictures in this presentation from that video
• Plan a release: • Prod Owner: Pick user stories from product
backlog
![Page 11: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/11.jpg)
Acceptance Plan
• Write a quick plan that the user agrees will validate the sprint is good– Starting situation / Actions / Resulting situation– Estimate: 4 plans per story included in the release
![Page 12: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/12.jpg)
Sprint Tasks• Choose tasks for your sprint • Assign man hours to tasks• Scrum Master Assign tasks to people• Commit to release date based on man hours
![Page 13: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/13.jpg)
Project Control• 15 minute daily stand up meetings
– Development Team: What is done, what obstacles, what is next for you
– Discuss group solutions
• Burn Down Chart
![Page 14: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/14.jpg)
SCRUM Summary• Roles
– Product owner, Scrum Master, Development team• Ceremonies
– Sprint planning done (stories chosen)– Sprint designed (tasks chosen with high level design)– Daily Scrum Meeting
• Artefacts– Product backlog– Sprint backlog– Burndown charts
Credit to http://alaverdyan.com/readme/2011/12/back-to-basics-scrum-origin-and-lean-thinking/
![Page 15: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/15.jpg)
Class Diagram UML Annotations
• Example: http://www.math-cs.gordon.edu/courses/cps211/ATMExample/ClassDiagram.html
• Diamond
• Big Open Triangle
• Small Arrow
• Dotted line
• http://www.uml-diagrams.org/class-reference.html
![Page 16: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/16.jpg)
ATM – check Bjork’s design
Class diagram AnnotationsDiamond
Diamond attached to the class that contains another class.
Often read as “has a “ from the diamond side to the non-diamond, and “is part of” from the non-diamond to the diamond.
Filled diamond means the part cannot exist without the container. If the container is deleted, delete the parts.
Chapter 7 Design and implementation 16
![Page 17: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/17.jpg)
ATM – check Bjork’s design – more annotations
Class diagram AnnotationsTriangle
Triangle attached to the whole in an “is a “ relationship.
The class not touching the triangle “is a “ the class touching the triangle.
The class touching the triangle “can be a “ the class not touching the triangle (“but it will not always be one”)
Chapter 7 Design and implementation 17
![Page 18: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/18.jpg)
ATM – check Bjork’s design – more annotations
Class diagram AnnotationsSmall arrow
Two classes are related, but only one knows the relationship exists
The class without the arrow knows the one with the arrow exists
Solid line – the arrow side is contained inside the other side
Dotted line – just has a weak relationship with (maybe creates it during a method)
Chapter 7 Design and implementation 18
![Page 19: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/19.jpg)
ATM – check Bjork’s design – more annotations
Class diagram AnnotationsDotted line - association
To small arrow – depends on the small arrow side Non-arrow side “somehow depends upon” arrow side(small arrow side may be an interface)Maybe “uses’ , calls, creates, sends, instead of “depends
upon”
To large arrow - realizes (implements or executes)Non arrow side implements or executes arrow side
Chapter 7 Design and implementation 19
![Page 20: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/20.jpg)
Inventory UML
Simple Product is a product managerA product manager can be a Simple Product manager
ProductManager knows Product exists, but Product does not know. PM changes product
![Page 21: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/21.jpg)
Try one (observer)
Concrete Observer is a Observer
Concerted subject is the information being observed
Concrete observer holds one copy of the subject's state
Concrete subject is a subject
Subject has an observer (diamond)Observer is part of a subject (diamond)Observer is owned by Subject (filled circle)
![Page 22: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/22.jpg)
One More - File Inventory
All these files are types of Inventory Items
Directory and path are inventory containers
Items and containers are inventory elements
Elements are part of inventory container, and inventory model and should be deleted when container gone
An element has a inventory relationship, which deletes when the element is gone
![Page 23: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/23.jpg)
GIT
• See Moodle presentation
![Page 24: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/24.jpg)
MySQL
• See moodle presentation by Jan
![Page 25: Jump into Release 1](https://reader036.fdocuments.net/reader036/viewer/2022062305/56815176550346895dbfaf2e/html5/thumbnails/25.jpg)
Ready to Run a Sprint
• Just enough– UML - Enough Class diagram– Testing Knowledge - Junit– Change Control - Git– Database - MySQL– Scrum - plan your release and monitor