System Analysis Prototyping and Iteration

Embed Size (px)

Citation preview

  • 7/30/2019 System Analysis Prototyping and Iteration

    1/14

    Systems Analysis,

    Prototyping and Iteration

  • 7/30/2019 System Analysis Prototyping and Iteration

    2/14

    Systems Analysis

    This is a process used in the designof new systems. Systems analysisfollows stages of investigation, designand implementation.Each stage should involve close

    consultation with potential users, inthe various functional areas of the

    organisation, to ensure that theirinformation and operationalrequirements are met.

  • 7/30/2019 System Analysis Prototyping and Iteration

    3/14

    The design stage should produce asystem specification, which shoulddetail all necessary materials andprocedures needed to fulfill thespecification.The specification should detail all

    the necessary clerical procedures,

    hardware requirements and theinputs, processing and outputsrequired of the computer software.

  • 7/30/2019 System Analysis Prototyping and Iteration

    4/14

    After implementation of a system, itwill require continual monitoring andprobably, occasional modification,

    when the operational or informationrequirements of users change. Thismaintenance task is the responsibility

    of the systems analyst.

  • 7/30/2019 System Analysis Prototyping and Iteration

    5/14

    SDM Waterfall Model

  • 7/30/2019 System Analysis Prototyping and Iteration

    6/14

    Feasibility The feasibility study determines whether a

    particular development project should go ahead. If theproject is to proceed then a project plan and budgetestimate for the other stages of development will be

    produced.

    Requirements analysis The requirements for the new or modified system

    are gathered at this stage. They should be recorded sothat at the end of the project the software can betested to ensure it fulfills the requirements.

  • 7/30/2019 System Analysis Prototyping and Iteration

    7/14

    Design specificationDesign focuses on:

    high level design, e.g. what programs are needed, what are their inputs andoutputs, what are their interactions with other software or the operatingsystem.

    low level design, e.g. how will the program work, what models or algorithms

    will be used, what libraries are required. data design, e.g. for input and output, data structures in the software. The level of detail in the design may be a matter of personal choice or may

    be specified by particular development procedures. Having a detailed designwill make generating the code easier but will make changing things difficultwhereas a more broad brush design will leave more work in the

    implementation phase but allows room for the details to come out as thedevelopment progresses. Above all the design should be documentedincluding reasons for making particular choices if a number of options wereavailable. This makes it much easier for new developers to join a project andhelps when new features are required.

  • 7/30/2019 System Analysis Prototyping and Iteration

    8/14

    Coding In this phase the designs are translated into code.

    Programming tools such as compilers and quality assurancetools are used to generate good quality source code and thesoftware application. Testing of small self-contained parts(modules) of the overall application may take place depending

    on the modularity of the code.Testing The overall system is tested to ensure that it works on

    the intended platform(s), giving correct results or showingthe required behaviour defined in the requirementsdocument. The use of debuggers and profiling tools will be

    useful at this stage to identify errors in the code and getthe best possible performance from the code. Optimumperformance is especially important in scientific computingapplications.

  • 7/30/2019 System Analysis Prototyping and Iteration

    9/14

    Maintenance Once the system is delivered to users it will

    inevitably need maintenance. There may be bugscaused by unexpected input values (add them to atest suite) or by unexpected (inappropriate) use of

    the software (tighten up the documentation). Inaddition users will want more or differentfunctionality and will definitely want it to runfaster or address bigger problems! The softwaredevelopment process should be able to

    accommodate changes at this stage through a wellthought out design and any changes should havetheir own requirements, design, coding and testingstages.

  • 7/30/2019 System Analysis Prototyping and Iteration

    10/14

    In the waterfall model, it is possible to reworkearlier stages in the light of experiencegained at a later stage. Each stage is signedoff and the next stage is proceeded with.

    However the end user is rarely involved in thedevelopment stage, even though they maywell be involved in signing off. It is thereforecritical that the analysts and the programmers

    understand the end-usersrequirements.This can be quite difficult with the waterfall

    model.

  • 7/30/2019 System Analysis Prototyping and Iteration

    11/14

    The waterfall model has disadvantages,which can be overcome using Prototyping, inwhich a model of the system is developed in

    partnership with the end-user. The features

    are worked out with the end user using a

    prototype, and the end user can have a

    considerable input into the development of a

    project.

  • 7/30/2019 System Analysis Prototyping and Iteration

    12/14

    Benefits are:

    Misunderstandings are detected at earlystages

    The user will notice any missing functions,incomplete or inconsistent requirements.Can be built quickly to demonstrate systemsIt can be used for training before the system

    is finished

  • 7/30/2019 System Analysis Prototyping and Iteration

    13/14

    Drawbacks are:Project management can be

    uncoordinated or even sloppy.

    Meetings with end users can becometime consuming.

    The final result could be completely

    different to what was requested in the

    first place.

  • 7/30/2019 System Analysis Prototyping and Iteration

    14/14