Software Development: Software Development Process Flashcards
Explain why the Software Development Process is an ‘Iterative Process’
- It is described as an iterative process because stages in the process may be revisited as a result of information gained in later stages
- This means that the solution will be constantly be redefined until perfected
What is the ‘Software Specification’ document?
It is a formal specification of the scope and boundaries of a piece of software, and forms parti of a legally binding contract between the client and the development team
What are 2 purposes of the ‘Software Specification’ document
- To act as part of a legally binding contract between the client and the developers
- To identify scope and boundaries of problem so that the problem can be contained
What are the 7 stages of the Software Development process
- Analysis
- Design
- Implementation
- Testing
- Documentation
- Evaluation
- Maintenance
Explain fully the Analysis stage, including purpose, personnel and documentation
Purpose
• To define the extent of the software task to be carried out
Personnel
• Client and systems analyst
Documentation
• Software specification
Describe and explain 2 techniques used during the analysis stage
- Interviewing, which involves asking employers and employees being asked what is needed in the software
- Inspection of Existing Documentation, which involves looking over existing documents to understand how data is currently collected by the clients
Explain fully the Design stage, including purpose, personnel and documentation
Purpose
• To design a method of solving the clients problem
Personnel
• Project manager and systems analyst
Documentation
• Algorithm
Describe 3 features that make a good GUI
- There should be consistency in layouts of menus, layouts and text
- It should be possible to reverse action, such as using an UNDO button
- Commands should be indicated with simple verbs and not large amounts of text
What is stepwise refinement?
This is the process of repeatedly breaking down larger difficult problems step by step into smaller, easier-to-solve problems
What is top down design?
Breaking down a problem into sub problems
What is bottom up design?
Using solved sub problems to put together, making one big solution to a problem using these sub problems
What is pseudocode?
Pseudocode is a detailed outline of a program written in English to help a programmer understand problems and sub problems
What are 2 features of using pseudocode?
- It describes the detailed logic of a program without having to bother about the details of how it is going t be implemented in the chosen programming language
- It shows the stepwise refinement of the problem in levels of decomposition
What does the following icon represent in a structure diagram? DIAGRAM
A module requiring further refinement
What does the following icon represent in a structure diagram? DIAGRAM
Repetition
What does the following icon represent in a structure diagram? DIAGRAM
Selection
What does the following icon represent in a structure diagram? DIAGRAM
A module requiring no further refinement
Explain fully the Implementation stage, including purpose, personnel and documentation
Purpose
• To write code in a chosen programming language
Personnel
• Programmer and Project Manager
Documentation
• Program code
3 ways that program code can be improved to build a solution to a problem
- Use internal commentary to explain functions of code throughout the program
- Use meaningful variable names
- Make the program modular, by breaking down the program into procedures and functions
2 factors you should consider when choosing a programming language
- The type of data the language has to support, e.g. floating point numbers or images
- The arithmetical and logical operations required, e.g. string operations and substrings
Explain fully the Testing stage, including purpose, personnel and documentation
Purpose
• To test that a program matches its specification
Personnel
• Independent Test Group
Documentation
• Sets of test data and reports
What is a syntax error?
This is when there is a mistake in the grammar of a programming language, which is reported by the translator
What is a run-time error?
These are errors that aren’t detected by a translator, but is discovered when the program is run, often by crashing the program
What is a logic error?
This is when a program gives incorrect results, despite having correct syntax and no run-time errors.
Name and describe 2 ways you could locate and remove errors
- A structured walkthrough, which involves following through the logic of the instructions line by line using a structured listing of the code
- A dry run, which involves stepping through the program instructions and manually working out on paper how the program variables are updated
What is systematic testing?
This involves a progression through testing subroutines to testing the whole system
What is comprehensive testing?
This involves choosing test data to test that the software can cope with as many cases as possible, including normal, extreme(boundary) and exceptional data
2 reasons why an Independent Test Group is used
- The group will test the program without bias and no expectation of a certain output
- The group will not sign off the project just to make a deadline
Explain fully the Documentation stage, including purpose, personnel and documentation
Purpose
• To produce documentation to be distributed within the software
Personnel
• Client, Systems Analyst and Programmer
Documentation
• User guide and technical guide
What is a user guide?
A document to teach the users how to use the feature of the software
What is a technical guide?
A document to help technical staff to maintain software, and includes things such as software installation and memory and storage requirements
Explain fully the Evaluation stage, including purpose, personnel and documentation
Purpose
• To report upon the quality of the software according to given criteria
Personnel
• Any
Documentation
• Project evaluation report
What is meant by ‘robustness’?
The ability of software to cope with errors during running
What is meant by ‘reliability’?
How well software operates without stopping due to design faults
What is meant by ‘efficiency’?
How much memory and processor time software uses
What is meant by ‘portability’?
The ability of software to run on a system other than the one it was designed for
What is meant by ‘maintainability’?
The ease with which changes can be made to software, and is determined by factors such as readability and modularity
Explain fully the Maintenance stage, including purpose, personnel and documentation
Purpose
• To make changes to the software after the product is handed over to the client
Personnel
• Programmer and Client
Documentation
• Maintenance report
What are the 3 categories of maintenance?
- Corrective maintenance
- Adaptive maintenance
- Perfective maintenance
What is corrective maintenance?
Corrective maintenance involves removing errors in the software that were not detected during development
What is adaptive maintenance?
Adaptive maintenance involves adapting to new hardware as it improves over time
What is perfective maintenance?
Perfective maintenance involves adding enhancements to the software from request by the client to modify the programs function
Name and describe 2 factors that affect maintenance
- Staff mobility, as people change jobs constantly so those who worked on a program may leave
- Poor documentation, as modifying a program requires detailed documentation of how a program was developed and it’s previous features
What is the purpose of data flow?
To identify which variables will be passed as parameters
Explain how could you make a program more efficient?(2)
Don’t include any unecessary code in the program, so that the processor is not required to carry out unecessary commands