ECE 59500 - Advanced Software EngineeringLecture Hours: 3 Credits: 3
Areas of Specialization(s):
CMPE Special Content Elective
Experimental Course Offered: Spring 2021
ECE 36800 and an additional 400-level Computer Engineering course in programming.
Requisites by Topic:
Fluency in a programming language (C, C++, Java, Python, etc.)
Software engineering is a difficult endeavor. Software engineers work in diverse teams to create and comprehend complex information, such as: code structure, implementation rationale, dynamic software behavior, change implications, and team dynamics. In this class, we will study principles of software engineering and discuss state-of-the-art research. In their course project, students will work to understand and extend the state of the art in software engineering.
- Software Engineering, 10th Edition, Sommerville, Pearson, 2016.
- Software Engineering at Google, O'Reilly, 2020.
- The Mythical Man-Month: Essays on Software Engineering, Brooks.
|1||Introduction to course. Describe course research project|
|4||Software process and lifecycle: Requirements analysis, Design, Testing, Release, Maintenance|
|2||Empirical software engineering (socio-technical approaches and findings)|
|2||Reuse-oriented programming and open-source software (e.g. code search, trust)|
|2||Security & Automated testing tools (static/dynamic/fuzzing)|
|1||Software improvement (code clones, similarity detection)|
|1||Software archaeology and code comprehension|
|2||Software 2.0 -- AI & machine learning|