Software Engineering, CS 456

How do you organize and manage a team of 10 software developers?  How do you design complex code so that you know it will work?  How do you communicate your brilliant programming scheme to the client or boss?  This course will cover “everything you ever needed to know to run a software company.”  That means designing Unified Modeling Language (UML) representations of your code, utilizing common object-oriented design patterns, using the product life cycle, and writing implementation documents.  Hone up your English skills, because this computer science class will involve technical paper writing!

Homework Assignments

Syllabus

Class Notes Part 1 (Intro: Reliability, Flexibility, etc.)

Class Notes Part 2 (OO Review and Ties to Software Engineering)

Class Notes Part 3 (UML Class Diagrams)

Class Notes Part 4 (Class, Object, Package Diagrams)

Class Notes Part 5 (Use Cases)

Class Notes Part 6 (Sequence Diagram)

Class Notes Part 7 (Collaboration, Deployment Diagrams)

Class Notes Part 8 (Software Life Cycle)

Class Notes Part 9 (Life Cycle Documentation)

Class Notes Part 10 (Design Patterns Intro)

Class Notes Part 11 (Facade Pattern)

Class Notes Part 12 (Adapter Pattern)

Class Notes Part 13 (Bridge Pattern)

Class Notes Part 14 (Abstract Factory Pattern)

Class Notes Part 15 (Strategy Pattern)

Class Notes Part 16 (Observer Pattern)

Class Notes Part 17 (Model-View-Controller Pattern)

Class Notes Part 18 (Singleton Pattern)

Class Notes Part 19 (Patterns in Design Patterns)

Class Notes Part 20 (Anti-Patterns)

Class Notes Part 21 (Dude, Where's the Math?)