Unit 3 - Software Development Flashcards
What happens in the analysis stage?
gathers info about:
- what a current system does, what the new system needs to do
What is included in the design stage?
A software design will include:
- description of the data (data type, format, and validations)
- database design if appropriate
- input screens, output screens and reports
- how the data will be processed
- how the software will be tested
What is included in the implementation stage?
This stage includes:
- Coding and testing the software
- Writing user and technical documentation
- Installing the software for the user
What types of testing are there?
- black box
- white box
- alpha
- beta
- acceptance
define black box testing
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
define white box testing
when we can see the code and can test all the different pathways throughout the code
define alpha testing
carried out by the software developer’s in-house team and by the user to detect errors in the definition of system requirements
define beta testing
used when commercial software is being developed. The software is given to several potential users who agree to use the software and report any faults. Usually carried out on a separate machine
advantages of beta testing
advantages of beta testing are that the users may try to do things that the developers may not have anticipated which can therefore lead to errors being discovered
define acceptance testing
the evaluation where the user tests every aspect of the software to make sure it does what it is supposed to do. It will be evaluated against the original specification
what are the different types of maintenance
- corrective
- adaptive
- perfective
define corrective maintenance
bugs will usually be found when the software is put into action, no matter how thoroughly it was tested
define adaptive maintenance
over time, user requirements will change, and the software will have to be adapted to meet new needs
define perfective maintenance
even if the software works well, there may be ways of making it even better (faster, easier to use, etc.)
what is the waterfall model
each stage is completed then documented before the next is begun. the customer does not see the product until it is completed. any change to be made often leads to the project being started again
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 documentaries, which
makes the project straightforward to manage - The model works well for smaller projects where requirements are very well understood
disadvantages of waterfall model
- There is not much user evolvement after the analysis stage, when the specification document is agreed which could lead to disagreements.
- No working software is produced until late in the cycle.
- The user is presented with the finished product and if it is not what was required, it is too late to make
changes.
what is the spiral method
an abstract description of the systems life cycle where there are four defined quadrants - planning, risk analysis, use of design methods, client and management evaluation. once one stage of development has gone full circle , the next takes place and so on until completion
advantages of spiral method
- well-defined steps = easy to manage
- Software is produced early so problems and issues can be identified
- user gives feedback on each prototype and required changes can be made early in the process
- Functionality can be added during the process
- result is more likely to be what the user wants
disadvantages of spiral method
- time-consuming and therefore the finished product takes longer to develop
- a system is more costly to develop because of the time involved
- not suitable for smaller projects
when to use spiral method
- medium to high-risk projects
- users are unsure of their needs and what the possibilities are
- requirements are complex
- large projects which may take years to develop, during which time new technologies may develop and
significant changes occur
what is the agile method
software is developed in rapid incremental cycles and each version builds on previous functionality. each version is also thoroughly tested before release. it is good for small, time-critical projects.
advantages of agile method
- rapid continuous delivery of useful software leads to customer satisfaction
- customers, developers, and testers constantly interact with each other
- working software is delivered frequently
- software is easily adapted to changing circumstances
- late changes in requirements can be implemented
disadvantages of agile method
- lack of emphasis on necessary design and documentations
- project can fail to deliver if the customer is not clear about the desired outcome
- not suitable for novice programmers, experienced programmers capable of making good decisions are
required
when to use agile method
- when new changes need to be implemented - small incremental changes can be made frequently for little cost
- in an expanding or developing business where users’ needs are continuously changing and developing
define extreme programming
- the key focus is on the quality of the code
- it is a type of agile paradigm
- it is designed to allow development to respond to changing user requirements
- it involves the use of paired programming
- the program is reviewed regularly and is iterative in nature
- it is well suited to applications such as anti-virus software as the types of virus / threats are continually changing. in order to detect viruses effectively there needs to be an emphasis on code quality.
define rapid application development
workshops and focus groups gather requirements rather than using a formal document. prototyping is used to continually refine the system in response to user feedback. each part of the system is produced within a strict time limit – not perfect, but good enough. software components are used whenever possible.
define algorithm
a set of step-by-step instructions used to solve a problem or complete some well-defined tasks in a finite number of steps
name some types of algorithms
- search
- sort
- route
- queuing
name some routing problems
- routing packets of data around the internet by the shortest route
- finding the shortest route for a salesperson to cover his territory
what makes a good algorithm
- have clear and precisely stated steps that produce the correct output for any set of valid inputs
- always terminate at some point
- perform the task efficiently, in as few steps as possible
- be designed in such a way that other people will be able to understand and modify it if necessary