Systems Analysis Methods

Cards (28)

  • Software Development
    Follows 5 distinct stages:
    • Analysis
    • Design
    • Implementation
    • Evaluation
    • Maintenance
  • Analysis Stage

    A systems analyst gathers information about what the current system does and what the new system need to do. To do this the system analyst 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
  • Output from analysis
    The systems analyst will produce a document called something like "System Specification" This defines what the system will do, but not how it will do it. This is a vital document as it is used to create the design, and to evaluate the finished product
  • Design Stage

    The software design will include:
    • A description of the data
    • Database design if appropriate
    • Input screens
    • Output screens and reports
    • How the data will be processed
    • How the software will be tested
  • Implementation Stage

    This stage includes:
    • 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 creates a set of test data that covers all the inputs, outputs and program functions
  • White box testing
    Depends on the code logic. Tests are devised which test each path through the code at least once
  • Alpha testing
    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 commercial software is being developed. The software is given to a number of potential users who agree to use the software and report any faults.
  • Acceptance Testing (Evaluation)

    The user needs to test every aspect if the software to make sure it does what it is supposed to do it will be evaluated against the original specification document.
  • 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
  • The waterfall model
    Each stage is completed and documented before the next is begun. The customer does not see the end product until it is completed. Any change to be made often means the project has to be started again.
    A) Evaluation
    B) Analysis
  • Advantages of 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 and 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
  • The Spiral Model

    The four basic steps of analysis, design, implementation and evaluation are followed. The software project passes through these phases repeatedly. Each successive loop round the spiral generates a new, more refined prototype until the software meets all the requirements
  • Advantages of the Spiral model:
    • the 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 changes can be made early in the process
    • added functionality can be added during the process
    • the end result is more likely to be what the user wants
  • Disadvantages of the Spiral model:
    • the process of developing prototypes, 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 the users are unsure of their needs and what the possibilities are
    • when the requirements are complex
    • for large projects which may take years to develop, during which time new technologies may develop and significant change occur
  • The Agile Model
    Software is developed in rapid incremental cycles. Each version builds on previous functionality. Each version is thoroughly tested before release. Its good for small, time-critical projects. Only 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 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 programmers capable of making good decisions are required
  • When to use the Agile model:
    • when new changes need to be implemented - small incremental changes can be made frequently and for little cost
    • in an expanding or developing business where users' needs are continuously changing and developing
  • Extreme Programming
    A type of agile software development. Frequent releases of the software are made in short development cycles. It is intended to improve productivity and responsiveness to changing customer requirements.
  • Large Projects span over a large period of time meaning that many things can go wrong such as:
    • personnel change
    • requirements change
    • technology advances
    • cost spiral upwards
    • project gets cancelled
  • 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. Software components are reused whenever possible.