Software engineering has been a central theme of Roman's research throughout his career. The starting point was his dissertation, which demonstrated the potential for dependability and productivity improvements through systematic use of formal methods. Nevertheless, his early research spanned a broad range of investigative domains including biomedical simulation, formal languages, distributed databases, computer graphics, and image understanding. Some of the most interesting results have been those stemming from fruitful collaborations with colleagues in the department: one of the first fully distributed algorithms for concurrency coordination in distributed databases, a novel pipelined architecture for real-time hidden surface elimination, a logic-based model for geographic data processing, and algorithms for real-time stereo matching.