UNIT 3: Software Development Flashcards
What is software?
To describe the programs that provide the instructions to control the computer hardware components.
Types of Software:
Application software provides a tool for a specific purpose (a word processor), system software controls the hardware (an operating system) and utility software helps configure and maintain the computer.
Software Development- inital idea to final product
Analysis
Design
Implementation (programming, testing and installiation)
Evaluation
Maintenance
what is the systems devlopment life cycle often shown as?
A circle
ANALYSIS STAGE
a systems analyst works closely with the client to gather info about the requirements of the software
ANALYSIS OUTPUTS
- create a document like “System specification or user requirements”
- defines what the system will do, not how to do it
- problem definition - clear defintiion of the porblem
- system requirements / objectives - clear description of what the system needs to do
- used to create the design and to evaluate the finished product
if the project is going to be substantial or very expensive it might be common for a _____ to precede the analysis stage
feasibility study - involve taking a high level look at the key issues and risks and will include a recommendation as to whether the project should go ahead
DESIGN STAGE
system arhictects oversee the design process, drawring on specifric skills and experitse fro UI designers, database designers and secutity experts.
DESIGN OUTPUT
- desciption of data - dataype, format, validations
- database design if appropraite
- input screens, output screens and reports
- how data will be processed
- how the software will be tested
- User interface
- algorithms
- data structures
IMPLEMENTATION STAGE
- coding and testing the software
- writing user and technical documentation
- installing the software for the user
Black box testing
carried out independently of the code used in the program - looks at the program spec and creates a set of test data that covers all inputs, outputs and the program functions
White box testing
depends of the code logic
tests are devised which test each path through the code at least once
Alpha testing
Alpha testing is the final testing that is carried out by the development team (or associates) using documented test plans, with a focus on whole system functionality and usability.
Integration testing
Integration testing is where individual modules or units (that have already been separately tested) are tested together to ensure that they are compatible and function as expected.
It may be that an individual module works as expected, but when you try to incorporate it into a wider system, errors occur.
Stress or Performance testing
means testing to make sure that the system can handle the anticipated volume of users or data. For example, with online games, it would be very important that the likely number of concurrent users could be supported.
EVALUATION STAGE (Acceptance testing)
The final testing with the intended user(s). It often involves ‘scenarios’ that the users follow to make sure that the system meets the requirements specification.
Beta testing
Beta testing means unstructured testing by a range of selected end users. It allows the system to be tested on a wide range of hardware and a diverse set of supporting or enabling software. They report any faults.
Iterative (module, unit) testing
Carried out at every stage of development. The programmer writes an individual section of code or part of the project and then tests it to ensure that it functions correctly. It is likely that errors will be detected, and these are resolved before the next section of the program is developed and tested.
Final (terminal) testing
- Final or terminal testing is carried out once the program or system is considered to be completely finished, and is the last phase of testing. This stage happens after the individual sections or modules of the system have been tested, to ensure that the system works as a whole and that it meets the requirements of the project.
- During final testing, each particular pathway or route through the program is tested to ensure that the system works correctly in all scenarios and with a full range of input data.
MAINTENANCE STAGE
- Corrective - bugs will be found when software is in action
- adaptive - over time, user requirements will change and software needs to adapt
- perfective - even if software works well, there may be ways of making it faster, easier to user or more functionaility
Waterfall model/ lifecycle
- Each stage is completed and dcoumented before the next is begun
- the customer doesnt see the end product until it is completed.
- any change to be made often means the project has to started again
Advantages of waterfall
- model is simple to understand and use
- each stage is separate and self containted with well defined outcomes and witten documentation
- project stratgihtforward to manage
- model works well for smaller projects where requiremnts are very well understood
Disadvantages of waterfall
- not much user involvement after the analysis stage, when the specficiation document is agreed
- no working software is produced until late in the cycle
- user is presented with finsihed product and if its not quite was required, its too late to make changes
when to use waterfall model
- requirements are very clear and fixed
- no ambiguous requirements
- tech is well understood
- project is short