I would start by drawing a class diagram with all the relationships and implement only those classes that are necessary in accordance with the requirements of your application.
You can use an anemic approach (attributes plus getters and setters) so that everything is in order and avoid the steps of writing business logic at the same step. With an anemic model, logic goes into the appropriate service class. So you can consider using cases later.
I know that some people donβt appreciate this way of doing something, but it helps in maintenance and avoids some addiction problems.
Answer the elysium devoured question below :
In terms of analysis, starting with use cases (What) and then moving on to a class diagram (How) sounds like a good rule of thumb. Personally, I would make a Sequence Diagram (When and Who?) After that, since you would need to know what process / object messages to send.
Besides the fact that I believe that UML is just a way of modeling the system / project, and not the methodology itself (unlike Merise, RAD, RUP, Scrum, etc.). Nothing prevents someone from starting with any chart if they have enough information to complete it. In fact, they must be executed simultaneously, since each of the diagrams is a different perspective of the same system / project.
So it all depends on how you analyze. During my studies, I was taught the approach with a hard waterfall, where you do a complete analysis from start to finish, before creating the code. However, in practice, everything can be different, since the imperative may be to create a working application in minimal time.
For example, I recently got acquainted with the Scrum methodology for exercises related to creating a website where people can publish their fiction. Since there was a time limit and a clear idea of ββwhat should be achieved, we immediately started with a bare-bone class diagram to represent the domain model. The use cases were then inferred from the series of layouts we released.
From memory classes were "History", "Chapter", "User" and "Category". This last class has been canceled in favor of the more flexible Tag class. As you could imagine, a complete class diagram of an existing project will be much more complicated due to the use of domain-based architecture and the features of the Java programming language.
This approach can be considered sloppy. However, a website like this can be easily done in a couple of weeks using an iterative process and still well-designed. The advantage that the iterative process has in relation to the approach to the waterfall is that you can constantly adjust the requirements as you move. A frequent change in requirements is a reality, as people often change their minds and the ability to create a working application after each iteration, allowing them to stay on course for so long.
Of course, when you present a project to a client, a full analysis with UML diagrams and some layout screens will be preferable so that they have an idea of ββwhat you are offering. This is where UML appears. After you have explained some visual conventions, a person should be able to understand diagrams.
To finish, if you are in a situation where you are trying to determine what the client wants, it is probably a good idea to gradually create a questionnaire that you can bring with you. Interviewing a person is the only way to determine which concepts / functions are really necessary for the application, and you should expect to return to clarify some aspects. Another tip is to do some quick research on the Internet when you come across a subject you are not familiar with.
In your example, this will go through the basics of anatomy. Among other things, this will help you decide what the model should contain and what grain it should have (which group of organs should be taken into account? How accurate should it be? Only models should be modeled or they should be decomposed into their components, such as tissues, cells, chemical composition, etc.?).