Top Banner
System Analysis and Design Unit 7 Sikkim Manipal University Page No. 146 Unit 7 System Development Methodologies Structure: 7.1 Introduction Objectives 7.2 System Development Methodologies 7.3 Structured Design Waterfall development Parallel development 7.4 Rapid Application Development Phased development Prototyping Throwaway prototyping 7.5 Current Methodologies: Agile Development Extreme programming Scrum 7.6 Selecting the Appropriate Development Methodology Clarity of user requirements Familiarity with technology System complexity System reliability Short time schedules Schedule visibility 7.7 Summary 7.8 Glossary 7.9 Terminal Questions 7.10 Answers 7.11 References 7.1 Introduction Till now, you have covered various aspects of System Analysis and Design such as data, information, various attributes, architecture, development life cycle and design. In the previous unit, you studied the concept of system design and came to understood various terms related to system design like system implementation, system evaluation, and system modification. We also described to you the process of modularisation in structured design and illustrated the concept of input design, output design and form design.
23

SYSTEM AND DESIGN 4

Sep 26, 2015

Download

Documents

John Doe

In Unit I, you were introduced to the various concepts of ‘System’ such as
types of system, products and tools, etc. You learnt to delineate systems
and differentiate between precedented and unprecedented systems. We
also discussed analytical representation of a system and came to know
about systems that require engineering.
Now, in this unit, we will talk about the two fundamental components of an
information system, i.e., ‘Data and Information’, which will help you
understand various concepts such as types of information, why we need
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 146

    Unit 7 System Development Methodologies

    Structure: 7.1 Introduction

    Objectives

    7.2 System Development Methodologies

    7.3 Structured Design

    Waterfall development

    Parallel development

    7.4 Rapid Application Development

    Phased development

    Prototyping

    Throwaway prototyping

    7.5 Current Methodologies: Agile Development

    Extreme programming

    Scrum

    7.6 Selecting the Appropriate Development Methodology

    Clarity of user requirements

    Familiarity with technology

    System complexity

    System reliability

    Short time schedules

    Schedule visibility

    7.7 Summary

    7.8 Glossary

    7.9 Terminal Questions

    7.10 Answers

    7.11 References

    7.1 Introduction

    Till now, you have covered various aspects of System Analysis and Design

    such as data, information, various attributes, architecture, development life

    cycle and design. In the previous unit, you studied the concept of system

    design and came to understood various terms related to system design like

    system implementation, system evaluation, and system modification. We

    also described to you the process of modularisation in structured design and

    illustrated the concept of input design, output design and form design.

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 147

    In this unit, we will reflect on system development methodologies. We will

    focus on recognising development methodologies such as structured design

    including waterfall development, parallel development, etc., and rapid

    application development including phased development, prototyping, etc.

    You will also study the latest or current development methodology, that is,

    agile development, which is still in the evolving state. We will also reflect on

    selecting appropriate development methodology according to the

    requirements.

    A system development methodology can be defined as a procedure of

    performing all the steps required to analyse, design, implement, and

    maintain information systems.

    Till now, different types of system development methodologies have been

    developed. Every development methodology has its own strong points and

    weak points. A single development methodology cannot be used for all the

    projects. There are different types of system development methodologies

    which are well-matched to specific types of projects. These are applied

    according to the different technical, project and team concerns.

    Objectives:

    After studying this unit, you should be able to:

    identify various system development methodologies

    illustrate latest development methodologies

    describe different categories of rapid application development

    recognise how to select appropriate development methodology

    7.2 System Development Methodologies

    An approach utilised in executing the system development life cycle is

    considered as system development methodology. Every methodology is

    distinctive due to its variable importance in processes and data. Another

    reason for this distinctiveness is the order and focus the methodology puts

    on every System Development Life Cycle (SDLC) phase.

    Various methodologies are considered as formal standards utilised by

    different types of organisations. Other methodologies have been developed

    by consulting companies especially for consumers. Still other organisations

    have their own in-house methodologies that have been improved over the

    years.

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 148

    All system development methodologies include a demonstration of the

    system concept in terms of processes and data. But, they vary in terms of

    whether the methodology provides more importance to business processes

    or to the data used in the business. Thus, these methodologies can be

    divided into three types; process-centred, data-centred and object-oriented.

    Process-centred methodologies: These define the activities connected

    with the system. These activities are termed as the processes. Process-

    centred methodologies make use of process models as the basis of the

    system concept. The main focus of analysts is on illustrating the system

    concept as a set of processes with information flowing in and out of the

    processes.

    For example, in figure 7.1, details of pay check flow into the process of

    producing pay checks, and result in generation of pay checks as output. See

    figure 7.1 for illustration of activities and information utilised in developing

    the payroll for an organisation. In the figure, Data storage is shown in the

    open-ended rectangles. Curved rectangles symbolise activities carried out

    and arrows symbolise inputs and outputs of an activity.

    Figure 7.1: A Simple Model of Employee Payroll

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 149

    Data-centred methodologies: These define the contents of the data

    storage boxes and the method of organising the contents. Data-centred

    methodologies make use of data models as the basis of the system

    concept.

    For example, the focus of analysts is mainly on recognising the data that

    must be obtainable to generate the payroll and converting that data into

    well-defined structures such as employee, employees pay history, employee

    pay rates, work log, payroll tax tables, etc.

    Object-oriented methodologies: These balance the focus between data

    and processes. Object-oriented methodologies make use of the Unified

    Modelling Language (UML) to depict the system concept as a compilation of

    objects including both data and processes.

    Categories of system development methodologies

    A significant factor in the categorisation of methodologies is placing the

    SDLC phases in order and the amount of time and attempt dedicated to

    each phase.

    The necessity for formal and well-planned life cycle methodologies was not

    well known in the early years. Earlier programmers used to move directly

    from a very simple planning stage to the construction step of the

    implementation stage. Alternatively, they moved directly from a very vague,

    not-well-planned-out system request to the writing code.

    This approach is similar to the approach that you may at times utilise while

    writing programs for a programming class. It can work for small programs

    requiring only one programmer. You may overlook significant elements of

    the problem in case of difficult requirements, and you have to initiate the

    whole process again, discarding a part of the program (and the time and

    attempt spent on it).

    This approach also makes teamwork difficult since members have little idea

    regarding what requirements to be attained and how to work together to

    generate a final product.

    So, a new approach was developed towards the systematic categorisation

    of system development methodologies. These major categories are:

    Structured Design

    Rapid Application Development (RAD)

    Agile Development.

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 150

    Each category stands for a collection of methodologies that tries to improve

    on earlier practice. You will study these categories of system development

    methodologies in the following sections.

    Self Assessment Questions

    1. ___________________ methodologies define the activities associated

    with the system, namely, the processes.

    2. Data-centred methodologies use processes as the basis of the system

    concept. (True/False)

    7.3 Structured Design

    Structured design methodology is one of the earliest types of system

    development methodologies. Structured Design methodologies came into

    existence in the 1980s, substituting the earlier unplanned and

    unmanageable procedures. A step-by-step procedure is developed for

    moving from one level to the other level.

    To illustrate fundamental processes of a system and the data that assists

    them, a formal modelling or diagramming method is used by structured

    design. Traditional structured design makes use of one set of diagrams to

    correspond to the processes (process models) and a separate set of

    diagrams to symbolise data (data models). As two sets of models are used,

    the systems analyst must make a decision regarding which set to produce

    first and apply as the basis of the systemprocess models or data models.

    The issue of whether to provide importance to processes before data or

    data before processes is a point of discussion among system analysts. This

    is because all types of models are significant to the system.

    Structured design is further categorised into Waterfall Development and

    Parallel Development which you will study in the following sections.

    7.3.1 Waterfall development

    Waterfall development is considered as the original methodology of

    structured design, which is still used today. Waterfall Development

    methodology develops the system methodically from one phase to another

    in a downward manner, similar to a waterfall.

    Ankit PrajapatiHighlight

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 151

    See figure 7.2 to know how the analysts and users progress from one stage

    to the other in the form of a series.

    The main deliverables for each stage or phase are usually capacious

    (frequently hundreds of pages in length). These are supplied to the project

    sponsor for approval as the project moves from one stage to another. Once

    the sponsor approves the work that was performed for a phase, the phase

    terminates and the next phase starts.

    Figure 7.2: Waterfall Development-based Methodology

    Even though all the phases tend to go back to the previous phase in the

    SDLC (for example, back to analysis from design), it is very difficult to

    visualise it as it seems like imagining a fish attempting to swim upstream in

    a waterfall.

    One of the benefits of waterfall development is that system needs are

    recognised much before programming starts. Another benefit is that the

    changes to the requirements are diminished as the project continues.

    One of the drawbacks of waterfall development is that there is a need of a

    fully specified design before programming starts. Another drawback is that

    there is a long time gap (generally many months or years) between the

    completion of the system proposal in the analysis phase and the delivery of

    the system. The deliverables frequently suffer due to a deprived

    communication method, thus significant requirements are ignored in the

    documentation.

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 152

    Users are not often prepared for their introduction to the new system, which

    appears long after the preliminary idea for the system was introduced. If the

    project team ignores significant requirements then costly post-

    implementation programming may be required.

    For example: Visualise yourself attempting to design a car on paper; how

    likely would you memorise to contain interior lights that come on when the

    doors open or to state the right number of valves on the engine?

    These days the dynamic business world frequently causes quick

    environmental variation in businesses. A system that fulfils current

    environmental situations throughout the analysis phase may require

    considerable rework to go hand in hand with the environment when it is

    implemented. This rework needs going back to the preliminary phase and

    making the changes required while moving through each of the succeeding

    phases in order.

    7.3.2 Parallel development

    Parallel development methodologies reduce the long time interval between

    the analysis stage and the system delivery. You can perform a general

    design for the whole system rather than performing the design and

    implementation in steps. You can then divide the project into a series of

    different subprojects. This way you can perform the design and

    implementation of these different subprojects in parallel.

    After the completion of all subprojects, there is a concluding integration of

    the different portions, and then the system is delivered. Check out figure 7.3

    for the same. The main benefit of these methodologies is that the schedule

    time necessary to deliver a system is reduced. Therefore, there is less

    chance of rework as the possibility of changes in the business environment

    is less.

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 153

    Figure 7.3: A Parallel Development-based Methodology

    Due to long deliverables, the procedure still goes through difficulties. It also

    includes some new problems which are stated below:

    At times the subprojects are dependent on each other to some extent.

    Design decisions prepared in one sub-project may influence another.

    The end of the project may include important integration challenges.

    Self Assessment Questions

    3. In ____________________ based methodologies, the requirements of

    system are recognised much before the beginning of programming.

    4. ___________________ methodologies include addressing the long

    time interval among the analysis stage and the system delivery.

    5. In parallel development, the schedule time required to make a delivery

    of a system is increased. (True/False)

    7.4 Rapid Application Development

    To overcome the weaknesses of structured design methodology, a newer

    class of system development methodology came into existence in the

    1990s. This class of system development methodology is known as Rapid

    Application Development (RAD). RAD-based methodologies work on the

    adjustment of system development lifecycle phases. This is done to develop

    a portion of the system quickly and deliver it to the users. This enables

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 154

    users to understand the system in a better way, and then they offer their

    reviews which help in developing an exact system as needed by the users.

    Various methodologies of rapid application development (RAD) suggest that

    analysts make use of particular methods and computer tools to make the

    analysis, design, and implementation phases faster. Computer-aided

    software engineering tools, code generators, and, joint application design

    (JAD) sessions are some of the tools that are used to generate programs

    from design specifications.

    The grouping of the changed SDLC phases and the utilisation of these tools

    and techniques enhances the speed and quality of systems development.

    Handling the expectations of a user is one of the difficulties that generally

    occur with rapid application development.

    As systems are generated more quickly, the users acquire a better insight of

    information technology. This increases the expectations of the users, thus

    increasing the system requirements throughout the project. This was not a

    case with structured design methodologies. In structured design

    methodologies, only small change was permitted after the recognition of

    system requirements.

    Now let us study the different categories of RAD.

    7.4.1 Phased development

    The phased development-based methodologies are used to divide the

    system into a series of versions that are developed in sequence. The

    system concept, on the whole, is identified by the analysis phase. The

    necessities are then separated into a series of versions by the project team,

    users, and system sponsor.

    The first version of the system includes the most significant and basic

    requirements. After the analysis phase, design and implementation phases

    are performed. This must include the set of necessities recognised for

    version 1. See figure 7.4 for a detailed phased development methodology.

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 155

    Figure 7.4: A Phased Development-based Methodology

    After the implementation of version 1, work begins on version 2. From the

    users experience with version 1, analysis is performed further on the basis

    of the previously recognised requirements. This additional analysis is

    merged with new ideas and issues identified from the version 1 experience.

    This leads to design and implementation of version 2 and work on the next

    version starts immediately. This procedure goes on till the completion of the

    methodology.

    One of the benefits of phased development-based methodologies is rapid

    delivery of a useful system to the users. Even though it does not perform all

    the functions required by the users at first, it begins to supply business

    value. This is not a case with the waterfall or parallel methodologies where

    the system is provided to the users, only after the achievement of all the

    requirements

    As users start using the system sooner, they are prepared beforehand to

    identify some significant additional requirements as compared to the

    structured design conditions.

    The main disadvantage of phased development is that users start using the

    systems that are not in the complete form yet. So, it becomes necessary to

    recognise the useful traits and include them in the first version when

    managing users requirements along the way.

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 156

    7.4.2 Prototyping

    The prototyping-based methodologies carry out the analysis, design, and

    implementation phases at the same time, and these are performed

    frequently in a series till the completion of the system. Basic analysis and

    design phases are carried out in prototyping, and work instantly begins on a

    system prototype, which can also be called as a quick-and-dirty program

    having negligible features.

    The first part of the system, which is used by the user, is generally included

    in the first prototype. This is displayed to the users and the project sponsor,

    who offer response and comments. This reaction is used to reanalyse,

    redesign, and re-implement a second prototype that offers a few more traits.

    This process goes on in a series until the analysts, users, and sponsor

    agree that the prototype offers sufficient functionality to be installed and

    utilised in the organisation. After the installation of prototype, refinement

    takes place and then it is accepted as the new system. See figure 7.5 for

    this process.

    Figure 7.5: A Prototyping-based Methodology

    The main benefit of a prototyping is that it offers such a system to the users

    which can be used instantly for interaction, though it is not initially ready for

    extensive organisational use.

    Prototyping assures the users that the project team is continuing work on

    the system. The approach aids in refining the actual requirements more

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 157

    rapidly. Instead of trying to recognise system specification materials, the

    users can communicate with the prototype to identify its traits in a better

    way.

    The main trouble with prototyping is that its fast-paced system challenges

    efforts to perform cautious and systematic analysis. Frequently, the

    prototype goes through such major changes that many preliminary design

    decisions are not considered to be good ones. This can create problems in

    the development of complex systems since fundamental concerns and

    problems are not known until well into the development process.

    For example, imagine building a car. In finding out late in the prototyping

    procedure, you have to take out the full engine to change the oil (as the

    requirement to change the oil came into observation only after driving the

    car for 10,000 miles), the same thing can happen in prototyping of systems.

    7.4.3 Throwaway prototyping

    Throwaway prototyping methodologies are comparable to the prototyping

    methodologies as they comprise the development of prototypes. However,

    throwaway prototypes are prepared at various stages in the SDLC. On

    comparing with the prototypes discussed previously, throwaway prototypes

    are utilised for an extremely diverse reason. Check out figure 7.6 for

    throwaway prototypes which have a very dissimilar appearance.

    Figure 7.6: A Throwaway Prototyping-based Methodology

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 158

    A comparatively detailed analysis phase is included in these methodologies.

    This analysis phase is used to collect information and to produce ideas for

    the system concept. Many of the traits recommended by the users may not

    be well recognised, however, and there may be challenging technical

    concerns to be solved. Each of these concerns is inspected by analysing,

    designing, and building a design prototype.

    This is to note that a design prototype, as shown in figure 7.6, is not a

    functioning system. It is a product that signifies a part of the system that

    requires additional refinement, and it encloses only sufficient detail to allow

    users to recognise the issues under consideration.

    For example, assume that users are not completely familiar with how an

    order entry system should work. The analyst team might make a series of

    HTML pages accessible by means of a Web browser to assist users in

    visualising such a system. Here, a series of mock-up screens looks like a

    system, but they actually do nothing. Or, assume that there is a need to

    develop a complicated graphics program in Java by the project team. The

    team could write a part of the program with artificial data to make sure that

    they could create a full-blown program effectively.

    A system generated from throwaway prototyping most likely uses various

    design prototypes throughout the analysis and design phases. Each of the

    prototypes is utilised to diminish the risk connected with the system. This is

    done by verifying that significant issues are recognised before the actual

    system is built.

    After resolving issues, the project moves into design and implementation.

    Here, the design prototypes are cast away, which is imperative vital

    dissimilarity between this approach and prototyping, in which the prototypes

    develop into the final system.

    The advantages of carefully planned phases (analysis and design) together

    with the advantages of making use of prototypes for refining main concerns

    of developing a system are balanced by the throwaway prototyping

    methodology.

    It may take time to provide the final system to the users in contrast to

    prototyping-based methodologies (as the prototypes do not turn out to be

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 159

    the final system); however, the approach generally generates more steady

    and consistent systems.

    Self Assessment Questions

    6. In phased development, the _____________________ phase identifies

    the overall system concept.

    7. A design prototype is a product that indicates a part of the system that

    needs additional refinement. (True/False)

    8. In case of most RAD-based methodologies, no special methods and

    computer tools are used by analysts to make the analysis, design, and

    implementation phases faster. (True/False)

    7.5 Current Methodologies: Agile Development

    Agile Development is one of the categories of system development

    methodologies that are quite new. These methodologies are considered as

    program-centric and comprise of some rules and practices which are quite

    simple to follow. They concentrate on reforming the SDLC by removing

    much of the modelling and documentation overhead and the time used up

    on these tasks. As an alternative, projects highlight on simple, iterative

    application development.

    Extreme programming and Scrum are some of the examples of Agile

    Development methodologies. To get a better idea about agile development

    methodology, lets discuss extreme programming and Scrum in the next

    sections.

    7.5.1 Extreme programming

    Extreme programming (XP) is based on the following core values:

    Communication

    Simplicity

    Feedback

    Courage.

    These values offer a foundation XP that is used to generate any system.

    Primarily, the developers must offer quick response to the end users on a

    continuous basis and secondly, developers are required to keep it simple.

    Then, developers must make additive alterations to grow the system and

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 160

    they must embrace the change, not just accept it. Lastly, developers must

    have a quality-first state of mind. XP also assists team members in

    producing their own skills.

    After a planning process, project teams carry out analysis, design, and

    implementation phases iteratively. See figure 7.7 for the same.

    Testing and competent programming practices are core to XP; each day

    code is tested by keeping it in an integrative testing environment. If bugs are

    present, the code is backed out. This testing continues until it is completely

    free of errors. XP is based on re-factoring, which is a disciplined method to

    reorganise code to make it simple.

    Figure 7.7: An Extreme Programming-based Methodology

    An XP project starts with user stories which illustrate the requirements that

    the system should perform. Then, programmers perform coding in small,

    simple modules and tests to ensure that the requirements are fulfilled. Users

    are required to be accessible to clarify questions and issues as they occur.

    Standards are considered to be significant to diminish confusion, so XP

    teams make use of a general set of names, descriptions, and coding

    practices.

    XP work great for small projects with extremely motivated, consistent,

    steady, and experienced teams. However, if there is lack of small projects or

    qualified teams, then the probability of a successful XP project is reduced.

    As a result, the use of XP together with outside contractors generates an

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 161

    extremely problematical outcome. This is because the outside contractors

    may never come together with insiders.

    XP needs a great deal of discipline to avoid projects from becoming

    distracted and disordered. Moreover, it is only suggested for the groups of

    small developers and it is not suggested for mission-significant applications.

    There is only code documentation as slight analysis and design

    documentation is generated with XP. So, preservation of large systems

    generated by means of XP may be not possible. In addition, as mission-

    significant business information systems are likely to exist for a longer

    duration, the utility of XP as a business information system development

    methodology is unsure. Lastly, the methodology needs significant on-site

    user input that is often difficult to attain.

    7.5.2 Scrum

    Scrum is another agile approach. The term is derived from the game

    Rugby. Scrum is the method of starting play in which play starts when the

    ball is thrown in between the forwards of both teams and the two sides

    compete for possession.

    The systems development interpretation of Scrum calls for the same

    dedicated interaction. In a Scrum session, agile team members have

    particular roles, having identifications such as chickens or pigs.

    These roles are based on an old children story about the chicken and pig

    who are talking about an eating house where eggs and ham would be

    served. Nevertheless, the pig refuses, since that role would call for total

    commitment, while for the chicken, it would only be a part input.

    In the agile development, the pigs are the facilitator, product owner and the

    development team; while the chickens are users and other stakeholders.

    Scrum sessions have precise guidelines that emphasise time interaction,

    and actions that result in deliverable system.

    Agile Method Advantages & Disadvantages

    Very flexible and efficient in dealing with change

    Stress on team interaction

    Reflect set of community-based values

    Frequent deliverables constantly validate the project

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

    Ankit PrajapatiHighlight

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 162

    Members need a high level of technical skills

    A lack of structure can introduce risk factors

    Project may be subject to significant change in scope

    User requirements continue to evolve during the project

    Self Assessment Questions

    9. __________________ methodologies are referred as program-centric

    and comprising of few rules and practices.

    10. On small projects, the probability of a successful XP project is reduced.

    (True/False)

    7.6 Selecting the Appropriate Development Methodology

    From the number of methodologies, the first challenge for analysts is to

    decide the methodology to be used for developing a system. Selecting a

    methodology is not easy, since any one methodology is not always the best.

    Some standards and policies are followed by an organisation to conduct the

    selection of methodology.

    Check out figure 7.8 for some important criteria for the selection of

    methodology.

    Figure 7.8: Criteria for Selecting a Methodology

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 163

    Frequently, these tools and techniques raise the complexity of the project

    and need additional time for learning. However, the team turns out to be

    experienced, once they are adopted. The tools and techniques can

    significantly enhance the speed in which the methodology can provide a

    final system.

    Now, let us discuss the factors considered for selecting the appropriate

    development methodology.

    7.6.1 Clarity of user requirements

    When the user is uncertain and not clear about his requirements from a

    system, it becomes difficult to recognise these requirements by discussing

    about them and illustrating them in written reports. Users are usually

    required to interact with technology to actually identify what the new system

    can do and how to apply it in the best way to suit their requirements.

    The RAD methodologies of prototyping and throwaway prototyping are

    generally more suitable when the requirements of a user are uncertain since

    they offer prototypes to users for interaction, early in the SDLC. Agile

    development may also be suitable if on-site user input is accessible.

    7.6.2 Familiarity with technology

    When a new technology is used by the system, and the technology is not

    known by the analysts and programmers (for example, the first Web

    development project with Java), then the possibility of success can be

    improved by applying the new technology early in the methodology.

    Throwaway prototyping methodologies are mainly suitable for such cases of

    technology non-familiarity. This is because they explicitly support the

    developers to generate design prototypes for regions having high rate of

    threats. Phased development methodologies are also fine since they

    generate chances to examine the technology deeply before completing the

    design.

    In case of prototyping-based methodologies, they are much less suitable,

    since the early prototypes that are developed generally are not able to

    access the new technology. The developers find out weaknesses or

    difficulties in the new technology only after numerous prototypes and

    numerous months.

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 164

    7.6.3 System complexity

    Complex systems need cautious and thorough analysis and design.

    Throwaway prototyping methodologies are mainly suited for such thorough

    analysis and design, but prototyping-based methodologies are not at all

    suitable for such systems. Complex systems can be managed by the

    traditional structured design methodologies.

    But some main concerns may get unnoticed without the ability to hand over

    the system or prototypes into users hands early on. Even though the

    phased development-based methodologies allow users to interact with the

    system quite early in the process, we have noticed that project teams who

    follow these methodologies are likely to give less attention to the analysis of

    the whole problem domain than they might if they were utilising other

    methodologies.

    7.6.4 System reliability

    System reliability is one of the important factors in developing system. After

    all, nobody requires an unreliable system. Sometimes reliability is really

    significant for some applications (e.g., medical equipment, missile control

    systems), whereas it is partially important for other applications (e.g.,

    games, Internet video).

    Throwaway prototyping methodologies are most suitable when system

    reliability is the major concern. This is because they combine thorough

    analysis and design phases with the capability for the project team to test

    many dissimilar approaches via design prototypes before finishing the

    design.

    Prototyping-based methodologies are usually not a high-quality selection

    when reliability is critical. This is due to the fact that they fall short of

    cautious analysis and design phases that are essential for reliable systems.

    7.6.5 Short time schedules

    Projects comprising of short time schedules are well-matched for RAD-

    based methodologies. This is because those methodologies are designed to

    enhance the rapidity of development. Prototyping and phased development-

    based methodologies are outstanding options in case of short timelines.

    This is because they best facilitate the project team to adjust the

    functionality in the system according to a particular date of delivery.

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 165

    If the project schedule begins to slip, re-adjustment can be done by

    eliminating functionality from the version or prototype under development.

    Waterfall-based methodology is the worst option to choose when there is

    shortage of time since they do not permit simple schedule variations.

    7.6.6 Schedule visibility

    Knowing whether a project is on schedule is one of the most significant

    factors in developing system. This is mainly true of the structured design

    methodologies since design and implementation take place at the end of the

    project. Many of the important design decisions taken in case of the RAD-

    based methodologies move previously in the project to assist project

    managers identify and address risk factors and check the requirements.

    Self Assessment Questions

    11. Many organisations enclose standards and policies used for the

    ___________________ of methodology.

    12. Throwaway prototyping-based methodologies are not appropriate when

    system reliability is a high priority. (True/False)

    13. Prototyping and ___________________________development-based

    methodologies are good choices when timelines are short.

    7.7 Summary

    Let us recapitulate the important concepts discussed in this unit:

    A system development methodology can be defined as a procedure of

    performing all the steps required to analyse, design, implement, and

    maintain information systems.

    Structured design follows a step-by-step procedure for moving from one

    level to the other level.

    Waterfall development is considered as the original structured design

    methodology where the analysts and users progress in sequence from

    one phase to the next.

    In parallel development methodologies, you can perform a general

    design for the whole system rather than performing the design and

    implementation in series.

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 166

    RAD-based methodologies perform the adjustment of system

    development lifecycle phases to obtain a portion of the system

    developed quickly and deliver it to the users

    The phased development-based methodologies are used to divide the

    system into a series of versions that are developed in succession.

    The prototyping-based methodologies carry out the analysis, design,

    and implementation phases at the same time, and all three phases are

    executed frequently in a series until the system is completed.

    Agile Development is one of the categories of systems development

    methodologies that are currently prevalent.

    Extreme programming (XP) is based on the core values, that is,

    communication, simplicity, feedback, and courage which offer a

    foundation XP that is used by developers to generate any system.

    Selecting a methodology is not easy, since any one methodology is not

    always best. Some standards and policies are followed by an

    organisation to conduct the selection of methodology.

    7.8 Glossary

    Agile development: The agile methodologies are programming centric

    methodologies comprising of some simple rules which are followed

    through a simple iterative development procedure.

    Phased development: Phased Development methodology is used to

    generate the system in a sequential manner in the form of separated

    versions.

    Prototyping: Prototyping builds a model of a system that is to be

    developed.

    RAD: The rapid application development (RAD) methodologies rapidly

    obtain some part of the system and permit users feedback to make sure

    that the whole system provides the correct requirements.

    Waterfall development: It is a linear and sequential approach used in

    software design and systems development.

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 167

    7.9 Terminal Questions

    1. Explain the concept of waterfall development methodology. Also discuss

    the advantages and disadvantages of this methodology.

    2. What is rapid application development (RAD)? Compare it with

    structured design methodologies.

    3. How does a prototyping-based methodology perform in the different

    phases of SDLC? Illustrate.

    4. Discuss the use of Agile Development methodology. Also explain the

    concept of extreme programming.

    5. Illustrate the process of selecting the appropriate development

    methodology. Also discuss the various factors considered in selecting

    the appropriate development methodology.

    7.10 Answers

    Self Assessment Questions

    1. Process-centred

    2. False

    3. Waterfall development

    4. Parallel development

    5. False

    6. analysis

    7. True

    8. False

    9. Agile development

    10. True

    11. selection

    12. False

    13. phased

    Terminal questions

    1. In waterfall development methodology, the key deliverables for each

    phase are usually capacious and are supplied to the project sponsor for

    consent as the project moves from one phase to another phase. One of

    the benefits of waterfall development is that system needs are

  • System Analysis and Design Unit 7

    Sikkim Manipal University Page No. 168

    recognised much before programming starts. One of the drawbacks of

    waterfall development is that there is a need of fully specied design

    before programming starts. Refer section 7.3.

    2. In case of RAD, the expectations of the users may increase thus

    increasing the system requirements throughout the project. This was not

    a case with structured design methodologies. Refer section 7.4.

    3. The prototyping-based methodologies carry out the analysis, design,

    and implementation phases at the same time, and all three phases are

    performed frequently in a series until the system is completed. Refer

    section 7.4.

    4. Agile development methodology concentrates on reforming the SDLC by

    removing much of the modelling and documentation overhead and the

    time used on those tasks. Extreme programming (XP) is based on the

    following core values: communication, simplicity, feedback, and

    courage. Refer sections 7.5.

    5. Selecting a methodology is not easy, since any one methodology is not

    always the best. Various organisations contain standards and policies to

    conduct the selection of methodology. Refer section 7.6.

    7.11 References

    D. E. Avison., Information systems development, McGraw-Hill.

    Roy Hodgson., System development methodologies, Corporate Training

    Pty Ltd.

    MariteKirikova., Information systems development, Springer.

    E-References:

    http://akademik.bahcesehir.edu.

    http://www.ecomval.gov.ph/IDforSAD/interactions/waterfall.html

    http://www.ecomval.gov.ph/IDforSAD/interactions/parallel.html

    http://www.ecomval.gov.ph

    http://www.chrisshayan.com