Está en la página 1de 14

MODELO DE DISEÑO

Partiendo del modelo de análisis, para el caso de estudio 01 – el empleado, se tiene lo


siguiente:

Empleado
nombre
cedula
direccion
salarioBase
porcentajeDeRetencion

En el diseño, el modelo de análisis es expresado en términos de las herramientas


seleccionadas para construir la solución.

En este caso, las herramientas corresponden al lenguaje de programación, el cual será


Java. Otras herramientas son los entornos de desarrollo integrados (por ejemplo, eclipse,
netbeans, jdeveloper, intelliJ, entre otros); sistemas manejadores de bases de datos
(MySQL, Oracle, SQL Server, SQLite, Postgress, entre otros).

Java es un lenguaje de programación orientado a objetos. Allí, la terminología cambia de


la siguiente forma:

A las entidades se les denominará clases.


A las características se les denominará atributos
A las operaciones se les denominará métodos, las cuales se establecerán a partir de los
requisitos funcionales.

1. Determinación de clases (de entidad)

Las clases son la implementación (en la fase de programación) de las entidades


establecidas en el modelo de análisis. En Java, una clase se establece de la siguiente
forma:

public class NombreEntidad


{

Las llaves se utilizan para delimitar donde empieza y donde termina la clase, y dentro de
estas, se establecerán los atributos y los métodos que componen a la clase.
Las palabras public y class son reservadas (propias del lenguaje de programación), y
por tanto, no pueden ser utilizadas como nombre de entidades (clases), ni de
características (atributos), ni de métodos.

La palabra public significa que la clase está disponible en todo el proyecto, e incluso, en
el sistema operativo para ser utilizada por otra clase o por otro proyecto.

La palabra class significa que se está creando una clase.

Por ejemplo, en el caso de estudio 01, la clase Empleado se establece de la siguiente


forma:

public class Empleado


{

Un programa es un conjunto de clases, similar a un rompecabezas, en donde, cada ficha


representa una clase.

2. Determinación de atributos (características de la entidad)

Los atributos son la implementación (en la fase de programación) de las características de


las entidades establecidas en el modelo de análisis. En Java, una característica se
establece de la siguiente forma:

private tipoDeDato nombreCaracterística;

La palabra reservada private establece que un atributo solo puede ser utilizado por la
clase que lo define. Otras clases del programa no pueden hacer uso (tienen acceso) de
este atributo. Una propiedad de un buen diseño de software es que todos los atributos
sean privados.

El tipo de dato se refiere a los posibles valores que puede tener un atributo (es una
restricción). De acuerdo con lo expresado en el modelo de análisis, se tienen los siguientes
posibles valores:

Análisis Diseño (En Java)


Números Enteros int
Números Reales double
Cadenas de caracteres String

Las palabras int y double son reservadas para el lenguaje de programación Java.
Tenga en cuenta que String comienza en letra mayúscula, es decir, es una clase de Java.

El punto y coma ; representa para Java el final de una instrucción, en este caso, la
creación (declaración o definición) de un atributo.

Por ejemplo, en el caso de estudio 01, los atributos de la clase Empleado se establecen de
la siguiente forma:

public class Empleado


{
private String nombre;
private int cedula;
private String direccion;
private double salarioBase;
private double porcentajeDeRetencion;
}

Cada atributo se declara (define) en un renglón por separado.

A nivel gráfico, este modelo se representa de la siguiente forma:

3. Determinación de métodos

Los métodos son las operaciones que puede llevar a cabo cada una de las entidades.

Se establecen varios tipos de métodos:


• Comportamiento: Se obtienen a partir de los requisitos funcionales.
• Acceso: Permiten acceder a un atributo para conocer su valor o modificarlo.
• Constructor: Permite establecer el valor inicial de los atributos antes de utilizar la
clase.

Los métodos encapsulan los algoritmos del programa. Cada método debe encapsular un
único algoritmo, es decir, producir un solo resultado.

Los métodos tienen la siguiente sintaxis:


public tipoDeDatoResultado nombreMetodo()
{
algoritmo
}

La palabra public significa que el método puede ser utilizado (ejecutado) desde
cualquier parte del programa.

El tipo de dato del resultado significa que el método produce un resultado el cual puede
ser un número entero (int), un número real (double), una cadena de caracteres
(String) u otro, pero solo genera un único resultado. Si el método no genera algún
resultado, este será de tipo void.

El nombre del método cumple con las mismas normas y reglas de las características
(atributos):
• Debe ser significativo (norma). Preferiblemente debe comenzar con un verbo en
infinitivo (terminados en ar, er, ir) y a continuación el objeto sobre el cual recae la
acción.
• Debe comenzar en letra minúscula. (norma – notación Camel Case)
• Debe contener solamente letras y números. (Regla). No contiene acentos (tildes)
• No puede contener espacios. (Regla)
• Si se requiere varias palabras para describir el nombre de una característica, cada
palabra simple comienza con mayúscula a partir de la segunda. (Norma – notación
Camel Case)

En el caso de estudio 01, los métodos se establecen de la siguiente forma:

Para calcular el descuento del empleado:

public double calcularDescuento( )


{
double descuento = salarioBase * porcentajeRetencion / 100;
return descuento;
}

La palabra return significa que el método devuelve el resultado calculado a quien


solicite la ejecución del mismo.

Para calcular el salario por pagar del empleado:

public double calcularSalarioPorPagar( )


{
double salario = salarioBase - calcularDescuento( );
return salario;
}
Después de estos dos métodos, la clase a nivel de diseño, se puede observar de la
siguiente forma:

Así entonces, la clase en Java queda de esta forma:

package mundo;

public class Empleado


{
private String nombre;
private int cedula;
private String direccion;
private double salarioBase;
private double porcentajeRetencion;

public double calcularDescuento( )


{
double descuento = salarioBase * porcentajeRetencion / 100;
return descuento;
}

public double calcularSalarioPorPagar( )


{
double salario = salarioBase - calcularDescuento( );
return salario;
}

3.1 Métodos de Acceso

Los métodos de acceso se establecen con el fin de permitir que se pueda acceder a un
atributo ya sea para conocer su valor o para modificarlo.

Existe dos tipos de métodos de acceso:


• GET: permite conocer el valor de un atributo (lectura)
• SET: permite modificar el valor de un atributo (escritura)
Se define un método GET por atributo y un método SET por atributo si se considera en el
diseño.

Métodos GET

Un método GET permite que se pueda conocer el valor actual de un atributo de la clase
que lo contiene:

Los métodos GET tienen la siguiente sintaxis:

public tipoDeDatoAtributo getAtributo( )


{
return atributo;
}

Ejemplo (Caso de Estudio 01):

Método GET para el atributo nombre:

public String getNombre( )


{
return nombre;
}

Método GET para el atributo cedula:

public int getCedula( )


{
return cedula;
}

Método GET para el atributo salarioBase:

public double getSalarioBase( )


{
return salarioBase;
}

Los otros métodos GET restantes son los siguientes:

public String getDireccion( )


{
return direccion;
}
public double getPorcentajeDeRetencion( )
{
return porcentajeDeRetencion;
}

El diseño de la clase queda de la siguiente forma con los métodos definidos hasta el
momento:

Métodos SET

Un método SET permite que se pueda modificar el valor actual de un atributo de la clase
que lo contiene:

Los métodos SET tienen la siguiente sintaxis:

public void setAtributo( tipoDatoAtributo parámetro )


{
atributo = parámetro;
}

Los métodos SET no retornan valor alguno, en cambio, reciben (de afuera) un valor que
será asignado al atributo.
El valor que se recibe (de afuera) se denomina parámetro.
El parámetro es una variable (dato de entrada) que debe tener un nombre y un tipo de
dato, el cual, debe ser el mismo del atributo.
El parámetro se especifica dentro de los paréntesis del método.
Por lo general, al parámetro se el coloca el mismo nombre del atributo y se le antepone la
letra p.

Ejemplo (Caso de Estudio 01):


Método SET para el atributo nombre:

public void setNombre( String pNombre )


{
nombre = pNombre;
}

Método SET para el atributo cedula:

public void setCedula( int pCedula )


{
cedula = pCedula;
}

Método SET para el atributo salarioBase:

public void setSalarioBase( double pSalarioBase )


{
salarioBase = pSalarioBase;
}

Para los demás atributos:


public void setDireccion( String pDireccion )
{
direccion = pDireccion;
}

public void setPorcentajeDeRetencion( double pPorcentaje)


{
porcentajeDeRetencion = pPorcentaje;
}
Así entonces, la clase en Java queda de esta forma:

public class Empleado


{
private String nombre;
private int cedula;
private String direccion;
private double salarioBase;
private double porcentajeDeRetencion;

public double calcularDescuento( )


{
return salarioBase * porcentajeDeRetencion / 100;
}

public double calcularSalarioPorPagar( )


{
return salarioBase – (salarioBase * porcentajeDeRetencion / 100);
}

public String getNombre( )


{
return nombre;
}

public int getCedula( )


{
return cedula;
}

public String getDireccion( )


{
return direccion;
}

public double getSalarioBase( )


{
return salarioBase;
}

public double getPorcentajeDeRetencion( )


{
return porcentajeDeRetencion;
}

public void setNombre( String pNombre )


{
nombre = pNombre;
}

public void setCedula( int pCedula )


{
cedula = pCedula;
}

public void setSalarioBase( double pSalarioBase )


{
salarioBase = pSalarioBase;
}

public void setDireccion( String pDireccion )


{
direccion = pDireccion;
}

public void setPorcentajeDeRetencion( double pPorcentaje)


{
porcentajeDeRetencion = pPorcentaje;
}

El diseño de la clase queda de la siguiente forma:

Método constructor

Es un método que tiene como objetivo establecer el valor inicial de TODOS los atributos.
• Hay atributos que se inicializan con un valor por defecto, por ejemplo, cero (0) para los
atributos de tipo int, o literal de cadena vacía "" para los atributos de tipo String, o 0.0
para los atributos de tipo double.
• Hay atributos que deben iniciar con un valor ya establecido (es decir, que no es por
defecto). Para ello, se utilizan parámetros como en los métodos SET.

El método constructor no tiene tipo de dato de retorno (ni siquiera void)


El método constructor se llama igual que la clase en Java.

La sintaxis es la siguiente:

public Clase( tipoDatoAtributo1 parametro1,


tipoDatoAtributo2 parametro2, ... )
{
atributo1 = parametro1;
atributo2 = parametro2;
atributo3 = valorDefecto;
// ...
}

Este método solo se puede ejecutar una vez (para establecer el valor inicial de los
atributos)

Ejemplo (Caso de Estudio 01):


En el constructor, todos los atributos de la clase Empleado, serán inicializados por
parámetro.

public Empleado( String pNombre, int pCedula,


String pDireccion, double pSalarioBase,
double pPorcentaje )
{
nombre = pNombre;
cedula = pCedula;
direccion = pDireccion;
salarioBase = pSalarioBase;
porcentajeDeRetencion = pPorcentaje;
}

Este método corresponde al primer requisito funcional: Registrar Empleado.

Así entonces, la clase en Java queda de esta forma:

public class Empleado


{
private String nombre;
private int cedula;
private String direccion;
private double salarioBase;
private double porcentajeDeRetencion;

public Empleado( String pNombre, int pCedula,


String pDireccion, double pSalarioBase,
double pPorcentaje )
{
nombre = pNombre;
cedula = pCedula;
direccion = pDireccion;
salarioBase = pSalarioBase;
porcentajeDeRetencion = pPorcentaje;
}

public double calcularDescuento( )


{
return salarioBase * porcentajeDeRetencion / 100;
}

public double calcularSalarioPorPagar( )


{
return salarioBase – (salarioBase * porcentajeDeRetencion / 100);
}

public String getNombre( )


{
return nombre;
}

public int getCedula( )


{
return cedula;
}

public String getDireccion( )


{
return direccion;
}

public double getSalarioBase( )


{
return salarioBase;
}

public double getPorcentajeDeRetencion( )


{
return porcentajeDeRetencion;
}

public void setNombre( String pNombre )


{
nombre = pNombre;
}

public void setCedula( int pCedula )


{
cedula = pCedula;
}

public void setSalarioBase( double pSalarioBase )


{
salarioBase = pSalarioBase;
}

public void setDireccion( String pDireccion )


{
direccion = pDireccion;
}

public void setPorcentajeDeRetencion( double pPorcentaje)


{
porcentajeDeRetencion = pPorcentaje;
}

El diseño de la clase queda de la siguiente forma:


A este diagrama se le conoce como Diagrama de clases del software, o también,
Diagrama de clases del diseño.
Este diagrama hace parte del Modelo de diseño.

También podría gustarte