|
SWENG 500: Advanced Software Studio |
|
|
This is intended to be a capstone course for the Masters of Software Engineering program providing students training in the complete software development life cycle. Students in groups or individually develop a significant software product from requirements to code using a development process, tools and technologies of their choice. |
|
|
SWENG 537: Software Systems Design |
|
|
This course provides students with the ability to master principles of good object-oriented analysis and design. The students learn UML, a visual modeling language for creating analysis and design models; Unified Process, a methodology for managing the activities during software development lifecycle; and analysis and design patterns for building the software design model. |
|
|
SWENG 580: Advanced Software Engineering |
|
|
The course introduces initiatives, techniques and strategies that characterize the efforts made in both academia and industry to transition the software engineering discipline from an ad hoc, random-behavior, random-result “alchemy” into an established profession using repeatable practices with predictable results. |
|
| SWENG 585: Pattern-Oriented Design | |
|
|
| SWENG 587: Software Architecture | |
|
|
| SWENG 588: Program Understanding | |
|
It is a general observation that software engineers learn about software design, programming languages, paradigms, patterns and tools, and are expected to produce high quality designs and code, often without ever having seen good examples. This approach is akin to teaching students the syntax of the English language and writing techniques and then expecting them to become expert writers without ever having read great literary works. The course in Program Understanding seeks to educate graduate software engineering students beyond their understanding of code syntax and best construction practices with analytical evaluation of “great works” of software code. This approach includes manual code reading, the use of visualization techniques, and automated approaches to assessment of design and code quality. |