CS 342 focuses on the practical aspects of software design and
implementation. The concepts addressed in the course cover a broad
set of topics important to developing and maintaining quality
Abstraction based on design patterns and object-oriented techniques
(such as separation of interface from implementation) will be the
central concepts and principles throughout the course. These concepts
and principles will enable you to construct reusable, extensible,
efficient, and maintainable software.
- Overview of the software life cycle
- Reuse of design patterns and software architectures
- Developing, documenting, testing and applying reusable
class libraries and object-oriented frameworks
Design patterns will be taught so that you will have good role models
for structuring their own designs, as well as to clearly articulate
the tradeoffs of alternative methods for designing systems.
Object-oriented techniques will be taught so that you will learn by
example how to build highly decentralized software architectures that
decouple inter-dependencies between components. The course will cover
object-oriented techniques that address:
Several in-depth case studies will be used in class to illustrate the
OO design and programming process.
- Decentralized software architecture
- Design patterns
- Component reuse
- Class interface definition
- Module decomposition
- Hierarchical classification
- Extensible object-oriented application frameworks
Back to CS342 home page.