Data flow diagrams (DFDs) are a graphical tool used to communicate system requirements and analyze system logic. DFDs focus on the flow of data between external entities, processes, and data stores. They provide an overview of what data a system processes, what transformations are performed, what data is stored, and what results are produced. DFDs contain four main elements - external entities, data flows, processes, and data stores. External entities represent sources or destinations of data outside the system, processes represent actions performed on the data, data flows show the movement of data between elements, and data stores represent data repositories. DFDs can be decomposed into multiple levels to show increasing detail.