domingo, 26 de febrero de 2017

Leyes de Lehman

A principios de los 80 Lehman formuló las que se conocen como leyes de la evolución del software, que escribió desde su observación de la evolución del OS/360y 370. Lehman dividió los sistemas software en tres tipos: los S (que pueden especificarse formalmente, son estáticos), los P (que no pueden ser especificados y es necesario un proceso iterativo para ello) y los E (sistemas que ya funcionan en el mundo real). 


Las leyes describen el balance entre las fuerzas que impulsan nuevos desarrollos, y las fuerzas que ralentizan el proceso. Se tienen ocho leyes que son:

  • Ley del cambio continuo 
  • Ley de la complejidad incremental 
  • Ley de la auto regulación 
  • Ley de la conservación de la estabilidad organizacional 
  • Ley de conservación de la familiaridad 
  • Ley del crecimiento continuo 
  • Ley del decremento en la calidad 
  • Ley de los sistemas de retroalimentación

Ejemplos de las Leyes de Lehman



Ley del Cambio Continuo (1ra Ley de Lehman)
Un ejemplo de esta ley puede ser como ejemplo del último vocho producido en México, especificamente, en Puebla. Este vehículo fue producido primero en Alemania y después en todo el mundo, hasta en México.

Logró gran aceptación alrededor del planeta, sin embargo, debido a que permanecio sin cambios por mucho tiempo, su producción y ventas comenzaron a decaer, hasta que en 1971 dejo de producirse en Alemania y en 2004 en todo el mundio. Esto refleja lo que quiere decir la primera ley, puesto que un sistema necesariamente tiene que cambiar o sí no se volverá menos útil para su entorno. El Volkswagen Sedán al no cumplir con esta ley y al no ser modificado, fue sacado del mercado.

Ley de la Complejidad incremental (2nda Ley de Lehman)

Esta ley puede aplicar a la última actualización de Android: Android 4.4 KitKat, en la cual se realizaron distintos cambios dentro de su código, incluyendo la máquina virtual en la que corre, ya que conforme avanzaban las actualizaciones de Android, dicho sistema comenzó a hacerse más pesado. Es por esto que Google, se dedicó a Desarrollar el Sistema operativo en celulares de gama baja, para ofrecer la mejor experiencia con las últimas novedades en su última versión.
Ley de la auto regulación (3ra Ley de Lehman)
Entre más grande sea un sistema más complicado es aplicarle mantenimiento, Windows al ser un sistema operativo, entre más complejo sea el cambio o más grande sea el número de actualizaciones, podría traer más errores como los mencionados en la noticia.

Por otro lado, si se hubieran aplicado pequeños cambios jerarquizados por relevancia, tal vez éstas actualizaciones no hubieran provocado los malos resultados que se destacan en la noticia.
Ley de la conservación de la estabilidad organizacional (4ta Ley de Lehman)
Podemos comparar las organizaciones que tienen distintas empresas de software, en este caso compararé dos de los proyectos más grandes de Microsoft, Windows y Windows Phone, ambos a pesar de ser sistemas operativos para el usuario estas divididos en su desarrollo. Microsoft dedica muchas más personas a el desarrollo de una versión de Windows para PC que para Windows Phone, ya que la cuota de usuarios que debe de cubrir Windows es mayor, además de que comprende de mayor dificultad realizar un Sistema Operativo de Escritorio que uno móvil, es por esto que se requiere de más personal en Windows de PC para poder entregar más rápido actualizaciones y versiones nuevas.
Ley de la conservación de la Familiaridad (5ta Ley de Lehman)
Como ejemplo de esta ley puede ser el desbordamiento de un canal de aguas negras en Torreón provocado por el aumento poblacional en las áreas alrededor de este.

Mencionan que debido a la saturación de las líneas que cruzan por el lugar, así como el aumento de materiales sólidos que al acumularse en cierto punto, bloquean el flujo normal de las aguas hacia la planta tratadora, y hacen que las aguas se desborden. Se puede notar la primera ley en que el aumento a un sistema, en este caso una civilización, provoca defectos en el mismo, y se debe dar una segunda "entrega" y reparar los mismos.
Ley del crecimiento continuo (6ta Ley de Lehman)
Android desde sus versiones primitivas (1.0 hasta 2.1), mantenía una experiencia que aun dejaba mucho que desear, no presentaba una interfaz amigable para el usuario común, ya que iba un poco más dedicado a empresarios que consultaban sus correos, navegaban en internet entre otras cosas. En versiones posteriores se intentó mejorar esto, pero aún seguía con ciertas cosas que parecían bastante complicadas para los usuarios, hasta que llegó Android 4.0, el cual unificó las plataformas (Tabletas y Celulares) en las que ya estaba instalado Android, con una nueva y renovada interfaz muchísimo más familiar. En esta se ofrecían distintas opciones de personalización, además de novedosas funciones, incluyendo Android Beam y Google Now, funciones bastante importantes y útiles que ahora no resultan ninguna dificultad al usarlos.
Ley del decremento en la calidad (7a Ley de Lehman)
En este caso podemos poner como ejemplo de las redes sociales, algunas redes sociales se actualizaron de una manera eficiente, por ejemplo, Facebook sobresalió ya que cumplió las demandas de los usuarios, un servicio de mensajería instantánea (Chat), en cambio algunas otras redes sociales que no se actualizaron dejaron de ser usadas tal como Hi5, MySpace, SkyRock, etc.

Ley de los sistemas de retroalimentación (8a Ley de Lehman)

En Windows 8, cuando salió a la luz, los usuarios tenían muchísimos problemas, ya que en esta última versión el sistema cambió completamente de interfaz, añadiendo distintas funcionalidades y quitando algunas otras. Esto molestó a muchos usuarios de Windows, por lo que las redes sociales de Microsoft y su sistema de Soporte Técnico se llenó de quejas. Es por ello que Microsoft lanzó una encuesta a principios de 2013 para saber qué es lo que los usuarios necesitarían en la próxima versión de Windows, y gracias a dicha encuesta, así fue cómo surgió Windows 8.1, con varias mejoras que solucionarios las molestias de los usuarios, además, en dicha versión se incluyó una app de “Ayuda y Soporte” en la cual se puede hacer FeedBack y hacer distintas sugerencias, todo esto con el fin de analizarlas e implementarlas en su próxima versión: Windows 8.2.


REFERENCIAS


domingo, 19 de febrero de 2017

Mantenimiento se Software, Soporte de Software y Soporte Técnico.

SOPORTE DE TÉCNICO

La noción de
soporte se utiliza para nombrar a algo que brinda un respaldo, que puede ser físico o simbólico. 

Lo técnico, por otra parte, se asocia a aquello que se aplica en la ciencia o una disciplina artística.

Entonces tenemos que en el software, el Soporte Técnico un rango de servicios por medio del cual se proporciona asistencia a los usuarios al tener algún problema al utilizar un producto o servicio, ya sea este el hardware o software de una computadora o cualquier otro equipo o dispositivo, es decir, es aquella existencia que se le brinda a un usuario. 
Este puede ser de 2 formas el soporte técnico presencial y el soporte técnico de distancia. El técnico en soporte debe cumplir ciertas características:
     
     1. Estar especializado en soporte.
     2. Poseer un alto grado de ética.
     3. Contar con una licencia o permiso para eje ser dicha actividad.
     4. Contar con el equipo adecuado para efectuar el trabajo.

Este servicio por lo general se brinda con motivo de obtener un ingreso económico y lo ofrecen algunas empresas que dan una garantía con respecto al servicio brindado o también lo pueden brindar personas naturales capacitadas que es un poca menos confiable pero también
mas económico.

Tipos de Soportes Técnicos:

Resultado de imagen para soporte tecnico definicion
  • Soporte técnico vía telefónica: por lo general se brinda este servicio para averías físicas simples(cables mal conectados) o problemas de software simple (configuraciones básicas), y se trata de recibir indicaciones de un técnico por vía telefónica.
  • Soporte técnico vía correo electrónico: consiste en que un personal capacitado te envié un correo electrónico con información, gráficos e instrucciones para solucionar algún inconveniente que hemos reportado previamente.
  • Soporte técnico vía chat: es casi lo mismo que el soporte técnico vía correo electrónico a diferencia que este es a tiempo real y así se puede interactuar con el personal que nos da las indicaciones pero esta ves por chat.
  • Soporte técnico vía asistencia técnica personal: es mas recomendado para problemas de hardware complejos que necesariamente se necesita la presencia de un técnico.
REFERENCIAS

MANTENIMIENTO DE SOFTWARE

El estándar IEEE 1219 [IEEE, 1993] define el Mantenimiento del Software como “la modificación de un producto software después de haber sido entregado [a los usuarios o clientes] con el fin de corregir defectos, mejorar el rendimiento u otros atributos, o adaptarlo a un cambio en el entorno”.
Resultado de imagen para mantenimiento de software definicion
El mantenimiento del software involucra cambios al software para corregir defectos encontrados durante sus uso o la adición de nueva funcionalidad mejorando la usavilidad y la aplicabilidad del software.

A medida que pasa el tiempo, las aplicaciones de software deben ser sometidas a procesos de modificación que extiendan su vida útil o mejoren sus características. Corrección de bugs (errores), adaptación a los nuevo entornos tecnológicos o agregando su funcionalidad son algunas tareas que incluye el mantenimiento de software.

El mantenimiento de software es también una de las fases en el ciclo de vida de desarrollo de sistemas (SDLC, sigla en inglés de system development life cycle), que se aplica al desarrollo de software. La fase de mantenimiento es la fase que viene después del despliegue (implementación) del software en el campo.

TIPOS DE MANTENIMIENTO DE SOFTWARE 

  • Mantenimiento preventivo: Consiste en la revisión constante del software para detectar
    posibles focos de problemas que puedan surgir en el futuro.
  • Mantenimiento predictivo: Evalúa el flujo de ejecución del programa para predecir con certeza el momento en el que se producirá la falla, y así determinar cuándo es adecuado realizar los ajustes correspondientes.
  • Mantenimiento correctivo: Corrige los defectos encontrados en el software, y que originan un comportamiento distinto al deseado. Estas fallas pueden ser de procesamiento, rendimiento (por ejemplo, uso ineficiente de los recursos de hardware), programación (inconsistencias en la ejecución), seguridad o estabilidad, entre otras.
  • Mantenimiento adaptativo: Si se requiere cambiar el entorno de uso de la aplicación (que incluye al sistema operativo, a la plataforma de hardware o, en el caso de las aplicaciones web, al navegador), puede ser indispensable modificarla para mantener su plena funcionalidad en estas nuevas condiciones.
  • Mantenimiento evolutivo: Es un caso especial donde la adaptación resulta prácticamente obligatoria, ya que de lo contrario el programa quedaría obsoleto con el paso del tiempo. Por ejemplo, el cambio de versión en un navegador (muchas veces impuesto sin el consentimiento del usuario) suele obligar a realizar ajustes en plugins y aplicaciones web.
  • Mantenimiento perfectivo: Por distintas razones, el usuario puede solicitar el agregado de nuevas funcionalidades o características no contempladas al momento de la implementación del software. El mantenimiento perfectivo adapta la aplicación a este requerimiento.
ACTIVIDADES DE MANTENIMIENTO 

El desconocimiento de las actividades que implica el mantenimiento del software puede inducir a minusvalorar su importancia, y se tiende a asociar el mantenimiento del software con la corrección de errores en los programas.

Por esta causa, la impresión mas generalizada entre los gestores, usuarios, e incluso entre los propios informáticos, es que la mayor parte del mantenimiento que se realiza en el mundo es de tipo correctivo. Sin embargo, varios autores ([McKee, 1984], [Frazer, 1992], [Basili et al., 1996]) indican que esta impresión es equivocada, mostrando cómo los mayores porcentajes de esfuerzo se dedican a mantenimiento perfectivo (véase Figura 3, tomada de Frazer [1992]).

Tipos de Actividades de Mantenimiento:

  • Análisis de impacto y de costes/beneficios: se dedica esta actividad a analizar diferentes alternativas de implementación y/o a comprobar su impacto en la planificación, coste y facilidad de operación. 
  •  Comprensión del cambio: puede consistir en localizar el error y determinar su causa, o en comprender los requisitos de una mejora solicitada. 
  • Diseño del cambio: se refiere al diseño propuesto para el cambio, pudiéndose incluir un rediseño del sistema. 
  • Codificación y pruebas unitarias: se codifica y prueba el funcionamiento de cada componente modificado. 
  • Inspección, certificación y consultoría: esta actividad se dedica a inspeccionar el cambio, comprobar otros diseños, reuniones de inspección, etc. 
  • Pruebas de integración: se refiere a comprobar la integración de los componentes modificados con el resto del sistema. 
  • Pruebas de aceptación: en esta actividad, el usuario comprueba, junto al personal encargado del mantenimiento, la adecuación del cambio a sus necesidades. 
  • Pruebas de regresión: en esta actividad se somete el software modificado a casos de pruebas previamente almacenados y por los que ya pasó. 
  • Documentación del sistema: se revisa y reescribe, en caso necesario, la documentación del sistema para que se ajuste al producto software ya modificado. 
  • Otra documentación (del usuario, por ejemplo): se revisa y reescribe, en caso necesario, los diferentes manuales de usuario y otra documentación, excepto la documentación del sistema. 

REFERENCIAS 

SOPORTE DE SOFTWARE


Aunque no se cuenten con muchas referencias para poder describir a ciencia cierta lo que es el Soporte de Software podemos describirlo como el mantenimiento de éste aunado al soporte técnico de algún programa o bien SOFTWARE.

Resultado de imagen para soporte de software conceptoResultado de imagen para soporte de software que es