Are you an EPFL student looking for a semester project?
Work with us on data science and visualisation projects, and deploy your project as an app on top of Graph Search.
This lecture introduces the concept of modular decomposition in software projects, emphasizing the importance of minimizing dependencies between modules. It covers the two main steps in producing an executable: source code and compilation with linking. The lecture explains the principles of modular programming, focusing on decomposition into functions grouped in modules. It also discusses the benefits of creating modules, such as abstraction, reusability, and separation of concerns. The presentation includes examples of module usage and the structure of a module with interface and implementation files. Additionally, it explores the risks of dependencies between modules and the process of separate compilation. The lecture concludes with insights into software architecture and the transition from function call graphs to a higher-level software architecture representation.