Schedule
We will examine topics in all the areas of the software development life-cycle:
- Requirements analysis and project planning
- Software architecture and system design
- Implementation tools and techniques
- Verification and validation
- Deployment and maintenance
The day-by-day schedule is shown below, including all deadlines.
Topics listed for each date are tentative though, and subject to
change. The schedule is available as schedule.ics
– copy
that link to subscribe or import it into Google Calendar and other
systems.
- : Meeting 1
Systems Development Lifecycle (SDLC) and software engineering process models
- : Meeting 2
Requirements analysis and estimation
- : Check-in 1 due
Set up gitlab account and VM.
- : Meeting 3
Version control overview
- : Milestone 1 due
User stories
- : Meeting 4
Testing overview
- : Meeting 5
Unit testing tools
- : Check-in 2 due
(Skipped)
- : Meeting 6
‘Assertive’ programming
- : Meeting 7
Debugging methodology
- : Milestone 2 due
Unit testing
- : No class – Presidents’ Day
- : Meeting 8
Coverage analysis
- : No class – I am out of town
We will substitute some online content and exercises. Test automation
- : Check-in 3 due
Fix Python code that failed tests.
- : Meeting 10
Continuous integration
- : Meeting 11
Release management
- : Milestone 3 due
Coverage tool
- : Meeting 12
Stress testing and fuzz testing
- : Meeting 13
Mastering your editor and IDE
- : Check-in 4 due
Readings on modularity
- : Meeting 14
Coupling, cohesion, and modular design
- : Meeting 15
Pub-sub and similar models of inter-module communication
- : Meeting 16
Model-View-Controller (MVC) and similar models of flexible collaboration
- : Meeting 17
Design considerations for our
webgc
project. - : Milestone 4 due
- : Check-in 5 due
Skipped
- : Meeting 18
Documentation generators, literate programming
- : Meeting 19
Doc tests
- : Milestone 5 due
- : Meeting 20
Dependency injection
- : Meeting 21
Mock methods for testing
- : Meeting 22
Branching and merging
- : Check-in 6 due
- : Meeting 23
‘Bisect’ and other advanced uses of version control
- : Milestone 6 due
- : Meeting 24
Meta-programming
- : Meeting 25
Software verification overview
- : Check-in 7 due
Read some introductions about formal methods.
- : Meeting 26
Design by Contract (DBC)
- : Meeting 27
Other formal methods
- : Meeting 28
Wildcard/overflow day
- : Milestone 7 due
- : Final exam due