Programming Flashcards
What are the characteristics of a Waterfall Model?
Simple to use
Allows the mapping of every step of the development process
Tasks are completed in sequential
Incremental approach
Process is repeated until the system is completed
After the product is developed, it must be tested
If bugs occur, they should be removed
After deployment, continue observing the system
Make adjustments in order to improve the software
Advantages of Waterfall Model
Easy to understand and use
Quite easy to manage
Minimise time spend
Easy to meet deadlines
Best suited for bigger teams and projects as there is heavy documentation involved
With Waterfall, everything is made to be simple and straightforward
Disadvantages of Waterfall Model
Changes can be extremely costly or even impossible to make
May take a while for working software to appear
Can become quite risky if on a tight budget and end result does not meet expectations
Research time may get excessive (not good for small teams)
Quite difficult to measure the progress made as there is no working software delivered until late in the development cycle
What are the characteristics of an Iterative Model?
There isn’t typically a lot of planning involved in the initial stages of building the new system
Needs to break down the entire project into smaller components - product builds, known as iterations
Each iteration goes through the typical stages of the software development life cycle - planning, design, implement, test, and deploy
Each cycle builds on the others
Once the product build is completed, it can be deployed immediately
Thus, working software can be seen as of the beginning of the development process
Can work on a couple of iterations at once
Allows slight changes along the way during development to adjust the software to meet needs
Cost of making adjustments is lower compared to the Waterfall model
Advantages of Iterative Model
Can make slight changes to the software (system can evolve in the future)
There’s not as thorough planning involved in the initial stages as it is in the Waterfall method
Working software is released as soon as possible
Can measure the progress made
Can work on a couple of iterations simultaneously
Better suited for bigger teams and projects
Disadvantages of Iterative Model
Lot of management involved
No clear image of how the end system should look like
Highly skilled engineers/ programmers are needed to adopt
There might be architecture bugs and design issues along the way due to the lack of specific requirements
Uses of Iterative Model
Use this method if team is skilled enough to adapt to new technologies
Iterative model is also a bit rigid and follows some strict guidelines
Better suited for bigger teams and projects
What are the characteristics of a Rapid Application Development (RAD) Model?
Consists of iterations, known as prototypes where each prototype is a functioning part of the overall software
Allows deployment of each prototype separately, thus valuable feedback can be collected throughout development
Prototypes developed are reusable for future projects
No need to create laborious documents to get your team started
Embraces change
Advantages of RAD Model
Stresses on developing reusable prototypes that saves time and money for future projects
Focuses on delivering working prototypes
Collecting feedback from the market with constant prototype releases
Measures the progress easily by delivering working prototypes continuously
Works great when the team is smaller (around 8 people)
Disadvantages of RAD Model
Requires highly skilled and committed team members
Requires that the software to be broken down into smaller chunks - prototypes (otherwise it will be very difficult to use)
Considerable management is needed that can make the work process more difficult
End user must be constantly involved in the developmentstage
Uses of Iterative Model
The RAD method is perfect for projects where the productcan be broken down into prototypes and then reuse these prototypes for future software releases
The RAD model also encourages changes and iterations
RAD method is not suited for projects where well-defined requirements are needed as there is a lack of documentation
Why would corrective maintenance be used?
Necessary when a fault or bug is found in the operation of the new system
These are software bugs which were not picked up at the formal testing stage
A technician or the original programmers will be needed to correct the error
Why would adaptive maintenance be used?
Necessary when conditions change from those that existed when the original system was created
This may be because of a change in the law (e.g. tax rates may change
Or the hardware may be changed, so that changes need to be made to the software for it to remain functional
Why would perfective maintenance be used?
Required to “tweak” the system so that it performs better
E.g. searching for a particular stock item may be quite slow
The technician decides that supplier details should be stored in another file rather than with the details of the stock
Size of the stock file is reduced and it is far quicker to search
This has not changed how the system operates as far as the user is concerned but the performance improves
What are the three major types of error in programs?
- Syntax errors (incorrect use of the programming language/incorrect spelling of commands)
- Logic errors (the program does not do what was intended/program does not do what the programmer wants)
- Run-time(or executable) errors (ones that are only discovered when the program runs)