Title: Jump into Release 1
1Jump into Release 1
2Goals 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)
3Test 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
4Test Plan levels
- User Acceptance
- System (integration)
- Unit test (TDD concerned with these)
- Regression
5Type
- 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
6A 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
7Chose 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
8Environments
- 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
9Testing 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
10Scrum - Plan a Sprint
- Great Video (but added release /sprint layer)
- http//www.youtube.com/watch?vXU0llRltyFM -
pictures in this presentation from that video - Plan a release
- Prod Owner Pick user stories from product
backlog
11Acceptance 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
12Sprint 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
13Project 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
14SCRUM 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/bac
k-to-basics-scrum-origin-and-lean-thinking/
15Class Diagram UML Annotations
- Example http//www.math-cs.gordon.edu/courses/cps
211/ATMExample/ClassDiagram.html - Diamond
- Big Open Triangle
- Small Arrow
- Dotted line
- http//www.uml-diagrams.org/class-reference.html
16ATM check Bjorks design
- Class diagram Annotations
- Diamond
- 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.
17ATM check Bjorks design more annotations
- Class diagram Annotations
- Triangle
- 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)
18ATM check Bjorks design more annotations
- Class diagram Annotations
- Small 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)
19ATM check Bjorks design more annotations
- Class diagram Annotations
- Dotted 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
20Inventory UML
ProductManager knows Product exists, but Product
does not know. PM changes product
Simple Product is a product manager A product
manager can be a Simple Product manager
21Try one (observer)
Subject has an observer (diamond) Observer is
part of a subject (diamond) Observer is owned by
Subject (filled circle)
Concrete subject is a subject
Concrete Observer is a Observer
Concrete observer holds one copy of the subject's
state
Concerted subject is the information being
observed
22One More - File Inventory
An element has a inventory relationship, which
deletes when the element is gone
Elements are part of inventory container, and
inventory model and should be deleted when
container gone
All these files are types of Inventory Items
Items and containers are inventory elements
Directory and path are inventory containers
23GIT
24MySQL
- See moodle presentation by Jan
25Ready to Run a Sprint
- Just enough
- UML - Enough Class diagram
- Testing Knowledge - Junit
- Change Control - Git
- Database - MySQL
- Scrum - plan your release and monitor