ECE 5574G Advanced Software Development for Computer-Aided Engineering | ECE | Virginia Tech


Course Information


Computer-aided engineering software that address the hierarchy of engineering analysis, design, and decision evaluation is developed with state-of-the-art computer tools. Linear graph theory is applied to the modeling of physical networks. Operator overloading, dynamic polymorphism, graphical user interfaces, dynamic link libraries, and multiple threaded programs are considered.

Why take this course?

Computer-aided engineering software is developed and applied in all engineering disciplines. In this course the student is introduced to software implementations of the hierarchy of engineering analysis, design, and decision evaluation. An introduction to developing computer aided engineering programs with state-of-the-art computer tools and methods is provided. Software frameworks and design patterns are utilized in the course. The course introduces event driven programming for convenient designer interactions, multi-threaded programming for running lengthy and/or concurrent calculations, and the concept of runtime modular code. Graphical user interfaces are used for convenient analysis and design interaction. Upon completion of the course the student is prepared to implement computer aided engineering environments.


Prerequisites: Graduate standing

Graduate standing.

Major Measurable Learning Objectives

  • Develop event driven programs for computer-aided analysis of engineering systems
  • Develop graphical user interfaces for use in engineering analysis, design, and alternative decision evaluation
  • Apply design patterns in engineering analysis
  • Design and implement runtime modular programs
  • Develop flexible programs with components
  • Develop programs that model physical networks and network hierarchies

Course Topics


Percentage of Course

Engineering analysis, design, and decisions 15%
Modeling of physical networks 15%
Event driven programming and messages 10%
Graphical user interfaces 10%
Design patterns for engineering calculations 10%
Runtime modular programs 10%
Multi-threaded programming 10%
Architecting a component 10%
Physical hierarchies 10%