Cambridge AS & A Level Information Technology (9626) - Chapter 16 - System Life Cycle
16.1 System Life Cycle (SLC)
The System Life Cycle (SLC), also known as the Software Development Life Cycle (SDLC), is a structured process that guides the development, maintenance, and eventual retirement of an information system. It ensures that systems are developed efficiently, meet user requirements, and are properly managed throughout their lifespan.
16.1.1 Stages of the System Life Cycle
There are several recognized stages within the SLC, which may vary slightly in nomenclature but generally cover similar activities:
Analysis (Investigation)
Purpose: To understand the problem, define the project scope, identify user requirements, and determine the feasibility of the proposed system.
Activities:
Problem recognition: Identifying the need for a new system or an improvement to an existing one.
Feasibility study: Assessing the technical, economic, legal, operational, and scheduling feasibility of a project (often referred to as TELOS).
Information gathering: Collecting data through interviews, questionnaires, observation, and document analysis.
Requirements specification: Documenting the functional and non-functional requirements (e.g., performance, security, usability) of the new system.
Current system analysis: Examining existing systems and processes to identify limitations and areas for improvement.
Deliverables: Feasibility report, user requirements specification, current system documentation.
Design
Purpose: To define how the system will meet the requirements identified in the analysis phase. This involves creating a detailed blueprint for the system.
Activities:
User Interface (UI) design: Planning the layout, navigation, and interaction elements.
Data design: Designing databases, data structures, and file formats (e.g., Entity-Relationship Diagrams - ERDs, data dictionaries).
Process design: Defining how data flows and is processed within the system (e.g., flowcharts, pseudocode, Data Flow Diagrams - DFDs).
System architecture design: Specifying hardware and software components, network configuration, and system security.
Output design: Designing reports, screen displays, and other outputs.
Input design: Designing data entry forms and input methods.
Considerations: Modularity, scalability, security, maintainability.
Deliverables: System design specification, UI prototypes, database schema.
Development (Implementation/Coding)
Purpose: To translate the design specifications into a working system by writing program code and setting up hardware/software.
Activities:
Programming: Writing code in chosen programming languages.
Database creation: Setting up and populating databases.
Hardware and software installation: Acquiring and configuring necessary infrastructure.
Module integration: Combining individual program modules into a cohesive system.
Documentation: Creating technical documentation for developers and system administrators.
Deliverables: Source code, executable programs, installed hardware/software.
Testing
Purpose: To identify and fix errors (bugs) in the system and ensure it meets the specified requirements and functions correctly.
Types of Testing:
Unit testing: Testing individual modules or components.
Integration testing: Testing how different modules interact when combined.
System testing: Testing the complete system against functional and non-functional requirements.
Acceptance testing (UAT - User Acceptance Testing): Users test the system to ensure it meets their needs and is ready for deployment.
Alpha testing: In-house testing by development team/testers.
Beta testing: Testing by a selected group of end-users outside the development organization.
Methodologies: Test plans, test cases, error logging.
Deliverables: Test reports, bug logs, verified and validated system.
Implementation (Deployment)
Purpose: To introduce the new system into the operational environment.
Activities:
Data migration: Transferring data from the old system to the new one.
User training: Educating users on how to use the new system.
System conversion: Switching from the old system to the new system. Common methods include:
Direct changeover: Old system is immediately replaced by the new system (high risk).
Phased changeover: New system is introduced module by module (medium risk).
Parallel running: Both old and new systems run simultaneously for a period (low risk, high cost).
Pilot running: New system is introduced to a small part of the organization first (medium risk).
Deliverables: Live system, trained users, operational documentation.
Evaluation and Maintenance
Purpose: To ensure the system continues to meet evolving needs, functions correctly over time, and remains relevant.
Evaluation Activities:
Post-implementation review: Assessing the system's performance, user satisfaction, and whether project objectives were met.
Performance monitoring: Tracking system efficiency and resource usage.
Maintenance Activities:
Corrective maintenance: Fixing bugs and errors discovered after implementation (e.g., patching, hotfixes).
Adaptive maintenance: Modifying the system to adapt to changes in the environment (e.g., new operating system, legal requirements).
Perfective maintenance: Enhancing the system by adding new features or improving performance/usability.
Preventive maintenance: Making changes to prevent future problems.
Deliverables: System reports, updated documentation, system enhancements, retirement plan consideration for future.