22C:180/55:180
SOFTWARE ENGINEERING--
ARCHITECTURE AND DESIGN OF SOFTWARE SYSTEMS
FALL 1999
Course Description:
This course will provide an introduction to modern software development practices and technologies employed in business and industry. Throughout the course, presentation of state-of-the art software engineering concepts will be balanced with a "real-world" perspective. fOllowing an initial overview of software engineering concepts, the course will focus on the architecture and design of software systems. The emphasis on software architecture reflects the growing importance of architectural modeling as a key underpinning of the software development process. The design component of the course will focus on object-oriented design principles and will emphasize the widely-used Unified Modeling Language (UML) notation and the use of design patterns. Several important tenets of successful commercial software development will be discussed, including software product family engineering and component-based design.
Intended Audience:
Advanced undergraduate and graduate students in computer-related fields who are interested in a career as a professional software developer; Practicing engineers/scientists who desire to learn about commercial software development methods.
Required Background:
Senior or graduate standing in a computer-related discipline such as Computer Science, Electrical and Computer Engineering, or Management Information Science, or equivalent standing in another discipline and prior programming experience including exposure to an object oriented programming language--e.g. C++ or JAVA. Extensive prior software development experience is not required.