Overview
To begin learning about software design, it is best to start with the general building block that make up a design entity. Analogically, a good house architect knows what makes a good house from a selection of materials including location, area, bricks, glass, wood, grills, and so on.
Software design is composed of a number of entities, including models. As a starting point in my software design learning progress, I want get an understanding of models.
What is a Model?
A model is a representation, an abstraction of a system entity and relationships between entities. By my definition, an abstraction is a generalisation of an entity that describes its attributes and behaviors but omits the details of their logic. In any system, entities are correlated to ultimately achieve the system's purpose. Each entity serves a purpose itself as well.