sub-title

Also check Orama's Quora and Orama's GitHub
I shall not claim to know so much, but only that I learn new things everyday

Thursday, 14 July 2022

System Development Life Cycle (SDLC)

Introduction

Having implemented many software systems in my career, it is only fair that I summarize what I go through every time I develop a new system. This is good for reference by others who may not be so experienced in system development, and even for myself just to refresh my memories.

As you will see in the SDLC stages below, documentation is key in the development process. Documentation helps current and future developers keep track of the system in an organized manner.

Unfortunately, some clients usually underestimate the effort put into developing software because they think that a software development project is just about coding. This mentality can have serious adverse effects on the development process, especially the costs and timeframe - which can be grossly underestimated. There is a lot of thought process in planning, documenting and executing a software development project. Coding is just a small part of the overall process.

Of note is the Rapid Application Development (RAD) model which reduces the development stages into requirements analysis, implementation(coding) and deployment. Everything else is in the developer's head. RAD is suitable and effective for small software projects, but not for large ones.

This post will emerge as the shortest post ever in my blog, but it is very important in context.


System Development Life Cycle (SDLC)

SDLC is the complete set of project management stages of software development from initial idea to completion of the software project. It is a framework that defines tasks performed at each step in the software development process.

The idea usually, but not always, starts from the client/user; and is then implemented by the development team under a Project Manager. In many workplaces, a good developer can read the minds of users and initiate an idea on behalf of the users based on the problems users face.

The stages are:

  1. Planning (Output - Envisioning Document):
    • Problem Definition, Objectives, Plan, Scope, High-level Requirements (Business, User, Operational, System), Conceptual Model (high-level), Schedule, Resources, Constraints, Risks, etc. NOTE: Logical Model comes at Design stage; Physical Model comes at Development (Coding) stage.

      Without proper planning and scoping, it is not possible to give an estimate of the project schedule, cost and required resources. If a developer has ever been approached by a client who says that they want a project to be completed in a given timeframe at a given cost, it is only fair that the developer first understands the project before committing.

  2. Requirements Analysis (Output - Software Requirements Specification Document):
    • Requirements Gathering (software, hardware, networks, etc). Requirements are usually not clear from the beginning, hence the need to use Agile (iterative) rather than Waterfall (linear) SDLC methodology.
    • Requirements Analysis

  3. Design (Output - Design Document):
    • Based on SRS Document, design prototypes for user interface, system interface, logical data model (define all required classes, attributes, methods, relationships, and then translate it into UML Diagram; or alternatively ERD or Data Dictionary). The data model should take care of current and any possible future needs (even if not specified in SRS document) based on your wisdom and design experience. Develop plans for operation, training, and maintenance.

  4. Implementation (Output - Code):
    • Write code and build application based on prior documents.

  5. Testing (Output - Test Report):
    • Test for bugs; quality, compliance with requirements.

  6. Deployment:
    • System modules are integrated and deployed to end-users.

  7. Training (Output - Training Report):
    • End-users are trained in system use.

  8. Operation and Maintenance (Change Requests):
    • Address issues (bugs or new requirements) raised by users.Continues as long as system is being used.


No comments:

Post a Comment