Learning comes in different forms. From this course, students are expected to minimally gain the following learning outcomes, with Core Body of Knowledge topics from ACM Curriculum Guidelines for Graduate
Degree Programs in Software Engineering:
- Comprehension and Application of Software Design Fundamentals including: general design concepts; context of software design; and software design process
- Application of Key Issues in Software Design including: distribution of components; interaction and presentation; and data persistence
- Application and Analysis of Software Structure and Architecture including architectural styles (macro architectural patterns) and design patterns (micro architectural patterns)
- Application of Software Design Quality Analysis and Evaluation including: quality attributes; quality analysis and evaluation techniques; and measures
- Application of Software Design Notations including both structural (static) descriptions and behavioral (dynamic) descriptions
- Application and Analysis of Software Design Strategies and Methods with an emphasis on Object-oriented design
- Application and Analysis of Testing Techniques with a focus on unit testing and Test-Related Measures by evaluation of tests with code coverage
- Comprehension of Software Maintenance Fundamentals including: definitions and terminology; nature of maintenance; and need for maintenance
- Application of Key Issues in Software Maintenance, the Maintenance Process, and Techniques for Maintenance including: technical and management issues; software maintenance measurement; maintenance activities; program comprehension; and re-engineering