Part 1 Flashcards
How can a software system be out of date as it is being developed?
- User requirements can change
- Updates/improvements in technology
- Requirements missed at time of capture
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?
- Rapidly respond to changes in users’ needs
- Deliver working software quickly
What is the purpose of modelling in agile development?
- communicate a viewpoint of the system
- help understand the system
- aid communication among the developers.
What are the characteristics of a good software system?
- Meets users’ needs
- Useful
- Usable
- Flexible
- Affordable
- Available
- Reliable
Why is traceability important?
- Aids in resolution of disputes
- proves that the requirements have been dealt with
- explains what / why changes were made
List 8 non-functional requirement categories
- Look and feel
- Usability and humanity
- Performance
- Operational and environmental
- Maintainability and support
- Security
- Cultural
- Legal
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:
- requirements gathering is more an iterative and ongoing
- tries to capture the requirements as they evolve over the lifetime of the project.
- documentation only written if necessary
- informal:user stories
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?
- software can be built to the exact requirements of the users.
What are the disadvantages of developing a system from a set of use cases?
- the developer may view the system too operationally by focusing on the requirements of the use case and assuming that a sequence of events is the only answer
How do interaction diagrams help ensure that software meets its goals?
- Helps understanding of how the classes interact with each other.
- Help understanding of how system operates to meet the requirements.
- Helps demonstrate how the system satisfies the requirements by showing the interactions between classes and therefore how the product operates.
- Interaction diagrams serve as a basis for discussions with the development team, and as a form of documentation, which can also inform the testing.