“Model” Means What, Exactly? Understanding a Word with Many Faces in Tech


In tech, some words seem to show up everywhere — but they don’t always mean the same thing. One of those words is “model.” I remember early on assuming I knew what a model was… only to realize I was completely off.
What I experienced is known as semantic overload — when a single word is used in multiple ways across a field. And now I understand why: “model” is one of the most overloaded words in software and AI.
In the sections below, we’ll break down some of the most common meanings of “model” across different tech contexts, with examples to help make sense of each one.
1. OpenAPI / Swagger: Model = Data Structure
In OpenAPI (or Swagger), a model refers to a data structure — usually described in YAML or JSON — that defines the shape of the data your API sends or receives.
🧠 Think of it as a contract between the client and server.
📦 Example:
User:
type: object
properties:
id:
type: integer
name:
type: string
email:
type: string
This model describes what a User
object should look like when exchanged through the API.
2. MVC: Model = Business Logic Layer
In Model-View-Controller (MVC) architecture, the model represents your business logic and domain data. It’s responsible for how the data behaves, not how it looks or how users interact with it.
🧠 Think of it as the “what” your app is about.
📦 Example (Java):
public class Post {
private String title;
private String body;
private LocalDateTime publishedAt;
public Post(String title, String body) {
this.title = title;
this.body = body;
this.publishedAt = LocalDateTime.now();
}
public void publish() {
this.publishedAt = LocalDateTime.now();
}
// Getters and setters omitted for brevity
}
This plain Java class represents a Post
and contains some basic behavior (like publishing). It’s part of the “Model” in MVC — separate from how the post is displayed (View) or handled via user interaction (Controller).
3. Ruby on Rails: Model = ActiveRecord Class
In Rails, “model” often refers to an ActiveRecord class, which connects to a database table and includes both data and behavior.
🧠 Think of it as your data and rules in one place.
📦 Example:
class Post < ApplicationRecord
validates :title, presence: true
end
This model connects to the posts
table and adds validations or callbacks related to posts.
4. Artificial Intelligence: Model = Trained Algorithm
In AI or Machine Learning, a model is a trained system that makes predictions or generates content based on patterns it learned from data.
🧠 Think of it as a trained brain that knows how to do a specific task.
📦 Example:
prediction = spam_model.predict("You've won a prize!")
Here, spam_model
is a trained object — not a class or schema — that returns a prediction.
5. Domain-Driven Design (DDD): Model = Domain Representation
In Domain-Driven Design, a domain model represents the core concepts and behaviors of your problem space. It’s focused on encapsulating business rules.
🧠 Think of it as a rich, real-world object with behaviors that matter.
📦 Example:
class Account {
void deposit(Money amount) { ... }
void withdraw(Money amount) { ... }
}
This model knows how to modify its own state through well-defined methods.
6. Frontend Frameworks: Model = View Data
In frontend frameworks like AngularJS, a model is simply the data behind the UI — especially in systems with two-way binding.
📦 Example:
<input ng-model="user.name">
Changes in the input automatically update user.name
, and vice versa.
Final Thoughts
If you’ve ever felt confused about what “model” means, you’re not alone. It’s not you — it’s the context.
The key takeaway is this:
✅ Don’t assume a word means the same thing everywhere.
A beginner’s mindset — being open, curious, and unafraid to ask — helps you adapt faster and avoid misunderstandings.
So the next time someone says “this model does X”, don’t hesitate to ask:
“Wait, which kind of model are we talking about?”
What does ‘model’ mean in this context?
How about you? Have you ever experienced context overload?
I’d love to hear about it — let me know in the comments. 🙂
Subscribe to my newsletter
Read articles from Mirna De Jesus Cambero directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Mirna De Jesus Cambero
Mirna De Jesus Cambero
I’m a backend software engineer with over a decade of experience primarily in Java. I started this blog to share what I’ve learned in a simplified, approachable way — and to add value for fellow developers. Though I’m an introvert, I’ve chosen to put myself out there to encourage more women to explore and thrive in tech. I believe that by sharing what we know, we learn twice as much — that’s precisely why I’m here.