9.1.2 Software development approaches Flashcards
Outline the key elements of the structured approach
The structured approach has distinct formal stages occurring one after the other. It is suitable for large project with large teams where all requirements are known.
Outline the key elements of the agile approach
Agile is a highly iterative approach that aims to deliver regular working versions of software after each iteration with selective refinement. This approach responds well to changing specifications and requires close collaboration between the developer and client.
Outline the key elements of the prototyping approach.
Prototyping acknowledges that users will give the best feedback if they can see and use a working model of the software. Prototyping is often used in the development of a user interface and is appropriate for software that requires extensive user interactions.
Outline the key elements of the RAD approach
Suitable for small projects, RAD (Rapid Application Development) aims to create a usable software solution in the shortest possible time, making extensive use of existing modules.
Outline the key elements of the end user approach
The end user develops the software themselves. They might make use of existing packages like spreadsheet and database software. This means that there are no communication issues. Usability is not a big concern since the designer is the user (a personalised solution).
List the 4 methods of installation and draw a graph to represent how each method works.
For the parallel method of installation:
- How does it work?
- What is it good for?
- Any issues?
How does it work?
- Both the old and new system are used together for a period of time until there is confidence that the new system is performing as needed.
What is it good for?
- Ensuring that the new system works as needed.
- Data is protected (old system is like a backup).
- Giving users time to understand the new system.
Issues?
- Twice the workload for users, as all functions must be performed on the old and new systems.
For the direct cutover method of installation:
- How does it work?
- What is it good for?
- Any issues?
How does it work?
- The old system is completely replaced by the new one at a given time.
What is it good for?
- Simplest method.
- Other methods may not be feasible.
Issues?
- The new system has not been used before in a live environment and there is effectively no backup, so it had better work!
For the phased method of installation:
- How does it work?
- What is it good for?
- Any issues?
How does it work?
- A gradual introduction of the new system while the old system is discarded.
What is it good for?
- Time for users to adapt to the new system.
- With a gradual changeover, any issues are minimised as only a small part is changed.
Issues?
- Compatibility, usability or other issues may arise with interconnected parts of the old and new system.
For the pilot method of installation:
- How does it work?
- What is it good for?
- Any issues?
How does it work?
- A small number of users adpot the system for a time until it is performing as needed.
What is it good for?
- Allows a base of users to learn the new system, who may then be able to train others.
Issues?
- Compatibility or other issues may arise from 2 different systems working at the same time.
What are CASE tools?
Computer Aided Software Engineering - software for developing software.
Various types of tools are used in all stages of the software development cycle.
Give an example of specific uses of CASE tools at each stage of the software development cycle.
- Defining and understanding - scheduling, systems modelling, storyboards, prototypes.
- Planning and designing - generation of test data, algorithm representation
- Implementing - algorithms, data dictionaries.
- Testing - documentation of testing.
- Maintaining - version control, monitoring changes in software.
Outline two employment trends in software development.
- Outsourcing – engaging an external company for a service. Common across various areas such as legal, accounting etc.
- Contract Programmers – short term contracts to write software and easy to engage remote workers.