Software Development

What is Software Development?

  • The process of creating computer programs or applications.
 Software Development Life Cycle (SDLC) The process of planning, creating, testing, and deploying software applications.
  • Common Phases:
    • Requirement Analysis: Gathering and documenting user requirements.
    • Design: Creating a blueprint or architecture of the software.
    • Implementation: Writing code according to design specifications.
    • Testing: Verifying and validating the software to ensure it meets requirements.
    • Deployment: Releasing the software for use by end-users.
    • Maintenance: Providing updates, bug fixes, and enhancements to the software.

Example:

  • Requirement Analysis: Interviewing stakeholders to gather requirements for a new project.
Testing The process of evaluating software to identify bugs, errors, and discrepancies.
  • Common Testing Types:
    • Unit Testing: Testing individual components or modules of the software.
    • Integration Testing: Testing how different components work together.
    • System Testing: Testing the entire system as a whole.
    • User Acceptance Testing (UAT): Testing by end-users to ensure it meets their needs.
  • Testing Techniques:
    • Black Box Testing: Testing without knowledge of the internal workings of the software.
    • White Box Testing: Testing with knowledge of the internal code and structure.
    • Regression Testing: Re-testing to ensure that previously fixed bugs have not reappeared.

Example:

  • Unit Testing: Writing tests to verify the functionality of individual functions in a codebase.
Maintenance The process of updating, modifying, and improving software after deployment.
  • Types of Maintenance:
    • Corrective Maintenance: Fixing bugs and errors discovered after deployment.
    • Adaptive Maintenance: Modifying the software to adapt to changes in the environment or requirements.
    • Perfective Maintenance: Enhancing the software to improve performance or add new features.
    • Preventive Maintenance: Proactively identifying and fixing potential issues before they become problems.

Example:

  • Corrective Maintenance: Releasing a patch to fix a critical security vulnerability discovered in a deployed application.