Project 4: Design an Enterprise Fleet Management System - Part 2
The third diagram that we're going to build out is a deployment diagram. This helps us figure out the overall architecture of the system. I want you to research what an enterprise system is comprised of. There are some complex components.
Guide Tasks
  • Read Tutorial
  • Watch Guide Video
Video locked
This video is viewable to users with a Bottega Bootcamp license

Deployment Diagram Requirements

  • Load balancer
  • Application servers
  • Database clusters
  • Caching

We haven't gone over these topics in any other course so far. When you're designing systems you are constantly going to be designing things you've never built before. For that reason, a huge component of the planning stage is research.

So, find out what a load balancer does! You don't have to go build one yet, just figure out what it does at a high level.

We started this project with an activity diagram, where we figured out the behavior. That informed our thinking and helped us to have an idea about the different classes.

With the package diagram, we saw how all the modules could be set up and how the system could talk to itself.

The deployment diagram gave us a good idea of the overall architecture.

With all of that in place, we're ready to build the class diagram which will lead us directly into building the application itself.

Class Diagram Requirements

  • Vehicle
  • CarModel
  • CarBrand
  • ProductionFacility
  • Dealer
  • Technician
  • Role
  • Maintenance
  • MaintenanceType
  • ServiceCenter
  • Service
  • ServiceList
  • MaintenancePart
  • Part
  • Vendor
  • Assembly

From a technical perspective, a few of these classes could be combined into one. But in more complex enterprise applications it becomes incredibly important for your database to be as efficient as possible. A great way to do that is to make sure that classes do not contain information that they do not need.

You can choose whether to use inheritance for this diagram or to simply specify that there are multiple models; one is more generic and another is more specialized.

As always, make sure that you put in all of the right types of associations, attributes, and operations that you think you would use. Finally, be sure to list which items are public, private, and protected.