Software Engineering Overview
In this module you will learn the basics of modern software engineering. You will learn how our industry progresses over time, practices test driven development, and implement widely used data structures.
Learning objectives
- Describe the ideal lifecycle for modern software development
- Describe XP practices, principles, and values
- Summarize the complexities inherent to software development
- Use test driven development to write a simple data structure
Welcome
Introduction to the workshop.
Day-in-the-life
Ideal lifecycle for modern software development.
Practices
Practices, principles, and values.
No silver bullet article
Essence and Accidents of Software Engineering.
Testing basics
Test driven development overview.
Simple aged cache
Test drive a cache data structure.
Testing with doubles
An overview of test doubles.
The "unit" in unit testing
Examining units of isolation
Cache revisited
Testing with test doubles.
Blockchain
An overview of blockchain.
Blockchain codebase
Test drive a blockchain.
Secure code
A secure coding discussion.