Mostrando entradas con la etiqueta Sistema de Información. Mostrar todas las entradas
Mostrando entradas con la etiqueta Sistema de Información. Mostrar todas las entradas

miércoles, 14 de noviembre de 2018

Programación Orientada a Objetos (POO) desde un Enfoque Simple

Este paradigma es descubierto en el año 1966, por Ole Johan Dahl y Kristen Nygaard, dos años antes que la programación estructurada, pero es adoptado después de esta.

Dentro de la POO existen dos conceptos claves.
  • Clase: Modelo o plantilla a partir del cual podemos crear los objetos.
  • Objeto: Un objeto es una unidad de software de estado y comportamiento relacionados, también puede describirse como la instancia de una clase.
Profundicemos un poco en los objetos, estos a menudo se utilizan para modelar los objetos del mundo real, esto incluye conceptos, cosas tangibles e intangibles que se encuentran en la vida cotidiana. Los objetos del mundo real comparten dos características: 
  • Estado 
  • Comportamiento
Por ejemplo, los perros tienen estado (nombre, color, raza, hambre) y comportamiento (ladrar, buscar, menear la cola). Un objeto almacena su estado en campos, atributos o variables  y expone su comportamiento a través de métodos o funciones, los métodos operan el estado interno de un objeto, pero para que dicho objeto o una clase realice alguna acción se debe enviar un mensaje, pero no basta con esto, ya que, para que el objeto o la clase procese el mensaje que recibe, debe poseer un método de coincidencia. Ilustremos lo anterior con un ejemplo escrito en Java.

Automovil auto = new Automovil();
auto.encender();

Como podemos ver, creamos a partir de la clase Automovil un objeto llamado auto al cual le enviamos el mensaje auto.encender() ya que queremos que encienda, pero para que esto se de la clase Automovil debe tener un método que coincida con encender()

Teniendo claro y comprendiendo los conceptos de Clase y Objeto, podemos hablar del Diseño Orientado a Objetos (DOO), que como menciona Rober C Martin en su libro Arquitectura limpia, "podemos utilizar  tres palabras mágicas para explicar la naturaleza del DOO: encapsulación, herencia y polimorfismo. La implicación es que el DOO es la combinación adecuada de estas tres cosas"

Encapsulación: Describe la capacidad de un objeto para ocultar sus datos y métodos del resto del mundo. Ocultar el estado interno y exigir que toda la interacción se realice a través de los métodos de un objeto se conoce como encapsulación de datos. Vemos la encapsulación con las variables privadas y métodos publicos de una clase.

Herencia: Diferentes tipos de objetos a menudo tienen una cierta cantidad de características en común entre sí, sin embargo, cada uno también define características adicionales que los hacen diferentes. La programación orientada a objetos permite que las clases hereden el estado y el comportamiento de uso común de otras clases. De aquí que Rober C Martin en su libro Arquitectura limpia la defina como "La redeclaración de un grupo de variables y funciones dentro de un ámbito de inclusión".

Polimorfismo: Es la capacidad de diferentes objetos para responder de manera diferente al mismo mensaje. Ejemplo: Tenemos dos clase EstudiantePregrado y EstudiantePosgrado que Heredan de la clase Estudiante, el polimorfismo nos permitiría que una variable de tipo Estudiante no se limite a referirse a un objeto de la clase EstudiantePregrado, ya que, puede hacer referencia a cualquier objeto de las clases descendientes de Estudiante.

Para finalizar hablemos de la Abstracción una palabra muy utilizada cuando hablamos de POO pero que es?, bueno se podría decir que la abstracción consiste en captar las características esenciales de un objeto, así como su comportamiento.

En mi repositorio de GitHub https://github.com/cedaniel200/Programacion-Orientada-a-Objetos encontraras algunos talleres donde puedes practicar los temas vistos y más, en caso de no poder solucionarlos, no te preocupes cada taller tiene una posible solución.

martes, 22 de abril de 2014

SCRUM





Se enmarca dentro de las metodologías ágiles en el desarrollo de software. Se puede definir como un marco de trabajo o una metodología de gestión del trabajo, centrado especialmente en el factor humano más que a los procesos, es decir, da mayor valor al individuo, a la colaboración con el cliente y al desarrollo incremental con iteraciones muy cortas. Básicamente se compone como tal de un Equipo y sus Roles; Bloques de Tiempo y Artefactos. Dentro de los Roles encontramos: El Scrum Master, que es el encargado de hacer que el equipo Scrum siga las prácticas y normas de la metodología, El Propietario del Producto, representa la voz del cliente, se asegura de que el equipo Scrum trabaje de forma adecuada desde la perspectiva del negocio y es el responsable de gestionar el Product Backlog, escribiendo historias de usuario y priorizándolas; y El Equipo, que hace el trabajo y desarrolla el producto.

Los bloques de tiempo son: la Reunión de Planificación de la Entrega, la Reunión de Planificación del Sprint, el Sprint, el Scrum Diario, la Revisión del Sprint, y la Retrospectiva del Sprint. El corazón de Scrum es un Sprint, que es una iteración de un mes de duración o menos¹.

Los Artefactos de SRUM son: Product Backlog, Lista de funcionalidades requeridas para la aplicación ordenada de mayor a menor importancia, esta lista no necesariamente debe contener todas las funcionalidades, ya que pueden irse agregando a medida que avanza el proyecto. Sprint Backlog, Del product backlog se toma las primeras funcionalidades, cuya sumatoria del tiempo estimado de C/U no supere el tiempo estimado para todo el sprint, pueden ser descompuestas en tareas y esta lista de funcionalidades es el que se realizara durante el sprint. Carta Burndown o grafica de progreso, muestra la correlación entre el tiempo y el  trabajo realizado.

El texto anterior es extraído del Artículo  DESARROLLO E INTEGRACIÓN DE UNA ONTOLOGÍA Y SISTEMA DE INFORMACIÓN HERBARIO  PARA EL APOYO A LA CARACTERIZACIÓN FLORÍSTICA DE LA ZONA DEL CATATUMBO para ver artículo completo haga clic aquí.

Referencias:
Ken Schwaber y Jeff Sutherland (2008-2011) Scrum. http://www.scrum.org. Pag 5

Instalación NodeJS

Ingresamos a la página oficial de NodeJS donde lo descargaremos  https://nodejs.org/en/download/ Escogemos el instalador que se ajuste a ...