What does bad Software engineer procatices create?
Name 5 items of a user story.
1) Role-Goal-Benefit
2) Notes
3) Definitions of Done
4) Tasks
5) Effort Estimate
Name 6 properties of a good user story.
Independent Negotiable Valuable to users or customers Estimable Small Testable
What does it mean for a user story to be independent?
What does it mean for a user story to be negotiable?
- Stories become reminders of what has been negotiated
What does it mean for a user story to be valuable to user/customer?
- Not intended to be valuable only yo developers
Who is a customer?
Purchaser: person who pays for the software.
User: person who uses the software.
What does it mean for a user story to be estimable?
What does it mean for a user story to be small?
What does it mean for a user story to be testable?
Describe the process of decomposing a user story.
Name and describe two common phases of Software Design.
1) Architectural Design
- determining which sub-system you need
2) Detailed design
- looking at the statistics and dynamic of your system
What is a aequence diagram?
Sequenced diagram is a diagram used to describe sequences of invocations between the objects that comprise the system.
Name 6 steps of refactoring.
1) Make sure all your tests pass
2) Identify the code smell
3) Determine how to refactor this code
4) Apply the refactoring
5) Run tests to make sure you didn’t break anything
6) Repeat until the smell gone
How to refactor magic numbers?
To refactor magic numbers replace it with a symbolic constant.
How to refactor repeated lines of code?
To refactor repeated lines of code extract method.
How to refactor same method in two classes?
To refactor same method in two classes, pull up method.
How to refactor almost duplicated code?
To refactor almost duplicated code, move to template method.
How to refactor long method?
To refactor ling method, do one of : Extract Method Replace Temp with Query Replace Method with Method Object Decompose Conditional Consolidate Conditional Expression
How to refactor complicated conditionals?
To refactor complicated conditionals, decompose conditional.
How to refactor switch statement/typed conditional?
To refactor switch statement/typed conditional, replace conditional with polymorphism.
How to refactor one class doing the work of two?
To refactor one class doing the work of two, extract class.
How to refactor data clump?
To refactor data clump, introduce parameter object.
How to refactor divergent changes?
To extract divergent changes, extract class.