How can a software system be out of date as it is being developed?
Suggest what can be used in agile software development as a basis of estimation?
Previous experience of similar projects
What does iterative development mean?
continuously repeats a set of activities improving the outputs each time at the feedback received from a previous iteration.
an iteration is a complete small project, with a short timeframe, consisting of analysis, design, implementation, testing and integration, and results in a partially working system.
How does using an iterative approach help build a system that meets users’ needs?
each iteration will assess the system being developed against its requirements. If the requirements change, they will be captured and accommodated for in the next iteration.
Agile vs. plan driven development with regards to requirements change
Agile = responds to change quickly. PDD = waterfall = difficult to change. needs to be documented and formal agreement
Explain why estimation is an important activity within agile software development.
Estimation is an important activity because when developing software, there needs to be established an idea of effort and time required to complete the software. Once the people resources and time required are established, work can be assigned to people or teams with expected periods of time.
What are the benefits of agile development?
- Deliver working software quickly
What is the purpose of modelling in agile development?
What are the characteristics of a good software system?
Why is traceability important?
List 8 non-functional requirement categories
What is the difference between a functional and non-functional requirement
A functional requirement describes the functionality of the product; what it must do, whereas a non-functional requirement describes a property of the product, e.g. how it should look, how quickly something should happen.
Requirements documentation : plan driven vs. agile
plan-driven development:
-large formal requirements document that must be produced at the beginning of the development process which: takes up a lot of time, delays the start of code development.
agile practices:
How are requirements and testing related?
Testing aims to validate that the product satisfies the requirements of the user and verify that the product works as intended
What is a business process?
Definition of what gets done in the business: by whom, in what order, needing what and with what consequences.
What is a business rule?
A constraint on how the business is run
What are the advantages of OCL?
it uses precise language, capable of being easily understood by developers and customers.
What are the disadvantages of OCL?
not a stand-alone language. A model needs an accompanying UML diagram.
verbose; hard to understand
When do you need to start thinking about architecture in the software development process?
Right at the start. Requirements will often dictate the architecture. It is expensive to change the architecture once the system development is underway.
What is verification?
Checks that the system has been built correctly.
What is validation?
Checks that the system built meets the specification of the customer.
What are the advantages of developing a system from a set of use cases?
What are the disadvantages of developing a system from a set of use cases?
How do interaction diagrams help ensure that software meets its goals?