CSIT114 System Analysis - SDLC and System Development Methodologies

Document Change Control & Overview

  • Version History:

    • Version 1.0: Authored by Dr. Zeenath Reza Khan in Autumn 2019 (Defined the first version).

    • Version 2.0: Authored by Dr. Haitham Yaish and Dr. Zeenath Reza Khan in Autumn 2023 (Updated and Improved the Lecture Content).


    • aft the Fundamentals of Information Systems

      • Information System (IS):

        • Definition: A set of interrelated components that collect, process, store, and provide as output the information needed to complete business tasks.

        • Core Function: Combines people, information technology, and data to facilitate organizational planning, controlling, coordinating, and decision-making.

        • Purpose: Conceived and built to satisfy a specific need or solve business problems.

      • Computer Application (App):

        • A computer software program that executes on a computing device to carry out a specific set of functions.

      • Project:

        • A planned undertaking that has a defined beginning and end, producing a specific result.

        • Used to develop an information system using specialized systems analysis and design tools and techniques.

      • Systems Analysis vs. Systems Design:

        • Systems Analysis: Activities that enable a practitioner to understand and specify what an information system should accomplish. It focuses on identifying what is required for the new system to solve the problem.

        • Systems Design: Activities that enable a practitioner to define and describe in detail how the system will operate to solve the problem and satisfy user needs.

        

      Systems Analysis vs Systems Design

      System Development Life Cycle (SDLC)

      • Definition: A comprehensive framework that identifies all the activities required to research, build, deploy, and maintain an information system.

      SDLC Methodologies

      • Structured Development (Traditional Approach - Waterfall Model):

        • Waterfall Execution: The development process moves strictly through sequential phases in a cascade mode:

        1. Requirement analysis

        2. Design

        3. Implementation

        4. Testing

        5. Deployment

        6. Maintenance

        

      Waterfall SDLC Model
      • Key Characteristics:

        • Concrete deliverables exist for each stage with strict documentation requirements.

        • A subsequent stage cannot commence until the preceding stage is fully completed.

      • Limitations & Drawbacks:

        • Software requirements cannot be re-evaluated or adjusted once development advances.

        • Software cannot be seen or tested until the final stages, creating high project risks and unpredictable outcomes.

        • Long elapsed time between initial project proposal and final system delivery.

      • Target Use Cases:

        • Simple, small, or mid-sized projects with clearly defined and unchanging requirements.

        • Projects utilizing well-known technology stacks and tools.

        • Projects mandated to adhere strictly to complex rules, regulations, and standards.

        • Iterative Development (Modern Approach):

      • Definition: An approach where the system is "grown" incrementally piece by piece through multiple repeating iterations.

      • Process: A small part of the overall system is completed as a mini-project. The development steps are then repeated to refine and expand functionality until completion.

      • Structure: Represents one macro-project containing multiple smaller micro-projects; the six core processes repeat for each individual component.

        • Agile Development (Modern Approach):

      • Definition: An information system development methodology emphasizing extreme flexibility to anticipate and adapt to evolving requirements.

      • Key Attributes: Fast-paced development methodology highly responsive to change.

      • Target Use Cases: Typically employed when both users and developers lack a complete or fully clarified understanding of the problem domain at project inception.

      SDLC Core Processes

      • The Six Core Development Processes:

        1. Identify the problem or need and obtain approval.

        2. Plan and monitor the project.

        3. Discover and understand the details of the problem or need.

        4. Design the system components that solve the problem or satisfy the need.

        5. Build, test, and integrate system components.

        6. Complete system tests and then deploy the solution.

        

      SDLC Core Processes showing iterations

      Detailed Execution Example: Iterative and Agile Approach

      • Pre-Project Activities:

        • Core Process 1 Execution: Identify the problem and document system objectives through a preliminary investigation.

        • Produce System Vision Document containing:

        • Problem Description

        • System Capabilities

        • Business Benefits

        • Core Process 1 Approval: Present to key stakeholders and executive management to obtain project commencement approval, secure funding, and confirm the budget.

      • Day 1 Activities:

        • Core Process 2 Execution (Plan the Project):

        • Identify major functional subsystems (e.g., Supplier information subsystem and Product information subsystem).

        • Define iterations and assign functions (e.g., target the Supplier subsystem first, planning a single straightforward iteration).

        • Assign team members and assign operational responsibilities.

        • Construct the Work Breakdown Structure (WBS) and drWork Sequence.

  • Day 2 Activities:

    • Core Process 3 Execution (Discover and Understand Details):

    • Perform preliminary fact-finding to establish requirement baselines.

    • Formulate a preliminary list of use cases and draft a Use Case Diagram.

    • Formulate a preliminary list of object classes and draft a Preliminary Class Diagram.

  • Day 3 Activities:

    • Core Process 3 Execution (Discover and Understand Details):

    • Conduct in-depth fact-finding to clarify granular requirements.

    • Analyze and document detailed workflows for individual use cases.

    • Core Process 4 Execution (Design System Components):

    • Define user experience by drafting screen layouts and reporting interface formats.

  • Day 4 Activities:

    • Core Process 4 Execution (Design System Components):

    • Database Schema Design: Table structures, key/index identification, attribute data types, and referential integrity constraints.

    • High-Level Architectural Design: Platform selection (Browser, Windows desktop, or Smart phone; Object-Oriented vs. Procedural architecture) and system component configurations.

    • Detail Design Diagrams: Produce refined class diagrams and subsystem architectural design diagrams.

  • Day 5 Activities:

    • Core Process 4 Continuation: Refine component design details on a use-case-by-use-case basis.

    • Core Process 5 Execution (Build, Test, and Integrate System Components):

    • Execute programming and software construction incrementally by use case.

    • Conduct unit testing and integration testing.

  • Day 6 Activities:

    • Core Process 6 Execution (Complete System Testing and Deploy Solution):

    • Perform full system functional testing.

    • Execute User Acceptance Testing (UAT).

    • Deploy completed subsystem modules or full solutions into production environments.

Class Activity & Practical Application

  • Summer Bus Station Climate Solution Exercise:

    • Scenario Context: Due to high summer temperatures in Dubai, waiting for public transit at non-air-conditioned bus stations presents severe comfort and safety challenges.

    • Task Requirements: Collaborate in small teams for 20 minutes to devise an innovative technological solution to mitigate this problem.

    • Discussion Points: Formulate actionable implementation plans for the proposed technological innovation and present solutions to the class.

    • Programmatic Note: Tools and analytical diagrams introduced in this overview will be taught in extensive detail across subsequent chapters.

References

  • Satzinger, J., Jackson, R. & Burd, S. (2016) Systems Analysis And Design In A Changing World. 7th Edition, Boston, Mass. Cengage Learning.

  • Software Development Models Chart Reference: 8 Software Development Models: Sliced, Diced and Organized in Charts, available at https://www.scnsoft.com/blog/software-development-models (Accessed 10 September 2023).