viernes, 27 de abril de 2018

Los 3 amigos.


James Rambaugh:


delimita el sistema y define su funcionalidad.



Es esta entrada por falta de tiempo y con urgencia te contaré quienes son:
Grady Booch, James Rambaugh e Ivar Jacobson.

Grady Booch:
Grady es reconocido internacional mente por su trabajo innovador en arquitectura de software, ingeniería de software y entornos de desarrollo colaborativo. 

lo genial de Grady es que ha estado profundamente involucrado en la estrategia de sistemas cognitivos de IBM, además de que actualmente es jefe científico de Watson / M.
Se centró en la cognición incorporada. 
Además, Grady dirigió el tema de IBM Global Technology Outlook sobre sistemas cognitivos, y ahora continúa trabajando con los arquitectos clave de Watson Group y la organización hermana de IBM Research para avanzar en la ciencia y la práctica de los sistemas cognitivos.

La realización de modelos es muy importante por que propone el desarrollo orientado a objetos: 
-Estructura física y lógica.
-Semántica estática y dinámica.






Ivar Jacobson:
El método desarrollado por Ivar Jacobson OOSE ha sido
llamado “un enfoque para el manejo de casos de uso”,
en este enfoque el modelo de casos de uso sirve como un
modelo central del cual todos los otros modelos son derivados
.
Un modelo de casos de uso describe la funcionalidad
completa del sistema, identificando como, todo lo
que esta fuera del sistema, interactúa con él.
El modelo de casos de uso de acuerdo con Jacobson,
es la base en la etapa de análisis, construcción y prueba.
OOSE presenta cinco técnicas para modelar un sistema:
1.- Modelo de requerimientos:
2.- Modelo de análisis:
estructura el sistema, modelando tres tipos de objetos
(objetos de interfase, objetos entidad y objetos de control).
3.- Modelo de diseño:
refina el modelo de análisis y lo adapta a un
ambiente de implementación.
Consiste de diagramas de interacción y diagramas
de transición de estados.
4.- Modelo de implementación:
 consiste en el código fuente de los objetos especificados
en el modelo de diseño.
5.- Modelo de prueba:
es llevado acabo mediante la realización de 
pruebas al modelo de implementación.

James Rambaugh:

El OMT describe el análisis y diseño orientado a 
objetos como una forma de organizar software 
dentro de una correlación de objetos discretos 
que incorporan tanto comportamiento como 
estructuras de datos. 
La esencia del desarrollo orientado a objetos en 
OMT es la identificación y organización de 
conceptos en el dominio del problema. 
Este método tiene muchas notaciones, 
aunque para el desarrollo de muchos sistemas 
solamente algunas son usadas.
De acuerdo a Rumbaugh en el OMT, el sistema es descrito a partir de 3 modelos diferentes:
-Modelo de objetos: 
describe la estructura estática de los objetos en un 
sistema, y sus relaciones. Consiste de diagramas de objetos
-Modelo dinámico:
describe aspectos de control de un sistema y muestra
la parte dinámica de cada clase mediante diagramas de estados.
-Modelo funcional: 
describe el flujo de datos en el sistema mediante
diagramas de flujo de datos

Recuperado de:
http://www.itlalaguna.edu.mx/academico/carreras/sistemas/Analisis%20y%20diseño%20orientado%20a%20objetos/Resumen3.pdf 

sábado, 14 de abril de 2018

Código UML.

¡Hey lector!
¡Buenos días, tardes, noches!

Es bueno tenerte aquí en el post, ya que hoy te hablaré acerca de lo que es el Código UML.

De acuerdo, empecemos.
El Lenguaje Unificado de Modelado de sistemas de software. 
Fue creado para forjar un lenguaje de modelado visual común
y semántica y sintácticamente rico para la arquitectura, el 
diseño y la implementación de sistemas de software complejos
También permite representar el modelo de un escenario en 
donde se estructura su comportamiento, además de describir
entidades intervinientes y relaciones.

*Para quienes no entendieron*
Es un lenguaje en programación, se usa usualmente para diseños que son de carácter visual (algo más entendible) y lo que hace es permitir al usuario representar un entorno en donde se observa cual es comportamiento que tiene.

Sus principales beneficios son:
-Mejores tiempos totales de Desarrollo (de 50% o más)
-Modelar sistemas (No solo de software) utilizando conceptos orientados a objetos
-Establecer conceptos y artefactos ejecutables
-Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica.
-Crear un lenguaje de modelado utilizado tanto por humanos como por máquinas.
-Mejor soporte a la planeación y al control de proyectos.
-Alta reutilización y minimización de costos.

Este modelo Lenguaje se compone de las siguientes 4 características:

Vistas:
Estas muestran diferentes aspectos de un diagrama modelado (No es gráfica)
sin embargo tiene una abstracción que consiste en un numero de diagramas 
Que al juntarlos muestran un esquema más amplio del sistema.

Diagramas:
Estos son las gráficas que describen el contenido de una vista.
El UML tiene 9 tipos de diagramas que se utilizan en combinación para proveer todas las vistas de un sistema, como lo son:
-Diagramas de casos de uso
-Diagramas de clases
-Diagramas de objetos
-Diagramas de estados
-Diagramas de secuencia
-Diagramas de colaboración
-Diagramas de actividad
-Diagramas de componentes
-Diagramas de distribución

Simbolos/elementos de modelo:
Los conceptos utilizados en los diagramas son los elementos de modelo que representan conceptos comunes orientados a objetos, tales como clases, objetos y mensajes, y las relaciones entre estos conceptos incluyendo la asociación, dependencia y generalización.

Reglas o Mecanismos generales
Proveen comentarios extras, información o semántica acerca del elemento de modelo; además proveen mecanismos de extensión para adaptar o extender UML a un método o proceso específico, organización o usuario.







Además de estas características consta de 5 fases para su desarrollo, las cuales son: Análisis de requerimientos, Análisis, Diseño, Programación y Pruebas.

Análisis de Requerimientos:
UML tiene casos de uso para capturar 
los requerimientos del cliente. 
A través del modelado de casos de uso,
los actores externos que tienen 
interés en el sistema son modelados con la 
funcionalidad que ellos requieren del sistema.

Análisis:
La fase de análisis abarca las abstracciones 
primarias y mecanismos que están presentes 
en el dominio del problema.

Diseño:
En la fase de diseño, el resultado del análisis es 
expandido a una solución técnica. 
Se agregan nuevas clases que proveen de la 
infraestructura técnica: interfaces de usuario, 
manejo de bases de datos para almacenar 
objetos en una base de datos, comunicaciones 
con otros sistemas, etc.

Programación:
En esta fase las clases del diseño son 
convertidas a código en un lenguaje de 
programación orientado a objetos.

Pruebas:
Las pruebas de unidades se realizan a clases 
individuales o a un grupo de clases y son 
típicamente ejecutadas por el programador.

Texto tomado de: http://profesores.fi-b.unam.mx/carlos/aydoo/uml.html
http://stadium.unad.edu.co/ovas/10596_9839/qu_es_uml.html
https://www.lucidchart.com/pages/es/qué-es-el-lenguaje-unificado-de-modelado-uml 
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=688:ique-es-y-para-que-sirve-uml-versiones-de-uml-lenguaje-unificado-de-modelado-tipos-de-diagramas-uml&catid=46&Itemid=163

Programación orientada a Objetos.

¡Hey! ¡Hola de nuevo lector!
En este nuevo artículo te hablaré acerca de lo que es lo que dice el título, o bien:
"La programación orientada a objetos (POO)"

Empecemos por definir que es esto.
La programación orientada a objetos es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora.
Se basa en tecnicas como lo son Herencias, Abstracción, Poliformismo y Encapsulamiento.

"La POO no es difícil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de manera que la forma de hacer las cosas puede ser diferente según el programador."

Miguel Angel Alvarez (https://desarrolloweb.com/articulos/499.php)

¿Qué es una clase en POO?
Bueno, estas son declaraciones de objetos. También se pueden definir como abstracciones de objetos.

¿Y que quiere decir esto? Bueno Esto quiere decir que la definición de un objeto es la clase.
Por ejemplo:
Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase.


Propiedades en clases:
Estos atributos son las características de los objetos.
Siendo más específicos les definimos una propiedad 
normalmente, especificamos algún nombre y el tipo.

Métodos en las clases:
Son las funcionalidades asociadas a objetos.
Cuando se programan las clases las solemos llamar métodos
(Son como funciones que se asocian a un objeto).

¿Y los objetos en POO?
Estos son ejemplares de una clase cualquiera, por decirlo así; cuando creamos un ejemplar tenemos que especificar la clase a partir de la cual de creará.
¡Esta acción de crear un objeto a partir de una clase de llama instanciar!


Sin embargo es necesario conocer algunos conceptos fundamentales como lo son:
Clase: "La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas."

Herencia: "Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen."

Objeto: "Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos."

(Para continuar con más conceptos visíta esta url: https://www.ecured.cu/Programación_Orientada_a_Objetos#Clase)


Características de la POO.

Abstracción, Encapsulamiento, poliformismo y conceptos que están en la parte anterior a este apartado son escenciales a la hora de programar.

Abstracción:
Denota las características esenciales de un objeto, donde se capturan sus comportamientos.


Encapsulamiento:
Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.

Poliformismo:
Las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado.



Y una vez aclarado esos conceptos/Características podemos avanzar a los lenguajes de programación más usados, los cuales son:
C++
C#
Gambas
Java
Javascript
Python
Visual Objects.



Espero este post mi estimado lector te sirva para futuras ocasiones, me voy no sin antes despedirme.
¡Adiós!

viernes, 13 de abril de 2018

Paradigmas en la investigación.

¡Hey que tal querido lector!
Buenas tardes, noches, días.

El día de hoy te traigo un pequeño texto de carácter informativo a cerca de como bien dice el título:
"Paradigmas de la investigación"
Y sin más por este momento empezamos.

Los paradigmas (Y modelos de investigación) comprenden de anotaciones históricas de otros paradigmas llamados Epistemológicos.
(Parte de la filosofía que estudia los principios, fundamentos, extensión y métodos del conocimiento humano.)

Ésta consta de 3 tipos:

Paradigma cuántico:
Que implica diferentes tipos de investigación como lo son:

-Inv. Experimental
-Inv. Cuasi Experimental
-Inv. Expost-Facto
-Inv. Histórica
-Inv. Descriptiva


Paradigma Cualitativo:
Este, al igual que el cuantitativo implica diferentes tipos
de investigación como lo son:
-Estudio de caso
-Etnometodología
Grupo de discusión
Historia oral
Inv. Documental
Inv. Participante
Investigación
Acción/Participación


Paradigma Crítio social
Este se usa como una nueva forma de ver, mirar y 
sentir, usualmente lo hace a través de:
Métodos de inducción
Métodos de deducción 
Métodos de Transducción.


Retomando al término "Paradigma"; cabe recalcar que fue usado
por Gage para referirse a los modelos como maneras de pensar o 
pautas para la invesngación que pueden conducir al desarrollo
de la teoría.


Sin embargo quién se lleva el "Big chesee" es Kuhn quien en una obra conocida 
como "Estructura de las revoluciones científicas" expresa que:
"Un paradigma es un compromiso implícito, no formulado ni difundido, 
de una comunidad de estudiosos con determinado marco conceptual".



¿En otras palabras?
El concepto de paradigma presenta otro tipo de concepciones menos restrictivas por parte de algunos autores. Afortunadamente, frente a las posiciones clásicas de carácter cuantitativo nos encontramos con posiciones más pluralistas en los momentos actuales.

¿Pero entonces, de que se trata?
El conocimiento de los paradigmas de investigación nos ayuda a situarnos y conocer mejor el modelo o modelos metodológicos en los que nos propongamos encuadrar un estudio empírico

Bueno, una vez entendido ese ligero concepto no me queda nada más que dar por concluido este post.
¡¡Hasta la próxima!

Fuentes:
Ricoy Lorenzo, Carmen (http://www.redalyc.org/pdf/1171/117117257002.pdf)
Artículo PFD Carlos Ramos-Galarza (https://www.researchgate.net/publication/282731622_LOS_PARADIGMAS_DE_LA_INVESTIGACION_CIENTIFICA_Scientific_research_paradigms)
FUNDACIÓN UNIVERSITARIA LUIS AMIGÓ Facultad de Educación 2 edición, 2004 (http://virtual.funlam.edu.co/repositorio/sites/default/files/repositorioarchivos/2011/02/0008paradigmasymodelos.771.pdf)

lunes, 19 de marzo de 2018

Tendencias en el desarrollo de Software

¡Lector! ¡Hola de nuevo!
En esta entrada te traigo un tema de interés pues vamos a hablar acerca de lo que son algunas tendencias en el desarrollo de Software...

Después de mucho años del tradicional método en cascada; El desarrollo ágil de software se basa en seis pasos comunes dentro del ciclo de vida del softwareplanificación, análisis de requisitos, diseño, codificación, test y documentación.


En cada interacción, el equipo de desarrollo no entrega
todo el programa, sino que se van añadiendo pequeños
 elementos totalmente probados, sin errores, con el fin de
que la solución final esté completamente operativa desde
 el minuto uno. 
En los métodos de desarrollo ágil de software,
la comunicación entre todos los miembros del equipo es clave
,
 ya que se busca eliminar las trabas habituales de reuniones,
 validaciones y revisiones formales por encuentros más
 informales y en fases tempranas e intermedias del proceso,
no sólo en la última etapa del trabajo.

Para que una metodología de desarrollo de software se pueda considerar como ágil debe cumplir con cuatro valores fundamentales, recogidos en el Manifiesto Ágil:


  • Los individuos e interacciones, por encima de los procesos y las herramientas.
  • Software en funcionamiento, frente a la documentación exhaustiva.
  • La colaboración con el cliente sobre la negociación contractual.
  • Respuesta al cambio, mejor que el seguimiento de un plan.
Entre estas metodologías ágiles destacan Scrum (creada en 1986, siendo una de las precursoras de este camino), eXtreme Programming (XP, creado en 1996 y que fomenta el trabajo en equipo y la comunicación entre los distintos miembros implicados en el desarrollo de software) o el Dynamic Systems Developement Method (DSDM, por sus siglas en inglés, que data de 1995).

*Texto obtenido de http://www.ticbeat.com/tecnologias/que-es-el-desarrollo-agil-y-como-esta-transformando-la-industria-del-software/ en su totalidad*

Y así jóvenes, es como no se debe hacer un ensayo, sin embargo por la falta de tiempo rescaté lo más importante y lo puse subrayado en cursiva. 
¡Hasta la próxima!

¿Qué es un método de desarrollo de software?

¡Lector! Buenas noches, tardes, días.
Recientemente hablé acerca de lo que era una metodología de desarrollo de software.
Si tienen duda de en que parte lo hice, les dejo este link:
http://lavitacoradevaquero.blogspot.mx/2018/03/metodologia-de-desarrollo-de-software.html


Retomando nuestro tema, seguro ya viste de que va esto; ¿Que es un método para el desarrollo de Software?
Bueno,empecemos por entender mejor la diferencia entre la metodología y el método.

¿Qué es una metodología?
Bueno, pues esta palabra hace énfasis a lo que es el 
Resultado de imagen para metodologiaentorno en el cual se plantea y estructura.
Para esto hay una gran cantidad de metodologías que
 se han utilizado desde tiempos remotos y eventualmente
han evolucionado.


NOTA:
¡No todos los sistemas de la información son compatibles con todas las metodologías!
¡Esto debido a que el ciclo de vida del software es variable!
Resultado de imagen para metodo de cascada

¿Qué es un método?
Bueno, pues esto se compone más de diversos aspectos, 
ya que se enfocan en conseguir la meta y/o el objetivo. 
Básicamente son herramientas que usadas mediante 
técnicas adecuadas llevarán a un resultado favorable 
para cumplir con los objetivos ya planeados.

NOTA:
¡En Internet se puede encontrar como un conjunto de herramientas, técnicas
y procesos que facilitan la obtención de un objetivo en claro!

¡Puedes continuar leyendo acerca de esto en las demás entradas del blog!
¡Hasta la próxima!

viernes, 16 de marzo de 2018

¿Metodología de desarrollo de Software?

¡Lector! ¡Es bueno tenerte aquí de nuevo!
Hoy te traigo una entrada más acerca de lo que es una metodología de desarrollo en software.

Empecemos por definir que es eso...
Según el portal: https://www.obs-edu.com/int/blog-project-management/metodologia-agile/que-son-las-metodologias-de-desarrollo-de-software
"Se trata del proceso cuya finalidad es desarrollar productos o soluciones para un cliente o mercado en particular, teniendo en cuenta factores como los costes, la planificación, la calidad y las dificultades asociadasA todo esto es a lo que denominamos metodologías de desarrollo de software"

O bien, en otras palabras. es el proceso en el que se tiene en cuenta paso a paso para poder hacer un diseño hacia alguna solución o bien hacer un programa más específico.



Metodologías de Desarrollo de Software.

¡Lector! ¡Es bueno tenerte aquí de nuevo!
Hoy te traigo una entrada más acerca de lo que es una metodología de desarrollo en software.

Empecemos por definir que es eso...
Según el portal: https://www.obs-edu.com/int/blog-project-management/metodologia-agile/que-son-las-metodologias-de-desarrollo-de-software
"Se trata del proceso cuya finalidad es desarrollar productos o soluciones para un cliente o mercado en particular, teniendo en cuenta factores como los costes, la planificación, la calidad y las dificultades asociadasA todo esto es a lo que denominamos metodologías de desarrollo de software"

O bien, en otras palabras. es el proceso en el que se tiene en cuenta paso a paso para poder hacer un diseño hacia alguna solución o bien hacer un programa más específico.

Sin embargo es igual de indispensable definir 2 conceptos más.
¿Qué es una metodología?
Bueno, pues esta palabra hace énfasis a lo que es el 
entorno en el cual se plantea y estructura.
Para esto hay una gran cantidad de metodologías que
 se han utilizado desde tiempos remotos y eventualmente
han evolucionado.

NOTA:
¡No todos los sistemas de la información son compatibles con todas las metodologías!
¡Esto debido a que el ciclo de vida del software es variable!

¿Qué es un método?
Bueno, pues esto se compone más de diversos aspectos, 
ya que se enfocan en conseguir la meta y/o el objetivo. 
Básicamente son herramientas que usadas mediante 
técnicas adecuadas llevarán a un resultado favorable 
para cumplir con los objetivos ya planeados.

NOTA:
¡En Internet se puede encontrar como un conjunto de herramientas, técnicas
y procesos que facilitan la obtención de un objetivo en claro!

Una vez aclarado esto es necesario ver que fases de desarrollo tiene...
Al rededor de 6 metodos (Enfocaré el siguiente hipervinculo que lo explica detalladamente y 
(https://okhosting.com/blog/metodologias-del-desarrollo-de-software/)

Para finalizar te mostraré las 5 metodologías que te permitirán ver cual es la más adecuada al trabajo que tengas en mano junto con una imagen. :)

1. Modelo de Cascada:
Resultado de imagen para modelo de cascada
2.- Método de prototipos:
Resultado de imagen para modelo de prototipos
3.- Modelo Incremental: 
Resultado de imagen para modelo incremental
4.- Modelo de Espiral:
Resultado de imagen para modelo de espiral
5.- Modelo del RAD:
Resultado de imagen para modelo de Rad




Bueno lector, dejandote las referencias en esta parte y esperando haber solventado alguna duda me despido.
¡No sin antes desearte que tengas una excelente mañana, tarde, noche!
Hasta la próxima.

sábado, 10 de marzo de 2018

¡Avansys!

Hey! Que tal estimado lector!
Buenas tardes, noches, días!

El día de hoy te vengo a traer lo que viene siendo una entrada analizando una página web, perteneciente a una empresa en su totalidad mexicana, procedente de Jalisco, que se dedica a desarrollar aplicaciones para dar solución a diferentes problemáticas.


Esta empresa es fundada en el 2003 y arranca operaciones legales en el 2005.
Provee servicios de consultoría, diseño y desarrollo de soluciones basadas en software de alta calidad.


Lo más importante a recalcar de ésta página es que están certificados en lo que viene siendo:
-CMMI
-PMI
-PALLADIUM
-SCRUM

Ésta empresa según los datos de copyrigth dice que Lleva operando desde el 2016, y tienen una meta de ser reconocidos a nivel global en un lapso de tiempo de 5 años.
Y algo que llamo en lo personal mi atención es la sección de los valores que tienen...
(http://avansys.com.mx/mision-vision.php)

Puesto a que actualmente viendo los valores que se necesitan para poder trabajar en empresas así; están perfectamente adecuados a un empleo en que en lo personal a mi me llamaría bastante la atención.

Retomando a la página...
Ofrecen 5 soluciones:
- Software a la medida:
- Desarrollo de Apps
- Comercio electrónico
- Programa de lealtad 
- Inteligencia de negocios.

Realmente la empresa ofrece innovación en las compras, desarrollo de aplicaciones y en empleos.
Si al igual que yo te interesa mandar algún mensaje para alguna oferta de trabajo puedes hacerlo mediante su contacto a través de su sitio en linea:
http://avansys.com.mx/contacto.php

Espero esta página haya abierto tu curiosidad lector.
Esto por que en México tenemos buen potencial para desarrollar y ejercer en las Tic-s 
¿Y que mejor que buscar en empresas mexicanas?

¡Hasta la próxima!