miércoles, 9 de febrero de 2011

~Semana3. Código de Herencia

Semana 3
Materia: Taller de Programación Orientada a Objetos
Jueves M1-M2

Hola a todos, en esta entrada les pondré el código donde se aplica la herencia en mi proyecto. En la entrada anterior explico esto.

Esta es la clase Dieta que vendría siendo el papá de otras clases.


package com.NutriLife;

public class Dieta {
 private String alimentos;
 private int porcion;
 
 public Dieta()
 { 
 }
}

En el siguiente código les mostraré alguno de los hijos de esta clase padre Dieta, solo pondré algunos ya que son como siete clases hijos debido a que cada una corresponde a los grupos de alimentos que contendrá la dieta.

package com.NutriLife;
public class Frutas extends Dieta{
}

La palabra extends refiere a que lo que pondrás seguido de esto será la super clase de dicha clase que estas implementando, es decir que será el padre de esta clase. En este caso, Dieta es padre de Frutas ya que Frutas comparte con la clase padre Dieta al menos una cosa, en este caso la clasificación frutas tiene ciertos alimentos y cierta porción que se le aplicará al efectuar la dieta. Al igual que esta clase hijo existen algunas otras como las siguientes:

package com.NutriLife;
public class Lacteos extends Dieta{
}

package com.NutriLife;
public class Alimentos_Animal extends Dieta {
}

package com.NutriLife;
public class Aceites_Grasas extends Dieta{
}

Estas clases hijos tendrán cada una diferentes alimentos y diferentes porciones pero corparten esos dos componentes con su clase padre la cual es Dieta. La clase Lacteos como su nombre lo dice corresponde a todos los lácteos que existen en la lista de los alimentos como leche descremada, yogurt, entre otras. La clase Alimentos_Animal refiere a alimentos de origen animal y la clase Aceites_Grasas corresponte a aceites y grasas tales como mantequilla, aderezos, aceite vegetal, etc.


Bueno, esto es todo cualquier duda o comentario ya saben que me pueden preguntar.

~Semana 3. Herencia

Semana 3
Materia: Programación Orientada a Objetos
Martes M1 - M3
Hola a todos compañeros, en esta entrada les hablaré sobre la herencia en Java y sobre como la aplicaré en mi proyecto.

Primero que nada, ¿Qué es herencia?. Bueno, herencia es una manera de hacer nuevas clases que se deriven de otras. Para que estas clases puedan cumplir con los requisitos de herencia el Padre (que es el que tiene las bases de las demas clases) tiene que tener al menos un atributo igual al de los hijos. Por ejemplo si tenemos una clase llamada Animal y declaramos que los animales tendrán peso y color. Todos los animales tienen peso y color entonces de ahi podremos obtener nuevas clases por ejemplo una clase Gatos, una clase Perros, una clase Delfines, etc. Todos estos van a tener peso y color y a cada una de ellas todavpía se les podrán agregar más atributos o métodos si se requiere.


En mi proyecto yo utilice herencia en la clase de Dietas, ya que las dietas se clasifican en grupos según los alimentos, en este caso los agrupé en Lacteos, Frutas, Verduras, Cereales y leguminosas, Alimentos de origen animal, Aceites y grasas.  Todos estos mencionados serán los hijos de la clase Dieta y los atributos que estos comparten serían alimentos y porción, ya que cada uno de estos tendrá diferentes alimentos dependiendo del grupo y porciones diferentes para cada uno de estos alimentos. 

Hice un pequeño diagrama mostrando la herencia en mi proyecto. 


Esto es todo, dudas o comentarios ya saben comenten sin dudarlo =). No puse nada sobre polimorfismo ya que hasta el momento no he usado nada que haga referencia a polimorfismo en mi proyecto.

miércoles, 2 de febrero de 2011

~Semana 2. Código de clases del proyecto

Hola a todos, en esta entrada pondré mi código de las clases que mencioné en la entrada pasada que va a llevar mi proyecto.

public class DatosPaciente
{
    //Variables 
    private String nombre;
    private String apellido;
    private int anios;
    private int seguroSocial;
    private String email;
    private int telefono;
    //Variables OOP
    private Nacimiento;
    private Domicilio
    
    //Constructor
    DatosPaciente()
    {
        
    }
    
    //Metodos Get
    private String getNombre()
    {
        
    }
    private String getApellido()
    {
        
    }
    private int getAnios()
    {
        
    }
    private int getSeguroSocial()
    {
        
    }
    private String getEmail()
    {
        
    }
    private int getTelefono()
    {
        
    }
    
    //Metodos Set
    private void setNombre()
    {
        
    }
    private void setApellido()
    {
        
    }
    private void setAnios()
    {
        
    }
    private void setSeguroSocial()
    {
        
    }
    private void setEmail()
    {
        
    }
    private void setTelefono()
    {
        
    }
    
} 
 

Bueno, esta clase ya la explique en la entrada pasada es la clase DatosPaciente pero como pueden ver hasta ahorita tiene los métodos de pedir y de mostrar estos mismos datos.



public class DietasPaciente 
{
 // * Los alimentos se guardaran en cada casilla del arreglo
 // * Los datos se obtendran de dietas predefinidas o de alimentos
 //   seleccionados individualmente
 private String leche[];
 private String frutas[];
 private String verduras[];
 private String cerealesLeguminosas[];
 private String alimentosAnimal[];
 private String aceitesGrasas[];
 
 //constructor
 DietasPacientes()
 {
  
 }
 //Metodos Get
 private String getLeche()
 {
  
 }
 }


Esta clase es la clase de Dietas la cual tiene también sus instancias y al igual tiene los métodos de pedir los datos y de mostrarlos. Bueno asi es como estan quedando las clases, obviamente son más clases y también van a haber más métodos por ejemplo en una clase para calcular el IMC (índice de masa corporal) con su fórmula, también métodos para borrar datos entre otras cosas, bueno eso es todo lo de esta semana :) saludos a todos!

Poner código bonito en Blogger

Compañeros les dejo el link donde te explica como poner código en el blog y este código se ve con número de líneas, con formato, con colores y más.


Bueno, siguiendo estos pasos noté que al guardar los cambios surgió un error en el editor HTML que no permitió cambiar el código, solo tienen que cambiar las líneas que tienen link, o sea las siguientes:

< link rel="stylesheet" type="text/css" href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css">
< link rel="stylesheet" type="text/css" href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css " >
En estas lineas deben de poner al final tienen que cerrar el tag, o sea < .../> (tienen que agregar una diagonal antes de cerrar el tag)

~Semana 2, Clases del proyecto

Semana 2
Materia: Programación Orientada a Objetos
Hora: Martes M1-M3


Hola a todos, bueno en esta entrada les hablaré sobre algunas clases que decidí que tenga mi proyecto y se las describire. Bueno como saben, mi proyecto será hacer un sistema donde se almacenen los expedientes de los pacientes de un consultorio de nutrición y las dietas que se le dará a cada uno de ellos.

Una de las clases que pondré en mi proyecto es la clase paciente. Esta clase incluye datos personales del paciente que esta consultando, por ejemplo nombre del paciente, fecha de nacimiento, edad, numero de paciente, telefono. Pienso hacer otra clase para la dirección que incluya calle, número, colonia, código postal, ciudad. También otra clase para mediciones del paciente como peso, estatura. Estas clases tienen ciertos métodos que son los de pedir cada uno de estos datos, así como también para mostrar estos datos son los métodos mas importantes ya que lo que se intenta hacer con este sistema es solamente guardar, permitir modificar los datos y en caso que sea necesario borrar datos. Todo esto se estará almacenando en una base de datos.




Aparte de esto también incluiré una clase Dieta, la cual llevará diferentes tipos de dieta ya que existen diferentes combinaciones de dietas dependiendo de los estudios del paciente o de lo que le guste comer.  Esto depende también de la nutriologa ya que ella es la que escoge que platillos se pueden combinar con cuales, por esto pienso hacer como una lista desplegable para que ella escoja los platillos de la dieta que pondrá a cada paciente. En este caso también al igual que en la clase paciente estos datos se guardarán, se podrán modificar o borrar si es necesario. 

Estas serían las clases más importantes, habrán mas pero solo puse algunas de las que llevo hasta el momento. Saludos a todos :)


miércoles, 26 de enero de 2011

~Semana 1, Herramientas UML

Semana 1
Materia: Taller de Programación Orientada a Objetos
Jueves M1-M2


Hola a todos, bueno en esta entrada les hablaré sobre algunas herramientas que se utilizan para modelar los sistemas orientados a objetos.

DIAGRAMAS UML

Los diagramas UML son un conjunto de herramientas que sirven para modelar, diseñar y analizar un sistema orientado a objetos.

Como se muestra en la figura de la derecha, estos diagramas sirven para describir métodos o procesos. Por ejemplo en la imagen, el crítico de comidas en un restaurant puede: probar la comida, pagar la comida y beber vino, en cuanto el chef es el que prepara la comida.

Existen diferentes tipos de diagramas. 
  • Diagramas de Estructura. Estos diagramas hacen énfasis a los elementos que deben existir en el sistema de modelado.
    - Diagrama de clases
    - Diagrama de componentes
    - Diagrama de objetos
    - Diagrama de estructura compuesta
    - Diagrama de despliegue
    - Diagrama de paquetes
  • Diagramas de comportamiento. Estos diagramas hacen énfasis a lo que debe de suceder en el sistema.
    - Diagrama de actividades
    - Diagrama de caso de uso
    - Diagrama de estados
  • Diagramas de interacción. Son subtipos de los diagramas de comportamiento, hacen énfasis en el flujo de control y datos entre los elementos del sistema.
    - Diagrama de secuencia
    - Diagrama de comunicación
    - Diagrama de tiempos
    - Diagrama global de interacciones


BOUML 
Es una aplicación UML2 gratuita con modelador que te permite generar código en C++, Java, Idl, PHP y Phyton.

Bouml esta disponible para Unix, Linux, Solaris, MacOS X y Windows.

Es muy rápido y requiere de muy poca memoria para ejecutar miles de clases, es extensible, los programas llamados plug-outs pueden ser escritos a través de Java o C++ a través de Bouml como cualquier otro programa.

En la siguiente imagen se muestra un diagrama de secuencia diseñado en BOUML.




Esta aplicación la pueden descargar en el siguiente link BOUML, en esta misma página en la pestaña de Documentation viene un manual de referencia que puede servirles también. 

Desde Ubuntu lo pueden descargar en el Ubuntu Software Center que se encuentra en el menú Applications. Ahí del lado superior derecho viene el buscador y escriben bouml y les aparece ya nadamas lo descargan. Desde la terminal escriben sudo apt-get install bouml.

Les dejo también un tutorial de Bouml.


UMBRELLO
Es una herramienta libre que se ujtiliza para crear y editar diagramas UML. Fue desarrollada por Paul Hengsen. Se permite código en C++, Java, Phtyon, IDL, Pascal/Delphi, Ada. Te permite crear un diagrama y genera el código automáticamente.

Aquí les dejo una imagen con un diagrama que hicieron con  umbrello.


Aquí les dejo el link para descargarlo.

También se puede descargar de la misma forma qe el bouml, se meten a Ubuntu Software Center y lo buscan con el buscador. 

Les dejo un manual también.

Bueno, esta fue mi primer entrada para taller, espero que les sirva de algo y si tienen dudas o comentarios háganlos :) saludos.

~Semana 1, Descripción de proyecto

Semana 1.
Materia: Programación Orientada a Objetos
Martes M1-M3

Hola a todos compañeros, en esta entrada les hablaré sobre el proyecto que pienso desarrollar en esta materia de Programación Orientada a Objetos. Quiero hacer un sistema para la administración de consultas de pacientes, mi prima esta estudiando nutrición y me pidio que si le podría hacer un sistema que le ayude a tener un orden con las consultas de sus pacientes con sus datos personales, con campos para hacer anotaciones de como han ido avanzando, que dieta tienen cada uno de los pacientes entre otras cosas. Esto es lo que yo quiero realizar para mi proyecto final, en internet encontre la siguiente imagen de un sistema parecido a lo que quiero lograr.


Bueno esto lo quería hacer en C++ ya que me gustaría aprender un nuevo lenguaje y hacer este sistema en este lenguaje nuevo pero el inconveniente es que se qe C++ no es un lenguaje muy portable y pues como mi prima lo va a utilizar en su computadora puede que no funcione en la suya, entonces estoy entre C++ o Java. Y ya si no lo logro hacer en estos pues optare por Phyton que es más sencillo.

Me gusta la idea de este proyecto ya que el cliente es una persona real y pues ella me puede decir que tal le funciona o no, o  lo que le pueda faltar para mejorarlo entre otras cosas. 

Bueno, esta seria mi entrada de la semana 1, saludos a todos (=