Lecture 3: Systems Development Methodologies

Lecture 3: Systems Development Methodologies

Chapter 1 Overview

  • Topics Covered in Chapter 1:
    • Systems analysis and design
    • System development life cycle (SDLC)
    • Roles and skills required by a systems analyst and other project team members
    • Systems development methodologies
    • Unified process and its extensions
    • Basic characteristics of object-oriented systems analysis
    • Fundamentals of object-oriented systems analysis and design

Systems Development Methodology

  • Definition:
    • A formalized approach to implementing the SDLC.
    • It encompasses a set of activities and processes that result in a software or system.
    • Different classifications exist for methodologies, each unique based on its focus within the SDLC.
Users and Developers of Methodologies
  • Who uses and develops these methodologies?

    • Used by government agencies and private organizations.
    • Developed by consulting firms and software vendors.
  • Focus Areas:

    • Business processes.
    • Data that supports the business.

Classification of Systems Development Methodologies

  • Methodology Classifications
    1. Process-oriented Methodology
    2. Data-centered Methodology
    3. Structured Methodology
    • Waterfall Development
    • Parallel Development
    1. Rapid Action Development (RAD) Methodology
    • Phased
    • Prototyping
    • Throwaway Prototyping
    1. Agile Development Methodology
    • eXtreme Programming
    • SCRUM
1. Process-Oriented Methodology
  • Description:

    • Facilitates understanding of roles and responsibilities among team members.
    • Fosters individual collaboration to achieve desired outcomes.
    • Provides a structured approach to reaching those outcomes.
  • Example:
    plaintext aParent aRefrigerator aCupboard aSandwich aLunch aLunchBag Getjelly GetPeanut Butter GetMilk GetBread GetCookies GetLunchBag CreateSandwich CreateLunch PutLunchinBag

    • Figure 1-1: A Simple Behavioral Model for Making Lunch
2. Data-Centered Methodology
  • Description:

    • Concentrates on defining which system should be produced based on available data.
    • Considers how that content should be organized and stored.
  • Example:

    • Database architecture.
3. Structured Development Methodology
  • Overview:

    • This is the first classification of systems development methodology and has dominated since the 1980s.
    • It adopts a formal, step-by-step approach throughout the SDLC.
  • Examples of Structured Development Methodology:

    • Waterfall Development
    • Parallel Development
i. Waterfall Development Methodology
  • Characteristics:

    • Currently the most commonly used methodology.
    • Follows a linear sequence flow, progressing from one phase to the next.
    • Deliverables are presented to the Project Sponsor for approval.
    • Movement to the next phase occurs only after the current phase receives approval.
  • Advantages:

    • System requirements are identified well in advance of programming.
    • Minimizes changes to requirements during project progression.
    • Best suited for smaller projects where requirements are well-defined.
    • Facilitates easy tracking of resources, time, and costs.
  • Disadvantages:

    • Lacks flexibility in handling changes.
    • Delays testing processes until program completion.
    • Not ideal for complex projects where requirements frequently change.
    • Missing essential requirements may lead to costly post-implementation adjustments.
ii. Parallel Development
  • Overview:

    • Divides the project into sub-projects that can be executed concurrently.
    • Aims to mitigate delays between the analysis phase and system delivery.
    • Upon completion of all sub-projects, components are integrated, and the system is delivered to the Client.
  • Advantages:

    • Significantly reduces the time to system delivery.
    • Allows teams to work simultaneously, enhancing efficiency.
  • Disadvantages:

    • May lead to production delays if changes are not properly integrated.
    • Managing and tracking multiple active branches/sub-projects can be challenging.
    • Potential for inconsistencies across components.
4. Rapid Application Development (RAD)
  • Overview:

    • Focuses on iterative development of prototypes while gathering user feedback.
    • Emerged in the 1990s as a response to the need for faster development timelines.
    • Suitable for projects that require quick completion, adequate budget, and sufficient user availability for testing.
  • Examples of RAD:

    • Phased Development
    • Prototyping
  • Characteristics:

    • Merges analysis and design phases into a single phase.
    • Develops a working prototype of the system.
    • Adapts based on continuous user feedback.
    • Ensures user involvement at each development phase.
  • Advantages:

    • Facilitates quicker development cycles with significant cost reductions.
    • Allows for faster delivery times.
    • Provides greater flexibility and interaction between the development team and business stakeholders.
    • Enables developers to produce prototypes at various stages of the development process.
  • Disadvantages:

    • Prioritizing speed can compromise quality.
    • User unavailability may hinder feedback processes.

Questions?

Next Topic

  • Lecture 4: Software Development Methodologies

End

  • Thank you!