sábado, 12 de abril de 2014

Controlador de versiones GitHub



Es casi inconcebible hoy en día trabajar desarrollando software y no utilizar un sistema de control de versiones, pero primero debemos definir cómo funciona.
Lo habitual es que cada programador realice los cambios necesarios en el código fuente para la tarea que se le ha encomendado. Una vez que dichos cambios están listos, los envía al servidor (o a los otros participantes), de modo que el resto pueda recibirlos en cualquier momento, y así trabajar sobre dichos cambios cuando tengan que realizar cualquier otra tarea. Se puede dar el caso de que varios programadores trabajen sobre el mismo fichero o ficheros, en cuyo caso el sistema lo detectará, y actuará para evitar posibles conflictos. Se pueden dar dos casos:
  • Los programadores han trabajado en porciones de código diferentes: En principio, no se han pisado las líneas en las que han trabajado, así que es probable que sea suficiente efectuar ambos cambios sobre el fichero, sin más. Casi todos los sistemas de control de versiones detectan esta situación y realiza la unión de los cambios de forma automática, notificándolo al usuario para que tenga constancia.
  • Los programadores han trabajado en líneas de código comunes, modificando, eliminando o añadiendo líneas en la misma porción de código: En estos casos, el sistema suele señalar que hay un conflicto entre ambos cambios, y habitualmente genera un fichero intermedio convenientemente marcado para que se puedan revisar ambos cambios de forma simultánea, y así quedarse con uno, con el otro, o con una combinación de los dos, realizando la unión a mano y eliminando lo que sobra.
Algunas de sus ventajas son:
  • Puedes volver a cualquier punto del desarrollo para ver qué aspecto tenía un determinado fichero de código, o volver a una versión donde todo funcionaba antes de haber metido la pata.
  • Puedes trabajar en distintas características de forma simultánea, guardando los cambios en cada una de ellas, y uniéndolos al desarrollo principal si ya han sido lo suficientemente probadas. O sencillamente puedes crear una nueva versión para probar un experimento, o corregir un bug que se acaba de detectar en producción, sin comprometer lo que ya llevas realizado. Estas distintas ramas de trabajo hacen que veamos el repositorio de código como un árbol, donde cada una de las ramas representan experimentos que se van creando, y que luego vuelven a unirse al tronco principal del árbol (la versión que pretende llevarse a producción).
  • Puedes echar un vistazo para ver quién realizó un determinado cambio, y cuándo lo hizo.
Entre los más conocidos se encuentran:
  • GitHub, el cual permite alojar proyectos de software libre de forma gratuita, y proyectos privados mediante una cuenta de pago. El coste depende del número de repositorios y de colaboradores, y va desde 7 dólares al mes hasta los 200 dólares al mes.
  • SourceForge
  • Launchpad


octocatGit es uno de los sistemas gratuitos de control de versiones más populares entre los desarrolladores. Y parte culpa de su popularidad la tiene GitHub, un excelente servicio de alojamiento de repositorios de software con este sistema, que lejos de quedarse en esta funcionalidad, ofrece hoy en día un conjunto de características muy útiles para el trabajo en equipo.
Además de servir para alojar código, posee un visor de código mediante el cual se pueden hacer consultas de algún fichero, con sintaxis correspondiente al lenguaje en que esté escrito. Gracias a esto se pueden hacer consultas o copias de partes del código sin necesidad de bajar el repositorio completamente. También se puede navegar por todas las versiones del mismo y ver el contenido previo a los cambios.
Algunas de sus características (que son de gran ayuda para el trabajo en quipo) son:
  • Un wiki (sitio web cuyas páginas pueden ser editadas por múltiples voluntarios a través del navegador web) que opera para el mantenimiento de las versiones de los proyectos
  • Un sistema de seguimiento de problemas que permite al equipo abrir un problema del software o enviar sugerencias para dicho problema.
  • ·Una herramienta de revisión de código, donde se pueden añadir notas en cualquier punto de un fichero.
  • Un visor de ramas para comparar los progresos hechos en el repositorio.

Bibliografía

Genbetadev. (29 de Marzo de 2009). Genbetadev. Recuperado el 12 de Abril de 2014, de http://www.genbetadev.com/sistemas-de-control-de-versiones/kit-basico-de-herramientas-para-desarrollar-en-equipo-i-control-de-versiones

Genbetadev. (25 de Mayo de 2011). Genbetadev. Recuperado el 12 de Abril de 2014, de http://www.genbetadev.com/sistemas-de-control-de-versiones/conociendo-github-el-servicio-donde-alojar-tus-repositorios-git-como-el-nuestro

Github. (s.f.). Github. Recuperado el 12 de Abril de 2014, de https://github.com/

domingo, 2 de marzo de 2014

Reingeniería de Software



¿Qué es?

Según Sommerville la reingeniería del software se refiere a la re-implementación de los sistemas heredados para hacerlos más mantenibles.
Puede implicar re-documentar, organizar y reestructurar el sistema, traducirlo a un lenguaje de programación más moderno, y modificar y actualizar la estructura y los valores de los datos.
La reingeniería comienza con un sistema existente y el proceso de desarrollo para su reemplazo  se basa en comprender y transformar el sistema original.
La reingeniería debe ser entendida como un proceso mediante el cual se mejora un software existente haciendo uso de técnicas de ingeniería inversa y reestructuración de código.  Para llevar a cabo la reingeniería del Software se puede realizar a través del modelo Cíclico y en algunas ocasiones, estas actividades se producen de forma secuencial y lineal, pero esto no siempre es así.

ETAPAS DE LA REINGENIERÍA

·        - Análisis de Inventarios - Todas las organizaciones de software deberían tener un inventario de todas sus aplicaciones. Aunque éste tal vez no sea más que un modelo en una hoja de cálculo con una descripción detallada (tamaño, edad, importancia para el negocio) de las aplicaciones activas. Los candidatos a la reingeniería aparecen al ordenar esta información en función de su importancia para el negocio. Es entonces cuando es posible asignar recursos a las aplicaciones candidatas para la reingeniería.

·        - Reestructuración de documentos

a.     La documentación débil es un problema de muchos sistemas heredados. ¿Qué se hace con ellos? Documentar consume mucho tiempo, y si el sistema funciona, vivirá con lo que tenga.

b.     La documentación debe actualizarse pero se tiene recursos limitados.

c.     El sistema es crucial para el negocio y debe volver a documentarse por completo; sin embargo, incluso en este caso un enfoque inteligente es recortar la documentación a un mínimo.

·        - Ingeniería Inversa - Una cierta compañía desensambla un producto de hardware competitivo en un esfuerzo por comprender los “secretos” del diseño y fabricación de su competidor. Estos secretos se podrían comprender más fácilmente si se obtuvieran las especificaciones de diseño y fabricación del mismo. Pero estos documentos son privados, y no están disponibles para la compañía que efectúa la ingeniería inversa. En la mayoría de los casos, el programa del cual hay que hacer una ingeniería inversa no es el de un rival, sino, más bien, el propio trabajo de la compañía. Los “secretos” que hay que comprender resultan incomprensibles porque nunca se llegó a desarrollar una especificación; por lo tanto, la ingeniería inversa del software es el proceso de análisis de un programa con el fin de crear una representación de programa con un nivel de abstracción más elevado que el código fuente. Es un proceso de recuperación de diseño. Con las herramientas de la ingeniería inversa se extraerá del programa existente información del diseño arquitectónico y de proceso, e información de los datos.

·        - Reestructuración de código – Es el tipo más común de reingeniería; se puede hacer con módulos individuales que se codifican de una manera difícil de comprender, probar y mantener. Esta actividad requiere analizar el código fuente empleando una herramienta de reestructuración, se indican las violaciones de las estructuras de programación estructurada, y entonces se reestructura el código. El código reestructurado resultante se revisa y comprueba para asegurar que no se hayan introducido anomalías; después se actualiza la documentación interna del código.

·        - Reestructuración de datos – Esta es una actividad de reingeniería a gran escala. En la mayoría de los casos, comienza con una actividad de ingeniería inversa. La arquitectura de datos actual se analiza con minuciosidad y se define los modelos de datos necesarios, se identifican los objetos de datos y los atributos, y después se revisa la calidad de las estructuras de datos existentes. Cuando la estructura de datos es débil se aplica una reingeniería a los datos. Dado que la arquitectura de datos tiene una gran influencia sobre la del programa y sobre los algoritmos que lo pueblan, los cambios en datos darán lugar invariablemente a cambios o bien de arquitectura o bien de código.
·       
·        - Ingeniería directa - En un mundo ideal, las aplicaciones se reconstruyen utilizando un “motor de reingeniería” automatizado. En el motor se insertaría el programa viejo, que lo analizaría, reestructuraría y después regeneraría la forma de exhibir los mejores aspectos de la calidad del software. Después de un espacio de tiempo corto, es probable que llegue a aparecer este “motor”. La ingeniería directa no solo se encarga de recuperar la información de diseño a partir del software existente, también utiliza esta información para alterar o reconstruir el sistema existente con la finalidad de mejorar su calidad global. En la mayoría de los casos el software sometido a reingeniería vuelve a implementar la función sistema existente y también añade nuevas funciones o mejoras.

Referencias

Sommerville, I.(2005) Ingeniería del Software(459). México: Pearson.
Pressman, R. (2005) Ingeniería del Software, un enfoque práctico (902-922). México: McGraw-Hill Interamericana.

domingo, 16 de febrero de 2014

Mantenimiento de Software



Ejemplos de mantenimiento


  • Preventivo – Control de espacio para almacenamiento de información en un Sistema Gestor de Bases de Datos (SGBD). 
  •  Correctivo – El antivirus instalado en una computadora, en caso de que el sistema ya haya sido infectado por algún virus, el antivirus se encarga de corregir o solucionar ese ‘error’.
  • Adaptativo – Evolución de algún proyecto desarrollado originalmente para funcionar en Windows XP, para que funcione ahora en Windows 7 ya que los sistemas operativos son diferentes y se necesita hacer que el proyecto tenga la misma funcionalidad que tenía en XP.
  • Perfectivo – Implementar un nuevo módulo a un sistema que anteriormente sólo servía para un negocio de una sucursal, para ahora tener los datos de más sucursales abiertas recientemente.


LEYES DE LEHMAN

Noticia 1

Windows XP desaparece, es hora de actualizar su equipo. SOFTWARE En un par de meses Microsoft dejará de prestar soporte para Windows XP. Si su computador tiene ese sistema, le decimos lo que debe hacer.

José Antonio Barraquer de Microsoft Colombia.14 febrero 2014


El Director de Negocios de Windows para Colombia, José Antonio Barraquer, dijo a Semana.com que a partir de abril, Microsoft no prestará más soporte a los equipos que trabajen con este sistema operativo.
Eso no significa que los computadores dejen de funcionar sino que ya no será posible encontrar actualizaciones para el sistema.
 
"Es como cuando una ensambladora de carros suspende la fabricación de una referencia. Los carros siguen andando pero ya no se consiguen repuestos originales. Eso pasa con el Renault 4.", explica.
Windows XP se lanzó en 2001, y fue la sensación del momento. Después llegaron Vista y Windows 7 pero en el mundo se seguía prefiriendo trabajar con Windows XP por la facilidad de uso, por la interfaz gráfica o simplemente por costumbre.
En ese momento Microsoft indicó que prestaría soporte hasta 2014 y ahora está cumpliendo la promesa.
Y es apenas entendible. Hoy los sistemas operativos se basan en aplicaciones más que en complejas rutas de archivos, programas y carpetas, típicos de Windows XP.
 
Este concepto de aplicaciones lo introdujo Apple con el lanzamiento del primer iPhone en 2007, que sumado a la otra gran innovación, de las pantallas táctiles, generaron una nueva experiencia de usuario.
Las demás marcas tuvieron que ir cediendo y se adaptaron a ese modelo para atender las exigencias de los clientes.
Y Windows no es la excepción. El lanzamiento de Windows 8 en 2012 revolucionó el tradicional sistema operativo que ahora se basa en aplicaciones. Bajo el concepto de baldosas, están siempre disponibles desde la pantalla principal para que el usuario acceda con un solo clic o un solo toque. (Barranquer, 2014)

Correspondencia con la Ley de Lehman:

Conservación de la Familiaridad: Durante el tiempo de vida de un programa, su velocidad de desarrollo es aproximadamente constante

Justificación:

Esta noticia corresponde a la ley de la  conservación de la familiaridad ya que en la noticia Windows XP desaparece y esto significa que el tiempo de vida de un sistema termina y que este ya tiene un cambio desde hace como un año que en su caso es Windows 8. Además de invitar a los usuarios a  actualizarse con el último sistema operativo de Windows como lo es Windows 8. (Kathia, 2014)

Noticia 2:

"El pan saldrá fortalecido de sus elecciones internas: Madero"

México, DF. El partido Acción Nacional saldrá fortalecido en los próximos meses por sus procesos internos, tanto en la renovación del consejo nacional, como el consejo de dirigencia nacional, que será elegida por primera vez de manera directa por todos los militantes, sostuvo su líder nacional, Gustavo Madero Muñoz.
Aseguro que los militantes "Encaminaran estos procesos para que quede fuera la difamación, la falta de respeto a la dignidad humana y se privilegien las ideas y las propuestas en el debate"...

Correspondencia con ley de Lehman.

Crecimiento continuo: la funcionalidad ofrecida por los sistemas tiene que crecer continuamente para mantener la satisfacción de los usuarios.

Justificación:

Esta noticia corresponde con la ley de Lehman de crecimiento continuo, ya que el partido hace cambios en su estructura interna con el fin de fortalecerse por medio de la renovación del consejo nacional como de la dirigencia nacional, lo cual pretende mejorar la forma en que este partido se desenvuelve en las actividades políticas, dándole un mejor servicio a los usuarios". (Etnan, 2014)

Noticia 3

Aún hay áreas de oportunidad en el TLCAN: Hacienda Domingo 16 de febrero de 2014

A 20 años de su implementación, refiere, es importante hacer un balance sobre la integración económica de la región, que podría llegar a ser una de las más atractivas para la inversión extranjera 

Si bien gracias al Tratado de Libre Comercio de América del Norte (TLCAN) se ha registrado una integración económica, productiva y financiera muy importante, todavía existen áreas de oportunidad, por ejemplo, en materia laboral y de movilidad de personas, apuntó la Secretaría de Hacienda y Crédito Público (SHCP) .
En el Informe Semanal de su Vocería, informó que dada la importancia y potencial que representa la región de América del Norte, el próximo 19 de febrero se llevará a cabo en la ciudad de Toluca, estado de México, la Cumbre de Líderes de Norteamérica, en la que participarán los presidentes de México, Estados Unidos y Canadá.
Además de fomentar los lazos comerciales, el objetivo de esta reunión es promover una mayor integración regional en aras del bienestar económico, amplio y sustentable de las tres naciones, así como la creación de empleos, la seguridad, el liderazgo empresarial y la productividad de la región.
Expone que en esta Cumbre se busca en particular consolidar la relación con Estados Unidos y Canadá, para promover la competitividad y convergencia de la región con base en las complementariedades de los tres países.
"El TLCAN, junto con otros acuerdos suscritos por el país, ha dado a las empresas mexicanas la oportunidad de obtener insumos a precios competitivos, y tener un acceso preferencial a más de mil millones de consumidores alrededor del mundo, en beneficio de la productividad, la generación de empleos y el crecimiento económico del país" , destaca.
La Secretaría de Hacienda señala que una de las alianzas comerciales más importantes del país es la que tiene con Estados Unidos y Canadá, bajo el TLCAN, el cual entró en vigor el 1 de enero de 1994.
Sus objetivos son lograr un mercado más extenso y seguro para los bienes y servicios producidos en la región; ampliar la cooperación; fortalecer la competitividad de sus empresas en mercados internacionales; alentar la innovación y creatividad, así como crear nuevas oportunidades de empleo, y mejorar las condiciones laborales de sus habitantes.
Apunta que este Tratado es estratégico para México por la importancia de la región a nivel mundial, pues como bloque económico, el Producto Interno Bruto (PIB) nominal de los tres países representa 43 por ciento del PIB total de la OCDE, además de concentrar 37 por ciento de la población de los países de dicha organización.
A 20 años de su implementación, refiere, es importante hacer un balance sobre la integración económica de la región, que podría llegar a ser una de las más atractivas para la inversión extranjera.
Destaca que el comercio trilateral y la inversión extranjera han experimentado un gran crecimiento, ya que desde su entrada en vigor el intercambio de bienes entre los países se ha cuadruplicado, al alcanzar 1.2 billones de dólares anuales en 2012; es decir, cada minuto se comercian dos millones de dólares entre los tres países.
Por su parte, el intercambio entre Canadá y Estados Unidos se ha triplicado, mientras que el de México y Estados Unidos se ha multiplicado por seis, expuso la SHCP.
En el caso de México, el comercio total con los países de la zona ha aumentado en 363 por ciento, alcanzando la cifra histórica de 507.1 mil millones de dólares anuales en 2013. Así, las exportaciones mexicanas a sus socios comerciales son de gran relevancia, pues representaron la cuarta parte del PIB nominal del país en 2012.
Hoy México se ha convertido en el segundo socio comercial de Estados Unidos y el tercero de Canadá; es el tercer destino para las exportaciones estadounidenses y el quinto para las canadienses.
Sólo en 2013, el comercio total de mercancías entre México y Estados Unidos ascendió a 486.8 mil millones de dólares, más de 1.3 mil millones al día, es decir, un millón de dólares por minuto.
Señalo que el empleo también se ha visto beneficiado de la integración económica, pues en América del Norte creció alrededor de 27 por ciento desde 1993, representando una generación de casi 44 millones de empleos en la región
Refiere además que los flujos de inversión a Estados Unidos desde los demás países miembros alcanzaron 19.2 mil millones de dólares en 2012, mientras que México recibió 202.5 mil millones de sus socios comerciales del TLCAN entre 1993 y 2012, convirtiéndolo así en uno de los principales destinos de IED.
La integración de América del Norte es una realidad en los mercados, pues la región se ha consolidado en su capacidad de producción conjunta, al grado que hoy las exportaciones de México tienen 30 por ciento de contenido de Estados Unidos.
Para la dependencia, la integración regional derivada del Tratado ha ido más allá del comercio de bienes y servicios, ya que en materia financiera, el TLCAN ha favorecido el acceso a diferentes mercados para las empresas emisoras de la región, traduciéndose en mayores opciones de financiamiento para consolidar los planes de negocio.
Por ejemplo, apunta, en 2013 el monto de colocaciones de empresas mexicanas en Estados Unidos fue mayor a los cuatro mil 330 millones de dólares, cifra 27 veces superior al monto de colocación de 162 millones de dólares en 1999.
Así, los mercados de valores de los países miembros mostraron una expansión en términos del valor de capitalización de las compañías que cotizan en Bolsa. Entre 1994 y 2013 dicho indicador se incrementó en Estados Unidos, Canadá y México en 66, 53 y 16 puntos porcentuales del PIB, respectivamente.
Aún más, gracias a la flexibilidad que se otorgó a los inversionistas institucionales y a la apertura de los mercados favorecida por el TLCAN, ahora es posible acceder a valores extranjeros directamente en la Bolsa Mexicana de Valores (BMV) sin necesidad de ir al mercado de origen, añade.(NotiMex, 2014)

CORRESPONDE CON LA LEY 2 – COMPLEJIDAD CRECIENTE

Justificación:

Esta noticia encaja con la segunda ley es porque el TLCAN (que sería el sistema) necesita una evolución en su estructura, ya que se pretende aprovechar las áreas de oportunidad existentes, y con esto el tratado sería más extenso y complejo por los aspectos que pretenden ampliar, debido al crecimiento que han tenido ciertas áreas de la economía de los países que forman el TLCAN(Pilar, 2014)

Noticia 4

Microsoft confirms Messenger will be retired and users migrated to Skype on March 15  , 05:09am

Microsoft on Tuesday started mass emailing its 100 million+ Messenger users to let them know that the service is officially being retired on March 15, 2013. On that date, all users will be migrated to Skype, which Microsoft acquired back in May 2011 for $8.5 billion.
This means Messenger will be shut down in just 66 days. It will only keep working afterwards in mainland China, mainly because Skype is operated there by a local provider called TOM.
As you can see, the email in question is titled “Important info about your Messenger account.” Here’s the main part:
On 15th March 2013 we are retiring the existing Messenger service globally (except for mainland China where Messenger will continue to be available) and bringing the great features of Messenger and Skype together. Update to Skype and sign in using a Microsoft Account (same as your Messenger ID) and all your Messenger contacts will be at your fingertips. You’ll be able to instant message and video chat with them just like before, and also discover new ways of staying in touch with Skype on your mobile and tablet.
Microsoft previously said the transition would happen in Q1 2013. The date was only revealed today, however, confirming the company is still right on schedule to make the big move from Messenger to Skype.
If you’re wondering how this will work, it’s really quite simple. Skype will give you the option to merge your own accounts, as well as message both types of contacts.
Messenger users will have to download and install Skype (ideally the latest version). Once there, all they have to do is log in with their Microsoft account, and their Messenger contacts will be available inside.
This is possible since Microsoft moved its Messenger users over to Microsoft accounts a while ago, just as it brought Skype under the same umbrella. As such, the two have technically been connected for some time.
The discontinuation of Messenger came as a slight shock back in November. Yet Skype simply has a larger membership: around 280 million monthly active users, up roughly 100 million since it was purchased by Microsoft.
Many use both Messenger and Skype, but Microsoft wants everyone to just use the latter. It doesn’t make sense for the company to maintain and update two communication tools for consumers.
This is especially true if you remember that the whole tech world, including VoIP, is heading to mobile. Skype has made a big effort to build out various mobile apps, easily leaving Messenger in the dust.

CORRESPONDE CON LA LEY - Evolución Prolongada del sistema

Justificación

Este es un claro ejemplo de evolución prolongada del sistema, ya que si messerger despareció, es porque ya no era competitivo, y además, ya no habían  salido nuevas versiones después de la versión 2010, ya que microsoft ya se había dado por vencido ante la competencia existente con facebook. (Eva, 2014)

Bibliografía

Barranquer, J. A. (14 de 02 de 2014). Semana. Obtenido de Semana: http://www.semana.com/tecnologia/novedades/articulo/windows-xp-desaparece-es-hora-de-actualizar-su-equipo/377110-3
Etnan, L. T. (16 de 02 de 2014).
Eva, F. L. (16 de 02 de 2014).
http://www.jornada.unam.mx/ultimas/2014/02/16/el-pan-saldra-fortalecido-de-sus-elecciones-internas-madero-5601.html. (2014). Obtenido de http://www.jornada.unam.mx/ultimas/2014/02/16/el-pan-saldra-fortalecido-de-sus-elecciones-internas-madero-5601.html.
Kathia, R. G. (14 de 02 de 2014).
NotiMex. (16 de 02 de 2014). El universal. Obtenido de El universal: http://www.eluniversal.com.mx/finanzas-cartera/2014/tlcan-hacienda-988116.html
Pilar, G. M. (16 de 02 de 2014).
PROTALINSKI, E. (09 de 01 de 2013). Microsoft. Obtenido de Microsoft: http://thenextweb.com/microsoft/2013/01/09/microsoft-emails-messenger-users-to-let-them-know-the-service-is-retiring-on-march-15-and-to-upgrade-to-skype/#!v4Xug
wikipedia. (s.f.). Obtenido de wikipedia: http://es.wikipedia.org/wiki/Leyes_de_Lehman_de_la_evoluci%C3%B3n_del_software