Creating and manipulating abstract representations of a problem or of software elements for the purpose of facilitating the understanding, reasoning, and solving of the problem.
Modeling consist of gathering and structuring knowledge to create and manipulate abstract representations ("models") of a problem or of software elements.
The purpose of models is to facilitate the understanding of a problem or a domain, reasoning about it, designing solutions, and guide the implementation of solutions.
Modeling often uses a standardized set of techniques and representations. Typical examples are:
- Unified Modeling Language (UML) for object oriented software
- System Modeling Language (SysML) for system modeling
- Entity Relationship models for structured data and relational databases
- C4 models for a light and flexible modeling of software systems