It can be hard to convey the proper use of a technology&#x2F;framework in academia when there is not a lot of background to work with. I felt the same about unit testing (shouldn&#x27;t you know how your code works?) and UML diagrams (shouldn&#x27;t you know the class&#x2F;object relationships?) as well. They&#x27;re all bigger picture than that.<p>The point at which I started to realize the usefulness of diagrams was when I started working on projects that were more than a few hours worth of coding (my first internship). UML provides a way to visually represent how your code will both relate to itself (classes, interfaces, objects) and the overall project to both the developer AND the business analysts who have no idea what inheritance or polymorphism mean. I&#x27;ve included an early draft of a piece of a rather large data model. It won&#x27;t mean anything to you without the overall diagram, but you see some relationships between the customer&#x27;s account, application and product: <a href="http:&#x2F;&#x2F;s18.postimg.org&#x2F;gxfkjytft&#x2F;diag.png" rel="nofollow">http:&#x2F;&#x2F;s18.postimg.org&#x2F;gxfkjytft&#x2F;diag.png</a><p>You probably had an example like grocery store checkout software, hotel booking software, or library cataloging software. A UML diagram can show to everyone all the possible routes a customer can take such at starting points, ending points, resume milestones, activities that are and are not allowed, transient and permanent data and everything in between. This all applies to the academic scenarios listed above, but it&#x27;s more in depth (likely) than an assignment that you&#x27;ll have when learning about UML.<p>Just keep in mind that large project will have multiple developers of varying expertise with business people who likely cannot write &quot;Hello World!&quot; in any language. UML attempts to bridge the gap between you, your superiors, your subordinates, and the non-tech side of the project.