Software Engineering, Reverse Engineering, Program Understanding, Software Visualization, Mining Software Repositories, Problem Determination, Root Cause Analysis.
Software must evolve over time or it becomes useless. Unfortunately, over time, software systems become more complex and increasingly difficult to understand and change to meet new requirements. An understanding gap has grown between what is known, useful, and available information about the system and what needs to be known to make changes.
Massive Open Online Courses
I am the instructor-of-record for several offerings, developed through the Faculty of Science and Onlea, and delivered by Coursera.
Object-oriented design and analysis, with interactive applications as the primary example. Topics include: software process; revision control; Unified Modeling Language (UML); requirements; software architecture, design patterns, frameworks, design guidelines; unit testing; refactoring; software tools. Prerequisite: CMPUT 201 or 275.Fall Term 2020
See Note (3) above.Spring Term 2020