Fundamentos de ingenieria de software - metodologias.pdf

Fundamentos de ingeniería de software, metodologías de desarrollo de software.

Fundamentos de Ingeniería de software
2017
METODOLOGÍAS DE DESARROLLO DE SOFTWARE
JOSÉ GUSTAVO ZIMBRÓN LARA
INGENIERÍA EN SISTEMAS COMPUTACIONALES | 5 IS1 | Juan Francisco Guzmán Gutiérrez
AGOSTO – DICIEMBRE 2017 | 29 de agosto de 2017
Clásicas
Cascada
El modelo de cascada original se desarrolló entre las décadas de los años 60 y 70,y se define como
una secuencia de actividades, donde la estrategia principal es seguir el progreso del desarrollo de
software hacia puntos de revisión bien definidos
Fases del modelo cascada:
· Ingeniería y análisis del sistema: análisis y de diseño de todos los componentes del sistema
computacional.
· Análisis de requisitos software: se debe conocer que necesita el usuario para saber que
necesidades debemos cubrir.
· Diseño: en esta fase se realizan los algoritmos necesarios para que se cumplan los
requerimientos del usuario, así como también los análisis necesarios para saber que herramientas
usar en la etapa de codificación. se dividen en:
1. Diseño de alto nivel o arquitectónico.
2. Diseño detallado.
Codificación: es la fase de programación propiamente dicha
Pruebas: las componentes una vez programadas, se ensamblan para formar el sistema y se
demuestra que trabaja correctamente antes de ser puesto en práctica por el usuario. Existen varios
tipos de pruebas:
· Pruebas de unidad.
· Pruebas de integración.
· Pruebas de sistema.
Mantenimiento: el software necesitará cambios después de la entrega. los tipos de mantenimiento
son:
· Mantenimiento preventivo y perfectivo.
Incremental
El modelo incremental consiste de un desarrollo inicial de la arquitectura completa del sistema,
seguida de incrementos y versiones parciales.
Cada incremento agrega funcionalidad adicional o mejorada sobre el sistema. Conforme se
completa cada etapa, se verifica e integra la última versión con las demás versiones ya completadas
del sistema.
Durante cada incremento, el sistema se evalúa con respecto al desarrollo de versiones futuras. Las
actividades se dividen en procesos y subprocesos, dando lugar al término fábrica de software (en
inglés, software Factory). Para que la secuencia de desarrollo sea exitosa, es esencial definir etapas
que no requieran cambiar los resultados anteriores al agregar nuevas. Por lo tanto, es importante
comprender al inicio los requisitos completos del sistema, algo que normalmente es muy difícil de
lograr.
Evolutivo
Este modelo considera que el desarrollo de sistemas es un proceso de cambios progresivos
mediante deltas (cambios) de especificación de requerimientos. El modelo evolutivo es también
conocido como desarrollo rápido de aplicaciones (en inglés, RAD—rapid application development),
que se basa tradicionalmente en el uso de prototipos (en inglés, rapid prototyping).
Un prototipo de software se considera como un medio para especificar los requisitos y un enlace de
comunicación entre el usuario final y el diseñador, ayudando a reducir el riesgo de carecer de
requerimientos iniciales completos y estables.
Espiral
El modelo espiral, desarrollado durante la década de los años 80, es una extensión del modelo de
cascada.
Cada ciclo del modelo espiral termina con una revisión que discute los logros actuales y los planes
para el siguiente ciclo. Al igual que el modelo evolutivo, el modelo espiral incorpora una estrategia
de uso de prototipos como parte del manejo del riesgo.
Prototipos
Un prototipo es una versión preliminar, intencionalmente incompleta o reducida de un sistema. El
uso de prototipos es una estrategia que puede aplicarse en casi todas las actividades del proceso de
software. El propósito de los prototipos es obtener de manera rápida la información necesaria como
ayuda en la toma de decisiones.
Los siguientes son algunos tipos de prototipo:
• Los prototipos de requisitos permiten que los usuarios perciban la funcionalidad del
producto final a través del diseño de interfaces o pantallas del sistema. El objetivo es ayudar
a aclarar los requisitos y solicitar nuevas ideas.
• Los prototipos de análisis permiten generar rápidamente una arquitectura general que
considere las características principales del sistema de acuerdo con la especificación de
requisitos.
• Los prototipos de diseño permiten explorar y comprender la arquitectura particular de un
sistema para poder evaluar aspectos como cuellos de botella (rendimiento y uso de
memoria) o incoherencias en el diseño.
Basado en componentes
Ingeniería de Software Basada en Componentes (ISBC).
La ISBC parte de la idea de la integración de componentes software ya existente
(Desarrollo ascendente o bottom-up). Las tecnologías de objetos proporcionan el marco de trabajo
técnico, para la ingeniería de software, para un modelo de proceso basado en componentes. El
paradigma orientado a objetos enfatiza la creación de clases que encapsulan tanto los datos como
los algoritmos para manejar esos datos. Si se diseñan y se implementan adecuadamente, las clases
Orientadas a objetos son reutilizables por diferentes aplicaciones.
Fases de Ingeniería y Construcción y Acción de éste modelo por una sola fase de Construcción y
adaptación de la Ingeniería:
• Comunicación con el cliente- las tareas requeridas para establecer comunicación entre el
desarrollador y el 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.
• Construcción y adaptación de la Ingeniería
• 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.
Metodologías Agiles
Esta metodología nace en febrero del 2001 en una reunión celebrada en Utah EEUU.
Principales ideas de la metodología ágil:
• Se encarga de valorar al individuo y las iteraciones del equipo más que a las herramientas o
los procesos utilizados.
• Se hace mucho más importante crear un producto software que funcione que escribir
mucha documentación.
• El cliente está en todo momento colaborando en el proyecto.
• Es más importante la capacidad de respuesta ante un cambio realizado que el seguimiento
estricto de un plan
Otras metodologías
Scrum
Es un marco de trabajo para la gestión y desarrollo de software basada en un proceso iterativo e
incremental, Scrum estaba enfocado a la gestión de procesos de desarrollo de software, puede ser
utilizado en equipos de mantenimiento de software, o en una aproximación de gestión de
programas: Scrum de Scrums.
Programación Extrema
La programación extrema o eXtreme Programming (XP) es una metodología de desarrollo de
la ingeniería de software formulada por Kent Beck, autor del primer libro sobre la materia, Extreme
Programming Explained: Embrace Change(1999). Es el más destacado de los procesos ágiles de
desarrollo de software.
Ganar Ganar
El modelo ganar-ganar (en inglés, win-win) extiende el modelo espiral, haciendo énfasis en la
identificación de las condiciones de ganancia para todas las partes, creando un plan para alcanzar
las condiciones ganadoras y evitar los riesgos correspondientes. Se establecen las reglas para definir
el proceso de desarrollo del proyecto, tomando en cuenta todas las partes implicadas. El modelo no
necesita mucho tiempo de gestión. Esto permite utilizarlo tanto en proyectos pequeños como
grandes.
Se consideran cuatro los ciclos, cada uno compuesto de cuatro actividades.
• Ciclo 0 (grupos de aplicación) se determina la viabilidad de un grupo apropiado de
aplicaciones.
• Ciclo 1 (objetivos del ciclo de vida de la aplicación) se desarrollan los objetivos del ciclo de
vida, incluyendo prototipos, planes y especificaciones de aplicaciones individuales, y se
verifica la existencia de al menos una arquitectura viable para cada aplicación. En el
• Ciclo 2 (arquitectura del ciclo de vida de la aplicación) se establece una arquitectura del ciclo
de vida detallado, se verifica su viabilidad, y se determina que no existen riesgos mayores
en satisfacer los planes y especificaciones.
• Ciclo 3 (capacidad de operación inicial) se alcanza una capacidad operacional inicial para
cada etapa crítica del proyecto en el ciclo de vida del software.
Proceso Unificado
El proceso unificado considera como aspecto esencial del desarrollo de software una visión que
parte de la arquitectura del sistema, siguiendo un proceso iterativo e incremental. El proceso
considera e integra diferentes aspectos, como son los ciclos, fases, flujos de trabajo, mitigación de
riesgo, control de calidad, administración de proyecto y control de configuración.
Ingeniería Web
Es una aplicación de software que permite al usuario recuperar y visualizar documentos de
hipertexto, comúnmente descritos en HTML.
Los sitios web pueden ser categorizados de la siguiente forma:
• Sólo estático que se enfoca en la organización de la estructura y el contenido, en la forma
como se va a presentar la información y que sea fácil de manejar para cualquier usuario,
pero debe tener en cuenta la eficiencia y la confiabilidad.
• Sitio estático con formularios de entrada este sitio tiene las mismas características que el
anterior, adicionándole que él le permite a los usuarios la interacción por medio de
cuestionarios, comentario y sugerencias.
• Sitio con acceso de datos dinámicos aquí, además de las características antes mencionadas,
cuenta con bases de datos en las cuales el usuario puede realizar consultas y búsquedas.
• Sitio creado dinámicamente en este sitio los requerimientos son parecidos, pero deben
suplir con las necesidades de cada usuario; creando sitios dinámicos que sean compatibles
con el entorno de navegación de cada usuario.
• Aplicación de software basada en la Web este sitio puede tener todas las características
antes mencionadas, pero logrando un parecido con una implementación cliente/servidor
comúnmente conocido que a un sitio web estático.
En general, las aplicaciones web, necesitan ser funcionales, mantenible, escalables y seguras. Como
podemos ver, la actual demanda de las aplicaciones web es totalmente diferente de las aplicaciones
convencionales y por lo tanto hay una gran necesidad de la ingeniería web.
Referencias:
Blog spot y Google Académico

Recomendados

Unidad 3 los modelos de procesos de software por
Unidad 3 los modelos de procesos de softwareUnidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de softwareAndhy H Palma
373 vistas8 diapositivas
Unidad 2. metodologías de desarrollo DE SOFTWARE por
Unidad 2. metodologías de desarrollo DE SOFTWAREUnidad 2. metodologías de desarrollo DE SOFTWARE
Unidad 2. metodologías de desarrollo DE SOFTWAREPablo Daniel Bazan Carmona
10.6K vistas24 diapositivas
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de... por
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...Joel Fernandez
14.2K vistas18 diapositivas
Unidad 4 Modelos de Procesos del Software por
Unidad 4 Modelos de Procesos del SoftwareUnidad 4 Modelos de Procesos del Software
Unidad 4 Modelos de Procesos del Softwarerezzaca
327 vistas36 diapositivas
Metodologia rup por
Metodologia rupMetodologia rup
Metodologia rupyurikodelcarmen
6.9K vistas4 diapositivas
Modelo en cascada pemo por
Modelo en cascada pemoModelo en cascada pemo
Modelo en cascada pemoPedro Montecinos Gaete
8.7K vistas59 diapositivas

Más contenido relacionado

La actualidad más candente

4.1 Proceso Unificado De Rational por
4.1 Proceso Unificado De Rational4.1 Proceso Unificado De Rational
4.1 Proceso Unificado De RationalJulio Pari
852 vistas40 diapositivas
Principios de RUP por
Principios de RUPPrincipios de RUP
Principios de RUPradoslawkb
1.5K vistas1 diapositiva
MODELO DE PROCESOS DEL SOFTWARE por
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
23.8K vistas12 diapositivas
Modelos y capas de la ingenieria de software por
Modelos y capas  de la ingenieria de softwareModelos y capas  de la ingenieria de software
Modelos y capas de la ingenieria de softwarejhonatanalex
16.8K vistas17 diapositivas
Fases del rup por
Fases del rupFases del rup
Fases del rupMaraJosQuilcaguanoTo
1K vistas31 diapositivas
Proceso unificado y modelo V por
Proceso unificado y modelo VProceso unificado y modelo V
Proceso unificado y modelo VVivitaGranizo
2.1K vistas5 diapositivas

La actualidad más candente(19)

4.1 Proceso Unificado De Rational por Julio Pari
4.1 Proceso Unificado De Rational4.1 Proceso Unificado De Rational
4.1 Proceso Unificado De Rational
Julio Pari852 vistas
Principios de RUP por radoslawkb
Principios de RUPPrincipios de RUP
Principios de RUP
radoslawkb1.5K vistas
MODELO DE PROCESOS DEL SOFTWARE por Micky Jerzy
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
Micky Jerzy23.8K vistas
Modelos y capas de la ingenieria de software por jhonatanalex
Modelos y capas  de la ingenieria de softwareModelos y capas  de la ingenieria de software
Modelos y capas de la ingenieria de software
jhonatanalex16.8K vistas
Proceso unificado y modelo V por VivitaGranizo
Proceso unificado y modelo VProceso unificado y modelo V
Proceso unificado y modelo V
VivitaGranizo2.1K vistas
Metogologias de Desarrollo de Software Tradicionales VS Agiles por fmmeson
Metogologias de Desarrollo de Software Tradicionales VS AgilesMetogologias de Desarrollo de Software Tradicionales VS Agiles
Metogologias de Desarrollo de Software Tradicionales VS Agiles
fmmeson14.6K vistas
Metodología rup final por MariaC7
Metodología rup finalMetodología rup final
Metodología rup final
MariaC73.8K vistas
Grupo 5-modelos-de-procesos-de-software por PrimoLaura
Grupo 5-modelos-de-procesos-de-softwareGrupo 5-modelos-de-procesos-de-software
Grupo 5-modelos-de-procesos-de-software
PrimoLaura785 vistas
Modelos de desarrollo de software por jairo sanchez
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
jairo sanchez1.1K vistas
Modelos Del ciclo de vida del Software por guest37183b
Modelos Del ciclo de vida del SoftwareModelos Del ciclo de vida del Software
Modelos Del ciclo de vida del Software
guest37183b20.3K vistas
Fases de RUP - PDF por radoslawkb
Fases de RUP - PDFFases de RUP - PDF
Fases de RUP - PDF
radoslawkb8.4K vistas
Ciclo de vida de un proyecto de Software. por Edwin Belduma
Ciclo de vida de un proyecto de Software.Ciclo de vida de un proyecto de Software.
Ciclo de vida de un proyecto de Software.
Edwin Belduma4.9K vistas
4 Clase Metodologia De Desarrolo De Software por Julio Pari
4 Clase Metodologia De Desarrolo De Software4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De Software
Julio Pari23.9K vistas

Similar a Fundamentos de ingenieria de software - metodologias.pdf

Unidad 3 los modelos de procesos de software por
Unidad 3 los modelos de procesos de softwareUnidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de softwareAndhy H Palma
268 vistas8 diapositivas
Metodología de desarrollo de software por
Metodología de desarrollo de softwareMetodología de desarrollo de software
Metodología de desarrollo de softwareAbner Garcia
417 vistas11 diapositivas
Modelos de proceso del software por
Modelos de proceso del softwareModelos de proceso del software
Modelos de proceso del softwareDiego Llusco
776 vistas18 diapositivas
Modelo de cascadaa por
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaamendez45
5.5K vistas9 diapositivas
Mod 6.2 introducción al análisis por
Mod 6.2 introducción al análisisMod 6.2 introducción al análisis
Mod 6.2 introducción al análisisPedro Montecinos Gaete
289 vistas38 diapositivas
metodologia por
metodologia metodologia
metodologia germaniabetty
308 vistas33 diapositivas

Similar a Fundamentos de ingenieria de software - metodologias.pdf(20)

Unidad 3 los modelos de procesos de software por Andhy H Palma
Unidad 3 los modelos de procesos de softwareUnidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de software
Andhy H Palma268 vistas
Metodología de desarrollo de software por Abner Garcia
Metodología de desarrollo de softwareMetodología de desarrollo de software
Metodología de desarrollo de software
Abner Garcia417 vistas
Modelos de proceso del software por Diego Llusco
Modelos de proceso del softwareModelos de proceso del software
Modelos de proceso del software
Diego Llusco776 vistas
Modelo de cascadaa por mendez45
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
mendez455.5K vistas
Análisis de Sistemas por T.I.C
Análisis de SistemasAnálisis de Sistemas
Análisis de Sistemas
T.I.C1.5K vistas
Investigación de modelos por bren1995
Investigación de modelos Investigación de modelos
Investigación de modelos
bren1995296 vistas
Los modelos de desarrollo de software (hendrick rodriguez ) por Hendrick Rodriguez
Los modelos de desarrollo de software (hendrick rodriguez )Los modelos de desarrollo de software (hendrick rodriguez )
Los modelos de desarrollo de software (hendrick rodriguez )
Hendrick Rodriguez683 vistas
1. ciclo de_vida_de_software por Miguel Castro
1. ciclo de_vida_de_software1. ciclo de_vida_de_software
1. ciclo de_vida_de_software
Miguel Castro1.1K vistas
T2 infoiii-s por home
T2 infoiii-sT2 infoiii-s
T2 infoiii-s
home99 vistas
Modelos de desarrollo de software por Radel Fuentes
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
Radel Fuentes7.9K vistas
Ingeniería de software Definicion,inicion,importancia y utilidad por XKWDX
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidad
XKWDX44.7K vistas
Jhostin vasquez modelos de software por jhostinvasquez
Jhostin vasquez   modelos de softwareJhostin vasquez   modelos de software
Jhostin vasquez modelos de software
jhostinvasquez16 vistas

Último

PRESENTACIÓN.pptx por
PRESENTACIÓN.pptxPRESENTACIÓN.pptx
PRESENTACIÓN.pptxsusanaasotoleiva
6 vistas1 diapositiva
Dominios de internet.pdf por
Dominios de internet.pdfDominios de internet.pdf
Dominios de internet.pdfNahomiBanchen
11 vistas2 diapositivas
Tarea Curso Tecnologias para la enseñanza virtual.pptx por
Tarea Curso Tecnologias para la enseñanza virtual.pptxTarea Curso Tecnologias para la enseñanza virtual.pptx
Tarea Curso Tecnologias para la enseñanza virtual.pptxlesliealejandraContr
5 vistas11 diapositivas
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx por
TALLER DE ANÁLISIS DE ARTEFACTOS_.docxTALLER DE ANÁLISIS DE ARTEFACTOS_.docx
TALLER DE ANÁLISIS DE ARTEFACTOS_.docxDilanTabares
5 vistas10 diapositivas
Probando aplicaciones basadas en LLMs.pdf por
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdfFederico Toledo
51 vistas40 diapositivas
El Ciberespacio y sus Características.pptx por
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptxAnthlingPereira
15 vistas3 diapositivas

Último(20)

TALLER DE ANÁLISIS DE ARTEFACTOS_.docx por DilanTabares
TALLER DE ANÁLISIS DE ARTEFACTOS_.docxTALLER DE ANÁLISIS DE ARTEFACTOS_.docx
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx
DilanTabares5 vistas
Probando aplicaciones basadas en LLMs.pdf por Federico Toledo
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdf
Federico Toledo51 vistas
El Ciberespacio y sus Características.pptx por AnthlingPereira
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptx
AnthlingPereira15 vistas
Fundamentos de electricidad y electrónica.docx por DilanTabares
Fundamentos de electricidad y electrónica.docxFundamentos de electricidad y electrónica.docx
Fundamentos de electricidad y electrónica.docx
DilanTabares5 vistas
Fundamentos de Electricidad y Electronica 9-3 (1).docx por Samuel709479
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docx
Samuel7094795 vistas
fundamentos de electricidad electronica por Kevin619029
fundamentos de electricidad electronicafundamentos de electricidad electronica
fundamentos de electricidad electronica
Kevin6190295 vistas
Fundamentos De Electricidad y Electrónica equipo 5.pdf por coloradxmaria
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
coloradxmaria14 vistas
Fundamentos de Electricidad y Electronica 9-3 (1).docx por Samuel709479
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docx
Samuel7094797 vistas
Presentación: El impacto y peligro de la piratería de software por EmanuelMuoz11
Presentación: El impacto y peligro de la piratería de softwarePresentación: El impacto y peligro de la piratería de software
Presentación: El impacto y peligro de la piratería de software
EmanuelMuoz1117 vistas
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx por dreadlockp5
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptxCÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
dreadlockp58 vistas
Tecnologías para la enseñanza virtual_cdc.pptx por CarmenerdelHuasco
Tecnologías para la enseñanza virtual_cdc.pptxTecnologías para la enseñanza virtual_cdc.pptx
Tecnologías para la enseñanza virtual_cdc.pptx
MVelazco_Internet, Origenes y Evolucion.pptx por al223915
MVelazco_Internet, Origenes  y Evolucion.pptxMVelazco_Internet, Origenes  y Evolucion.pptx
MVelazco_Internet, Origenes y Evolucion.pptx
al2239155 vistas

Fundamentos de ingenieria de software - metodologias.pdf

  • 1. Fundamentos de Ingeniería de software 2017 METODOLOGÍAS DE DESARROLLO DE SOFTWARE JOSÉ GUSTAVO ZIMBRÓN LARA INGENIERÍA EN SISTEMAS COMPUTACIONALES | 5 IS1 | Juan Francisco Guzmán Gutiérrez AGOSTO – DICIEMBRE 2017 | 29 de agosto de 2017
  • 2. Clásicas Cascada El modelo de cascada original se desarrolló entre las décadas de los años 60 y 70,y se define como una secuencia de actividades, donde la estrategia principal es seguir el progreso del desarrollo de software hacia puntos de revisión bien definidos Fases del modelo cascada: · Ingeniería y análisis del sistema: análisis y de diseño de todos los componentes del sistema computacional. · Análisis de requisitos software: se debe conocer que necesita el usuario para saber que necesidades debemos cubrir. · Diseño: en esta fase se realizan los algoritmos necesarios para que se cumplan los requerimientos del usuario, así como también los análisis necesarios para saber que herramientas usar en la etapa de codificación. se dividen en: 1. Diseño de alto nivel o arquitectónico. 2. Diseño detallado. Codificación: es la fase de programación propiamente dicha Pruebas: las componentes una vez programadas, se ensamblan para formar el sistema y se demuestra que trabaja correctamente antes de ser puesto en práctica por el usuario. Existen varios tipos de pruebas: · Pruebas de unidad. · Pruebas de integración. · Pruebas de sistema. Mantenimiento: el software necesitará cambios después de la entrega. los tipos de mantenimiento son: · Mantenimiento preventivo y perfectivo. Incremental El modelo incremental consiste de un desarrollo inicial de la arquitectura completa del sistema, seguida de incrementos y versiones parciales. Cada incremento agrega funcionalidad adicional o mejorada sobre el sistema. Conforme se completa cada etapa, se verifica e integra la última versión con las demás versiones ya completadas del sistema. Durante cada incremento, el sistema se evalúa con respecto al desarrollo de versiones futuras. Las actividades se dividen en procesos y subprocesos, dando lugar al término fábrica de software (en inglés, software Factory). Para que la secuencia de desarrollo sea exitosa, es esencial definir etapas que no requieran cambiar los resultados anteriores al agregar nuevas. Por lo tanto, es importante
  • 3. comprender al inicio los requisitos completos del sistema, algo que normalmente es muy difícil de lograr. Evolutivo Este modelo considera que el desarrollo de sistemas es un proceso de cambios progresivos mediante deltas (cambios) de especificación de requerimientos. El modelo evolutivo es también conocido como desarrollo rápido de aplicaciones (en inglés, RAD—rapid application development), que se basa tradicionalmente en el uso de prototipos (en inglés, rapid prototyping). Un prototipo de software se considera como un medio para especificar los requisitos y un enlace de comunicación entre el usuario final y el diseñador, ayudando a reducir el riesgo de carecer de requerimientos iniciales completos y estables. Espiral El modelo espiral, desarrollado durante la década de los años 80, es una extensión del modelo de cascada. Cada ciclo del modelo espiral termina con una revisión que discute los logros actuales y los planes para el siguiente ciclo. Al igual que el modelo evolutivo, el modelo espiral incorpora una estrategia de uso de prototipos como parte del manejo del riesgo. Prototipos Un prototipo es una versión preliminar, intencionalmente incompleta o reducida de un sistema. El uso de prototipos es una estrategia que puede aplicarse en casi todas las actividades del proceso de software. El propósito de los prototipos es obtener de manera rápida la información necesaria como ayuda en la toma de decisiones. Los siguientes son algunos tipos de prototipo: • Los prototipos de requisitos permiten que los usuarios perciban la funcionalidad del producto final a través del diseño de interfaces o pantallas del sistema. El objetivo es ayudar a aclarar los requisitos y solicitar nuevas ideas. • Los prototipos de análisis permiten generar rápidamente una arquitectura general que considere las características principales del sistema de acuerdo con la especificación de requisitos. • Los prototipos de diseño permiten explorar y comprender la arquitectura particular de un sistema para poder evaluar aspectos como cuellos de botella (rendimiento y uso de memoria) o incoherencias en el diseño. Basado en componentes Ingeniería de Software Basada en Componentes (ISBC). La ISBC parte de la idea de la integración de componentes software ya existente
  • 4. (Desarrollo ascendente o bottom-up). Las tecnologías de objetos proporcionan el marco de trabajo técnico, para la ingeniería de software, para un modelo de proceso basado en componentes. El paradigma orientado a objetos enfatiza la creación de clases que encapsulan tanto los datos como los algoritmos para manejar esos datos. Si se diseñan y se implementan adecuadamente, las clases Orientadas a objetos son reutilizables por diferentes aplicaciones. Fases de Ingeniería y Construcción y Acción de éste modelo por una sola fase de Construcción y adaptación de la Ingeniería: • Comunicación con el cliente- las tareas requeridas para establecer comunicación entre el desarrollador y el 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. • Construcción y adaptación de la Ingeniería • 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. Metodologías Agiles Esta metodología nace en febrero del 2001 en una reunión celebrada en Utah EEUU. Principales ideas de la metodología ágil: • Se encarga de valorar al individuo y las iteraciones del equipo más que a las herramientas o los procesos utilizados. • Se hace mucho más importante crear un producto software que funcione que escribir mucha documentación. • El cliente está en todo momento colaborando en el proyecto. • Es más importante la capacidad de respuesta ante un cambio realizado que el seguimiento estricto de un plan Otras metodologías Scrum Es un marco de trabajo para la gestión y desarrollo de software basada en un proceso iterativo e incremental, Scrum estaba enfocado a la gestión de procesos de desarrollo de software, puede ser utilizado en equipos de mantenimiento de software, o en una aproximación de gestión de programas: Scrum de Scrums. Programación Extrema La programación extrema o eXtreme Programming (XP) es una metodología de desarrollo de la ingeniería de software formulada por Kent Beck, autor del primer libro sobre la materia, Extreme
  • 5. Programming Explained: Embrace Change(1999). Es el más destacado de los procesos ágiles de desarrollo de software. Ganar Ganar El modelo ganar-ganar (en inglés, win-win) extiende el modelo espiral, haciendo énfasis en la identificación de las condiciones de ganancia para todas las partes, creando un plan para alcanzar las condiciones ganadoras y evitar los riesgos correspondientes. Se establecen las reglas para definir el proceso de desarrollo del proyecto, tomando en cuenta todas las partes implicadas. El modelo no necesita mucho tiempo de gestión. Esto permite utilizarlo tanto en proyectos pequeños como grandes. Se consideran cuatro los ciclos, cada uno compuesto de cuatro actividades. • Ciclo 0 (grupos de aplicación) se determina la viabilidad de un grupo apropiado de aplicaciones. • Ciclo 1 (objetivos del ciclo de vida de la aplicación) se desarrollan los objetivos del ciclo de vida, incluyendo prototipos, planes y especificaciones de aplicaciones individuales, y se verifica la existencia de al menos una arquitectura viable para cada aplicación. En el • Ciclo 2 (arquitectura del ciclo de vida de la aplicación) se establece una arquitectura del ciclo de vida detallado, se verifica su viabilidad, y se determina que no existen riesgos mayores en satisfacer los planes y especificaciones. • Ciclo 3 (capacidad de operación inicial) se alcanza una capacidad operacional inicial para cada etapa crítica del proyecto en el ciclo de vida del software. Proceso Unificado El proceso unificado considera como aspecto esencial del desarrollo de software una visión que parte de la arquitectura del sistema, siguiendo un proceso iterativo e incremental. El proceso considera e integra diferentes aspectos, como son los ciclos, fases, flujos de trabajo, mitigación de riesgo, control de calidad, administración de proyecto y control de configuración. Ingeniería Web Es una aplicación de software que permite al usuario recuperar y visualizar documentos de hipertexto, comúnmente descritos en HTML. Los sitios web pueden ser categorizados de la siguiente forma: • Sólo estático que se enfoca en la organización de la estructura y el contenido, en la forma como se va a presentar la información y que sea fácil de manejar para cualquier usuario, pero debe tener en cuenta la eficiencia y la confiabilidad. • Sitio estático con formularios de entrada este sitio tiene las mismas características que el anterior, adicionándole que él le permite a los usuarios la interacción por medio de cuestionarios, comentario y sugerencias.
  • 6. • Sitio con acceso de datos dinámicos aquí, además de las características antes mencionadas, cuenta con bases de datos en las cuales el usuario puede realizar consultas y búsquedas. • Sitio creado dinámicamente en este sitio los requerimientos son parecidos, pero deben suplir con las necesidades de cada usuario; creando sitios dinámicos que sean compatibles con el entorno de navegación de cada usuario. • Aplicación de software basada en la Web este sitio puede tener todas las características antes mencionadas, pero logrando un parecido con una implementación cliente/servidor comúnmente conocido que a un sitio web estático. En general, las aplicaciones web, necesitan ser funcionales, mantenible, escalables y seguras. Como podemos ver, la actual demanda de las aplicaciones web es totalmente diferente de las aplicaciones convencionales y por lo tanto hay una gran necesidad de la ingeniería web. Referencias: Blog spot y Google Académico