Skip to content

Instantly share code, notes, and snippets.

@tuncatunc
Last active March 24, 2019 20:15
Show Gist options
  • Save tuncatunc/c8aeb0cddbe6df504335eb78e6d19995 to your computer and use it in GitHub Desktop.
Save tuncatunc/c8aeb0cddbe6df504335eb78e6d19995 to your computer and use it in GitHub Desktop.
SDLC notes

Definition

SDLC is a process followed for a software project.

Stages

1 Planning and Requirement Analysis

  • Inputs from marketting, sales, domain experts
  • Feasibility analysis
  • Risk identification
  • Output of technical feasibility is to identify technical approaches to implement project with minimum risks

2 Define requirements

  • Define product requirements and get them approved by customer/s
  • SRS document is created using DOORS, requirements are linked to output of planning and requirement analysis, risks from step (#1 Planning and Requirement Analysis)

3 Design Product Architecture

  • SRS is used to create DDS (Design document specification)
  • Best architecture for the project
  • DDS is reviewed for
    • Risk assesment
    • Product robustness ()
    • Design modularity
    • Budget and time constraints
  • DDS clearly identifies
    • All architectural modules
    • Communication and data flow representations with external modules
    • Internal design of the modules are clearly identified

4 Building or Developing Product

  • The code is developed according to the DDS
  • If the design is performed in a detailed and an organized manner, code generation is accomplished without much hassle
  • Developers must follow coding guidelines etc. MISRA

5 Testing the product

  • Subset of all stages in modern SDLC models.

6 Deployment in the market and maintenance

SDLC models

Agile SDLC model

  • Breaks product in a small incremental builds
  • Builds are provided in iterations/sprints
  • Each iteration/sprint is 1-2 weeks
  • Each iteration involes cross functional teams working simultaneously on various areas like
    • Planning
    • Requirement analysis
    • Design
    • Coding
    • Unit testing
    • Accetance testing

Agile manifesto

  • Individuals and interactions: Self organization and motivations are important. Interactions like co-location and pair programming.
  • Working software: is best way to communicate requirements with customer, instead of documents only.
  • Customer collaboration: Requirements cannot be gathered completely at the beginning of the project, customer interaction is important to get proper requirements
  • Responding to change: Agile development is focused on quick responses to change
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment