Check you understanding of Data Structures at AS level first
Approaches - Describe different appropriate approaches to analysis and design, including Waterfall and Agile.
Waterfall Approach - It is a sequential design process, in which various developers draft up all the requirements for a system up front.
Agile Approach - Incremental approach to development, in which developers start off with a simple project design instead of a huge document, and work on small modules at a time.
Both of these approaches are summarised below:-
Observations - DID YOU KNOW?
The Hawthorne Effect occurs during Direct Observation when staff alter their normal behaviour because they know they are being watched.
It is a sequential design process, in which various developers draft up all of the requirements for a system up front and it does not change.
By having all the requirements beforehand, everyone knows exactly what’s needed. The client input is only required during the analysis and at times the design stage.
Client knows what to expect, including time frame, size, and cost of the project, and they know exactly what their product will do
If employees leave or join the development team, the strong documentation allows bringing new people up to speed quickly
Because the process is sequential, once a stage of development has been completed e.g. (analysis and design), you can’t go back to a previous stage to make changes
If the initial requirements (analysis or design) of the project are faulty/inaccurate in any way, the project is almost guaranteed to fail due to the rigidness of the waterfall methodology.
The product is only tested once it is completed and if bugs were made early on, a large amount of code will be affected
If the client’s needs change as the project goes on, the project will take longer than predicted
Incremental approach to development, in which developers start off with a simple project design and requirements instead of a huge document, and work on small modules at a time
The agile approach is an iterative approach as the analysis and design rely on each other e.g. the analysis informs design and the design informs further analysis to be undertaken.
Changes can be made after the initial planning phase, and as the client makes changes the program can be re- written. The analysis can be revisited and designs changed.
Testing is done as the product is developed, ensuring that bugs are found earlier in the process
A smaller team can work on the product because you are removing the upper layers of project managers
There can be a closer relationship between the customer and the developer. Strong communication between the client and the developer should be regular. Clients are involved during ALL stages of development.
When the end goal of the product is not clearly defined, Agile development is the most suitable approach
Sprints of work on the project are done and priorities of the project are discussed, evaluated, and tested. Then, a simple product is released to the consumer and they are now able to use it and provide feedback
It can be hard to employ new people into a team when you have less of a clearly defined structural process
It can be difficult to predict when the project will be completed, or how much it will ultimately cost
Procedural languages are suitable for both the Agile and Waterfall approach
Scripting Languages are suitable for both the Agile and Waterfall approach
Non-Procedural languages would be suitable for the Waterfall approach but some might not work as well with the Agile approach
Non-procedural programming languages require programmers to specify rules and facts which is more suitable for Waterfall
Object Orientated languages are suitable for both the Agile and Waterfall approach Visual languages would be more suitable for Agile
4th Generation languages are suitable for both the Agile and Waterfall approach
VIDEO REFERENCES
Detailed documentation is needed to inform the next stage. As those that are involved in the next stage may not have been involved in the current stage and will have limited knowledge without effective documentation.
Documentation that should be produced during the ANALYSIS stage of software development include:-
Questionnaires - These should be undertaken by a variety of stakeholders to support the analysis of the existing system. These questionnaires should measure the effectiveness of the current systems from the viewpoints of various stakeholders.
Observations - Formal observations should be undertaken by the analysis team. These observers should monitor the interactions stakeholders have of the current systems, making relevant notes.
Requirements - After the analysis has been completed a format set of requirements should be produced for any proposed changes of an existing system or implementation of a new system.
TYPES OF DOCUMENTATION
There are two types of documentation.
User documentation should be straight forward and targeted specially for the end user.
Maintenance documentation should be technical documentation aimed at the person who manages and configures the software/system. This could include IT technicians who understands all aspects of the system including the software and hardware used. Maintenance documentation is essential for ensuring the system remains functional, secure and adaptable over time.
e.g. A software company has produced a stock control system for a small retailer. Different types of maintenance that should be carried out on the stock control system include:-
Corrective is fixing bugs in the system that were not detected during development or system testing e.g. the users might find that some data input for new stock is not validated and causes program to crash or produce inaccurate output
Adaptive is when the system is changed to run on a new hardware or software platform e.g. the retail company could switch from a Windows based system to Macintosh or Linux
Perfective is when the system functionality is improved e.g. reducing the search time for stock control records
Locate and listen to AUDIO discussion on Systems Analysis on p:drive