They are a planning tool before coding. They can take a lot of time to create. They are a visual way of breaking a big problem into smaller parts. The diagrams require updating if the system changes.