2.1 software development lifecycle

 The software development life-cycle (SDLC) consists of several phases that guide the systematic development of software products. This process helps ensure that projects are well-defined and cost-effective.



Key phases of SDLC include:


1. Project initiation and planning: Identifies the need for a new system and defines the problem, leading to a preliminary investigation of the existing system.


2. Feasibility study: Assesses user needs and evaluates the resources, costs, and benefits to determine if the project is viable.


3. System analysis: Involves a detailed examination of the system's operations, documenting issues and proposing solutions based on user requirements.


4. System design: Translates requirements into a detailed design representation, which is assessed for quality before coding begins


5. Coding: Converts the design into code, focusing on clarity and maintainability to facilitate future testing and maintenance.


6. Testing: Detects errors by comparing actual results against expected outcomes, ensuring the software meets requirements.


7. Implementation: Prepares the system for operational use, including user training and final testing to ensure satisfaction.


8. Maintenance: Addresses any errors or changes needed after deployment. Maintenance can involve corrective, adaptive, perfective, and preventive tasks to ensure the system remains effective and up-to-date.


Corrective maintenance involves repairing processing or performance failures and addressing previously uncorrected problems. 


Adaptive maintenance requires changing program functions to align with external changes, such as new government regulations. For instance, modifying tax calculations to include dividends as profits.


Perfective maintenance focuses on enhancing performance or modifying programs based on users' evolving needs, such as adding functionality or improving response times. Efforts are made to reduce maintenance costs through management and software modification audits.


Preventive maintenance aims to prevent obsolescence by re-engineering old systems with new technology, ensuring the system remains relevant and functional.


Following these phases provides a roadmap for developing high-quality software efficiently, emphasizing the importance of each step in delivering a successful project.

Comments