Homayoun Dayani-Fard

Learn More
The development of large software systems involves a continual lengthy build process that may include preprocessing, compilation and linking of tens of thousands of source code files. In many cases, much of this build time is wasted because of false dependencies between implementation files and their respective header files. We present a graph algorithm and(More)
Large-scale legacy programs take long time to compile, thereby hampering productivity. This paper presents algorithms that reduce compilation time by analyzing syntactic dependencies in fine-grain program units, and by removing redundancies as well as false dependencies. These algorithms are combined with parallel compilation techniques (compiler farms,(More)
The build architecture of legacy C/C++ software systems, groups program files in directories to represent logical components. The interfaces of these components are loosely defined by a set of header files that are typically grouped in one common include directory. As legacy systems evolve, these interfaces decay , which contribute to an increase in the(More)
High-assurance real-time software must be designed and veried in the light of its dependence on the underlying operating system and hardware. This is true both because timing is critical to correctness and because critical safety requirements must be met by the system as a whole, including the underlying (computer) system. We present a phased formal(More)
  • 1