Week 3 Flashcards
Release cycle for user stories in XP?
- Select user stories for this release
- Break down stories to tasks
- Plan release
- Evaluate system
- Release software
- Develop/integrate/test software
(Repeat- cyclic)
What is refactoring?
XP proposes constant code improvement to make changes easier when they have to be implemented.
Refactoring: improving structure without changing external behaviour.
Bad smells?
Poor or misguided programming.
E.g. code duplication, long methods, large classes, complex conditionals, long parameter list, etc…
Black box vs white box testing?
Black-box testing: tester examines the software without having access to the internal code or implementation details.
White-box testing: tester has access to internal code.
What is a requirement?
High-level abstract statement of a service or a system constrained to a detailed mathematical functional specification.
Requirements engineering?
The process of establishing the service as that a customer requires from a system and the constraints under which it operates and is developed.
User requirements?
Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers.
System requirements?
A structured document setting out detailed descriptions of the system’s functions, services and operational constraints.
Defines what should be implemented so may be part of a contract between client and contractor.
System stakeholders?
Any person or org affected by the system in some way and so who has a legitimate interest.
Stakeholder types?
- End users
- System managers
- System owners
Requirements engineering process?
Requirements elicitation
Requirements analysis
Requirements validation
Requirements management
RE is an iterative activity where these processes are interleaved.
Challenges in RE?
Getting the requirements correct:
- Becomes exponentially expensive to correct mistakes later on. Easier to fix problems in requirement specification.
Requirements completeness and consistency?
Requirements should be both complete and consistent.
Completeness: they should include descriptions of all facilities required.
Consistency: there should be no conflicts or contradictions in the descriptions of the system facilities.
Domain requirements?
Constraints on the system from the domain of operation.
E.g. database, user interface, distributed system.
Functional requirements?
Describes functionality or system services.
Functional user requirements may be high-level statements.
Functional system requirements should describe the system services in detail.