viernes, 22 de mayo de 2015

Scrum


ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ
MANUEL FÉLIX LÓPEZ


CARRERA INFORMÁTICA

    SEMESTRE  SÉPTIMO           PERIODO  ABR 2015/SEP 2015
TEMA:

SCRUM
MATERIA:

INGENIERÍA DE SOFTWARE

AUTOR:

CARLOS A. ZAMBRANO VIDAL


FACILITADORA:

ING. HIRAIDA SANTANA



CALCETA,  MAYO 2015


INTRODUCCIÓN

Para el estudio de cada una de las actividades a realizarse en uno de desarrollo de software dentro de un proceso de análisis es necesario tener un equipo de trabajo para así designarle a cada uno una tarea o un rol que ayude en el fortalecimiento del equipo para esto en el presente informe se detallaran la metodología scrum que es una metodología ágil y flexible para gestionar el desarrollo de software, promueve la innovación, motivación y compromiso del equipo que forma parte del proyecto, promoviendo que los profesionales encuentren un ámbito propicio para desarrollar sus capacidades.

MARCO TEÓRICO

SCRUM

Los principios Scrum son congruentes con el manifiesto ágil y se utilizan para guiar actividades de desarrollo dentro de un proceso de análisis que incorpora las siguientes actividades estructurales: requerimientos, análisis, diseño, evolución y entrega. Dentro de cada actividad estructural, las tareas del trabajo ocurren con un patrón del proceso.
Retraso: lista de prioridades de los requerimientos o características del proyecto que dan al cliente un valor del negocio. Es posible agregar en cualquier momento otros aspectos al retraso (ésta es la forma en la que se introducen los cambios). El gerente del proyecto evalúa el retraso y actualiza las prioridades según se requiera.
Sprints: consiste en unidades de trabajo que se necesitan para alcanzar un requerimiento definido en el retraso que debe ajustarse en una caja de tiempo14 predefinida (lo común son 30 días). Durante el sprint no se introducen cambios (por ejemplo, aspectos del trabajo retrasado). Así, el sprint permite a los miembros del equipo trabajar en un ambiente de corto plazo pero estable. Reuniones Scrum: son reuniones breves (de 15 minutos, por lo general) que el equipo Scrum efectúa a diario. Hay tres preguntas clave que se pide que respondan todos los miembros del equipo
Un líder del equipo: llamado maestro Scrum, dirige la junta y evalúa las expuestas de cada persona. La junta Scrum ayuda al equipo a descubrir los problemas potenciales tan pronto como sea posible. Asimismo, estas juntas diarias llevan a la “socialización del conocimiento, con lo que se promueve una estructura de equipo con organización propia (Pressman, 2010)
Demostraciones preliminares: entregar el incremento de software al cliente de modo que la funcionalidad que se haya implementado pueda demostrarse al cliente y éste pueda evaluarla.
Es importante notar que las demostraciones preliminares no contienen toda la funcionalidad planeada, sino que éstas se entregarán dentro de la caja de tiempo establecida.
SCRUM, que ilustra como una metodología para la administración de proyectos, es aplicada para gestionar el proyecto de TFA, específicamente desde la concepción de la idea, su proceso de elaboración hasta concretar la presentación para su aprobación formal (Mariño y Alfonzo, 2014).

CONCLUSIONES

Luego de haber estudiado esta metodología se llega a la conclusión q es una metodología ágil y flexible para gestionar el desarrollo de software debido a su trabajo en equipo y la asignación de tareas a cumplir por cada una de las partes y teniendo en cuentas sus actividades estructurales: requerimientos, análisis, diseño, evolución y entrega. Donde cada una actúa de acuerdo a un patrón de proceso que permite tener un orden de actividades. Una de las bases de un scrum es que aquí se trabajara en equipo teniendo reuniones continuas, eligiendo un líder el cual va a dirigir la junta y capaz de dirigir al equipo mostrando sus mejores capacidades y dando las demostraciones preliminares para ir viendo el avance que se tiene de acuerdo a las necesidades del cliente.

BIBLIOGRAFÍA

Pressman, R. 2010. INGENIERÍA DEL SOFTWARE. Un enfoque práctico. Séptima edición.
Mariño, S y Alfonzo, P. 2014. Implementación de SCRUM en el diseño del proyecto del Trabajo Final de Aplicación. (En linea). Rev. Scientia Et Technica,CO. Vol. 19. Nº. 4. Consultado, 27  mayo del 2015. Formato PDF. Disponible en: http://www.redalyc.org/pdf/849/84933912009.pdf


viernes, 15 de mayo de 2015

Metodologías de Desarrollo Agil


ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ
MANUEL FÉLIX LÓPEZ


CARRERA INFORMÁTICA

    SEMESTRE  SÉPTIMO           PERIODO  ABR 2015/SEP 2015
TEMA:

METODOLOGIAS DE DESARROLLO AGIL
MATERIA:

INGENIERÍA DE SOFTWARE

AUTOR:

CARLOS A. ZAMBRANO VIDAL


FACILITADORA:

ING. HIRAIDA SANTANA



CALCETA,  MAYO 2015


INTRODUCCIÓN

Las metodologías ágiles son sin duda uno de los temas recientes en ingeniería de software que están acaparando gran interés. Además ya es un área con cabida en prestigiosas revistas internacionales. Las metodologías ágiles hacen prever una fuerte proyección industrial. Por un lado, para muchos equipos de desarrollo el uso de metodologías tradicionales les resulta muy lejano a su forma de trabajo actual considerando las dificultades de su introducción e inversión asociada en formación y herramientas.

MARCO TEÓRICO

METODOLOGIAS DE DESARROLLO AGIL

La agilidad se ha convertido en la palabra mágica de hoy para describir un proceso del software moderno.
Todos son ágiles. Un equipo ágil es diestro y capaz de responder de manera apropiada a los cambios. El cambio es de lo que trata el software en gran medida. Hay cambios en el software que se construye, en los miembros del equipo, debidos a las nuevas tecnologías, de todas clases y que tienen un efecto en el producto que se elabora o en el proyecto que lo crea. Deben introducirse apoyos para el cambio en todo lo que se haga en el software; en ocasiones se hace porque es el alma y corazón de éste. Un equipo ágil reconoce que el software es desarrollado por individuos que trabajan en equipo, y que su capacidad, su habilidad para colaborar, es el fundamento para el éxito del proyecto.

QUE ES UN PROCESO ÁGIL

Cualquier proceso del software ágil se caracteriza por la forma en la que aborda cierto número de suposiciones clave cerca de la mayoría de proyectos de software:
1. Es difícil predecir qué requerimientos de software persistirán y cuáles cambiarán. También es difícil pronosticar cómo cambiarán las prioridades del cliente a medida que avanza el proyecto.
2. Para muchos tipos de software, el diseño y la construcción están imbricados. Es decir, ambas actividades deben ejecutarse en forma simultánea, de modo que los modelos de diseño se prueben a medida que se crean. Es difícil predecir cuánto diseño se necesita antes de que se use la construcción para probar el diseño.
3. El análisis, el diseño, la construcción y las pruebas no son tan predecibles como nos gustaría (desde un punto de vista de planeación).
Las metodologías ágiles son métodos de desarrollo de software en los que las necesidades y soluciones evolucionan a través de una colaboración estrecha entre equipos multidisciplinarios. Se caracterizan por enfatizar la comunicación frente a la documentación, por el desarrollo evolutivo y por su flexibilidad.
El diseño y el desarrollo de software están intercalados. Por ello se realizarán conjuntamente, probando el diseño a medida que se crea, pues es complicado predecir cuánto diseño es necesario antes de llegar a implementarlo.
El análisis, el diseño y la implementación no son predecibles desde el punto de vista de la planificación.
Teóricamente, la agilidad se puede aplicar a cualquier proceso de software, sin embargo han surgido modelos de proceso propios con esta filosofía. Es este tipo de modelos, según el Manifiesto Ágil publicado en 2001, se valora lo siguiente:
A los individuos sobre los procesos y herramientas. Pues nada sustituye a las personas a pesar de todas las ayudas que existen para desarrollar software. Toda la importancia hay que dársela a las personas, que deben permanecer en un primer plano.
Al software funcionando sobre la documentación exhaustiva. Esto se debe a que había llegado un punto en el que la documentación de un trabajo había alcanzado tanta importancia como el objeto de trabajo en sí mismo, el producto. Cuando realmente la mayor atención debe estar puesta siempre en lo que queremos construir, y lo demás debería ser secundario.
La colaboración del cliente sobre la negociación de un contrato. A la hora de sacar un proyecto adelante, la forma más productiva siempre será estableciendo un marco de colaboración y confianza con quien nos lo encarga. Lo que estaba cobrando mayor importancia antaño era cerrar un contrato atado que sirviese por encima de todo como una herramienta de protección, de manera que el cliente y el equipo parecían partes enfrentadas, cuando en realidad comparten objetivos e intereses.
La respuesta al cambio sobre seguir un plan. Se trata de apreciar la incertidumbre como un componente básico del trabajo, de tal manera que la adaptabilidad y la flexibilidad se convierten en virtudes y no en defectos de la manera de trabajar del equipo. Por norma general, el seguimiento ciego de un plan suele llevar al fracaso si no se puede corregir la dirección ante los inevitables cambios que van surgiendo.

CONCLUSIONES

Para obtener un software de calidad aplicando las teorías ágiles de desarrollo es importante seguir muy ceñidamente los valores y principios ágiles para llegar al objetivo deseado. Las metodologías ágiles reducen el coste de desarrollo y mantenimiento del software.

BIBLIOGRAFÍA

Pressman, R. 2010. INGENIERÍA DEL SOFTWARE. Un enfoque práctico. Séptima edición.
Mariño, S y Alfonzo, P. 2014. Implementación de SCRUM en el diseño del proyecto del Trabajo Final de Aplicación. (En linea). Rev. Scientia Et Technica,CO. Vol. 19. Nº. 4. Consultado, 27  may del 2015. Formato PDF. Disponible en: http://www.redalyc.org/pdf/849/84933912009.pdf






jueves, 7 de mayo de 2015

Modelos de Procesos Especializados


ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ
MANUEL FÉLIX LÓPEZ


CARRERA INFORMÁTICA

    SEMESTRE  SÉPTIMO           PERIODO  ABR 2015/SEP 2015
TEMA:

MODELOS DE PROCESOS ESPECIALIZADOS

MATERIA:

INGENIERÍA DE SOFTWARE

AUTOR:

CARLOS A. ZAMBRANO VIDAL


FACILITADORA:

ING. HIRAIDA SANTANA



CALCETA,  MAYO 2015

INTRODUCCIÓN

A medida de que a avanzando el tiempo nos damos cuenta que las cosas van cambiando que todo se va actualizando es por esto que en los procesos de software se van incrementando nuevos modelos que dan más soluciones a los problema en dichos proyectos es por esto que tenemos los modelos de procesos especializados que son mucho más avanzados que ayudan a elaborar proyectos grandes porque son enfoque de ingeniería de software especializado o definido muy específicamente.

MARCO TEÓRICO

MODELOS DE PROCESOS ESPECIALIZADOS

DESARROLLO BASADO EN COMPONENTES

El modelo de desarrollo basado en componentes incorpora muchas de las características del modelo espiral. Es de naturaleza evolutiva y demanda un enfoque iterativo para la creación de software. Sin embargo, el modelo de desarrollo basado en componentes construye aplicaciones a partir de fragmentos de software prefabricados.
Las actividades de modelado y construcción comienzan con la identificación de candidatos de componentes. Éstos pueden diseñarse como módulos de software convencional o clases orientadas a objetos o paquetes de clases. Sin importar la tecnología usada para crear los componentes, el modelo de desarrollo basado en componentes incorpora las etapas siguientes (se implementan con el uso de un enfoque evolutivo):
1.    Se investigan y evalúan, para el tipo de aplicación de que se trate, productos disponibles basados en componentes.
2.    Se consideran los aspectos de integración de los componentes.
3.    Se diseña una arquitectura del software para que reciba los componentes.
4.    Se integran los componentes en la arquitectura.
5.    Se efectúan pruebas exhaustivas para asegurar la funcionalidad apropiada.
El modelo del desarrollo basado en componentes lleva a la reutilización del software, y eso da a los ingenieros de software varios beneficios en cuanto a la mensurabilidad. Si la reutilización de componentes se vuelve parte de la cultura, el equipo de ingeniería de software tiene la posibilidad tanto de reducir el ciclo de tiempo del desarrollo como el costo del proyecto.

MODELO DE MÉTODOS FORMALES

El modelo de métodos formales agrupa actividades que llevan a la especificación matemática formal del software de cómputo. Los métodos formales permiten especificar, desarrollar y verificar un sistema basado en computadora por medio del empleo de una notación matemática rigurosa. Ciertas organizaciones de desarrollo de software aplican una variante de este enfoque, que se denomina ingeniería de software de quirófano.
Cuando durante el desarrollo se usan métodos formales, se obtiene un mecanismo para eliminar muchos de los problemas difíciles de vencer con otros paradigmas de la ingeniería de software. Lo ambiguo, incompleto e inconsistente se descubre y corrige con más facilidad, no a través de una revisión ad hoc sino con la aplicación de análisis matemático. Si durante el diseño se emplean métodos formales, éstos sirven como base para la verificación del programa, y así permiten descubrir y corregir errores que de otro modo no serían detectados.
Aunque el modelo de los métodos formales no es el más seguido, promete un software libre de defectos. Sin embargo, se han expresado preocupaciones acerca de su aplicabilidad en un ambiente de negocios:
      El desarrollo de modelos formales consume mucho tiempo y es caro.
      Debido a que pocos desarrolladores de software tienen la formación necesaria para aplicar métodos formales, se requiere mucha capacitación.
      Es difícil utilizar los modelos como mecanismo de comunicación para clientes sin complejidad técnica.
A pesar de estas preocupaciones, el enfoque de los métodos formales ha ganado partidarios entre los desarrolladores que deben construir software de primera calidad en seguridad (por ejemplo, control electrónico de aeronaves y equipos médicos), y entre los desarrolladores que sufrirían graves pérdidas económicas si ocurrieran errores en su software.

DESARROLLO DE SOFTWARE ORIENTADO A ASPECTOS

Sin importar el proceso del software que se elija, los constructores de software complejo implementan de manera invariable un conjunto de características, funciones y contenido de información localizados. Estas características localizadas del software se modelan como componentes (clases orientadas a objetos) y luego se construyen dentro del contexto de una arquitectura de sistemas. A medida que los sistemas modernos basados en computadora se hacen más sofisticados (y complejos), ciertas preocupaciones —propiedades que requiere el cliente o áreas de interés técnico— se extienden a toda la arquitectura. Algunas de ellas son las propiedades de alto nivel de un sistema (por ejemplo, seguridad y tolerancia a fallas). Otras afectan a funciones (aplicación de las reglas de negocios), mientras que otras más son sistémicas (sincronización de la tarea o administración de la memoria).
Cuando las preocupaciones afectan múltiples funciones, características e información del sistema, es frecuente que se les llame preocupaciones globales. Los requerimientos del aspecto definen aquellas preocupaciones globales que tienen algún efecto a través de la arquitectura del software. El desarrollo de software orientado a aspectos (DSOA), conocido también como programación orientada a aspectos (POA), es un paradigma de ingeniería de software relativamente nuevo que proporciona un proceso y enfoque metodológico para definir, especificar, diseñar y construir aspectos: “mecanismos más allá de subrutinas y herencia para localizar la expresión de una preocupación global”.

CONCLUSIONES

Se concluye que los modelos de procesos especializado soy muy importante para la creación de un software especializado. El desarrollo basado en componentes es reutilizable de mucha ayuda porque además de eso tiene características del modelo espiral lo que hace más eficaz su modelo.
Modelos de métodos formales por medios de una notación matemática logra desarrollar y verificar sistemas computacionales.

BIBLIOGRAFÍA
Pressman, R. 2010. INGENIERÍA DEL SOFTWARE. Un enfoque práctico. Séptima edición.