CIS501 Lectures: Software Architecture
Week 1
Reference material: Using C# with Visual Studio and Nclass
Lecture 1: Introduction to software architecture; using Visual Studio
Exercise
|
VS folder
|
Exercise postmortem
Lecture 2: Classes model reality; unit testing
Exercise
|
VS folder
Assignment 1:
Implement a card game.
Week 2
Lecture 3: Storage and object diagrams; using a debugger
Exercise
|
VS folder
|
sample solution
|
object diagram for sample solution
Lecture 4: Class diagrams
Exercise
|
VS folder
Assignment 2:
Rebuild card game to match class-diagram design
Week 3
Lecture 5: Interfaces and Delegates
Tuesday Exercise
Thursday Exercise
|
Thursday VS folder
Week 4
Lecture 6: Coupling and the MVC software architecture
Tuesday Exercise
|
Tuesday VS folder
Thursday Exercise in folder
Assignment 3:
Rebuild card game in MVC architecture
Week 5 (code-review meetings)
Week 6
Lecture 7: Use cases and realizations via communication and sequence diagrams
Exercise
Lecture 8: State diagrams and controllers
Exercise
|
VS folder
Assignment 4:
design distributed banking system with UML diagrams
Week 7
Lecture 9: Multi-threaded execution and locks
Exercise
|
VS folder
Design-patterns prelude: Review of interfaces and delegates
Week 8 (exam) | Week 9 (spring break) | Week 10 (design-review meetings)
Week 11
Design Patterns I: Factories and Iterators
Exercise
|
VS folder
Design Patterns II: Virtual Proxies
Exercise
|
VS folder
Assignment 5:
implement banking system
Week 12
Design Patterns IV: Composite pattern and Visitor pattern
Exercise
|
VS folder
|
Sample solution
Final project: Assignments 6 and 7
: design and implement cloud-storage-based file-system app
Week 13
Design Patterns II again: Remote Proxies
Exercise
|
Remote Proxy VS folder
|
Use-case diagram of what you must do
Design Patterns III: Various Wrappers
Week 14 (no class meetings - work on project)
Read me:
Wrapup on design patterns and introduction to version control
Read me too:
Software architecture concepts
Week 15 (project-review meetings) | Week 16 (dead week) | Week 17 (finals week - upload project implementation)
David Schmidt
das at ksu.edu
This work is licensed under a
Creative Commons License
.