domingo, 28 de mayo de 2017

RAID

“El disco duro es uno de los componentes clave de cualquier ordenador; sin él no podríamos almacenar nuestros datos y tendríamos que estar dependiendo de sistemas de almacenamiento extraíble o, recordando tiempos pasados, discos de arranque con los que ejecutar el sistema operativo de nuestro ordenador personal”. (hipertextual, s.f.) Es por ello que su implementación debe de evolucionar conforme las necesidades de la población emanan, y gracias a esto el concepto de RAID fue creado.

“RAID es el acrónimo de Redundant Array of Independent Disk  (Arreglo Redundante de Discos Duros Independientes)” (Sanchez Iglesias, s.f.). Esta técnica para distribuir la información, ha sido muy usada en entornos de servidores y ya ha llegado al uso doméstico. Es posible encontrarla en dispositivos tipo NAS, para impedir la pérdida de información y  gracias a esta técnica puedes conseguir tanto mejorar la velocidad de acceso a los datos, como la protección frente a posibles fallos en el hardware.

“Es útil su implementación cuando se cuenta con varios discos duros, ya que en uno solo no puedes almacenar toda la información” (Sanchez Iglesias, s.f.), entonces  la distribución de la información y la velocidad con la que puedes acceder aumenta, sin embargo la probabilidad de que al menos uno de ellos se estropee, también crece.
Conforme el paso del tiempo las formas de utilizar nuestros discos duros fueron cambiando, es por eso que existen diferentes tipos RAID’s y todos tienen características específicas, dentro de los más importantes sobresalen los siguientes:

            RAID 0:
Mejor conocido como striping, en esta configuración lo que se hace es distribuir de manera equitativa los datos entre dos discos duros. Dicho de otra forma, el sistema irá repartiendo los datos entre dos discos duros.La ventaja de la RAID 0 es que ofrece un mayor rendimiento de los datos.” (Staimer, s.f.)

 RAID 1:
También llamada “mirroring”  o “espejo”. Consiste en duplicar la información en dos discos; es decir, nuestro sistema verá un único volumen de almacenamiento que, en realidad, está formado por dos discos iguales en los que se escriben los mismos datos.
“La ventaja de utilizar una RAID 1 es disponer de un mayor rendimiento de lectura multiusuario, puesto que pueden leerse ambos discos al mismo tiempo” (Staimer, s.f.)

            RAID 5:
El distribuido con paridad o RAID 5, se basa en la división por bloques de información, la cual se distribuyen entre los discos que forman el conjunto. En este tipo de configuraciones, como mínimo debemos contar con 3 discos duros y, como nos podemos imaginar, solamente se tolera el fallo en uno de los discos.
“Las ventajas de utilizar una RAID 5 consisten en poder realizar operaciones de lectura y escritura de forma solapada (es decir, en poder hacer un uso más eficiente de las unidades de disco)” (Staimer, s.f.)

En conclusión, cada vez que nosotros pensamos en cómo utilizar y distribuir nuestra información es de vital importancia considerar las diferentes maneras de realizarlo, ya que si no es analizado de la manera correcta, la perdida de información (datos) o falla en los componentes hardware, puedes resultar una pérdida de dimensiones agigantadas. Es aquí donde es útil conocer las ventajas y desventajas de los RAID, en donde cada uno es útil en escenarios diferentes y dependerá de nosotros saberlos utilizar y solventar las necesidades de nuestro trabajo.

Referencias

·         hipertextual. (n.d.). Retrieved from https://hipertextual.com/archivo/2014/01/que-es-raid-discos-duros/
·         Sanchez Iglesias, L. A. (n.d.). about en español. Retrieved from http://computadoras.about.com/od/conoce-tu-pc-discos-duros/fl/RAID-5-ventajas-y-desventajas.htm
·         Staimer, M. (n.d.). TechTarget. Retrieved from http://searchdatacenter.techtarget.com/es/consejo/Tutorial-RAID-como-elegir-el-nivel-RAID-adecuado


domingo, 14 de mayo de 2017

HELP DESK


El soporte técnico es una de las principales actividades en la industrial del desarrollo de software. Cada que un producto es lanzado al mercado, inherentemente se requiere que cuente con algún tipo de soporte ante cualquier incidencia en su uso, esto ha generado que las empresas busquen la mejor alternativa para brindar dicha ayuda, lo que ha conllevado a la creación del Help Desk.

El Help Desk se puede definir como “un conjunto de servicios, que de manera integral bien sea a través de uno o varios medios de contacto, ofrece la posibilidad de gestionar y solucionar todas las posibles incidencias, junto con la atención de requerimientos relacionados con las TICS, es decir, las Tecnologías de Información y Comunicaciones” (Alfredo, 2011). Previamente a la creación de la Mesa de Ayuda, los servicios que las empresas brindaban tenían la monotonía de ser ofrecidos por un solo medio de contacto y no todos los problemas eran erradicados. Es por ello que se decidió estandarizar por medio de la ITIL Information Technology Infrastructure Library (Biblioteca de Infraestructura de Tecnologías de Información), y se sintetiza a "un marco de trabajo de las mejores prácticas destinadas a facilitar la entrega de servicios de tecnologías de la información (TI) de alta calidad” (Seguridad Informática, 2008).

Al hablar de un Help Desk, encontraremos que su enfoque está en la solución de problemas momentáneos. Esto quiere decir que puede que la solución obtenida a una determinada problemática sea sólo un parche a un problema más grande que hay detrás. Y como su nombre lo dice, es una Mesa de Ayuda, “donde se ofrecen Servicios acerca de soporte técnico (bugs, consultas, etc.), lo cual ayuda a incrementar la productividad y aumenta la satisfacción de los usuarios internos y externos”. (Alfredo, 2011).

Finalmente, podemos decir que las actividades y servicios destinados al soporte técnico son esenciales para cualquier producto en el cual los problemas no puedan ser resueltos por los mismos usuarios y que debido a la complejidad de los mismos, tecnologías como el Help Desk ahora es factible de encontrar en cualquier empresa. Esto también ha generado que diferentes organizaciones enfoquen su marco de trabajo a los servicios Help Desk que las empresas necesitan, es decir, ahora las empresas solo generan software y otra es contratada para proporcionar el soporte técnico.






Bibliografía

Alfredo, C. (22 de Enero de 2011). HELP DESK. Obtenido de http://helpdeskspecialist.blogspot.mx/2011/01/definicion.html

Seguridad Informática. (03 de Diciembre de 2008). Obtenido de https://seguinfo.wordpress.com/2008/12/03/%C2%BFque-es-itil-2/

domingo, 2 de abril de 2017

Reingeniería de Software

Cuando nos adentramos al mundo laboral del desarrollo de software, siempre deseamos construir sistemas desde cero para nuestra facilidad, pero no siempre es posible debido a que hoy en día la mayoría de las empresas  ya cuenta con un sistema que cumple con el proceso de negocios de la organización, y es ahí en donde recae el concepto de Reingeniería de Software.
Pero, ¿qué es la reingeniería de software?, muchos autores la definen como una “modificación de un producto de software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de ingeniería inversa y, para la etapa de reconstrucción, herramientas de ingeniería directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.” (Sicilia, 2009). Esta definición nos habla de un proceso de modificación, en donde dicho concepto también es aplicable a los mantenimientos de software, entonces, ¿por qué no hacer un mantenimiento perfectivo en vez de una larga reingeniería? La respuesta dependerá de la situación en que nos encontremos, como sabemos “no se puede dar mantenimiento de forma eterna, no es técnica, ni económicamente viable” (Sistemasumma, 2011) y recordemos que la más marcada diferencia será el tiempo y el dinero.
La reingeniería consta de un proceso de 6 pasos, en donde puede variar dependiendo el autor que se esté leyendo, no obstante la mayoría coincide en que se deben realizar las siguientes actividades:
  1. Análisis de inventario.
  2. Reestructuración de documentos.
  3. Ingeniería inversa.
  4. Reestructuración del código.
  5. Reestructuración de datos.
  6. Ingeniería directa.



Imagen 1. Pasos de la Reingeniería del Software

Estas actividades son la esencia de toda reingeniería de software, todas y cada una de ellas nos aportan información que más adelante ayudará a la creación del sistema, sin embargo, no siempre es posible llevarlas a cabo; por ejemplo, imaginemos que el sistema al que le queremos aplicar una reingeniería tiene una longevidad muy grande, es poco probable que su documentación exista y la reestructuración de documentos será un punto que pasemos de largo. El seguimiento correcto nos llevará a tener una visión más amplia de la futura aplicación, lo que se puede traducir como una mayor facilidad para desarrollar.

“Cuando una aplicación lleva siendo usada años, es fácil que esta aplicación se vuelva inestable como fruto de las múltiples correcciones, adaptaciones o mejoras que han podido surgir a lo largo del tiempo. Esto deriva en que cada vez que se pretende realizar un cambio se producen efectos colaterales inesperados” (Sicilia, 2009), por lo que identificar en qué punto es necesario emplear una reingeniería será una de las partes más importantes para cualquier empresa. Este proceso es una alternativa viable pero bastante cara, su proceso conlleva una inversión monetaria y de tiempo de cifras con más de tres ceros, por lo que el escrutinio que se tenga que hacer al sistema deberá hacerse minuciosamente, analizando todas las posibles alternativas.

Referencias

Sicilia, M.-A. (9 de Enero de 2009). OpenStax CNX. Obtenido de http://cnx.org/contents/jXj8TA20@3/Qu-es-Reingeniera-del-Software
Sistemasumma. (26 de Mayo de 2011). Sistemas UMMA. Obtenido de https://sistemasumma.com/2011/05/26/mantenimiento-y-reingenieria-de-software/




Gestión de la Configuración del Software

GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE.

La Gestión de Configuraciones del Software (GCS) es un conjunto de actividades desarrolladas para gestionar los cambios a lo largo del ciclo de vida. La GCS es una actividad de garantía de calidad del software que se aplica en todas las fases del proceso de ingeniería del software aplicando las siguientes actividades (Facultad De Ingeniería Universidad de la República)
  1. Identificación de elementos
  2. Control de versiones
  3. Control de cambios
  4. Auditar la configuración
  5. Generación de informes

“Dado que la configuración software es la única representación tangible de un programa o sistema software, debe ser controlada para conservar su exactitud, mantener la información actualizada, y asegurar una información clara y concisa conforme avanzamos paso tras paso en el proceso de Ingeniería del Software” (Universidad de Almería, 2013). “El propósito de la Gestión de Configuración del Software es establecer y mantener la integridad de los productos de software a través del ciclo de vida del proceso de software.” (Historia Internacional, 2007).


ELEMENTOS DE LA CONFIGURACIÓN DEL SOFTWARE

Un elemento de configuración del software (ECS) es la información creada como parte del proceso de ingeniería del software, sin embargo, también podemos decir que es “una unidad física y/o lógica parte de un conjunto mayor de elementos, producida o adquirida, que por sus características es distinguible de las demás y cuya evolución interesa administrar” (Historia Internacional, 2007).
Los elementos de la configuración del software según la Universidad de Almería son los siguientes:
  1. Especificación del sistema
  2. Plan del proyecto software
  3. Especificación de requerimientos del software
    1. Prototipo ejecutable o en papel
  4. Manual de usuario preliminar
  5. Especificación de diseño:
    1. Diseño preliminar
    2. Diseño detallado
  6. Listados del código fuente
  7. Planificación y procedimiento de prueba
    1. Casos de prueba y resultados registrados
  8. Manuales de operación y de instalación
  9. Programas ejecutables
  10. Manual de usuario
  11. Documentos de mantenimiento
    1. Informes de problemas del software
    2. Peticiones de mantenimiento
    3. Órdenes de cambios de ingeniería
  12. Estándares y procedimientos de ingeniería del software

1

Referencias

Facultad De Ingeniería Universidad de la República. (s.f.). Obtenido de https://www.fing.edu.uy/tecnoinf/maldonado/cursos/ingsoft/materiales/teorico/is11-SCM.pdf
Historia Internacional. (27 de 02 de 2007). Obtenido de http://www.histaintl.com/soluciones/configuracion/configuracion.php
Universidad de Almería. (2013). Obtenido de http://www.ual.es/~rguirado/posi/Tema5-Apartado5.pdf



viernes, 3 de marzo de 2017

TARJETAS - ARTEFACTOS XP

Historia de Usuario
1
VENTA DE TARJETA E INGRESO DE SALDO
NO HAY
Usuario: Pasajero del metro
Iteración Asignada: 1
Prioridad en Negocio:
(ALTA / Media / Baja)

Puntos Estimados:
5
Riesgo en Desarrollo:
(Alto / MEDIO / Bajo)
Puntos Reales:
.
Descripción:
Se debe vender una tarjeta de uso personal, la cual pueda recargarse en ventanilla o en un cajero automático, con un máximo de $200.00.
Observaciones:
Esta tarjeta debe estar asociada a un ID y activada para empezar su funcionamiento.











Historia de Usuario
2
Cobro de tarifas por zonas para el uso del metro.
NO HAY
VIAJERO/PASAJERO
Iteración Asignada: 0
Prioridad en Negocio:
(Alta / Media / Baja)

Puntos Estimados:
8
Riesgo en Desarrollo:
(Alto / Medio / Bajo)
Puntos Reales:
.
Descripción:
Al entrar al metro se cobrará la mitad de la tarifa 1, y al salir en la misma zona se cobrará la mitad faltante. Si la salida se registra en una zona consecutiva se cobrará la restante por la tarifa 2. En cambio, si el viaje es de extremo a extremo, se cobrará la tarifa 3.
Observaciones:.










Caso de Prueba de Aceptación
Código:

1.    VENTA DE TARJETA E INGRESO DE SALDO
Nombre: Comprobación de tarjeta activa.
Descripción: Se pretende probar que al adquirir una tarjeta y se recargue por primera vez, esta se active.
Condiciones de Ejecución:
El usuario debe de haber pagado la tarjeta.
El sistema tiene que estar conectado a internet.
El lector de tarjeta debe estar en funcionamiento.
Entrada / Pasos de ejecución:
Primero se lee el id de la tarjeta y se corrobora que esta inactiva y que además su saldo sea 0.0
En seguida se ingresa saldo en base a su Id y se cambia su estatus a activo.
Se comprueba que se ingresó correctamente el saldo.
Resultado Esperado:
Se espera que la tarjeta este activada y que además cuente con saldo.
Evaluación de la Prueba:
El sistema no verifica el estatus de la tarjeta
El sistema no recarga la cantidad solicitada
El sistema recarga la tarjeta, pero no cambia el status.
El sistema recarga y verifica el estatus correctamente.
El sistema si cambia el estado de la tarjeta.






Tarea de Ingeniería
Número Tarea:
1
1.   VENTA DE TARJETA E INGRESO DE SALDO
Nombre Tarea: Desarrollo de la tarjeta y módulo de ventas.
Tipo de Tarea:
DESARROLLO / Corrección / Mejora / Otra (especificar)

Puntos Estimados:
5
Fecha de Inicio:
06/03/2017
Fecha de culminación.
06/03/2017
Programador Responsable:
Isaac Martínez Sánchez y Jeobany Ramírez Escobar
Descripción:
Se programará la base de datos, la clase tarjeta y sus respectivos atributos, así como también métodos para la venta y recarga.

domingo, 26 de febrero de 2017

Ensayo - Diferencias entre XP & SCRUM

Cuando desarrollamos software, los programadores siempre preferirán una metodología ágil debido a su facilidad de empleo en el proceso de desarrollo y su minúscula documentación, por ello es de gran ayuda conocer las diferentes metodologías que existen, así como sus respectivas cualidades, pros y contras.
Las metodologías más usadas según la  encuesta que realiza anualmente VersionOne, es SCRUM con un 56% de los resultados, seguido de una hibridación entre SCRUM/XP. Saber lo que alguien prefiere puede ser un buen punto de partida para la elección de una metodología a la hora de desarrollar software, conocer sus puntos de vista y sobre todo, sus argumentos que sustentan dicha decisión.
Sin embargo el tema a tratar en este escrito, son las diferencias más significativas entre XP Y SCRUM.


Imagen 1: Cuadro comparativo entre XP y SCRUM




Todas esas características que hacen única a una metodología ágil, también la hace diferentes a las otras, en este caso, podemos ver de una manera gráfica, que hay más diferencias que semejanzas entre XP y SCRUM, sin embargo, se rigen bajo el manifiesto ágil, el cual, a mi parecer, es la semejanza más importante que comparten.
En conclusión, cada metodología es útil para ciertos puntos, mientras una se enfoca en el proceso de administración otra se centra en crear producto funcional. La decisión de utilizar XP o SCRUM, dependerá de nuestro proyecto, es decir, de los elementos que lo conforman, por ejemplo, no se deberá de trabajar con SCRUM si el cliente está disponible para trabajar en el equipo de trabajo, no sería lo óptimo, es por ello, que se necesitar hacer un escrutinio de todos y cada uno de los elementos con los que se cuenta en dicho momento.  



REFERENCIAS



Leyes de Lehman, ejemplos.


1ra Ley “Cambio continúo”:
El ejemplo que se propone, habla sobre como un navegador (Internet Explorer) se vuelve poco satisfactorio a comparación de otros, como Chrome o Firefox. Pongamos de ejemplo a un programador, es poco probable que utilice Explorer, debido al pobre soporte de CSS (Cascading Styles Sheets), y aunque hay estudios que proponen a Explorer como el navegador más seguro, no cabe duda que una de sus deficiencias es su velocidad de búsqueda.
Este es un claro ejemplo de la primera ley de Lehman, en donde si no actualizas tu software, hay altas posibilidades de que se vuelva menos útil para los usuarios.


2da Ley “Complejidad Creciente”:
Para hablar sobre esta ley, tomaré como referencia a un estudiante x. Conforme avanza su trayectoria escolar el grado de complejidad/dificultad aumenta de forma considerable, la estructura cambia, las materias se incrementan y todo evoluciona,  así que no podemos decir que la secundaria tiene el mismo nivel de complejidad que la preparatoria.

3ra Ley “Evolución prolongada”:
Esta ley quiere decir que a medida de que la estructura del software se vuelve más compleja se empieza a restringir los cambios en el sistema. Por ejemplo, en un sistema bancario, las modificaciones son restringidas debido a la alta complejidad de este, y se llegaran a hacer, podrían se catastróficos para la empresa. Este tipo de software, es desarrollado mediante un lenguaje de programación llamado COBOL el cual fue creado en los años 50’s. Es aquí donde nos preguntamos por qué no utilizar otro.
  
4a Ley “Estabilidad Organizacional”:
La producción de una empresa es un claro ejemplo de esta ley. Si producen un producto todos los trabajadores, esta producción se realiza en un tiempo constante y no se ven afectados si cambian a un trabajador, ya que la producción seguirá constante. La 4ta Ley de Lehman se refiere toma como punto de partida el tiempo de vida de un programa y su velocidad de desarrollo, las cuales no se ven afectadas por los recursos dedicados.
En este caso, los recursos son los trabajadores, y el programa, la producción. El programa no se ve afectado si uno de los trabajadores es cambiado, la tarea es la misma. 


5a Ley “Conservación de la Familiaridad”:            
A medida de que un programa evoluciona, todo aquello que esté relacionado con el sistema debe de tener un conocimiento total de su contenido y cambios, por lo que si se vuelve muy complejo, y los participantes no logran adquirir todo el conocimiento necesario, no se podrá mantener un  control. Ejemplo de ello, es un fallo de avión, el cual es una versión más nueva de otro, es decir con nuevas características. Al agregar nuevas características la estructura se hizo más compleja, y los participantes, no logran comprender del todo el funcionamiento, lo que ocasiona la falla.

6a Ley “Crecimiento continuado”:
Instagram y sus “historias”, fue una nueva funcionalidad añadida a la red social más popular para la fotografía, lo que aumento su uso en los usuarios, pasando por encima de Snapchat. Al igual en el año 2017, la funcionalidad para publicar fotos, tuvo un cambio un tanto especial, ahora se pueden publicar más de 1 foto por publicación, tipo collage horizontal.
El crecimiento de este tipo de anexos a esta red ha incrementado su popularidad, colocándola como la 3 red con más usuarios en el mundo (400 millones).



7a Ley “Decrecimiento de la calidad”:
La tecnología wifi de un proveedor no es la misma en todos los lugares, es decir, en lugares poco habitados o alejados de la parte urbana, la calidad de estos servicios disminuye drásticamente, esto, por falta de adaptación de la funcionalidad en dichos lugares, es decir, porque no tienen la infraestructura pertinente para proporciona un servicio equitativo.
A lo que esta ley se refiere, es que la calidad de un sistema se verá disminuida si este no se adapta a cambios de entorno de funcionamiento.






8a Ley “Retroalimentación del sistema”:
Las calificaciones de play store y sus correspondientes comentarios son un ejemplo de esta ley. Cada comentario es tomado en cuenta para que el sistema se mantenga actualizado y con un menor número de defectos.
A esto se le llama retroalimentación, lo que facilita información relevante para nuevas versiones del sistema.





REFERENCIAS