3.1 System Analysis Flashcards
2 categories of software
- Application
- System
What are the steps of software development
- Analysis
- Design
- Implementation
- Evaluation
- Maintenance
Systems development life cycle
- Analysis
- Design
- Implementation
- Evaluation
- Maintenance
Analysis
- Gathers information about what the current system does if there is one, and what the new system needs to do
- Analysts 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
What are some outputs from analysis?
- System spec, user requirements
- Can define what the system will do, but not how it will do it
- Is used to create the design and to evaluate the finished product
Features of the design testing
- A description of the data
- Database design
- Input screens
- Output screens and reports
- How the data will be porcess
- How the software will be tested
Implementation
- 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.
- It looks at the program specification and create a set of test data that covers all the inputs, outputs and program functions
White box testing?
Depends on the code logic and devised which test each path through code at least once
Alpha testings
- 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
Beta testing
- This is used when a a commercial software is being developed
- Software is given to a number of potential users, who agree to use the software and report any faults
Evaluation
Acceptance testing evaluates the product against the specification document
Give 3 different types of maintenance
- Corrective
- Adaptive
- Perfective
Corrective maintenance
Bugs will usually be found when the software is put into action, no matter how thoroughly it was tested
Adaptive maintenance
Over time, user requirements will change and the software will have to be adapted to meet new needs
Perfective maintenance
Even if the software works well, there may be ways of making it even better - faster, easier to use, more functionality
Waterfall model
- Each stage is completed and documented before the next is begun
- The customer doe snot see the end product until it is completed
- Any changes the project has to be started again
Advantages of the waterfall model
- 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 requirements are very well understood
Disadvantages of the waterfall model
- There is not much user involvement after the analysis stage, when the specification document is agreed
- No working software is produced until late in the cycle
- The user is presented with the finished product if it is not quite what was required, it is generally too late to make changes
When to use the waterfall model
- The requirements are very clear and fixed
- There are no ambiguous requirements
- The technology is well understood
- The project is short
4 basics steps of spiral model
- Analysis
- Design
- Implement
- Evaluate
What does each successive loop do around the spiral
Generates a more refined prototype until the software meets all the requirements
Advantages of the spiral model
- 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 cjamges can be amde early in the process
- ADded functionality can be made early in the process
- The end result is more likely to be what the user wants
Disadvantages of spiral model
- Process of developing prototype, 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
When to use the spiral model
- 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 over time
Agile model
- Software is developed in rapid incremental cuycles
- 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
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
Disadvantages of the agile model
- There is a lack of emphasis on necessary design and documentation
- The project can fail to deliver if the customer is not clear about the desired final outcome
- Not suitable for novice programmers - experienced programmed capable of making good decisions are required
When to use the agile model?
- When new changes need to be implemented
- In an expanding or developing business where users’ needs are continuously changing and developing
Extreme programming (XP)
- A software method methodology which is intended too improve software quality and responsiveness to changing customer requirements
- A type of agile software development in which frequent “releases” of the software are made in short development cycles
What are some of the ideas used behind RAD (Rapid Application Development)
- Workshops and focus groups to gather requirements rather than a formal requirement document
- The use of prototyping to continually refine the system in response to user involvement and feedback
- Producing within a strict time limit each part of the system, which may not be perfect but which is good enough
- Reusing any software components which have already been used elsewhere