Some see the software engineer above all as a software designer. Not only is software design the most creative aspect of software development, but the success of software development projects depends on good software design. A complete software design leads to precise software development. This course covers architectural styles and idioms, architectural evaluation techniques, development tools and environments, and implementation guidelines and heuristics. The course projects are designed to reinforce your understanding and use of these concepts and techniques.
Software engineering is a continually changing and expanding field.
At best, this course can provide a foundation upon which you can pursue additional knowledge in the software engineering specialty of software design and development. Course Materials Required Texts and Software Shaw, Mary, and David Garlan. Perspectives on an Emerging Discipline . A Practitioner's Approach , 4th ed. McGraw-Hill Companies, Inc., 1997.