viernes, 13 de noviembre de 2015

METODOLOGÍA TDD

APLICACIÓN TDD
 
 
 
 
En el blog se ha anexado el desarrollo de una aplicación basada en la metodología TDD.
 
La metodología TDD(Desarrollo guiado por pruebas de software, o Test-driven development), es una practica sencilla de la ingeniería de software , que involucra la implementación de otras dos prácticas como son: la escritura de las pruebas inicialmente(Test first Development) y enseguida realizar la refactorización (refactoring). Al momento de escribir las pruebas , generalmente son utilizadas las pruebas unitarias(unit text), que consiste en primer lugar de la escritura de una prueba y su correspondiente verificación para determinar posibles fallas que se puedan presentar. Seguidamente, se hace la implementación del código con sus correspondientes pruebas para obtener resultados satisfactorios y posteriormente refactorizar el código. El fin del desarrollo guiado por pruebas es alcanzar un código limpio, funcional y sin errores que afecten su funcionamiento. Con los requisitos se pretende traducirlos a pruebas, de tal forma , que al pasar las pruebas satisfactoriamente, se está garantizando que el software cumple con los requerimientos establecidos previamente.
 
Por lo cual he decidido explicar la metodología con una calculadora desarrollada en NetBeans que se explica en las siguientes imágenes. 
 
Pasos de la implementación de la metodología TDD en la aplicación (La Calculadora)
 
1. Definición de requerimientos 
 
Los requerimientos funcionales sobre los que se trabajó fueron:
 
Sumar 2 y 3 para obtener como resultado 5
Restar 6 y 2 para obtener como resultado 4
Multiplicar 2 y 4 para que se producto sea  8
Dividir 6 entre  3 para obtener como resultado 2
Residuo entre 7 y 3 para obtener como resultado 1
 
2. Crear el Proyecto NetBeans.
 
Se crea el proyecto  ApplicacionTDDCalculadora, posterior a eso se crea la clase calculadora, como se aprecia a continuación.
 
 
 
se hace efectivo el testeo de la aplicación utilizando como complemento  JUnit que es instalado de la siguiente forma.
 
 
 
 Se inicia la configuración del test de las pruebas, creándose la clase calculadoratest como elemento JUnit y se ingresa lo siguiente 
 
 
 
Posterior al testeo, se ejecuta el archivo calculadoratest, dando clic derecho y posteriormente dando ejecutar en el archivo.
 
4. Aplicación de la metodología TDD
 
Se observan errores , por la mala definición de métodos en el archivo calculadora.java
 
 
 
Luego de arreglarse la clase calculadora. java cambiando el contenido que tiene para arreglar  el test que posteriormente se ejecutará 
 
 
Se hace nuevamente el test y se determina que la ejecución es exitosa.
 
 
 
Luego de hacer varios test fallidos entre ellos uno fallido  y la posterior redefinición del código para volverlo exitoso. el paso siguiente  es la refactorización del código que se tiene tanto para el programa como para el test para hacer mas eficiente el aplicativo.
 
  a. Refactorizar el código de calculadora.java
 
 
 
  b. Refactorizar el código de calculadoratest
 
 
 
Test final
 
Se realiza el test final sobre calculadoratest determinando que no se presentan errores.
 
 
 
 
 
Conclusión
 
Se ha podido establecer la sencillez de esta metodología y lo practica que ha resultado su implementación, por que permite como se ha mencionado en párrafos anteriores un código libre de errores y una ejecución de la aplicación efectiva. No obstante, para proyectos de software más robustos es necesario complementar dicha metodología con otras que se ajusten a este tipo de proyectos para obtener mejores resultados; sin embargo la metodología TDD sigue siendo una buena opción  
 
 
Se anexa link para descargar la carpeta con el proyecto mencionado
 
 
 
 
COLABORADORES
 
JORGE LÓPEZ PARRA
CÓDIGO:066111033
DAVID ESTEBAN RODRIGUEZ
CÓDIGO:066111004
JULIAN RINCON ROZO
CÓDIGO:066111054
JUAN PABLO VILLAMIL ROMERO
CÓDIGO:066111010
 
 

miércoles, 4 de noviembre de 2015

METODOLOGÍAS DE DESARROLLO DE SOFTWARE


ENSAYO:" El éxito de una metodología radica en saber cuándo, cómo y por qué usarla "




El desarrollo de software ha venido evolucionando en los últimos años, a causa de las necesidades que requiere la humanidad para hacer más fácil su diario vivir. No obstante, los ingenieros y los desarrolladores han tenido que asumir retos importantes, encaminados a brindar un producto software de alta calidad, que cumpla con las expectativas de usabilidad, integridad, fiabilidad, eficiencia, flexibilidad, escalabilidad, modularidad y seguridad. Es ahí, donde toma gran importancia el entender las metodologías de desarrollo de software como el conjunto de procedimientos, técnicas y un soporte documentado  que garantiza un trabajo estructurado, planificado y controlado en el proceso de elaboración de sistemas de información.
Cuando se emprende en un proyecto de software, se tiene la convicción, que para crear un producto de alta calidad, es pertinente escoger una metodología robusta y rigurosa. Por ejemplo la metodología RUP ( Rational Unified Process) esta es una metodología que maneja un enfoque de asignación de tareas y responsabilidades dentro de una organización. Tiene como objetivo principal la aseguración de la producción de software de alta calidad para satisfacer las necesidades del cliente dentro de un tiempo prudencial y previsible. Esta metodología está enfocada a la utilización de diagramas de casos de uso, manejo de los riesgos y de la arquitectura. Tiende a manejar desarrollos iterativos, el ciclo de vida que utiliza es espiral para establecer tanto tareas, como fases e iteraciones, donde es posible manejar complejidad en varias etapas del proyecto.
RUP, presenta unas fases definidas para completar sus iteraciones, la primera de ellas es la fase de inicio, centrado en el modelamiento de los requerimientos, buscando siempre lo que se necesite, para utilizar los recursos, mejorándolo y dándole una visión del proyecto, la segunda fase es la elaboración centrado en el desarrollo  de los casos de uso tomando como principio el diseño, la tercera fase que es la de construcción, se lleva a cabo la construcción del software  por medio de iteraciones que, se utilizan los casos de uso, definiendo su análisis, luego su implantación y posteriormente las pruebas, finalmente la última fase es la de transición, donde se busca garantizar que el producto este en óptimas condiciones para ser entregado al usuario. En cada fase se realizan una serie de artefactos, que son utilizados para comprender no solo el análisis sino el diseño de los datos, el primer artefacto es el inicio, para generar un documento de visión y una especificación de requerimientos, en la elaboración son los diagramas de casos de uso, en la construcción el documento de arquitectura que tiene las siguientes vistas, la vista lógica maneja diagrama de clases y modelo de entidad relación, en la vista de implementación, el diagrama de secuencia, estados y colaboración, en la vista conceptual el modelo de dominio y la vista física el mapa de comportamiento del software.
Como toda metodología tiene unas características que lo identifican,  la primera de ellas  es un forma disciplinada de asignar tareas y responsabilidades, implementar mejores prácticas de ingeniería de software, manejo de desarrollo iterativo, utiliza la administración de requisitos, utiliza la arquitectura basada en los componentes, maneja controles de cambios, maneja un modelo visual de todo el software, y verifica la calidad del software. Así mismo esta metodología maneja unos principios claves, como es la adaptación del proceso, donde el proceso se adapta a las características de la organización, otro es el balanceo de prioridades, la colaboración entre equipos, con comunicación fluida para coordinar requerimientos, demostrar el valor iterativamente, se debe motivar el concepto de reutilización  y enfocarse en calidad.

Sin embargo, RUP como metodología  tradicional, es renuente a cambios que se puedan dar durante el desarrollo de proyectos de software que presenten un grado de incertidumbre en un entorno volátil;  y que es necesario para ir detectando y corrigiendo errores que puedan generar múltiples fallas imposibles de manejar en el sistema de información que se esté construyendo. Por tal razón se busca metodologías de desarrollo agiles que se ajusten  a entornos cambiantes y llenos de presiones; donde los ciclos de desarrollo sean cortos y se incremente las funcionalidades en cada iteración, sin afectar la rigurosidad que ofrecen las metodologías tradicionales.

Al entrar al contexto de las metodologías ágiles, se debe pensar en que son técnicas que surgieron como contraparte a  métodos del CMMI, y se han ido expandiendo a gran cantidad de proyectos que hoy día se trabajan. Muchas compañías optan por ello precisamente por lo “ágiles” al momento de desarrollar rápidamente proyectos en cortos tiempos. Es necesario tener en cuenta algunos principios que son agrupados en 4 valores. El primero de ellos  son los individuos y la interacción que tendrá más importancia que las herramientas que se vayan a utilizar, el segundo de ellos que el software funcione, por encima de documentación y procesos complejos y exhaustivos, el tercero de ellos se enfoca en la colaboración con el cliente, ya que se centra en estar siempre con el cliente, apoyarlo y hacerlo parte del proceso y el cuarto y último es la respuesta al cambio, donde pueda haber no solo adaptabilidad sino acceso al manejo de cambios que deban ser necesarios realizar, por encima de cualquier plan que se haya construido minuciosamente.

Existe un paradigma al trabajar metodologías ágiles y es que se asocia a que agilidad es sinónimo de no trabajar documentación o control sobre el proyecto, que es sencillamente realizar el proyecto, acompañar e incluir al cliente y que todo funcione, esto no es verdadero, ya que es diferente minimizar todas las tareas que no son influyentes e importantes en el proyecto para llegar a cumplir todos los objetivos del proyecto, que hablar solamente de desarrollar, codificar, probar y hacer funcionar. Esto lleva a pensar que las metodologías ágiles no son perfectas y no se pueden aplicar en todo momento, dependen principalmente de donde se desee enfocar y lo que se vaya a aplicar

Un punto a favor de las metodologías ágiles son en su mayoría todos aquellos proyectos referentes a tecnología o llamados tecnológicos, cada una de ellas tiene sus ventajas y debilidades, inclusive puede darse casos en que una sola metodología pueda no ser suficiente y se deba apoyar en otra dependiendo las características y funciones dadas en el proyecto. Algunas de las más reconocidas son las siguientes:




En el momento de elegir una metodología de desarrollo ágil, se deben tener cuenta algunos puntos clave como que se va a desarrollar, que tipo de proyecto se iría a realizar, que debilidades y fortalezas tiene, se recomienda que todos los cambios que se manejen en metodologías ágiles no deben ser cambios bruscos o fuertes, pero si pueden adaptarse de pequeños progresos de cambios, otro punto a tener en cuenta es que el cliente final o el usuario que vaya a utilizar la aplicación juega un papel clave durante todo el proceso del proyecto, pero si no se tomara el cliente como parte importante, es mejor desistir de metodologías ágiles.

Pero no solamente se trabajan metodologías ágiles, en algunos casos puede que estas no sean muy efectivas o sirvan. Las metodologías tradicionales tienen mejor cabida en proyectos donde se conoce el problema y la solución está bien definida. Si se conoce el problema, la solución y el entorno, se puede analizar, diseñar y ejecutar una solución de manera fácil. Los startups son organizaciones temporales donde pueden moverse en zonas con mucha incertidumbre que busca un modelo de negocio que pueda ser escalable y replicable. Aquellos startups que sean capaces de seguir el enfoque Lean, plantea varias hipótesis sobre un problema que se presente y experimenta diversas formas de solucionarlo, para hallar la forma correcta, es decir que se trabajan en entornos muy cambiantes, para estos casos las metodologías agiles juegan un papel muy importante, ya que pueden realizar gestión de cambio que implican un esfuerzo menor. Por lo que hay que definir para quien es que metodología y para quien no, todas aquellas metodologías que se relacionen con Lean Startup se encarga de la construcción, en cambio las metodologías ágiles se enfocan en el cómo se realizaría.

Metodología XP

Revisando algunos las metodologías ágiles que son influyentes en el medio, se abre la puerta de la más común de todas y quizás una de las más utilizadas en cualquier ámbito de desarrollo, y es la metodología XP, esta es definida como un enfoque dado en la Ingeniería del Software que fue formulada por Kent Beck. XP traduce eXtreme Programming, o en nuestro vocablo programación extrema, se desvía en trabajar la factibilidad que la previsibilidad, aquellos que defienden esta metodología sugieren que los cambios son algo natural y deseable en cualquier proyecto que se desee realizar, se piensa que es capaz de adaptarse  a cambios en cualquier punto vital del proyecto aproximándose con más realidad al proyecto defiendo requisitos iniciales y controlando los cambios que se generen. Al analizar esta metodología no se centra en entregar cambios muy grandes o bruscos, al contrario deben ser pequeños y controlables, que sean rápidos de desarrollar y actualizar, para que este pueda ser evaluado en ambientes reales, se considera que las entregas trabajadas no deben ser mayor a dos a tres semanas máximo. Para entender esta metodología debe comprenderse en  4 puntos focales, el primero de ellos habla del diseño, este debe ser simple, se deben cumplir los requerimientos con un programa que sea sencillo se denomina (Simple Design),  que busca cumplir  las necesidades inmediatas del cliente, puede rejuvenecer procesos antiguos y eliminar redundancias. La metáfora viene siendo el segundo punto que se desarrolla por aquellos que tienen el rol de programadores desde el inicio, definiendo historias de cómo debe funcionar el sistema en su totalidad, XP permite trabajar y utilizar estas historias que son vistos como pequeñas descripciones de un trabajo, reemplazando todos los diagramas UML. Otro elemento que se trabajan son las tarjetas CRC (Clase, Responsabilidad, Colaboración) también permiten definir actividades en el momento del desarrollo. Cada tarjeta puede representar una clase en la programación que se orienta a objetos definiendo responsabilidades y colaboradores de esa clase. El tercer punto es la propiedad colectiva del código, que debe tener propiedad compartida, es decir todos son propietarios del código, no se destaca el individualismo, se argumenta que entre más gente se trabaje menos errores deben aparecer. El cuarto y último habla de estándar de codificación que permite definir la propiedad del código tanto para escribir, como documentar el código y todas las diferencias de trozos o piezas de código desarrollada por diferentes equipos. Todos los programadores deben tener la visión holística para poder unir estos trozos y ver como si un solo programador hubiera escrito todo el código de manera armoniosa.

Los objetivos en que se centra la metodología XP, es crear mejores prácticas de todos los desarrollos hechos en los proyectos, permitir mejorar toda la productividad en el proyecto, garantizar que la calidad del software supere todas las expectativas del cliente, y asumir que con niveles de planificación, codificación y pruebas poder decidir si se está siguiendo el camino que es o no, para evitar retrocesos enormes. Pero no solamente se centra en el bienestar del proyecto, sino de todos los programadores, ya que es necesario no agotar a los programadores, ya que si estos están cansados, podrían escribir código de menor calidad, se debe minimizar horas extras, mantener al personal fresco, pueden generar código de calidad y pertinente, es decir se recomienda 40 horas a la semana.

Entre las características que trabajan la metodología XP, pueden enfocarse en que esta se basa en prueba y error para obtener un software que funcione, se fundamenta en principios, se orienta hacia quien se produce el software y cómo va a ser utilizado, puede reducir el coste de cambios de ciclo de vida del sistema, trata de combinar las mejores prácticas para utilizarlas y llevarlas al extremo. El cliente debe estar bien definido (es decir saber quién es), Los requisitos pueden ser cambiantes, puede trabajarse en un grupo de 2 a 12 personas trabajándose en parejas, equipo con gran formación y capacidad para aprender. Los principios que maneja esta metodología son la simplicidad, es decir resolver todas las necesidades que se muestren en el momento y desarrollar lo necesario, el feedback, indica que se basa en iteraciones  pequeñas con entregas y pruebas, la decisión es saber tomar decisiones o reparar un error detectado o mejorar el código de feedback pasados, la comunicación se vuelve fundamental para colocar en contacto directo a clientes y desarrolladores.

Las prácticas fundamentales son el equipo completo, ya que todos tienen que ver algo con el proyecto, se planifica por medio de las historias de usuarios, generando orden y revisión continua, el test del cliente propone validaciones para realizar pruebas, pequeñas versiones que pueden ser desarrolladas en pocas semanas, debe tener un diseño simple, la programación debe darse por parejas, el desarrollo se guía por pruebas automáticas  se ejecutan con frecuencia, debe realizarse integración continua, es decir cuando se ejecuten nuevas funcionalidades, compilar y ejecutar, el código es compartido, se deben respetar normas codificadas, buscar frases para definir la función de distintas partes del programa y trabajar a un ritmo que pueda ser constante y sin detenerse.

Las ventajas que brinda al trabajar la metodología XP, es trabajar la programación organizada, reduciendo la tasa menor de errores y permitir satisfacer al programador, facilitar cambios, permitir ahorrar mucho tiempo y dinero, el cliente puede tener control sobre las prioridades y se hacen pruebas continuas del proyecto, como todo posee algunos inconvenientes o debilidades donde se recomienda trabajar en proyectos de corto plazo, requiere un rígido ajustes a todos los principios del XP, puede de entrada no ser fácil si se está familiarizado con metodologías tradicionales y generar altas comisiones. Pero trabaja mucho a las personas y las relaciones entre las personas, se manejan roles específicos como el programador que puede escribir las pruebas y el código, el cliente escribe sus historias de usuario y valida el proceso, el tester permitir al cliente validar las pruebas funcionales, el tracker se encarga de realizar el seguimiento sobre todo en estimaciones y tiempo real, el entrenador responsable de todo el proceso global, guiando a todos los miembros del equipo, el consultor que es externo al equipo pero con conocimientos necesarios para el equipo y proyecto, y el gestor (Big Boss), que sirve de vínculo entre los clientes y programadores

Metodología SCRUM

Esta metodología aplica conjuntos de buenas prácticas para trabajar de manera colaborativa en un equipo, permitiendo alcanzar el mejor resultado posible en el proyecto. Utiliza un marco de desarrollos ágiles que tienen características como adopción de estrategias que permite generar un desarrollo incremental, en lugar planificar y ejecutar completo el producto, tener como factor clave el conocimiento tácito de las personas que en la calidad de procesos de empleados, a la hora de pensarse en la calidad del resultado. Uno de sus objetivos principales es maximizar el retorno invertido para el proyecto en una empresa. Tiene como base construir la funcionalidad de mayor valor para el cliente o usuario final y actos seguidos los principios de inspección, adaptación, auto-gestión e innovación.

Al trabajar SCRUM, se realizan entregas parciales y regulares del producto finalizado. Está centrado especialmente en proyectos que son complejos, donde se requiere obtener resultados muy pronto, donde los requisitos pueden ser cambiantes o no están muy bien definidos, donde se tiene factores relevantes como la innovación, competitividad, flexibilidad y competitividad. Posee muchos beneficios al trabajar esta metodología como el cumplimiento de expectativas, donde se le permite al cliente establecer las expectativas indicando el valor de cada requisito, el segundo es que muy flexible y adaptable a cambios, que puede darse por momentos cambiantes de las necesidades del cliente o evolución dada en el mercado, el tercero permite reducir el time to market, es decir que el cliente puede usar las funcionalidades que sean más importantes en el proyecto sin haberlo finalizado, el cuarto es trabajar una mayor calidad del software, ya que se realiza un trabajo metódico al obtener un resultado en cada iteración, el quinto es obtener mayor productividad, por la eliminación de burocracias y motivar al equipo que sea autónomo para organizarse, el sexto se enfoca predicciones de tiempos, donde puede conocerse la velocidad del equipo en los sprint (puntos historia), por lo que permite estimar con facilidad cuando estará disponible una nueva funcionalidad en el proyecto, y la última pero no menos importante reducir riesgos, ya que se lleva como prioridad las funcionalidades de nuevo valor y conocer la velocidad de avance, despejando riesgos de manera anticipada.

El proceso manejado en SCRUM el proyecto se realiza en ejecución de bloques cortos y fijos. Cada iteración debe proporcionar un resultado completo, al igual que en XP, se manejan las iteraciones en el proyecto, pero con unas pequeñas diferencias, donde al planificar la iteración se debe tener en cuenta como primer punto la selección de requisitos, donde el cliente presenta al equipo todos los requisitos considerados importantes en el proyecto, el equipo busca indagar cuales requisitos son los más primordiales para comprometerse a completarlos en la iteración, el segundo punto es ya en planificar la iteración, donde el equipo realiza una lista de tareas a desarrollar en la iteración, el esfuerzo se mide de manera conjunta y los miembros del equipo se auto asignan tareas a cumplir. Cada iteración si tiene contemplada que dure 1 mes, con un plazo ampliado de 6 semanas máximo, al ejecutar cada iteración se realizan reuniones de sincronización inspeccionando el trabajo que se ha realizado, para poder cumplir con los compromisos que han sido adquiridos, en cada reunión se debe responder a tres interrogantes que son ¿Qué se ha hecho desde la última reunión de sincronización?, ¿Qué se va a realizar desde este momento? y ¿Qué impedimentos se van a presentar?. Durante todas las iteraciones el facilitador tiene la tarea de que verificar que todos los miembros cumplan con sus compromisos adquiridos, eliminando aquellos obstáculos que el equipo no ha podido superar y proteger al equipo de interrupciones externas que pueden afectar el avance y productividad en la iteración. Ya entrando al último día de la iteración se realiza una revisión que se compone de dos partes, la primera de ellas en demostrar los requisitos completados al cliente en la iteración, y los resultados mostrados, teniendo en cuenta cambios y adaptaciones necesarias de manera objetiva, desde la primera iteración, que permita replanificar el proyecto, el segundo de ellos es la retrospectiva donde el equipo analiza su ritmo y forma de trabajo y que problemas u obstáculos pueden impedir avances sean mínimos como significativos, para ser tenidos en cuenta ay mejorar la productividad. Al igual que en le metodología XP, se trabajan unos roles importantes que para este caso se caracteriza en primer lugar el scrum master es quien lidera al equipo para que pueda cumplir la metodología al pie de la letra, gestiona todos los impedimentos que intervienen en los avances y trabaja con el product owner para maximizar el ROI (Inversión de Retorno), el product owner es el representante de los accionistas y clientes del software focalizado en parte del negocio en el ROI, traslada la visión del proyecto a todo el equipo, que formaliza las prestaciones en historias, y el team es el grupo de profesionales que poseen los conocimientos necesarios, quienes desarrollan el proyecto de maneja conjunta con las historias.
En SCRUM, se maneja una documentación específica, uno de ellos se le conoce como el product backlog, como documento de alto nivel para el proyecto, es un conjunto de requisitos en el proyecto, que tiene descripciones de funcionalidades de manera general, solo puede ser abierto y modificado por le product owner. El sprint backlog es un subconjunto de requisitos desarrollados, se describe como se implementaría los requisitos durante el spring. Todas las tareas en el sprint backlog son tomadas por todos los miembros. El burn down chart es una gráfica mostrada que mide la cantidad de requisitos en el Backlog del proyecto mientras se comienza cada Spring.

Una vez viendo estas metodologías, puede concluirse que no todas las metodologías pueden utilizarse para lo mismo, es decir tiene ciertas restricciones que, permite que sean empleadas y utilizadas dependiendo del proyecto a trabajar, la prioridad del proyecto, lo que se quiere hacer, que cada una trabaja un roles diferentes, un modo único de realizar y ver iteraciones para la entrega del proyecto, que puede trabajarse para proyectos simples y cortos, o complejos y que requieren resultados, que puede enfocarse en los miembros del equipo o la calidad del proyecto y el personal involucrado. Es por ello que debe analizarse de manera centrada que metodología es la correcta a trabajar dependiendo del proyecto que se va a cumplir, no cuál sería la mejor.


Bibliografía Utilizada:

  • Metodología ágil

·         http://www.javiergarzas.com/metodologias-agiles
·         http://blog.leanmonitor.com/es/que-son-las-metodologias-agiles/
  • Metodología XP

·         http://es.slideshare.net/Piskamen/metodologa-xp
·         https://procesosdesoftware.wikispaces.com/METODOLOGIA+XP
·         https://es.wikipedia.org/wiki/Programaci%C3%B3n_extrema
·         http://ingenieriadesoftware.mex.tl/52753_XP---Extreme-Programing.html

  • Metodología SCRUM

·         https://es.wikipedia.org/wiki/Scrum
·         http://proyectosagiles.org/que-es-scrum/
· https://www.softeng.es/es-es/empresa/metodologias-de-trabajo/metodologia-scrum/proceso-roles-de-scrum.html

  • Metodología RUP

·         https://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational
·         http://rupmetodologia.blogspot.com.co/2012/06/fases-de-la-metodologia-rup.html
·         http://procesosdesoftware.wikispaces.com/METODOLOGIA+RUP
·         http://es.slideshare.net/cortesalvarez/metodologa-rup



COLABORADORES:

JORGE LÓPEZ PARRA
CÓDIGO: 066111033

JULIAN EDUARDO RINCÓN ROZO
CÓDIGO: 066111054

DAVID ESTEBAN RODRIGUEZ GÓMEZ
CÓDIGO: 066111004

JUAN PABLO VILLAMIL ROMERO
CÓDIGO: 066111010

domingo, 11 de octubre de 2015

ANÁLISIS DE LA ADAPTACIÓN TECNOLÓGICA

MAPA MENTAL  " ADOPCIÓN DE TECNOLOGÍAS "




MAPA MENTA "ADAPTACIÓN DE LAS APLICACIONES A LAS TECNOLOGÍAS DE CLOUD"




El mundo digital actual propone nuevos y desafiantes retos con mercados cada día más competitivos. Es ahí donde la adopción y adaptabilidad de nuevas e innovadoras tecnologías, pueden marcar un adelanto en la forma de hacer negocio; sin embargo, este proceso puede ser lento y complejo

En algunas ocasiones las organizaciones, no ven claro ni con urgencia la necesidad de implementar tecnología en sus negocios, un poco por el temor de invertir gran cantidad de capital sin que dicha tecnología se acople a la misión y visión.  Es importante entonces que tanto directivos como los propios trabajadores dentro de las empresas, establezcan hojas de ruta digital que brinden el apoyo efectivo en pro de mejorar los servicios, los productos, las experiencias con los clientes y los modelos propios del negocio. No necesariamente se debe buscar una transformación total e inmediata, por el contrario, se debe ir avanzando experimentando e innovando.


NARDY PAOLA JAIME RINCON

CÓDIGO: 066104014

DEYSAN JHOAN LAVARCÉ HERRERA

CÓDIGO: 066091058

JUAN PABLO VILLAMIL ROMERO

CÓDIGO: 066111010




lunes, 28 de septiembre de 2015

SERVICIO WEB

EL RELOJ

https://www.dropbox.com/s/smsh5grx2p1l0qm/Reloj.zip?dl=0



El reloj es un servicio web sencillo que brinda a los visitantes información sobre este dispositivo, al igual que es posible consultar la hora actual. El desarrollo de esta pagina web se llevó a cabo lenguaje HTML  mediante blog de notas, con funciones sencillas de JAVASCRIPT. 

A continuación se puede apreciar algunos pantallazos de demostración de la pagina.







Pasos para el ingreso al servicio web.

  1. Dirigirse al siguiente link.



     2. El sistema automáticamente direcciona la descarga de un archivo comprimido cuyo contenido 
         es la aplicación web en mención y la cual debe ser guardada en el escritorio.

     3. Se descomprime el archivo.

     4. Se abre y se ejecuta uno de los archivo con extención .HTML con el navegador Chrome



INTEGRANTES

NARDY PAOLA JAIME RINCON
CÓDIGO: 066102014
JUAN PABLO VILLAMIL ROMERO
CÓDIGO: 066111010




domingo, 27 de septiembre de 2015

ADAPTACIÓN DE TECNOLOGÍAS: CASO DE ESTUDIO



Empresa: Plaza de Mercado de Boyacá S.A.S


Base de Datos actualmente implementada: MS-Access


  1. Como consultor y analista que presta sus servicios a la empresa Plaza de Mercado Boyacá S.A.S y analizando sus necesidades presentes respecto a: ampliación de la base de datos actual, proyección de crecimiento de 5 años, generación de consultas de acuerdo a los requerimientos y aseguramiento en la integridad referencial de la información; al igual, que teniendo como referente el licenciamiento gratuito de MS-ACCES como iniciativa promovida por el departamento para las pymes. 
Recomiendo el desarrollo desde cero de un sistema de información basado en el uso de   MySQL un DBMS(Data Base Management System (Sistema Administrador de Bases de datos Relacionales )), que se ajusta a las necesidades actuales del negocio y que cuenta con ciertas ventajas( Open Source,velocidad al realizar operaciones,facilidad de configuración e instalación , mejor soporte, ahorro en costo de operación , estabilidad, confiabilidad, entendible , multiplataforma, capacidad de albergar gran volumen de datos, bajo consumo de recursos, garantiza escalabilidad, utiliza licencia GPL, entre otras ) respecto a otras herramientas con características similares, que actualmente se ofrecen en el mercado. .

No recomiendo, continuar con el uso del MS-Access por tres razones. Primero, MS-Access no es un DBMS, que permita una administración eficiente de los datos. Segundo, su capacidad se limita a bases de datos pequeñas. Tercero, a pesar de ser funcional, no cumple con todas las especificaciones que requiere el negocio, ni tanto en el presente ni en una proyección futura; por tanto, el problema continuará generando gastos adicionales.

2.    Los valores calculados en estas dos alternativas se calculan en base al salario de un ingeniero de sistemas  en Colombia el cual es de $ 2'00.000 pesos colombianos.Con valor hora laboral a $ 8.350 y día laboral a $ 66.700

Alternativa N° 1






Alternativa N° 2










La alternativa N° 2 puede representar un costo mayor a la alternativa N° 1 , sin embargo la proyección a 5 años que se ha planteado , se adaptara más a las necesidades del negocio.

viernes, 28 de agosto de 2015

DESCRIPCIÓN DE LA COMPAÑÍA CEMEX COLOMBIA S.A


Cemex S.A es una compañía multinacional presente en los distintos continentes; el cual ofrece soluciones para la construcción, no solo a nivel privado sino también estatal. La compañía fue fundada en 1906 y surgen de la fusión realizada entre la planta Cementos Portland Monterrey y la planta Cementos Hidalgo; luego expande sus operaciones al sur de México con la adquisición de Cementos Meryda e igualmente adquiere Cementos Guadalajara para convertirse en la principal compañía mexicana en producción de cemento.En 1992 se expande la compañía a nivel internacional; primero fue en España, hasta hoy en día  encontrase operando en mas de 50 países y manteniendo relaciones con aproximadamente 108 países.  
Respecto a la filial de Cemex en Colombia ( Cemex Colombia), cuenta en la actualidad con varias plantas de procesamiento de concreto , cemento y agregados ; entre los que se destacan la planta Caracolito en Ibagué(en esta planta se procesa el  clinker base primordial para el procesamiento de concreto y cemento), la planta Santa Rosa en la periferia de la Calera( esta planta se encarga de procesar el cemento portland) , planta 240 y de Soacha ( estas dos plantas ubicada en Bogotá se encargan del procesamiento del concreto ) y la nueva planta ubicada en el departamento de Antioquia denominada Maceo ( planta dedicada a la producción de cemento).
Cemex Colombia, en la actualidad ofrece un amplio portafolio de productos, servicios y soluciones tanto en el sector estatal, en el privado como en las pequeñas empresas o pymes. Dentro los productos que se ofrecen se encuentran: cemento, concreto premezclado, agregados. En la parte de servicios  se ofrecen : 24/7 LOAD(servicio de entrega de productos a los clientes las 24 horas del día los 7 días a la semana y los 366 días del año), Sistema de Despacho de Cemento a Granel Tipo Cajero Automático, Construrama (Le brinda a los socios distribuidores una extensa gama de productos de marca a precios competitivos, adicionalmente ofrece capacitación integral para el manejo exitoso de sus negocios), Servicios de Educación y Capacitación Orientados al Cliente, Servicios Financieros para la Construcción, Soluciones Móviles( mediante mensajes de texto los clientes pueden recibir notificación cada vez que se genere una orden de cemento o concreto premezclado lista para su entrega), Multi-productos( no solo la compañía ofrece cemento o concreto ;  adicionalmente ofrece artículos para plomería, electricidad, madera, luminarias, Servicios En Línea( los clientes tienen información constante tanto de sus cuentas , como el rastreo de los productos adquiridos), Centros de Servicio( call center para un servicio rápido a los clientes), Smart Silo(monitorea los niveles de cemento de los silos de los clientes las 24 horas, permite anticipar y responder a las necesidades de resurtido de productos con tiempo suficiente), Apoyo Técnico(asistencia técnica del más alto nivel a través de un equipo de vanguardia y de personal profesional y bien capacitado staff de servicio técnico) y el Suministro de energía a industrias( mediante una subestación con capacidad de suministrar energía suficiente a varias industrias cercanas a la misma). Cemex igualmente ofrece soluciones de vivienda, pavimentación y construcción verde.
La compañía cuenta con varias áreas de trabajo en las que se destacan, la  comercial  (donde se maneja toda la parte de cartera, pedidos de los clientes, facturación e información comercial), innovación (es una área que involucra mucho a sus trabajadores con la organización, en ella los trabajadores  exponen sus ideas , paya posteriormente ser evaluadas y de allí determinara su viabilidad y su posterior puesta en funcionamiento), área de TIC¨s ( se cuenta con tecnología de punta  y personal profesional altamente capacitado para desarrollar herramientas tecnológicas encaminadas a prestar un servicio profesional tanto a los clientes como dentro de la misma organización), un área de prensa( donde se suministra información actualizada de la empresa a sus empleados y al exterior de la organización), el área de recursos humanos( encargado de las contrataciones y del bienestar de los empleados que laboran en la compañía),  área de soluciones al constructor, soluciones para el canal, soluciones para la industria, el área jurídica , entre otras.
Cemex como compañía multinacional, hace uso de las tecnologías de información para conectar y unificar sus procesos globalmente, empezando con un enfoque local con aplicaciones como bitrix24 que se usa para compartir y documentar procesos que pueden ser de utilidad como modelos de soluciones para incidentes similares, la compañía esta a la vanguardia tecnológica para brindar a sus talentos las herramientas necesarias para desarrollar todo su potencial entre estas se incluyen  el paquete empresarial Microsoft que se usa a nivel Nacional, ubicado en el área de TI, se utiliza e entorno .NET para desarrollar la mayoría de aplicativos usados por los trabajadores en sus labores diarias, a si mismo se revisan las versiones disponibles y las que están en uso  actualmente para verificar que siempre se cuente con la tecnología que permita simplificar los procesos y aumentar la productividad; con la inclusión de nuevas tecnologías, se entran a revisar los procesos llevados a cabo para actualizarlos y lograr la correcta implementación  de los avances adquiridos por la empresa, así mismo se replantean procesos y se adicionan nuevos para lograr que la empresa no pierda competitividad y mejore su posición  en el mercado de los cementos, poniendo al servicio del recurso humano la tecnologia que les permita desarrollar su potencial al servicio de Cemex. 

INTEGRANTES:
NARDY PAOLA JAIME RINCÓN
CÓDIGO: 066102014
DEYSAN LAVARCÉ
CÓDIGO:066091058
JUAN PABLO VILLAMIL ROMERO
CÓDIGO:066111010