Software Engineering part I
Cyril Yu

Agenda

  • What is Software Engineering?

  • Introduce Software Development Life Cycle

  • How git works in SDLC?

  • Q & A

What is Software Engineering

 

  • Systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.         — IEEE, in its standard 610.12-1990

  • The practical application of scientific knowledge to the creative design and building of computer programs. It also includes associated documentation needed for developing, operating, and maintaining them.                                             Barry W. Boehm

Introduce Software Development Life Cycle

SDLC consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software.

The life cycle defines a methodology for improving the quality of software and the overall development process.

Examples of SDLC in Action

  • Waterfall Model
  • Agile Model
  • Iterative Model
  • Spiral Model
  • V-Shaped Model
Model Pros Cons
Waterfall 1. Document driven
2. Everyone gets up to speed quickly
1. Longer delivery time
2. Potential lack of flexibility
Agile 1. More flexible
2. Product get to market faster.
3. Better communication
1. Hard to predict
2. Final product is not released first
3. Documentation gets left behind

Comparison

How git works in SDLC

To know about git

  • Distributed Version Control Systems

  • Using Object Database ( Blob, Tree, Commit, Tag )

  • Snapshot, not differences

Git commit best practice

  • Make small commits

  • Commit complete and well tested code

  • Write good commit messages

Reference

Q & A

Sharing: Software Engineering

By Cyril Yu

Sharing: Software Engineering

  • 661