ECE373: Software Intensive Engineering