A camada de controle é a responsável pelas regras de negócio da aplicação e os seus dados de entrada consistem em uma instância da classe {@link br.edu.ufcg.psoo.jackut.model.SystemJackut}.

A relação básica entre as camadas de modelo e controle é um para um, ou seja, existem as seguintes classes nesta camada: {@link br.edu.ufcg.psoo.jackut.controller.RelationController}, {@link br.edu.ufcg.psoo.jackut.controller.UserController} e {@link br.edu.ufcg.psoo.jackut.controller.MessageController}. Cada uma dessas classes estende da classe {@link br.edu.ufcg.psoo.jackut.controller.BaseController}.

A classe {@link br.edu.ufcg.psoo.jackut.controller.PersistenceXML} possui um atributo do tipo {@link br.edu.ufcg.psoo.jackut.model.SystemJackut} que é preenchido com os valores armazenados em arquivo e a classe {@link br.edu.ufcg.psoo.jackut.controller.BaseController} possui um atributo estático do tipo {@link br.edu.ufcg.psoo.jackut.controller.PersistenceXML} que deve ter uma única instância.