Software Engineering part I
Cyril Yu
What is Software Engineering?
Introduce Software Development Life Cycle
How git works in SDLC?
Q & A
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
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.
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 |
Distributed Version Control Systems
Using Object Database ( Blob, Tree, Commit, Tag )
Snapshot, not differences
Make small commits
Commit complete and well tested code
Write good commit messages
Software Engineering: https://en.wikipedia.org/wiki/Software_engineering
Gitbook: https://git-scm.com/book/en/v2