Deadline 3,4 & 5

Before reading

As you know, I am currently writing about a novel that I’m reading, which is Deadline, a novel about project management, by Tom DeMarco, so in these posts we are going to discuss about the chapters of the book and at the end I am giving my truly opinion about the book, In the last chapters the book did not caught our attention, because it felt kind of confusing and slow, lets see if the novel has something special for us.

This is a gif of sponge bob reading a book- giphy

——–Reading the chapters——

Chapter 3

By now the book seems to start getting a little interesting, in this chapter of the book Mr T, who is the main character of the novel wakes up in a place that is similar to his home but it’s not home, as soon as he wakes up he saw Ms Hoolihan looking at him, he is mad and angry because he of course notices that he has been kidnaped, but Holihan seems not to pay too much attention to what Mr T feels, because time is running and Mr T needs to start doing the job for what he had been kidnapped. As soon as Holihan starts explainin what Mr T’s job would be she said to Mr T that if he does not what to do the job he is free to leave, but of course Holihan knows that someone like Mr T would never refuse such an oportunity like the one that is being given at the moment, they would pay twice the amount of money that Mr T did back in USA.

This is a gif of a cat being petted-Tenos

A lot of money an a job specially made for Mr T finally convinces Mr T to accept the job, basically Mr T would have a large amount of prepared engineers ready to listen to any order that Mr T decrets, all this engineers ready to work in 6 different projects selected by the NNL, which is the leader of Morovia, the place where Mr T was kidnapped to, seems like Mr T has no other choice than to start working because time is running, and he is the only one who can do the job.

This is a gif of Tom Hanks getting ready to work – Giphy

Chapter 4

In this chapter Mr T it is now ready to start working, he has his own office, where Holihan receives him with an agenda for Mr T, an agenta that has gritten the escencial of good management that Mr T taught to Holihan which are:

  • Get the right people
  • Match them with the right jobs
  • Keep them motivated
  • Help their teams to jell and stay jelled

At the same time Mr T’s assistant is introduced to the story, a guy named Waldo, Waldo is the one who needs to inform Mr T about the happening in Morovia, everything needed about the people who are going to work with Mr T and everything about the projects that Mr T would be developing, eventhough not every project is software related Mr T seems willing to work, because of a serie of missunderstanding with one of the subordinates of the NNL, Mr T sets an appointment to met the NNL, because Mr T dislikes the way that the NNL thinks, and if they want with Mr T they need to know how to work under Mr T’s rules.

  • Change is essential
  • Avoiding risks is fatal
  • People need to feel safe

Chapter 5

Mr T it is now ready to finally meet the NNL, and tell him that he is only doing this job at his own way not other one, as soon as Mr T arrives to the place where the NNL is supposed to be the guards stop him and ask him about the reason why is there, he explains that he is Mr T and as soon as he says his name the guards do something similar to a reverence, like to someone from the real family would be, this of course confuses Mr T, because an action like that to someone like him is not normal back in the USA, he enters the place and a lady whose english is perfect is waiting for him, she introduces herself as Miss Lane and explains to Mr T that the NNL is waiting for him, Mr T follows Miss Lane to a room where the NNL is.

This is a gif of lil Sheldon saying «You are my nemesis» – giphy

Mr T gets to where the NNL is and as soon as Mr T looks at his face he realized that his face seems familiar and that probably they have meet before, but the NNL stops Mr T from asking, the Mr T remembers the reason why he set the appointment, that was because he wanted to say to the NNL that everything must be done under Mr T conditions, Mr T explains his reasons and the NNL accepts it, with no rejection, this because the NNL was tired of people telling him no, Mr T asked him how did he become the NNL, he said that he bought Morovia, thats how he became the NNL, with that he owned the land, the buildings, the resources, but the people, and he needed that people to create those systems.

This is a gif of a twinky – giphy

The NNL decides to talk about an specific project, the one who involves developing an existing software that everyone already uses, Mr T asks about the decision to develope an existing software and how would that will make him gain more money, the NNL explains that everything related to money is not business for Mr T, only the project developement. This is something that Mr T does not like about the NNL.

This post Deadline

Allright this is something unexpected, as we talked in the previous post this novel was everything but interesting, until know, suddendly the novel turned into a story where the main character becomes the hero, the hero must fullfill some task before saving the world, and as the novel tells us, these tasks are osquested by someone who has a lot of power but is not capable of doing these tasks, we meet some secundary characters that would help our hero in these tasks and our hero, who was not convinced at the beggining is now the one who really wants to complete the job, it may not be a superheroes novel, but the way that these chapters developed makes us feel kinda like that.

This is a gif of deadpool congratulating spiderman for his superhero landing – giphy

Last time was boring, this time it really trapped me, wanted me to know more about the story and how our hero will make the things, avoiding the ones who are trying to stop him and preparing his army to the final battle, at times the chapters felt a little fantastic or nor real, but that can be forgiven because all the other things were just above right, a little of misteriousness, a little of crazyness and a little of overexagerating these things convined made these chapters a lot more interesting that the beggining, I still think that this novel is constantly teaching us some development topics but they are not that heavy, they can be easily handled so it does not matter that much, I wanted to get more about this novel and I got it, which makes me really happy. I will rate these 3 chapters an 8 out of 10, because I got what I wanted and not a 10 because I am hopping to get even more.

This is a gif of a snowman hidding on a number 8 – giphy

Economics of Software Engineering

In this post we are going to talk about the origins of economics in software engineering, fist of all economic is a science that studies the resources needed to fulfill the human needs, this also includes the human behaviour, and engineering is the science that involves techonologies in the proffesional area. Saying this, economics in software engineering is a field who involves the basis of economics into technology systems.

This is a gif of a bar graph – giphy

At a first look it could seem that a software system may not require any economics knowledge, but that is not true, nowadays every system that is in the market requires a full in depht investigation about the market itself, one big example could be Uber, this system is similar to a taxi system, the only differences are that Uber provides a higher quality service, you get to choose the type of car that you’d like to ride in, and a few extra details that make your ride a lot better than riding a cab.

This is a gif of the Uber app- giphy

Lets analyze how Uber did to make it to a top system

First, the idea of making this system a real thing was to give users a better experience when trying to get to any places, provide a cheaper service and a safer service among the ones that already existed.

Second, establishing the market, unfortunately Uber is not made for everyone, eventhough everyone can hop into a Uber car, not everyone is allowed to use the system, there is an age restriction to use the system.

Third, places where the system would be more required.

Fourth, once competition starts showing up, what will they do to keep being number one worldwide

These are some of the thigns that Uber must have planned before releasing the system, and of course every single point required a little of economics basis, this is why economics in software enginerring could make a difference between a well developed system and a mediocre system.

While trying to introduce economics into any system there are some must requirements that must be fulfilled in order to become sucesfull, some of these are:

Which design are we going to choose among the available and why?

Is it required to change the systems in order to evolve? Why? When?

Are the benefits of the investment really worth?

Is it better a safer system with lower benefits than a risky one with greater benefits?

This is a gif of an infinite loop system- giphy

Every one of these questions demands a selection between two or more options, all of these involves economics, this because in order to create a system it should be guaranteed that the design and the operations are the ones needed in order to make the system a top tier system, with every system that tries to reach the top there is a high risk, so this is why economics should be sticked when trying to develop a system like that, because all the alternatives are going to be needed and technology all alone can not fulfill all requirements.

References

http://www.fao.org/3/v8490e/V8490e02.htm

https://economipedia.com/definiciones/economia.html

https://definicion.de/ingenieria/

Deadline part 1 & 2

This is a picture of the cover of the book- Amazon

For those who doesn’t know what The deadline is, the deadline is a novel by Tom DeMarco published in 1997, this is one risky project because it tries to teach how does the software project management works using a novel as it’s conductor, the story is about a man who is kidnapped by an organization who is trying to reclute the best talents in order to become one big organization capable of developing world leadership systems.

During these posts we are going to disccus about the adventures that the main character faces during the book, and give our point of view about the novel chapters, with no further to say lets analyse chapters 1 and 2.

Part 1

For the fist part of the book the novel introduce us to an auditorium, where apparently there is a program that will teach the audience how to take advantage of the upcoming oportunities, and notice when an oportunity is given to them. The main character, Mr Tompkins, seems like he does not what to be there because as soon as the novel starts it tell us that Tompkins has ben asleep in the back seats of the auditorium for around an hour, where of couse he has been no been paying attention to the event, as soon as he wakes up the noticed that a well loking woman is sitting right next to him.

Mr Topkins starts asking the woman about the conference that is being given but seems like she does not what to talk about it, little did Mr Topkins know that this woman is sitting next to him for a reason, they are sitting so far behind that they are able to talk without interrupting the event, so they get to meet each other, and when the enviroment between them gets a little trustable the woman offers a light Dr pepper can to Mr Tompkins, which of course had drugs on it, Mr Tompkins falls unconciously after a little time.

This is a gif of Godzila drinking a Dr Pepper can-Giphy

Part 2

The second chapter of the novels seems like some sort of a still drugged dream of Mr Topkins, in this «dream» Mr Tompkins sees the woman who drugged him in everyone’s face, the captain, the pilot, the people around him, everyone has the face of the woman, like of some psychosis, what what happening in the real world is that Mr Tompkins was being kidnapped by the organization whose the woman worked for. A madman Mr Tompkins imagined that he was talking with an actor, because of course the drugs will not let him see the reality yet, both the actor and Mr Tompkins started a conversation in which basically he explained Mr Tompkins that he was being kidnapped because there was some projects that must be done and Tompkins was going to be one of those people needed to do this projects.

This is a gift of a guy who is confused-giphy

This post deadline

For these two first chapters of the novel there is no much to talk about because we have just met the characters of the novel, we do not know their current situation and the novel at this point has not tell us the main purpose of the whole investigation, for what we can tell is that this is a pretty smart way to make us understand and see how and when does software management systems are involved in the real world situations, of course this is a risky project but that can be really useful for those who likes to read novels, the novels tells us that there is a lot of previous investigation before actions, makes us feel in a spot where fiction and reality try to fuse together and tries to let us know that PM applies to us in every single aspect of our lives.

By now the novel seems a little confusing, it assumes that you will understand what is going in the real worl, and it does not tell you exactly what is happening, you have not finished to meet a character when another character is being introduced to the story, which makes the reader confuse, there is not too much to talk about in the story, the story feels more like a surrealistic novel than a daily situation which I think separates with it’s main purpose, because of that I will rate the introduction to the novel a 5 out of 10, not giving a 4 because I am hopping to get more about this novel.

This is a picture of a 5 as a grade- Stevivor

TDD A.K.A. Test Driven Development

If you came here with no reason, then stay this may be helpful to you someday, If you were looking for this exact topic that you are probably not in the right place, eventhough if you stay you will lear a few things and this could be kinda helpful to you so take a seat and enjoy about TDD.

For those who don’t know what TDD is, TDD stands for Test Driven Development, which is basically is a software proccess that stands on the repetition of various steps followed by a development cycle, the software is subject of very specific test cases that allows the user to have a controll over the software.

TDD follows a cycle that must fulfill the needs of a software in which stands

Add a test

Each new feature begins writing a test. The test defines a function or the improvement of an existing function. The developer must start by fully understanding the feature and its requirements. Some of the tests can be updates of an existing test. The use of tests before starting to write code lets the developer to focus on the requirements while writing code.

This is a gif of homer simpson testing something

Run everything and see if something fails

In this step the existing code is proven to see if the new test is passed. If the existing code passes the new test it means that the test is useless or flawed. The new test should always fail because there should not be code that fulfills the requirements yet.

This is a gif of two pokemon runnning

Code and do more code

The next step is to write the code to pass the test. It is not that important that the code is elegant or really well written. The most important thing is to pass the test. One thing you should consider is that the code must only fulfill the test and not add more functionality beyond that.

This is a gif of a binary code

Test it out once more

If all test cases now pass, then the new code meets the test requirements and doesn’t break any existing features.

Restructure your code

The last step in the cycle is to clean up the code. Move it when it is more convenient according to the structure of your system. Eliminate duplication and in general follow the OO principles you already know. Try that your code is readable and maintainable.

This is a gif of a cube restructuring

and Finally…. Repeat

You finish once process and start another one with the new structure of your code, try to implement better way to compute things and to make it easier for the computer in space and time complexity, then repeat and repeat until you feel that the software is exactly what you expected from it.

My own experience

This is a topic that I have not mastered yet, you can tell, but I had the privilege to talk to Kent Beck, who is the one that rediscovered the TDD technice a.k.a. back in the day as extreme programing, because you repeated every process and a specific task over and over again, this is definetely of the lest known process in software development and one of the most effective ones, this is probably the reason you came to this post, in order to know a little bit more about this proccedure, if you ended up here by accident I recommend you to start developing your projects this way, you will see the diference once you start implementing it.

References

https://en.wikipedia.org/wiki/Test-driven_development

Verify or not Validate that is the question

For some extrange reason we ended up in this entry of my blog, and for some weird reason we are going to keep reading this post, because in this post I will answer whether or not to verify and validate our software projects.

They may seem the same topic but the real truth is that there are some differences between these two, this is a topic that would probably discuss with someone else in the future, so this is why I do this post, to make sure that whoevers reads this article could win any discussion about verify or validate software.

The two terms are going to be all around your enviroment when making a software and everyone has their own definitions about the terms, eventhough I am not an expert I will try to do my best to explain you the differences and when you can apply these terms.

Verification

Verification is the process of evaluating work-products of a development phase, this doesn’t evaluate the final product. The evaluation done decides if the software satisfies the specified requirements of that phase.

This is a picture of patrick star from sponge bob building something wrong

Verification is done trough reviews, walkthroughs and inspections. These check if the software satisfies each of the requirements it should.

  • Plans
  • Requirement specs
  • Design specs
  • Code
  • Test cases

Activities that must be done withing

  • Reviews
  • Walkthroughs
  • Inspections

Validation

Validation is the process of evaluating software at the end of the development process to determine if it satisfies specified business requirements. It basically evaluates if the software does what the client needs, it is directly related to the specifications done at the beginning of the project, if these were wrong in the first place then the software won’t be validated.

This is a gif of sponge bob

There are two ways to perform software validation, internal and external. In the internal way it is assumed that the goals of the stakeholders were correctly understood, and if the software meets the requirement specification then it is internally validated. External validation happens when you ask the stakeholders if the software meets their needs.

Withint this term you evaluate the whole software

The only activity that you do with the software is test it out

My own experience

Verification and validation must seem the same thing at the beggining but once you see the main differences between them and the way that you aply those into your system everything becames much clearer, and is easier to decide where and how to aply these terms in our proyects, verification has to do more with how are we building the software, and validation has to do more with is the final product the one that we needed to deliver, definitely two terms that must be know by every person who tries to build up a project.

References

Verification vs Validation

Code Revision

This probably one of the main topic of software developing, code revision is a quality assurance method, in which the software is checked by reading the main parts of the code, how does the code implements itself, there are some restrictions that must be fulfilled when doing a code revision that are:

  • The reviewers must know what the software does
  • At least one of the reviewers must not be the software author, this because he will try to understand what other people did

Usually the code reviewers must try to discover some of the quality requiremets that are

  • Better code quality, improve the code’s quality by checking its redability, understability and uniformility
  • Finding bugs, find the main problems of the software, where the software can’t keep doing its functions
  • Learning, know the capabilities of the software and try to predict the software results
  • Find better solutions, this part is one of the most important because in this one reviewers can come up with better solution for certaint problems in order to help the time and space complexity of the software

There are some different types of reviewing proccess

Formal inspection

This is a gif of inspector gadget

This method involves careful and detailed execution withing multiple participants and phases, this is the most rudimental way of code review because a group of people join in place to check the code line by line, the pro of this method is that bugs are always easier to find because it is read line by line.

There is a document made at the end of the review that answers; who reviewed the code, when it happened, why was the reason of the review, which method did they checked, and the results of the revision, with this revision it is almost secure that something usefull about the code will be found.

Regular change-base

This is a more lightweight type of code review. This type uses something called Version Control, it is basically a system that records changes to a file or a set of files over the time. Github is one of the most popular applications that does this; the developers are constantly checking the changes made by every member of the team. They can see who is the responsible for the code and they can check it, but they do not dedicate the time to read it line by line.

Why code reviewing?

This is a why gif

Code reviews require a considerable investment of effort from the software developers. Especially formal inspection has been criticized for this. The needed effort has to be outweighed by an adequate number of detected defects.

My own experience

Bugs, not compiling errors, other results from the ones expected are some of the problems that we usually face when developing a software, in these cases the only way to solve it quickly is to debug the code to see where the error appears, this method is kinda confusing and a little bit slow, so this is why the code review proccess came out, to find a proccess that could find the bugs, reviewing could save your project from death, you find everything about your code.

Classes to code

In my previous blogs we have discussed about diagrams, UML, design patterns, and so far we have already seen the basis of software design and and some of the uses of UML in software representation.

Now with these representations lets learn how to convert from the class design learned in the last post and turn it into code capable of running and be implemented in the system.

new computer
This is a picture of a computer- Snickclunk

The only problem in trying to turn the diagrams into code is that if the diagrams are not well design or not understandable the code may be harder to code, and because diagrams are object oriented the code must be object oriented, that a must have requirement, otherwise the system must be harder to code even with the diagrams, with this the identity and functionality of the system will remain clean and keep the escence of your system.

There are some things to know before tryng to translate from classes to code:

  • Know your system, know how does your system works, its capabilities, its highs and lows, what can it do or not, this because you will have to translate your system
  • Know the way to translate, if you want to turn your classes into code first you need to know how are you going to do it, how are you doing it, know the paradigm and if the language supports your system capabilities
  • Take advantage of the information you have, literaly it is not hard to translate your system if you know all the comunication within, and the behaviour of your system
  • Know the atributes you will have to initialize in your code
  • Every methods name indicates what the class must do, as an example the buy method should let the user to buy something so a product, a client must be some of its elements
  • The inheritance in the system indicates how the classes communicates, the only thing you have to do is implement the design you already have
  • Enjoy your coding, don’t get frustrated if the first time you try to translate it it does’t work mistakes are made by everyone so get fun coding
Computer Eyewear
This is a picture of a keyboard- Saechang, M

My own experience

Through my experience I have faced many challenges while building a project, this because sometimes you code too much instead of analysing the system you want to build, so you have something like an spaguetti code that has no head no bot, and somethimes you analyze your system too much that when you want to build your project it actually becomes very hard to code so what you wanted your system to be seems almost imposible to code, so when you analize your code just enough and start to code just the needed you system becames wxactly what you wanted and if there still some free time you can try to add a few implementations to the system.

Classes to tables

In the previous entries we talked about how useful can UML be, this time we are going to focus in something a little different, we are focusing on database systems and how does we can represent it using tables.

When using a database system there is a situatin that happens everytime, and that is that variables and information shared in the system are not easy to read or easy to get, the comunication between the system and what does the system storages are information needed by the users, hard to get without using an organization system.

In order to map the objects in the system first you must start with the data atribute of the class, it is important to define how manny attributes of the system will be mapped, it can be from zero to any number.

Some of these elements in the system are used just for temporal calculations and are actually not necesarry to have on the database, this allows the user to decide wheter or not to include those elements in the tables.

Tables
This a picture of a table by Jurgen, L

The simples way to map elements of the sistem is to assign each attribute with a single column, in this way the data model and the physical model are very similar, the only diference is the key dependendiec between the two models.

Inheritance

Inheritance works as a tool when you are trying to organize a table into different inherited atributes of the system, basically the system must share a single aspect between the objects.

This a picture of an example of a inheritance table

In order to implement inheritance in the system there are three diferent ways in which a diagram can be represented by using inheritance division whose are:

Using one data entity for an entire class hierarchy

In this way you describe a single class into one diagram that contains all the atributes of the element, with the respective primary key, this because with this diagram all the information must be revealed in one table.

This is a picture of a one data table

Using one data entity per concrete class

With this way you can describe the data entity with the inherited atributed needed for the entity in order to get completely functional, the good part about this method is that all the infor is storaged in a single table, the problem is that if the data is modified all the children must be modified as well.

This is a picture of the diagram distributed in the inherited atributes

Using one data entity per class

In this way you create a table per class, every table includes a foreign key that is related to the superclass, this is a good option because it describes object oriented systems very well, and when you modify a class you don’t have to modify any other class, the only problem is that there are way too many tables.

This a picture of a model with three diferent classes

My experience

As you see when talking about a big project it is almost 100% of probability you should shot how does the data of the system comunicates, and how are the classes stuctured, it has happened to me in previous projects and with this type of diagrams the system becames easier to understand not only to the developerts but to every reader of the system, a must try way to describe how is the structure of the system.

References

UML Part 2

As we saw in the previous post, UML is the most common model used nowadays, because how easy to read and write the model is. The purpose of this post is not only to get you in contact with UML model but to let you know why should you start using UML as your default modeling languaje.

This time we are going to discuss about state diagrams, package diagrams and componen diagrams, whose are basicaaly UML diagrams that describes the project’s components in a more detailed way.

State Diagrams

State Diagrams AKA Statechart diagrams, are mainly used to describe the different states that of a componen in the systtem, it is called state machine diagram because it works like a machine, that describes the component’s state and does it change based on the events.

One easy way to understand how does state diagrams works is with this example of how does chess pieces move.

This a picture of a state diagram of the game chess

State diagrams are mainly used in back and forth projects like turn based games, and priority procedures.

Package Diagrams

A package diagram is a diagram that shows the organization of the elements in the system, within this diagram the information shown can be both structural or dependencial, with this model users are allowed.

This is a picture of a sales store package diagram

This diagrams are mainly used to organize large systems, which contains diagrams and documents, basically a collection of logical elements UML related.

Component Diagrams

When dealing with a big project usually we usually face the problem that componets are way to big and hard to describe them, component diagrams are usually used to break down the system into smaller pieces, this to make it easier to understand it.

Lambda architecture is one of the best examples of how does component diagrams can be used, Lambda architecture is a complex architecture that be presented using components diagrams, easy to read and easy to understand, this system is commonly used by companies for storing and and processing data in the system, that is divided by three layers, speed, bathc and serving

This a picture of how the Lambda architecture is presented using component diagram

My experience

Uml is definetely my favorite modeling language to use, not because it is easy but because literally UML has ways to express any single detail of any project, this make it easier for the users to understand the functionality of the project, the components and their behaviour.

Probably this post is a little more explanatory about the components of UML, but this is because I want you to have a little more experience with the topic, and I am trying to invite you to use UML, I assure that you will see how easily and practical UML can be in every of your projects.

References

UML Part One

As you can see in my previous posts, I have already wrote about UML, which is a Modeling Language, for those who don’t know what UML means, it means Unified Modeling Language, as its definition says UML is a Languaje, that allow you to model the characteristics of a software, this is one of the most used models nowadays because this language describes the comuniation of the elements of any software in a way that everyone who sees a model in UML format can understand how does the software comunicates, It is easy to implement and easy to read.

During this post I am going to explain to you the basics of UML, and in the next post I am going to give you a more in-depth of UML, for now lets learn about: sequence diagrams, class diagrams and object diagrams.

Sequence Diagrams

These diagrams could be the most important diagrams in UML, because it is not only used in computer science but in many business application software, this because it can be readed by everyone.

As its name says a sequence diagram describes the sequence of events or interactions that the software follows, this happens between actors and objects, this is describes as a cronological manner that suggesta that every interactions must be completed before or after another interaction, it can be described as a must do before do something else method, which makes it easy to read and understand.

This is an example of a sequence diagram:

This is an image of a sequence diagram that describes the comunication between email and user-

Class diagram

Class diagrams are the most common UML diagrams for software documentation, this because it described object oriented programing software, and this methodology of programing is the most common nowadays this makes the class diagrams the most common diagrams in documentation.

Basically class diagrams contains classes, along with their atributes, and their behaviour, each class in the diagrams consists in three parts, the first one at the top being the name of the class, the second one in the middle being the atributes of the class, and in the bottom part the functions of the class, with this classes a line it is a attached to every class to inform the user what information does the class receives and sends to other classes, these to inform the comunication between classes in the software.

This is an example of class diagrams

This an image of a class diagram that describes the comunication between a customer and its order

Object Diagrams

This a little diferent from class diagrams, as we already saw, class diagrams are usefull because they describe object oriented softwares, but what exactly are objects, well objects are everything that the developer wants, a ball is an object, a bed is an object, everithing is an object and every objects has caracteristics and is made out of other things, can this other this be objects?, can a object be made out other objects? Well the answer is yes, anithing can be an object and and object can be made out of other objetcs, so in these diagrams every object is descibred by its functionality in the software.

In a real life example humans are objects with diferent characteristics and atributes, in order to get a job you must first give some information about yourself, just some of them because not all your information is required, to get a job you are asked to bring documents with your name, age, gender, birth date, hobbies, social status, health status, work experience, likes and things related to your capabilities at work, information like which is your favorite food is not required to get a job so eventhough your favorite food is something about you it is not needed, so the same as objects, in data science objects are made out of characteristics needed for the software, and not by every aspect of the object, these models describes the characteristics needed of an objects and how it is related to other objects.

This is an example of object diagram

This is an image of an object diagram that describes an User a data item, and how are these related.

My personal opinion

In this part we saw about the basics of UML, I can easily tell that this information is really helpful because it allows you to explain your software in a very detailed way, class and objects diagrams are like brothers that goes together everytime, in all of my projects I have made a class diagram and an object diagram in ordert to understand how exactly do I want my project to comunicate, because in these diagrams every single detail is shown, and that saves you a lot of time in trying to explain your software, these are the most common diagrams nowadays for a reason and that is because are easy to make, easy to read and understand and very helpful. I do advice you to try these diagrams once, you will notice a diference if you do so.

References

Ceta,N. (2019). All You Need to Know About UML Diagrams: Types and 5+ Examples. Tallyfy. Retrieved from: https://tallyfy.com/uml-diagram/#object-diagram