lunes, 26 de septiembre de 2011

CAPAS DE LA INGENIERÍA DE SOFTWARE

El enfoque de ingeniería del software cuenta con un compromiso organizacional con la calidad porque no es posible incorporar la ingeniería del software en una organización que no está centrada en conseguir calidad.

La ingeniería del software es una tecnología multicapa. Se puede ver como un conjunto de componentes estratificados, que reposan sobre ese enfoque de calidad.


Estos componentes que forman parte de la ingenieria del software son:


  • Procesos: un marco de trabajo que ayuda al jefe de proyecto a controlar la gestión del proyecto y las actividades de ingeniería.
  • Métodos: las actividades tecnicas requeridas para la creacion de productos de trabajo.
  • Herramientas: la ayuda automatizada para los procesos y métodos.

Procesos

El fundamento de la ingeniería del software es la capa de proceso. El proceso define un marco de trabajo para un conjunto de áreas clave de proceso que se deben establecer para la entrega efectiva de la tecnología de la ingeniería del software.

La capa de proceso define el proceso que se usará para construir el software y las actividades y tareas que un jefe de proyecto tiene que gestionar. Por lo tanto, las áreas claves del proceso forman la base del control de gestión de proyectos del software y establecen el contexto en el que se aplican los métodos técnicos, se obtienen productos de trabajo (modelos, documentos, datos, informes, formularios, etc.), se establecen hitos, se asegura la calidad y el cambio se gestiona adecuadamente. El proceso de la ingeniería del software es la unión que mantiene juntas las capas de tecnologías y que permite un desarrollo racional y oportuno de la ingeniería del software.

La capa de proceso:

Permite al jefe de proyecto planificar una ejecución exitosa del proyecto. La capa de proceso proporciona una hoja de ruta del trabajo de ingeniería del software. Ayuda al jefe de proyecto en la creación de un plan de trabajo viable que aísle tareas de trabajo, responsabilidades, los productos de trabajo producidos, y los mecanismos usados para asegurar calidad en dichos productos de trabajos. Permite la ejecución de proyectos software dentro de un marco de tiempo razonable.

Proporciona a las personas involucradas el contexto de su trabajo. La capa de proceso guía a las personas involucradas proporcionando el marco de trabajo en el que entienden el contexto de las tareas a realizar.
Se pueden ver todas las actividades, incluyendo las actividades técnicas, como parte del proceso. Además, cualquier recurso, incluyendo herramientas usadas para construir el software también encajan en el proceso. La capa de proceso es, por lo tanto, el fundamento de la ingeniería del software y da soporte a las capas de métodos y herramientas.

Importancia de un proceso

Un proceso es útil porque proporciona claridad en cómo ha de realizarse el trabajo. Cualquier conjunto de actividades humanas complejas se puede convertir en caótico si no hay guías para que las personas puedan realizar las actividades. Un proceso definido responde a las siguientes cuestiones:
‐¿Quién se comunica con quién?
‐¿Cómo se coordinan las actividades interdependientes?
‐¿Quién es responsable de qué trabajo?
‐¿Quién produce qué productos de trabajo, y cómo se evalúan?


Un proceso:
‐Identifica todas las actividades y tareas de la ingeniería del software
‐Define el flujo de trabajo entre las actividades y tareas
‐Identifica los productos de trabajo que se producen
‐Especifica los puntos de control de calidad requeridos

Algunas personas ven el desarrollo de software con una perspectiva que requiere habilidades artísticas y de artesanía y que es inherentemente caótico. Se resisten a la idea de usar un proceso definido porque lo ven como incómodo y burocrático y por lo tanto dificulta la creatividad.

Aunque no hay duda de que el desarrollo de software requiere creatividad, la mayoría del software de calidad en la industria se desarrolla por el esfuerzo coordinado de más de una persona. Para cualquier esfuerzo de equipo, el control coordinado es mejor alternativa que la anarquía. La hoja de ruta proporcionada por un proceso es útil para las personas que construyen productos software o que gestionan proyectos.

Todos los enfoques de la construcción de software tienen un proceso, pero en muchos casos, son ad hoc, invisibles y caóticos. Una buena ingeniería de software hace que el proceso de software sea más visible, predecible y más útil para aquellos que construyen software.

La capa de proceso abarca las siguientes cuestiones:

‐El marco de trabajo de proceso común (CPF)
‐Actividades y tareas de la ingeniería de software
‐Puntos de control de calidad
‐Definiciones de productos de trabajo
‐Gestión de proyectos
‐Aseguramiento de la calidad del software
‐Gestión de la configuración del software
‐Monitorización de proyectos
‐Medidas y métricas

Métodos

La capa de proceso identifica las tareas de ingeniería que se deben realizar para construir software de alta calidad.

La siguiente capa, la capa de métodos se centra en las actividades técnicas que se deben realizar para conseguir las tareas de ingeniería. Proporciona el “cómo” y cubre las actividades de ingeniería fundamentales.
Los métodos abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento. Los métodos de la ingeniería del software dependen de un conjunto de principios básicos que gobiernan cada una de las áreas de la tecnología e incluyen actividades de modelado y otras técnicas descriptivas.

La construcción de software implica una amplia colección de actividades técnicas. La capa de métodos contiene los métodos definidos para realizar esas actividades de forma eficiente. Se centra en cómo se han de realizar las actividades técnicas. Los personas involucradas usan los métodos para realizar las actividades de ingeniería fundamentales necesarias para construir el software.

Las actividades técnicas fundamentales para construir software son:

‐Análisis: el análisis es el fundamento de todos los trabajos de ingeniería que siguen. Durante el análisis, se crea el modelo de lo que es requerido por el software.
‐Diseño: las actividades de diseño siguen el análisis y traducen el modelo del análisis en cómo el producto proporciona estas funciones por medio del software.
‐Codificación: una vez que el diseño es completo, la codificación traduce el modelo de diseño en una forma ejecutable.
‐Pruebas: el proceso de pruebas ayuda a destapar errores en el código y el diseño subyacente.

También se realizan actividades de soporte: revisiones técnicas y soporte de métricas.
Para varias actividades de proceso, la capa de métodos contiene el correspondiente conjunto de métodos técnicos para usar. Esto abarca un conjunto de reglas, los modos de representación gráficos o basados en texto, y las guías relacionadas para la evaluación de la calidad de la información representada.
Para definir la capa de métodos, es necesario seleccionar un método adecuado de un amplio rango de métodos disponibles.

Consideramos las actividades de análisis y diseño. Hay una amplia variedad de métodos disponibles. El equipo de proyecto debería seleccionar el método que es más apropiado para el problema, el entorno de desarrollo y el conocimiento y experiencia de los miembros del equipo.


Herramientas

La capa de herramientas proporciona soporte a las capas de proceso y métodos centrándose en el significado de la automatización de algunas de las actividades manuales. Las herramientas se pueden utilizar para automatizar las siguientes actividades:

‐Actividades de gestión de proyectos
‐Métodos técnicos usados en la ingeniería del software
‐Soporte de sistemas general
‐Marcos de trabajo para otras herramientas

La automatización ayuda a eliminar el tedio del trabajo, reduce las posibilidades de errores, y hace más fácil usar buenas prácticas de ingeniería del software. Cuando se usan herramientas, la documentación se convierte en una parte integral del trabajo hecho, en vez de ser una actividad adicional. De ahí que la documentación no se tenga que realizar como actividad adicional. Las herramientas se pueden utilizar para realizar actividades de gestión de proyecto así como para actividades técnicas.

Existen una gran variedad de herramientas para múltiples actividades. Entre ellas se pueden destacar las siguientes:

‐Herramientas de gestión de proyectos
‐Herramientas de control de cambios
‐Herramientas de análisis y diseño
‐Herramientas de generación de código
‐Herramientas de pruebas
‐Herramientas de reingeniería
‐Herramientas de documentación
‐Herramientas de prototipos

Estas herramientas soportan las capas de proceso y de métodos en varias actividades.

Referencia:
Ingeniería de Software: Métodos y Ciclos de Vida.
Ministerio de Industria, Turismo y Comercio.

jueves, 9 de junio de 2011

PRUEBAN IPV6

El día de ayer (8/06/11) las grandes empresas relacionadas con las comunicaciones cómo Cisco, Google, Facebook y Microsoft llevaron a prueba el nuevo protocolo de Internet IPV6, con el cual su gran virtud es abastecer de más cuentas de IP.

El objetivo de esta prueba es permitir a los grandes proveedores de contenido de Internet evolucionar con ésta nueva tecnología, sin obstaculizar la navegación de los usuarios. 

Como ya sabemos, cada dispositivo (computadora, celular, tableta, etc.) que se conecta a la red cuenta con un numero denominado protocolo de Internet (IP, por sus siglas en ingles). En la actualidad todos los dispositivos que se conectan a la red cuentan con su cuenta de IP (IPV4), el problema es que éste protocolo es finito, aproximadamente puede haber 4,300 millones de direcciones. En tanto el IPV6 permitirá tener más 340 sextillones de direcciones web, ésta cifra es aproximadamente 340 000 000 000 000 000 000 000 000 000 000 000 000.

Más información:

La Voz Noticias: http://www.lavoz.com.ar/noticias/tecnologia/como-es-ipv6-nuevo-protocolo-internet

CNNExpanción: http://www.cnnexpansion.com/tecnologia/2011/06/08/google-experimenta-el-nuevo-internet

miércoles, 18 de mayo de 2011

¿PORQUÉ NO DEJAR DE ESTUDIAR?

Probablemente esta pregunta sea muy difícil de contestar, me imagino si te preguntara ¿Porqué dejar de estudiar?, sería más fácil responder, probablemente la respuestas serian que ya no quieres estudiar porque no cuentas con los recursos económicos para hacerlos, y tienes que pagar colegiaturas, transporte, alimentación, cooperaciones, libros, materiales didácticos, etc. 

O tal vez estas pensando dejar de estudiar porque no le entiendes a los maestros, no saben explicar, no te tienen pasiencia, no te entienden los maestros, no comprenden por todos los problemas que éstas pasando, ellos no saben que en su casa sus papás se la pasan del chongo, gritándose cosas, que su hermano es una persona irresponsable y que su papá siempre los obliga a realizar las tareas pendientes en el campo o con los animales, su mamá se ensaña a que tienen que realizar todas las tareas de la casa incluso antes de que termina la super novela del "El Equipo". 

Los maestros tampoco comprenden por los problemas que estamos pasando con nuestro novio (a), ayer no me dijo que me quería y por eso hoy vengo triste y sin ganas de seguir estudiando, por eso los maestros me regañan, por que ellos no comprenden que es muy importante que yo me pase platicando con mis amigas/amigos de lo que realizaron ayer en la tarde después de las 11 de la noche que me despedí de ellos, probablemente la bola de maestros que me dan clases no tienen vida social, ni Face tienen.

Bueno creo que me excedí.

El día de ayer leí una noticia en el periódico local, quien lo escribe si no mal recuerdo es un tal Vergas Ch. En esta noticia el narra que un conocido lo invito un día a desayunar, contándole al principio que su hijo quería dejar de estudiar, en ese momento el joven se encontraba estudiando el 5to semestre de Contabilidad. Una vez que desayunaron, se sirvieron café y se pusieron a platicar:

A propósito Miguel, le comentaba a José que estas pensando muy seriamente dejar la escuela, a estas alturas tu ya tienes la madurez suficiente para tomar tus decisiones, probablemente tengas muchos motivos [Validos] para dejar la escuela, pero antes de que des tus argumentos me gustaría que te imaginaras lo siguiente, si tu en este momento dejas la escuela, probablemente podrás encontrar un empleo en alguna tienda departamental (Aurrera, Elektra, Mi Casa, etc.), pero yo te aseguro que el pago que tendrás por lo mucho al mes sera de aproximadamente 3 salarios mínimos y en estas empresas por lo general rotan mucho al personal, ésto quiere decir que constantemente se encuentran despidiendo gente para que no tenga antigüedad laboral, o tal vez encuentres trabajo como policía municipal, o en la academia de policía estatal, que ya les piden por lo menos con la preparatoria. Además, ya andas de noviecillo, va a llegar un momento en que te vas a querer casar y tenes hijos, y estos empleos no te va alcanzar para poder mantener y ofrecerles por lo menos lo básico para vivir.

Sin embargo si tu sigues estudiando la carrera, es muy probable que encuentres trabajo en cualquier empresa que tenga la necesidad de que alguien le lleve la contabilidad, o en algún despacho contable o si se te hace muy difícil encontrar trabajo, puedes llevar la contabilidad de pequeñas empresas que tienen que esta pagando constantemente los impuestos y con ello te vas fogueando y agarrando experiencia para que puedas poner incluso tu propio despacho contable.
Por último, tu vas a tomar la decisión que tu desees, y lo que quiero que sepas que siempre tendrás mi apoyo tomes la decisión que tomes. Pero recuerda que con tu mamá invertimos en ti dinero y esfuerzo los 2 años de Kinder, 6 años en la primaria, 3 años en la secundaria, 3 años en la preparatoria, y ahorita 3 años en la Universidad, son 17 años que vas echar a la basura si tu decisión es no seguir estudiando, y en éste momento sólo te faltan 2 para terminar la Universidad, ¿No crees que es más fácil sufrir 2 años más que tirar 17?

Si estas estudiando el Bachillerato y ya no piensas seguir estudiando, ¿vas a echar a perder 14 años de tu vida? ¿los vas a tirar a la basura?

martes, 17 de mayo de 2011

Día del Internet

Hoy 17 de Mayo se celebra un día más del Internet, ya que la Organización de las Naciones Unidas (ONU) decretara que el 17 de Mayo del año 2006 se celebrará como Día Mundial de las Telecomunicaciones y de la Sociedad de la Información. 

Ésta herramienta en nuestro días es fundamental para podernos comunicar a grandes distancias con un costo bajo. Es muy importante para cualquier tipo de negocio, desde una pequeña tienda hasta los grandes corporativos. 

Se puede decir que todas las empresas planean sus estrategias en base a los servicios y aplicaciones que corren sobre ésta herramienta. 

Pero por otro lado, la gran mayoría de los Mexicanos no tenemos el acceso a éste servicio, en nuestras pequeñas comunidades todavía escaseamos de poder conectarnos a una velocidad decente, pero gracias a que nuestros dignos representantes del gobierno no pueden dejar de dar concesiones y proteger los grandes intereses de los monopolios y duopolios, vamos a seguir esperado éste tipo de servicios que como ya mencione son básicos para cualquier profesionista.

Señor presidente espurio (FECAL), creo que pensando un poquito en los intereses de los Mexicanos que por desgracia tiene usted que servir (no que los Mexicanos te sirvan), lo más correcto desde mi punto de vista en materia de Comunicaciones es que cualquier empresa sea quien sea pueda dar los servicios que desee (Internet, Telefonía, TV de paga, etc.). Para eso hay que obligar a que las empresas bajen los costos de conexión y los servicios se ofrezcan más baratos.