First and foremost, let me say that I do not have a Software Engineering background . I need help from the community as I have been assigned to create a UML (Unified Modeling Language) design from aggregated Survey data on Public Transportation.

I have been provided with around 42 tables (in Excel) showing the results of the Survey. The dataset will need to be analyzed at a later date in Python.

I am providing the list of Tables at my disposal to start the UML design.

list of tables - part 1

list of tables - part 2

I am a bit confused as to how to define my Classes, Objects and Methods of the UML design.

Any pointers on how you would start planning this UML design?

Can I consider "Satisfaction", "Car", "Commute" and "Safety" (that is, the four topics covered in the Survey) as Classes? If Yes, how do I proceed from there to define the attributes and build the relevant relationships in the UML design?

  • What is the purpose of this design? In what way should this design help you/your team once you have it? Those are really fundamental questions you need to have an answer for, because it will also help you in making the design. Commented Nov 17, 2022 at 15:36
  • @BartvanIngenSchenau The design forms part of the assignment and is supposed to be the basis for data analytics in Python as a next step. Commented Nov 17, 2022 at 16:15

1 Answer 1


I can think of two ways to use UML in analytics:

  • Modeling the domain being surveyed (houses, hospitals, citizens, ...), to better understand relationships between the different concepts.

    This can be useful when designing the survey, to find the questions that could best help to capture the situation. It can also help in the analysis, for interpreting indirect correlations (e.g. statistics on houses, that could give some hints on the owners, which could then be combined with other elements on the owner).

  • Modeling the domain of the survey results (i.e. the tables that you have), to better understand the tables and their relationships.

    This can help you designing a system that manipulates the data available and computes further results and extract new information.

In view of your assignment, you should be interested in the second approach. In this case "Satisfaction", "Car", "Commute" and "Safety" could be class candidates, but only if these elements are in a way or another identified in the raw data.

You could try the following structured approach:

  1. Start with an inventory of the tables and their fields
  2. Identify commonalities between tables (common fields or common concepts) - For example "Have use of a car" and "Have use of a car by satisfaction in life", may probably have in common the concept of owning a car.
  3. Check if some table aggregates independent data, and should be viewed as the association of 2 tables (e.g. if you would have anonimized owner Id, and anonymised car id, you may have to split car relevant data, and owner relevant data)
  4. This should allow to identify "classes" (in the sense of "classifier", and not necessarily of object oriented classes) with properties (fields) and their associations (i.e. set of fields in common that allow to deduct that we are speaking about related key figures).

This will allow to have a first model. You may then map the tables and fields to the classes and properties, and start the design of your analytic software with a way to populate your classes unambiguously.

  • Thank you Christophe for pointing the way forward. Commented Nov 19, 2022 at 12:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.