Software development (Unit 3) (Finished) Flashcards
(3.1) What are the stages of software development?
Analysis Design Implementation (programming, testing and installation) Evaluation Maintenance
(3.1) What happens in the analysis stage?
In this stage, a systems analyst gathersinformation about:
What the current system does (if there is one)
What the new system needs to do
To do this, the systems analyst may:
Interview people who will use the software
Use questionnaires to get information from large groups of people
Observe how the current system works
Look at existing documentation
(3.1) What is the output of analysis?
The systems analyst will produce a document called something like
“System Specification” or “User Requirements”
This defines what the system will do, but not how it will do it
The system specification is a vital document!
It is used to evaluate the finished product
(3.1) What happens in the design stage?
The software design will include:
A description of the data to be inputted and outputted: data type, format, and validations
Database or data storage design if appropriate
Input screen mock ups including things like drop down menus
Output screens and reports
How the data will be processed
How the software will be tested
(3.1) What happens in the implementation stage?
This stage includes:
Coding and testing the software
Writing documentation such as the manual
Installing the software on the appropriate device for the user
(3.1) What is black box testing?
Black box testing is carried out independently of the code used in the program
It looks at the program specification and creates a set of test data that covers all the inputs, outputs and program functions
(3.1) What is white box testing?
White box testing can be done if the testing team has access to the code and can see what is happening.
(3.1) What is alpha testing?
This is carried out by the software developer’s in-house team and by the user
It can reveal errors or omissions in the definition of the system requirements
The user may discover that the system does not do exactly what they wanted
(3.1) What is beta testing?
This is used when commercial software is being developed (e.g. MS Windows, MS Word, Sage Accounts, etc.)
The software is given to a number of potential users, who agree to use the software and report any faults
(3.1) What happens in the evaluation stage?
Does it all work?
The user/customer now needs to test every aspect of the software to make sure it does what it is supposed to do
It will be evaluated against the original specification document
(3.1) What are some different development methodologies?
Waterfall model Spiral model Agile model (extreme programming) Rapid application development
(3.1) What is the waterfall model?
each stage is completed and documented before the next is begun
The customer does not see the end product until it is completed
Any change to be made often means the project has to be started again
(3.1) What are some advantages of the waterfall model?
The model is simple to understand and use
Each stage is separate and self-contained with well defined outcomes and written documentation
This makes the project relatively straightforward to manage
The model works well for smaller projects where user requirements are very well understood and not likely to change
(3.1) What are some disadvantages of the waterfall model?
There is not much user involvement after the Analysis stage, when the system specification or user requirements document is agreed
No working software is produced until late in the cycle, hence no opportunity for the user to use the system
The user is presented with the finished product and if it is not quite what was required, it is generally too late to make changes
(3.1) When is the waterfall model used?
This model is suitable when: The requirements are very clear and fixed There are no ambiguous requirements The technology is well understood The project is short
(3.1) What is the spiral model?
The four basic steps of analysis, design, implementation (i.e. programming and testing) and evaluation are followed
The software project passes through these phases repeatedly
Each successive loop round the spiral generates a new, more refined/better quality prototype until the software meets all the requirements
(3.1) What are some advantages of the spiral model?
The well-defined steps make the project easy to manage
Software is produced at an early stage so problems and issues can be identified early
The user gives feedback on each prototype and any required changes can be made early in the process
Added functionality can be added during the process
The end result is more likely to be what the user wants and will pass acceptance testing
(3.1) What are some disadvantages of the spiral model?
The process of developing prototypes, getting feedback and refining the prototypes is time-consuming so the finished product takes longer to develop
A system is more costly to develop because of the time involved
Not suitable for smaller projects
(3.1) When is the spiral model used?
For medium to high-risk projects
When users are unsure of their needs and what the possibilities are
When the requirements are complex
For large projects which may take years to develop, during which time new technologies may develop and significant changes occur
(3.1) What is the agile model?
Software is developed in rapid incremental cycles
Each version builds on previous functionality
Each version is thoroughly tested before release
Good for small, time-critical projects
Limited planning is needed to get started
(3.1) What are some advantages of the agile model?
Rapid, continuous delivery of useful software leads to customer satisfaction
Customers, developers and testers constantly interact with one another
Working software is delivered frequently, within weeks rather than months
Software is easily adapted to changing circumstances
Even late changes in requirements can be implemented