CIS501 Lectures: Software Architecture

Week 1

Reference material: Using C# with Visual Studio and Nclass
Lecture 1: Introduction to software architecture; using Visual Studio (zipped VS solutions)
Lecture 2: Classes model virtual reality; classes and unit testing (zipped VS solutions)

Week 2

Lecture 3: Classes and objects
zipped VS solutions
Solution to in-class exercise
"Design object diagram" for exercise
Lecture 4: Class diagrams (zipped Nclass project)

Week 3

Lecture 5:Interfaces, Delegates, and Reactive systems
Lecture 6: Coupling and the MVC software architecture (zipped VS solution)

Week 4

Lecture 6 continued: Coupling and coherence
Lecture 7: Use-case realization

Week 5

Lecture 7 continued: Communication and sequence diagrams
possible design for calculator based on use-cases
Lecture 8: State diagrams for programming controllers (zipped VS solution)

Week 6

Lecture 8 continued: state diagrams and input languages
Lecture 9: Multi-threaded execution (zipped Example 1) (zipped Example 2)

Week 7

Note: We will use Dr. Mizuno's CIS 501 Notes, Software Archiecture and Design Part 2: Object-Oriented Design Patterns as a reference. The notes cost $10 and are available at the University Copy Center in the basement of Umberger Hall. Dr. Mizuno has a folder of VS Solutions for the notes. You can download them at the following link: wwww. cis. ksu. edu /~schmidt /501s13 /
Lecture 9 continued (zipped Example 2: read/write a file) (zipped Example 3: bank accounts)
Lecture 10: Introduction to Design Patterns: interfaces and delegates
Lecture 11: Design Patterns I: factories and iterators
zipped Example: factory methods and iterators
zipped Example: SparseMatrix with iterator

Weeks 8 and 9

Lecture 12: Proxies (zipped Example)
Lectures 11 and 12 continued: virtual proxy, singleton class, and abstract factory (zipped Example virtual proxy)
Lecture 14: Composite pattern
zipped Example file system
zipped Solution to the above exercise

Weeks 10-12

Lecture 13: Wrappers
Software architecture "theory" (Short version)
Software architecture "theory" (Full version) --- see sections on Middleware and Aspect-Oriented Programming

David Schmidt   das at

Creative Commons License This work is licensed under a Creative Commons License.