Software <3 Flashcards
What is the analysis stage of software development?
The stage where an initial description of the problem to be solved is examined and turned into a precise description of exactly what the software will be able to do.
What must the Systems Analyst be able to do?
Communicate effectively with the client in order to discover exactly what problem is that they want to solve
Communicate with the development team in order to accurately describe what needs to be produced.
Why is the analysis stage of software development important?
The initial problem description has to be clearly stated and the software specification agreed upon
Or subsequent stages will suffer from delays and difficulties due to the need to re-analyse the task and rewrite the software specification.
The Systems Analyst will create a software specification at the end of the Analysis stage of software development. What is a software specification?
The software specification describes what the software to be created must be able to do.
What is the design stage of software development?
When the software specification created by the systems analyst is turned into a design which can be used by the team of programmers to write the code.
The more time spent on this stage, the less time will be needed to be spent on the next one.
What is Top Down Design?
Any software problem can be broken down into smaller more easily managed problems.
These problems can subsequently be further broken down into a set of simple steps.
Advantages of Modular Design?
- Modules can be tested independently.
- A well written module may be able to be re-used in another application.
- Modules can mirror the structure of the data being processed by the application.
What is Stepwise refinement?
The process of designing the logic of each module.
This involves breaking the module down into successively smaller steps, eventually resulting in a set of pseudocode instructions which can be converted into the chosen programming language.
What is the the implementation stage?
(If the design has been written in enough detail)
The implementation stage should just be a matter of using the design to create the source code for the application.
Testing a piece of software has several purposes.What should it check?
- The software meets the specification
- It is robust
- It is reliable
What does testing do?
Testing can only demonstrate the presence of errors, it cannot demonstrate their absence.
What 2 things should testing be?
Systematic, which means testing in a logical order
Comprehensive which means testing every possible scenario.
What is the documentation stage?
When the guides to using and installing the software are produced.
what should the user guide for the software should include?
A comprehensive guide to the menu options, and how each one functions.
what is the evaluation stage?
Where the software is critically examined by both the client and the developer.
What do we evaluate for?
- Robustness
- Maintainability
- Efficiency
- Usability
What are the three types of software maintenance?
- Corrective
- Adaptive
- Perfective
What is corrective maintenance
Fixing errors that were not detected during testing but which occur during actual use of the program.
The developer will be responsible for any costs incurred by this type of maintenance.
What is adaptive maintenance?
Fixing issues caused by when the program’s environment changes.
The cost is usually borne by the client but there may be negotiation depending upon how predictable the change in circumstances was.
What is perfective maintenance?
When the client requests changes or improvements to the program which were not in the original software specification.
The cost of perfective maintenance is likely to be borne by the client.
What is agile software development?
Breaks a project down into a series of short development goals, often called sprints
What does agile software development focus on?
It focuses on small scale developments, and with teams of people who have a flexible approach to changes in requirements.
What are the benefits of the Agile method?
- The client is involved throughout the process, giving constant feedback on prototypes of the software during development.
- Collaboration within teams of developers throughout the process.
- Reduced development time.
- Increased responsiveness to changing circumstances.
- More reduced costs due to the efficiency of using small groups of developers.
What are the STRENGTHS of Iterative Methodology (traditional)?
- Rigid planning structure
- Good for large teams
- Helps to plan and track large software projects
- Clear agreement on outcomes at start of project
What are the STRENGTHS of Agile Methodology?
- Copes well with little cumulative changes as the project progresses.
- Good for small-scale projects like most Apps
- Ongoing involvement of client allows changes to be agreed quickly
- Changes cause less delay or can be tackled in the next version.
What are the WEAKNESSES of Iterative Methodology (traditional)?
- Very rigid approach does not deal well with mid-project changes
- Can over-complicate simple projects
- Unidentified issues at the analysis stage can be time-consuming and costly to fix
- Little involvement of client after analysis.
What are the WEAKNESSES of Agile Methodology?
]-Works best with small teams
- Needs close version control and tracking of changes
- Can be difficult to determine the full scope of the project in the early stages
- Usually no legally binding agreement at the start
As part of the software specification, what are the four areas are analysed and agreed upon?
- The overall purpose
- The scope
- Boundaries
- Functional requirements.
What is the purpose of a program?
General statement about what the program is required to do. It should clarify the main point(s) of the program between the developers and clients
What does the scope clarify?
What the project must cover, often written as a list of deliverables.