Approaches to System Development

Core Concepts of Information System Development Projects

  • System Development Project Definition

    • A system development project is a planned undertaking characterized by a fixed beginning and a fixed ending point.
    • It is specifically structured to produce a targeted, desired result or product.
    • Scale and duration vary widely: it can range from a massive enterprise effort consuming thousands of hours of effort to a small, single-month task.
  • Systems Development Life Cycle (SDLC)

    • Provides the overarching framework required to direct, control, and manage the systems development process.
    • Functions as the primary roadmap for all activities, phases, and deliverables involved in building an information system.
    • Every software and system development project uses some variation of an SDLC.
  • Primary Approaches to the SDLC

    • Predictive Approach: Assumes that the project can be planned out entirely in advance. Systems using this approach are executed under the premise that requirements are well-understood and stable.
    • Adaptive Approach: Operates with higher flexibility and assumes that the project cannot be fully planned out in advance due to changing requirements or high technical uncertainty.

Choosing Between Predictive and Adaptive SDLC Approaches

Choice of SDLC based on requirements and risk

  • Characteristics of a Predictive SDLC

    • Requirements are thoroughly understood and precisely defined before development begins.
    • The project environment carries low technical risk.
    • Development progresses in a structured, sequential sequence of milestones.
  • Characteristics of an Adaptive SDLC

    • Project requirements, system specifications, and user needs are uncertain or expected to evolve.
    • The project faces high technical risk or involves novel, untested technology.
    • Execution relies on iterative development cycles to discover and refine requirements continuously.

Traditional Predictive Approaches and SDLC Models

  • Core Phases of Information System Development
    • Project Planning Phase: Initial phase focused on project initiation, feasibility verification, schedule definition, and obtaining formal executive approval.
    • Analysis Phase: Dedicated to understanding business needs, operational workflows, user capabilities, and processing requirements.
    • Design Phase: Focuses on defining the technical solution and application structure based on analysis specifications.
    • Implementation Phase: Comprises software construction, rigorous testing, data conversion, user training, and formal system installation.
    • Support Phase: Long-term operational phase centered on maintaining system health, executing repairs, and delivering functional enhancements.

Sequential phases of system development

  • SDLC Alignment with General Problem-Solving

    • Recognize Problem: Handled during the Project Planning phase.
    • Investigate and Understand Problem & Requirements: Handled during the Analysis phase.
    • Specify Solution in Detail: Handled during the Design phase.
    • Build and Install Solution System: Handled during the Implementation phase.
    • Maintain and Enhance System for Continued Benefits: Handled during the Support phase.
  • The Traditional "Waterfall" Approach

    • Rigid, non-overlapping sequential progression through each life cycle phase.
    • Specifications are strictly locked at the conclusion of each phase:
    • Planning specifications frozen prior to Analysis.
    • Analysis specifications frozen prior to Design.
    • Design specifications frozen prior to Implementation.
    • The final system is delivered strictly as specified in the early planning and design phases.

Traditional Waterfall Approach

  • Modified Waterfall Approach with Overlapping Phases
    • Introduces flexibility into predictive frameworks by permitting phase overlap.
    • Major components of a project reach completion milestones, triggering downstream activities while preceding activities continue.
    • Allows project management, analysis, design, and implementation activities to run concurrently across offset timelines.

Modified Waterfall Approach with Overlapping Phases

Adaptive SDLC Approaches and Iterative Development

  • The Spiral Life Cycle Model
    • An adaptive SDLC framework designed to continuously cycle through development activities until completion.
    • Prioritizes proactive risk identification and risk mitigation at every level.
    • Produces a functional, testable prototype at the end of every complete spiral iteration.

The Spiral Life Cycle Model

  • Principles of Iterative System Development
    • Iteration: A complete development loop where work activities (analysis, design, implementation) are repeated.
    • Refines and expands upon the deliverables generated in prior iterations.
    • Based on the foundational engineering premise that complex system requirements are rarely captured perfectly on the first attempt.
    • Each iteration operates as a structured mini-project with its own planning, design, build, and integration goals.

Iteration of System Development Activities

  • Execution Dynamics Across SDLC Activities
    • Activities across planning, analysis, design, and implementation phases are conducted within every iteration.
    • Phases overlap fluidly rather than executing sequentially.
    • Development cycles continuously refine deliverables: "Some analysis →\rightarrow Some design →\rightarrow Some implementation" progresses into "More analysis →\rightarrow More design →\rightarrow More implementation" and beyond.

Comprehensive Activities Within SDLC Phases

  • Project Planning Activities

    • Define the core business problem and overall scope.
    • Create and manage a detailed project schedule.
    • Confirm comprehensive project feasibility across five dimensions:
    • Economic feasibility: Financial return and cost justification.
    • Organizational feasibility: Alignment with culture, policy, and goals.
    • Technical feasibility: Technology capability and expertise.
    • Resource feasibility: Availability of skilled staff and infrastructure.
    • Schedule feasibility: Timeline and deadline viability.
    • Staff the project team and manage human resource allocations.
    • Launch the project through official organizational announcements.
  • Analysis Activities

    • Gather detailed information to master the problem domain.
    • Define and document functional and non-functional system requirements.
    • Build discovery prototypes to validate requirements with business stakeholders.
    • Prioritize user and organizational requirements.
    • Generate, evaluate, and compare technical alternatives.
    • Present recommendations and alternative selections to business management.
  • Design Activities

    • Design and integrate system network architecture.
    • Design application architecture and software structure.
    • Design user interfaces (UI) and user experience interactions.
    • Design external and internal system interfaces.
    • Design and integrate the database architecture.
    • Construct design prototypes to refine implementation specifications.
    • Design and integrate comprehensive system controls and security features.
  • Implementation Activities

    • Construct and code software components.
    • Verify, validate, and unit/system test software components.
    • Convert legacy data structures into the new system database.
    • Train end-users and author comprehensive technical/user documentation.
    • Install and deploy the system into operational environments.
  • Support Activities

    • Maintain System: Apply emergency bug fixes, small technical patches, routine performance repairs, and minor software updates.
    • Enhance System: Implement targeted functional upgrades to expand current capability. Major functional enhancements require initiation of a separate, distinct development project.
    • Support Users: Provide ongoing operational assistance via a dedicated help desk or user support team.

Components of System Development Methodologies

  • Methodology Definition
    • A methodology provides complete, comprehensive guidelines for executing every activity within an SDLC.
    • Combines an integrated set of models, tools, and techniques.

Relationships Among Components of a Methodology

  • Models in System Development
    • Definition: An abstraction or representation of an important real-world object or process, designed to isolate specific aspects for analysis.
    • Expressed through physical diagrams, graphical charts, and analytical mathematical formulations.
    • Includes project planning and budgeting frameworks.

Some Models Used in System Development

  • Models of System Components:

    • Flowchart
    • Data Flow Diagram (DFD)
    • Entity-Relationship Diagram (ERD)
    • Structure Chart
    • Use Case Diagram
    • Class Diagram
    • Sequence Diagram
  • Models Used to Manage Development:

    • Gantt Chart

    • Organizational Hierarchy Chart

    • Financial Analysis Models (e.g., Net Present Value NPV\text{NPV}, Return on Investment ROI\text{ROI})

    • Tools in System Development

  • Definition: Software applications or automated platforms that directly assist analysts and engineers in creating models or building project components.

  • Spans basic utilities to highly automated systems engineering suites.

Some Tools Used in System Development

  • Categories of Tools:

    • Project management software

    • Drawing and graphics applications

    • Word processors and text editors

    • Visual modeling software

    • Integrated Development Environments (IDEs)

    • Database management systems (DBMS)

    • Reverse-engineering tools

    • Automated code generators

    • Techniques in System Development

  • Definition: A structured collection of guidelines and standard practices that help systems analysts complete specific development tasks or SDLC activities.

  • Ranges from explicit step-by-step procedures to broad best-practice principles.

Some Techniques Used in System Development

  • Key System Development Techniques:
    • Strategic planning techniques
    • Project management techniques
    • User interviewing techniques
    • Data-modeling techniques
    • Relational database design techniques
    • Structured analysis technique
    • Structured design technique
    • Structured programming technique
    • Software-testing techniques
    • Object-oriented analysis and design (OOAD) techniques

Current Trends and Methodological Paradigms

  • Primary Methodological Approaches

    • Traditional Structured Method: Relies on structured analysis, structured design, and structured programming using flowcharts, DFDs, and structure charts.
    • Object-Oriented Method: Views an information system as a collection of interacting objects that work together to accomplish tasks, utilizing class diagrams, use case diagrams, and sequence diagrams.
  • Prominent Modern Frameworks

    • Unified Process (UP): An object-oriented, iterative system development methodology structured around phases (Inception, Elaboration, Construction, Transition) and core disciplines.
    • Extreme Programming (XP): An Agile development approach emphasizing customer involvement, continuous testing, pair programming, simple design, and frequent small software releases.
    • Scrum: An adaptive, team-centric Agile framework based on short, highly focused development cycles called sprints to deliver functioning software incrementally.