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
-
Software Engineering: https://en.wikipedia.org/wiki/Software_engineering
-
Gitbook: https://git-scm.com/book/en/v2
- Version Control: https://en.wikipedia.org/wiki/Version_control
Q & A
Sharing: Software Engineering
By Cyril Yu
Sharing: Software Engineering
- 661