sad midterm

Cards (22)

  • System Development Methodology

    A formalized approach to implementing the SDLC
  • Several system development methodologies

    • Waterfall
    • Prototyping
    • Rapid Application Development (RAD)
    • Agile
  • Structured design methodologies

    • Adopt a formal step-by-step approach to the SDLC that moves logically from one phase to the next
  • Traditional Waterfall Methodology

    1. Analysts and user proceed in sequence from one phase to the next
    2. Deliverables for each phase are produced on papers (documented) and presented to project sponsors for approval
    3. Must complete the first phase before can start the next phase
    4. Possible to go backward but extremely difficult
  • Advantages of Waterfall Methodology

    • The system requirements are identified long before programming begins
    • Changes to the requirements are minimized as the project proceeds
  • Disadvantages of Waterfall Methodology

    • A long time elapses between the completion of the system proposal in the analysis phase and the delivery of the system
    • Limited user involvement
    • Although originally allow feedback between phases but always being ignored in implementation
    • Too much focus on milestone deadlines
  • Prototyping Methodology

    1. Designing and building scaled-down but functional version of desired system
    2. Analyst works with users to determine the initial requirements
    3. Analyst quickly built a prototype
    4. Once completed, users work with it and tell the analyst what they like and do not like
    5. Analyst use feedback to improve the prototype and take the new version back to users
    6. The iterative process continues until users relatively satisfied
  • Advantages of Prototyping

    • Very quickly provide system for user to interact
    • Reassures user project team working
    • Potential for changing the system early in its development
    • Opportunity to stop development on a system that is not working
    • Possibility of developing a system close users' needs
  • Disadvantages of Prototyping

    • Fast-paced system releases requires careful methodical analysis. Can cause problem in development
    • Often the prototype undergoes such significant changes that many initial design decisions prove to be poor ones
    • Can be difficult to manage prototyping for a large system
    • Users and analysts may adopt a prototype as completed system
  • Rapid Application Development (RAD)

    1. Requirements Planning Phase: Users and analysts meet to identify objectives of the application or system
    2. RAD Design Workshop: Design and refine phase, use group decision support systems room if available, users respond to actual working prototypes, analysts refine designed modules based on user responses
    3. Implementation Phase: As the systems are built and refined, the new systems or part of systems are tested and then introduced to the organization
  • Rapid Application Development (RAD)

    • Decreases design and implementation time
    • Involves extensive user involvement, prototyping, integrated CASE/Software tools, code generators
    • More focus on user interface and system function, less on detailed business analysis, documentation and system performance
  • Comparing RAD to the SDLC

    • RAD implementation is less stressful because users have helped to design the business aspects of the system
    • Often when using SDLC there is a lengthy time during development and design when analysts are separated from users, during this period requirements can change
  • When to Use RAD

    • The team includes programmers and analysts who are experienced with it
    • There are pressing reasons for speeding up application development
    • The project involves a novel ecommerce application and needs quick results
    • Users are sophisticated and highly engaged with the goals of the company
  • Disadvantages of RAD

    • Trying to hurry the project too much
    • Lack of documentation
  • Agile
    Tries to define an overall system plan quickly, develop and release software quickly and then continuously revise the software to add additional features
  • Agile Approach

    • Ordinary programmers, analysts and designers work independently and then integrate their work to achieve solid results
    • Agile programmers who work in pairs can be outstanding
    • It is based on values, principles and practices
    • It is a collection of innovative, user-centered approaches to systems development
    • Motivated by recognition of software development as fluid, unpredictable and dynamic
  • When to Use Agile

    • Unpredictable or dynamic requirements
    • Responsible and motivated developers
    • Customers who understand the process and will get involved
  • Agile Values

    • Individuals and interactions over processes and tools
    • Working software over comprehensive documentation
    • Customer collaboration over contract negotiation
    • Responding to change over following a plan
  • Agile Principles

    • Satisfy the customer through early and continuous delivery of valuable software
    • Welcome changing requirements, even late in development
    • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale
    • Business people and developers must work together daily throughout the project
    • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done
  • Four Basic Activities of Agile Development

    1. Coding: Have a thought, code it, test it and see whether thought was logical one
    2. Testing: Rely on automated tests and large libraries of tests, test need to be updated as necessary during the progress of the project
    3. Listening: Learn the important during interviews, programmers use to hear their programming partners while less reliance on formal, written communication
    4. Designing: A way of creating a structure to organize all of logic in system, designing is evolutionary and system that are designed using agile approach are conceptualized as evolving, always being design
  • Four Resources of Agile Modeling

    • Time
    • Cost
    • Quality
    • Scope
  • Four Core Agile Practices

    1. Short releases: Compresses the time between releases of their product
    2. Forty-hour work week: Agile development teams purposely endorse a cultural core practice in which the team works intensely together during a typical 40-hour work week
    3. Onsite Customer: A user who is an expert in the business aspect of the systems development work is onsite during the development process
    4. Pair Programming: Two programmers work together, one takes the coding lead initially but they switch frequently