System Analysis & Design Chapter 2
7 Questions
8 Views

System Analysis & Design Chapter 2

Created by
@SimplifiedOnyx9124

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Which of these are systems development methodologies?

  • Structured Design (correct)
  • Agile Development (correct)
  • Waterfall Model
  • Rapid Application Development (RAD) (correct)
  • What is the primary goal of Rapid Application Development (RAD)?

    To quickly develop parts of a system for user feedback.

    RAD methodologies emerged in the 1990s.

    True

    Which tools are recommended for use in RAD methodologies?

    <p>Code generators</p> Signup and view all the answers

    What is a major drawback of phased development methodologies?

    <p>Users work with intentionally incomplete systems.</p> Signup and view all the answers

    Prototyping methodologies perform phases sequentially.

    <p>False</p> Signup and view all the answers

    What is the purpose of user feedback in the prototyping process?

    <p>To improve functionality of the system with each iteration.</p> Signup and view all the answers

    Study Notes

    System Analysis & Design

    • Presented by Menna Ibrahim Gabr

    Chapter 2 Agenda Part 3

    • Systems Development Methodologies
    • RAD
    • Agile Development
    • Selecting The Appropriate Development Methodology

    Systems Development Methodologies

    • SDM
    • Structured Design (checked)
    • Rapid Application Development (RAD)
    • Agile Development

    Rapid Application Development (RAD)

    • Newer class of systems development methodologies that emerged in the 1990s
    • RAD-based methodologies attempt to address weaknesses of structured design methodologies
    • By adjusting the SDLC phases to quickly get some part of the system developed and into the users' hands
    • Allows users to better understand the system and suggest revisions
    • Recommends analysts use special techniques and tools to speed up analysis, design, and implementation
    • Examples of tools include CASE tools, Joint Application Design (JAD) sessions, fourth-generation programming languages (e.g., Perl, Python, Ruby, SQL), and code generators

    Rapid Application Development (RAD) - Continued

    • Combination of the changed SDLC phases and tools/techniques improves speed and quality of systems development
    • Potential problem: managing user expectations
    • User's understanding of information technology might expand system requirements

    Rapid Application Development (RAD) - Components

    • Phased Development
    • Prototyping
    • Throwaway Prototyping

    Phased Development

    • Methodology that breaks an overall system into a series of sequentially developed versions
    • Analysis phase identifies the overall system concept and categorizes requirements into versions
    • Most important requirements bundled into the first version
    • Leads into design and implementation, but only for the requirements of version 1
    • Once version 1 is implemented, work begins on version 2, with new requirements and user experience
    • Process continues until system is complete or no longer in use

    Prototyping

    • Methodology that performs analysis, design, and implementation concurrently and repeatedly in a cycle until the system is completed
    • Basics of analysis and design performed immediately, with quick and dirty program development of the initial prototype, which provides a minimal number of features
    • First prototype shown to users and project sponsor, and comments used to reanalyze, redesign and reimplement until agreement on functionality
    • After the prototype is installed, refinement occurs until it's accepted as the new system

    Prototyping - Pros

    • Very quickly provides a system that users can interact with
    • Reassures users that project team is working on the system (no long delays)
    • Quickly refines requirements, allows users to interact with a prototype to better understand what it can and cannot do

    Prototyping - Cons

    • Fast-paced system releases challenge attempts to conduct careful, methodical analysis
    • Significant changes to the prototype may cause initial design decisions to become poor ones
    • Problems might not be recognized until well into the development process related to complex systems

    Throwaway Prototyping

    • Prototypes are done at a different point in the SDLC
    • Different purpose and appearance than previously discussed prototypes
    • Used for analysis and developing ideas for the system concept
    • Understanding issues and developing a design prototype
    • Not a working system, but represents part of the system that needs refinement, with enough detail to understand problems

    Throwaway Prototyping - Continued

    • Serves as a tool for understanding an idea and identifying issues and problems
    • Users may not completely understand many suggested features, or technical challenges
    • For example, web page mockups can simulate a system without functionality

    Throwaway Prototyping Pros

    • Balance well-thought-out analysis and design phases, with advantages of refining key issues before developing the system
    • Methodologies might take longer to produce the final system (prototypes don't become the final system) but produce more stable and reliable systems

    Agile Development

    • Iterative and flexible approach to software development, emphasizing collaboration, adaptability, and continuous improvement
    • Includes the following key principles:
      • Customer collaboration over contract negotiation
      • Individuals and interactions over processes and tools
      • Working software over comprehensive documentation
      • Responding to change over following a plan
    • Continuous feedback and adaptation is fundamental. At the end of each iteration, the progress is reviewed, feedback is gathered, and improvements are incorporated into subsequent iterations
    • Allows for early and frequent delivery to increasing customer satisfaction and reducing risk of large-scale failures
    • Includes sub-methodologies such as Extreme Programming, Scrum, and Kanban

    Extreme Programming (XP)

    • Founded on four core values: communication, simplicity, feedback, and courage
    • Developers provide rapid feedback to end users continuously
    • Developers follow the KISS principle
    • Developers make incremental changes (not only accepting change but also embracing change).
    • Developers have a quality-first mentality, which supports team members in developing their own skills.
    • Uses continuous testing, simple coding performed by pairs, and close interactions with end users.
    • Phases of analysis, design, and implementation are performed iteratively after a planning process.

    XP Loop

    • Planning/feedback loops
      • Release plan
      • Iteration plan
      • Acceptance test
      • Stand-up meeting
      • Pair negotiation
      • Unit test
      • Pair programming

    Core Values of XP

    • Testing and efficient coding practices (code is tested each day and placed into integrative testing environment)
    • Refactoring (to restructure code and keep it simple)

    How the story begins in (XP)?

    • XP projects start with user stories describing system needs
    • Programmers code in small modules and test them
    • Users need to provide clarification for questions and issues
    • Teams use common names, descriptions, and coding practices

    Who should use XP?

    • Suitable for small projects with highly motivated, cohesive, stable, and experienced teams
    • Project success is doubtful if projects are large or teams are not jelled
    • Lack of detailed analysis/design documentation with XP can make maintaining large systems challenging

    Selecting the Appropriate Development Method

    • Many methodologies exist with no one methodology best for all scenarios
    • Organizations may have standards and policies to guide methodology choices

    Selecting the Appropriate Development Methodology - Factors

    • Clarity of user requirements
    • Familiarity with technology
    • System complexity
    • System reliability
    • Short time schedules
    • Schedule visibility

    Additional Notes

    • Throwaway prototyping is generally appropriate for projects with unclear user requirements, or high risk technologies
    • Phased development is a good methodology when early interactions between user and system are valuable or needed, but detailed analysis and design might be less important
    • Prototyping approaches are good when time to market is key, but system reliability might suffer in critical systems
    • Traditional structured development methods can handle large and complex systems, but they might be slow in user involvement or feedback

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Explore the key concepts of Systems Development Methodologies in this quiz, including Rapid Application Development (RAD) and Agile Development. Understand the strengths and weaknesses of various methodologies and how to select the appropriate one for different scenarios. This quiz will help solidify your knowledge of SDM and its practical applications.

    More Like This

    Use Quizgecko on...
    Browser
    Browser