Metodología de desarrollo de software

11
INSTITUTO PRIVADO TECNOLOGICO SPENCER W. KIMBALL BACHILLEATO INDUSTRIAL Y PERITO EN COMPUTACION ANALISIS EN SISTEMAS PROF: ALVARO MARTINEZ METODOLOGIAS PARA EL DESARROLLO DE SOFTWARE ESDRAS NEHEMIAS CALMO LOPEZ SECCION: UNICA GRADO: 5TO. CLAVE: 1 FECHA: 20/05/2015

Transcript of Metodología de desarrollo de software

Page 1: Metodología de desarrollo de software

INSTITUTO PRIVADO TECNOLOGICO SPENCER W. KIMBALL

BACHILLEATO INDUSTRIAL Y PERITO EN COMPUTACION

ANALISIS EN SISTEMAS

PROF: ALVARO MARTINEZ

METODOLOGIAS PARA EL DESARROLLO DE SOFTWARE

ESDRAS NEHEMIAS CALMO LOPEZ

SECCION: UNICA

GRADO: 5TO.

CLAVE: 1

FECHA: 20/05/2015

Page 2: Metodología de desarrollo de software

INTRODUCCION

Una metodología de desarrollo de software se refiere a un framework que es usado para estructurar, planear y controlar el proceso de desarrollo en sistemas de información. A lo largo del tiempo, una gran cantidad de métodos han sido desarrollados diferenciándose por su fortaleza y debilidad y cuáles de ellos son:

• ciclo de vida de desarrollo de software • metodología rup • metodología espiral • metodología encascada

Page 3: Metodología de desarrollo de software

INDICE Metodología de desarrollo de software ............................................................................................................. 1

Enfoques de desarrollo de software ................................................................................................................ 1

Ciclo de vida de desarrollo de software ............................................................................................................ 1

Metodología RUP y Ciclo de Vida ..................................................................................................................... 2

Metodología Espiral……………………………………………………………………………………………………………………………….2

Metodología Encasada……………………………………………………………………………………………………………………………4

Page 4: Metodología de desarrollo de software

Análisis en Sistemas

Por: Esdras Nehemías Calmo López 1

Metodología de desarrollo de software

Metodología de desarrollo de software en ingeniería de software es un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información.

Tres patrones básicos en las metodologías de desarrollo de software.

Enfoques de desarrollo de software

Cada metodología de desarrollo de software tiene más o menos su propio enfoque para el desarrollo de software. Estos son los enfoques más generales, que se desarrollan en varias metodologías específicas. Estos enfoques son los siguientes:

• Modelo en cascada: Framework lineal. • Prototipado: Framework iterativo. • Incremental: Combinación de framework lineal e iterativo. • Espiral: Combinación de framework lineal e iterativo. • RAD: Rapid Application Development, framework iterativo.

Ciclo de vida de desarrollo de software

El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados.

Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se detectan tarde dentro de la fase de implementación. El ciclo de vida permite que los errores se detecten lo antes posible y por lo tanto, permite a los desarrolladores concentrarse en la calidad del software, en los plazos de implementación y en los costos asociados.

Page 5: Metodología de desarrollo de software

Análisis en Sistemas

Por: Esdras Nehemías Calmo López 2

El ciclo de vida básico de un software consta de los siguientes procedimientos:

• Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global. • Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y

examinar cualquier restricción que se pueda aplicar. • Diseño general: requisitos generales de la arquitectura de la aplicación. • Diseño en detalle: definición precisa de cada subconjunto de la aplicación. • Programación (programación e implementación): es la implementación de un lenguaje de programación

para crear las funciones definidas durante la etapa de diseño. • Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se

implementaron de acuerdo con las especificaciones. • Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito

de la prueba de integración que está cuidadosamente documentada. • Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales. • Documentación: sirve para documentar información necesaria para los usuarios del software y para

desarrollos futuros. • Implementación • Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las

actualizaciones secundarias del software (mantenimiento continuo).

El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida de una aplicación dependen del tipo de modelo de ciclo de vida acordado entre el cliente y el equipo de desarrolladores.

Metodología RUP y Ciclo de Vida

El Rational Unified Process o Proceso Unificado de Racional. Es un proceso de ingeniería de software que suministra un enfoque para asignar tareas y responsabilidades dentro de una organización de desarrollo. Su objetivo es asegurar la producción de software de alta y de mayor calidad para satisfacer las necesidades de los usuarios que tienen un cumplimiento al final dentro de un limite de tiempo y presupuesto previsible. Es una metodología de desarrollo iterativo que es enfocada hacia “ diagramas de los casos de uso, y manejo de los riesgos y el manejo de la arquitectura” como tal. El RUP mejora la productividad del equipo ya que permite que cada miembro del grupo sin importar su responsabilidad específica pueda acceder a la misma base de datos incluyendo sus conocimientos. Esto hace que todos compartan el mismo lenguaje, la misma visión y el mismo proceso acerca de cómo desarrollar un software.

MODELO ESPIRAL

Modelo Espiral, propuesto originalmente por Boehm, es un modelo de proceso de software evolutivo que conjuga la naturaleza iterativa de construcción de prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial. Proporciona el potencial para el desarrollo rápido de versiones incrementales del software.

Page 6: Metodología de desarrollo de software

Análisis en Sistemas

Por: Esdras Nehemías Calmo López 3

Funcionamiento del Modelo

En el modelo espiral, el software se desarrolla en una serie de versiones incrementales. Durante las primeras iteracciones, la version incremental podría ser un modelo en papel o un prototipo. Durante las últimas iteraciones, se producen versiones cada vez más completas del sistema diseñado.

Regiones de Tareas del Modelo

El modelo en espiral se divide en un número de actividades de marco de trabajo, también llamadas regiones de tareas. Generalmente, existen entre tres y seis regiones de tareas.

Comunicación con el cliente

Las tareas requeridas para establecer comunicación entre el desarrollador yel cliente.

Planificación

Las tareas requeridas para definir recursos, el tiempo y otra información relacionadas con el proyecto.

Análisis de riesgos

Las tareas requeridas para evaluar riesgos técnicos y de gestión.

Ingeniería

Las tareas requeridas para construir una o más representaciones de la aplicación.

Construcción y acción

Las tareas requeridas para construir, probar, instalar yproporcionar soporte al usuario (por ejemplo: documentación y práctica)

Evaluación del cliente

Las tareas requeridas para obtener la reacción del cliente según la evaluación de las representaciones del software creadas durante la etapa de ingeniería e implementada durante la etapa de instalación. Cada una de las regiones están compuestas por un conjunto de tareas del trabajo, llamado conjunto de tareas, que se adaptan a las características del proyecto que va a emprenderse. Para proyectos pequeños, el número de tareas de trabajo y suformalidad es bajo. Para proyectos mayores ymás críticos cada región de tareas contiene tareas de trabajo que se definen para lograr un nivel más alto de formalidad. En todos los casos, se aplican las actividades de protección.

Page 7: Metodología de desarrollo de software

Análisis en Sistemas

Por: Esdras Nehemías Calmo López 4

Ventajas del Modelo

• Puede adaptarse y aplicarse a lo largo de la vida del software de computadora. • Es un enfoque realista del desarrollo de sistemas y de software a gran escala. • Como el software evoluciona, a medida que progresa el proceso el desarrollador y el cliente comprenden y

reaccionan mejor ante riesgos en cada uno de los niveles evolutivos. • Utiliza la construcción de prototipos como mecanismo de reducción de riesgos. • Permite a quien lo desarrolla aplicar el enfoque de construcción de prototipos en cualquier etapa de

evolución del producto. • Mantiene el enfoque sistemático de los pasos sugeridos por el ciclo de vida clásico, pero lo incorpora al

marco de trabajo iterativo que refleja de forma más realista el mundo real. • Demanda una consideración directa de los riesgos técnicos en todas las etapas del proyecto,y, si se aplica

adecuadamente, debe reducir los riesgos antes de que se conviertan en problemáticos.

Desventajas del Modelo

• Puede resultar difícil convencer a grandes clientes (particularmente en situaciones bajo contrato) de que el enfoque evolutivo es controlable.

• Requiere una considerable habilidad para la evaluación del riesgo. • No se ha utilizado tanto como los paradigmas lineales secuenciales o de construcción de prototipos.

Fuentes

• Ingeniería de Software, Un enfoque Práctico, Roger S. Pressman.

METODOLOGÍA ENCASCADA También conocido como modelo clásico, modelo tradicional o modelo lineal secuencial. Él método de la cascada es considerado como el enfoque clásico para el ciclo de vida del desarrollo de sistemas, se puede decir que es un método puro que implica un desarrollo rígido. está es una secuencia de actividades(o etapas) que consisten en el análisis de requerimientos, él diseño ,la implementación, la integración y las pruebas .

• El análisis de requerimientos consiste en reunir las necesidades del producto y casi siempre su salida es texto.

• El diseño describe la estructura interna del producto y suele representarse con diagramas y texto. • La implementación significa programación. Producto de esta etapa es el código en cualquier nivel,

incluido el producido por sistemas de generación automática. • La integración es el proceso de integración es el proceso de ensamblar las partes para completar el

producto.

Page 8: Metodología de desarrollo de software

Análisis en Sistemas

Por: Esdras Nehemías Calmo López 5

Es caracterizado por ordenar de manera rigurosa las etapas del ciclo de vida de software, dado que el comienzo de cada etapa debe esperar a la finalización de la inmediata anterior. Cuando la revisión determina que el proyecto no está listo para pasar a la siguiente etapa, permanece en la etapa actual hasta que esté preparado. Y debido a que el proceso está planeado es más fácil determinar costos y los plazos. Esté modelo puede ser visto como un modelo con forma de cascada de agua con varios saltos, en la que cada salto representa cada una de las fases del ciclo de vida.

La metodología en cascada es esencialmente:

1. El inicio y el alcance del proyecto 2. La planificación del proyecto (calendario, recursos necesarios, costo) 3. Definición de las necesidades del negocio y el análisis en detalle dela solución

Page 9: Metodología de desarrollo de software

Análisis en Sistemas

Por: Esdras Nehemías Calmo López 6

4. La creación de la solución 5. Prueba que la solución funciona. La entrega de la solución a su público objetivo 6. Cierre del proyecto.

Ventajas

1. Permite la departamentalización y control de gestión. 2. El horario se establece con los plazos normalmente adecuados para cada etapa de desarrollo. 3. Este proceso conduce a entregar el proyecto a tiempo. 4. Es sencilla y facilita la gestión de proyectos. 5. Permite tener bajo control el proyecto. 6. Limita la cantidad de interacción entre equipos que se produce durante el desarrollo.

Criticas

• No refleja realmente el proceso de desarrollo del software. Ya que la mayoría de los que desarrollan proyectos no cumple con este lineamiento.

• Se tarda mucho tiempo en pasar por todo el ciclo • La aplicación de la metodología en cascada se orienta mejor al desarrollo de proyectos de corto plazo, de

poca innovación y proyectos definitivos y detallados. • Metodología pueden confundir al equipo profesional en las etapas tempranas del proyecto. • No es frecuente que el cliente o usuario final explicite clara y completamente los requisitos.

Page 10: Metodología de desarrollo de software

CONCLUSIONES

• En este trabajo se presenta resumidamente el contexto en el que surgen las metodologías agiles, sus valores principios comparaciones con la metodologías.

• Existen diversas metodologías y tipos de modelos para desarrollar un software.

• Para desarrollar un producto de software se requiere de todo un proceso.

Page 11: Metodología de desarrollo de software

E-GRAFIA

http://wikipedia.com

http://google.com

http://metodologiaencascada.blogspot.com/