SlideShare una empresa de Scribd logo
1 de 22
MODELOS DE PROCESOS DE
                        SOFTWARE


Cascada :toma actividades fundamentales de proceso de desarrollo ,
 validación y evolución luego las representa en procesos tales como
                requerimientos , implementacion,etc,
FASES

                                              Diseño del Sistema
  Se descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las
 ventajas del desarrollo en equipo. Como resultado surge el SDD (Documento de Diseño del Software), que
 contiene la descripción de la estructura relacional global del sistema y la especificación de lo que debe hacer
                cada una de sus partes, así como la manera en que se combinan unas con otras.
                                             Diseño del Programa
   Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de los requerimientos del
usuario así como también los análisis necesarios para saber que herramientas usar en la etapa de Codificación.
                                                 Codificación
   Es la fase de programación o implementación propiamente dicha. Aquí se implementa el código fuente,
                 haciendo uso de prototipos así como pruebas y ensayos para corregir errores.
 Dependiendo del lenguaje de programación y su versión se crean las bibliotecas y componentes reutilizables
        dentro del mismo proyecto para hacer que la programación sea un proceso mucho más rápido.
                                                    Pruebas
    Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba que funciona
                      correctamente y que cumple con los requisitos, antes de ser puesto
                                                 Implantación
 El software obtenido se pone en producción. Se implantan los niveles software y hardware que componen el
  proyecto. La implantación es la fase con más duración y con más cambios en el ciclo de elaboración de un
                               proyecto. Es una de las fases finales del proyecto.
Durante la explotación del sistema de software pueden surgir cambios, bien para corregir errores o bien para
                   introducir mejoras. Todo ello se recoge en los Documentos de Cambios.
PRUEBAS


Análisis y definición de requerimientos : los servicios, las restricciones y las
 metas del sistema se establece mediante una consulta a los usuarios del
                                  sistemas
Diseño del sistema y software : el proceso de diseño del sistema asigna los
 requerimientos , para e sistema de hardware o de software establece una
arquitectura de sistema global es el resumen las extracciones fundamentales
                                 del sistema
Implementación y pruebas de unidad: durante esta etapa , el diseño de
 software se realiza como un conjunto de programas , es verificar su
                           complimiento
Integración y pruebas de sistemas : las unidades de programas o individuales
se integran como una prueba completa después de estas pruebas se liberan al
                               cliente el sistema.
Operaciones y mantenimiento :esta mas larga cuando se corrige errores y se
                 pone en practica un mantenimiento .
DESARROLLO INCREMENTAL



Una de las ventajas de la herencia y la composición es el soporte al desarrollo
  incremental permitiendo introducir nuevo código sin causar fallos en el ya
     existente. Si aparecen fallos, éstos son rectificados con nuevo código.
Heredando de (o componiendo con) clases y funciones existentes y añadiendo
    miembros de datos y funciones miembros (y redefiniendo las funciones
 existentes durante la herencia) puede dejar el código existente - por otro que
todavía se esta usando - que alguien todavía lo este utilizando. Si ocurre algún
  error, ahora sabe donde esta el nuevo código, y entonces podrá leerlo mas
   rápido y fácilmente que si lo hubiera modificado en el cuerpo del código
                                     existente.
EJEMPLO
BENEFICIOS


                                     Son 3
1 se reduce el costo de adaptar los requerimientos cambiantes del cliente , es
                   mucho mas requerido el modelo cascada
2 es mas sencillo obtener retroalimentación del cliente sobre el trabajo que se
                                    realizo
            3 mas rápida la entrega y implementación del mismo
INGENIERÍA DE SOFTWARE
                     ORIENTADA A LA REUTILIZACIÓN


    En la mayoría de los proyectos de software hay ciertas reutilización de
  software , esto sucede cuando las personas trabaja en proyectos de código
                                    similares
1 análisis de componentes: da una especificación de requerimientos, se realiza
      una búsqueda de componentes para implementar dicha aplicación
       2 modificación de requerimientos :durante esta etapa se analizan
        requerimientos de dicha reflejan los componentes todo mundo
3 diseño de sistema con reutilización : este se diseña marco de conceptual del
          sistema es posible diseñar un nuevo software con esta base
  4 desarrollo e integración : se diseña software que no puede procurase de
manera externa y crea un nuevo sistema ,desarrolla proceso ves de actividades
                                 independientes
TIPOS DE SISTEMAS UTILIZADOS
                         EN LA REUTILIZACIÓN


Servicios web estos se desarrollan atender servicios y se atiende des terminales
                                    remotas

       Colecciones de objetos son marcos de componentes Net o J2ee



 Sistema de software independientes se configuran en un entorno particular
ACTIVIDADES DEL PROCESO


   Son secuenciales y entrelazadas de actividades técnicas y administrativas son
   herramientas manejar grandes volúmenes de información. , estas depende de
            software personal para trabajar y programación extrema .

                             Especiación de software

 La Especificación de Requisitos Software (ERS) es una descripción completa
    del comportamiento del sistema que se va a desarrollar. Incluye un conjunto
 de casos de uso que describe todas las interacciones que tendrán los usuarios con
el software. Los casos de uso también son conocidos como requisitos funcionales.
Además de los casos de uso, la ERS también contiene requisitos no funcionales (o
   complementarios). Los requisitos no funcionales son requisitos que imponen
restricciones en el diseño o la implementación (Como por ejemplo restricciones en
                          el diseño o estándares de calidad).
ACTIVIDADES DE PROCESOS DE
                           REQUERIMIENTOS


                             Estudio de factibilidad
                      Obtención y análisis de requerimientos
                          Validación de requerimientos
                       Administración de requerimientos

El análisis y la especificación de requisitos pueden parecer una tarea relativamente
   sencilla, pero las apariencias engañan. El contenido de comunicación es muy
denso. Abundan las ocasiones para malas interpretaciones o falta de información.
Es muy probable que haya ambigüedad. El dilema al que se enfrenta el ingeniero
 de software puede entenderse muy bien repitiendo la famosa frase de un cliente
anónimo: “Sé que cree que entendió lo que piensa que dije, pero no estoy seguro
      de que se dé cuenta de que lo que escuchó no es lo que yo quise decir”.
VALIDACIÓN DE SOFTWARE



Llamado verificación y validación (V&V) para mostrar que un sistema cumple
tanto con las especificaciones como con las expectativas del cliente, puede
incluir procesos de comprobación.

Con excepción de programas pequeños los sistemas no deben ponerse en
pruebas como una unidad monolítica, de modo que los errores produce cuan
el sistema está en mantenimiento.
EVOLUCIÓN DEL SOFTWARE


Una de las razones principales por la que cada vez más software se incorpora
en los sistemas grandes y complejos.

Esta distinción entre desarrollo y mantenimiento es cada vez más irrelevante.
Es muy difícil que cual quiera sistema sea un sistema complejo nuevo.
COMO ENFRENTAR EL CAMBIO



Es inevitable en todos los grandes proyectos de software. Los requerimientos
varían conforme el tamaño de la empresa, a medida que se pone a disposición
nuevas tecnologías, surgen nuevas posibilidades del diseño e implementación,
es decir que cambia cualquier que se haya desarrollado y volver a probar el
sistema.
Existen dos enfoques relacionados que se usan para reducir los costos de
rehacer.
1.- Evitar el cambie donde el proceso del software incluye actividades que
anticipa cambios posibles antes de requerirse la labor significativa de rehacer.
2.- Tolerancia al cambio, donde el proceso se diseña de modo que los cambios
se ejecuten con un costo relativamente bajo..
CREACIÓN DE PROTOTIPO



Es una versión inicial del sistema que se usa para demostrar conceptos, tratar
opciones de diseños y encontrar más sobre el problema y sus posibles
soluciones.
Un prototipo de desarrollo de software se usa en un proceso de desarrollo
software para contribuir a anticipar los cambios que se requieran:
1.- El proceso de ingeniería de requerimiento, un prototipo ayuda con la
selección y validación de requerimiento de sistema.
2.- En el proceso del diseño de sistema, un prototipo sirve para buscar
soluciones específicas de software y apoyar el diseño de interfaces del usuario.
ENTREGA INCREMENTAL



Es u enfoque al desarrollo del software donde algunos de los incrementos
diseñados se entrega al cliente y se implementa para usarse en un entorno
operacional, llamado proceso de entrega incremental.
Una vez identificado los incrementos del sistema, se define como detalle los
requerimientos de los servicios que se van a entregar en el primer incremento.
Y las entregas incrementales tienen una ventaja.
1.- Los clientes pueden utilizar los primeros incrementos como prototipo y
pueden adquirir experiencias que informe sobre sus requerimientos.
2.- Los clientes deben esperar hasta la entrega completa del sistema, antes de ganar
el valor del mismo.
3.-El proceso mantiene los beneficios del desarrollo incremental en cuanto a que
debe ser relativamente sencillo incorporar cambios al sistema.
4.- Puesto que primero se entrega los servicios de mayor prioridad y luego se
integra los incrementos, los servicios de sistemas más importantes reciben mayores
pruebas.
MODELO ESPIRAL


 El proceso del software se representa como un espiral, y como una secuencia de
actividades como cierto retroceso de una actividad a otra.
Cada ciclo en espiral representa una fase de los procesos del software y el ciclo más
interno puede relacionar con la factibilidad del sistema. etc.
Cada ciclo en espiral se divide en 4 ciclos:
1.- Establecimiento del objeto.- Se define como objetivo específico para dicha fase
del proyecto o restricciones en el proyecto o en el producto.
2.-Valoracion y reducción del riesgo.- Se realiza un análisis minuciosos es decir se
da acciones para reducir el riesgo.
3.- Desarrollo y validación.- Se elige un módulo de desarrollo para el sistema.
Ejemplo
Creación de prototipo desechable sería el mejor enfoque de desarrollo.
4.- Planeación.- El proyecto se revisa y se toma una decisión sobre si hay que
continuar con otro ciclo de espiral.

La diferencia Principal entre el modelo en espiral con otros modelos del procesos
del software es su reconocimiento explícito de riesgo.
EL PROCESO UNIFICADO RACIONAL




“RUP” (Rational Unified Process) Es un ejemplo del modelo del proceso
moderno que se derivó de trabajo sobre el UML y procesos asociados de
desarrollo de software unificado, ilustra la buena práctica en especificación y
diseño, la cual apoya la creación de prototipo y entrega incremental.
RUP presenta una sola visión del proceso, por lo general se describe tres
perspectivas.
1.-Una perspectiva dinámicas que muestran las fases del modelo atreves del
tiempo.
2.-Una perspectiva estática que presentas las actividades del proceso que se
establecen
3.-Una perspectiva practica que sugiere buena práctica a usar durante el
proceso.
RUP busca combinar la perspectiva estática y dinámica en un solo diagrama y haces que sea
difícil de entender.
RUP tiene cuatro fases discretas en el proceso del software, a diferencia de modelo en
cascada, donde la fase se iguala con actividades del proceso.
RUP está vinculada estrechamente con la empresa que con la preocupación técnica.
Fases:
• Concepción.- establecer un caso empresarial para el sistema.
• Elaboración.- Desarrollar la comprensión del problema de dominio, y establece un
     marco conceptual arquitectónico para el sistema.
• Construcción.- Incluye diseño, programación y pruebas del sistema.
• Transición.- Se interesa por el cambio del sistema desde la comunidad del desarrollo
     hasta el usuario.
En RUP cada fase se puede presentar en una forma interactiva, con los resultados
desarrollados incrementales.
Describe la buena práctica de ingeniería, lo que se recomienda son:
1.Desarrollo de software de manera interactiva.
2.Gestión de requerimiento
3.Usar arquitectura basada en componentes
4.Software modelado vidualmente
5.Verificar la calidad de software.
6.Controlar los cambios del software.

Más contenido relacionado

La actualidad más candente

Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de softwareLuis Jesus Curbata
 
Ingeniería del software
Ingeniería del softwareIngeniería del software
Ingeniería del softwareJoxany Chávez
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareJahiro Bojorquez
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwaresergio
 
Ingeniería de Requisitos
Ingeniería de RequisitosIngeniería de Requisitos
Ingeniería de RequisitosSorey García
 
Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1Marta Silvia Tabares
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De VidaJgperez
 
Ingenieria de software basada en componentes -jeiner gonzalez blanco
Ingenieria de software basada en componentes  -jeiner gonzalez blancoIngenieria de software basada en componentes  -jeiner gonzalez blanco
Ingenieria de software basada en componentes -jeiner gonzalez blancoJeiner Gonzalez Blanco
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesUlises Cruz
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentesmartin
 
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareEstándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareDaniel Guaycha
 
Fundamentos del Diseño de Software
Fundamentos del Diseño de SoftwareFundamentos del Diseño de Software
Fundamentos del Diseño de SoftwareNelson Guanipa
 
Proceso de desarrollo de sofware
Proceso de desarrollo de sofwareProceso de desarrollo de sofware
Proceso de desarrollo de sofwareMcDonald's
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwareysik granja
 

La actualidad más candente (20)

Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
 
Ingeniería del software
Ingeniería del softwareIngeniería del software
Ingeniería del software
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 
Inf 162
Inf 162Inf 162
Inf 162
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
 
Jose r ojas ii
Jose r ojas iiJose r ojas ii
Jose r ojas ii
 
Ingeniería de Requisitos
Ingeniería de RequisitosIngeniería de Requisitos
Ingeniería de Requisitos
 
Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1
 
Equipo 5 Metodos de Desarrllo de Software
Equipo 5 Metodos de Desarrllo de SoftwareEquipo 5 Metodos de Desarrllo de Software
Equipo 5 Metodos de Desarrllo de Software
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De Vida
 
Ingenieria de software basada en componentes -jeiner gonzalez blanco
Ingenieria de software basada en componentes  -jeiner gonzalez blancoIngenieria de software basada en componentes  -jeiner gonzalez blanco
Ingenieria de software basada en componentes -jeiner gonzalez blanco
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
ing del software
 ing del software  ing del software
ing del software
 
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareEstándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
 
Fundamentos del Diseño de Software
Fundamentos del Diseño de SoftwareFundamentos del Diseño de Software
Fundamentos del Diseño de Software
 
Modelos Prescriptivos de Proceso
Modelos Prescriptivos de ProcesoModelos Prescriptivos de Proceso
Modelos Prescriptivos de Proceso
 
Proceso de desarrollo de sofware
Proceso de desarrollo de sofwareProceso de desarrollo de sofware
Proceso de desarrollo de sofware
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 

Similar a Modelos de procesos de software(completo)

Similar a Modelos de procesos de software(completo) (20)

Proceso software
Proceso softwareProceso software
Proceso software
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Sqm
SqmSqm
Sqm
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
Proyecto
ProyectoProyecto
Proyecto
 
Proyecto
ProyectoProyecto
Proyecto
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
 
Modelo
ModeloModelo
Modelo
 
Curso de Ingeniería de Software - Capitulo4
Curso de Ingeniería de Software - Capitulo4Curso de Ingeniería de Software - Capitulo4
Curso de Ingeniería de Software - Capitulo4
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de software
 
Seleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareSeleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de software
 
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
 
Ingeniería de Software
Ingeniería de SoftwareIngeniería de Software
Ingeniería de Software
 
Exposicion 3
Exposicion 3Exposicion 3
Exposicion 3
 
Morales aguirreguillermo
Morales aguirreguillermoMorales aguirreguillermo
Morales aguirreguillermo
 
1. ciclo de_vida_de_software
1. ciclo de_vida_de_software1. ciclo de_vida_de_software
1. ciclo de_vida_de_software
 
Modelos del software
Modelos del softwareModelos del software
Modelos del software
 
Desarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorDesarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidor
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
 

Modelos de procesos de software(completo)

  • 1. MODELOS DE PROCESOS DE SOFTWARE Cascada :toma actividades fundamentales de proceso de desarrollo , validación y evolución luego las representa en procesos tales como requerimientos , implementacion,etc,
  • 2. FASES Diseño del Sistema Se descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo. Como resultado surge el SDD (Documento de Diseño del Software), que contiene la descripción de la estructura relacional global del sistema y la especificación de lo que debe hacer cada una de sus partes, así como la manera en que se combinan unas con otras. Diseño del Programa Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de los requerimientos del usuario así como también los análisis necesarios para saber que herramientas usar en la etapa de Codificación. Codificación Es la fase de programación o implementación propiamente dicha. Aquí se implementa el código fuente, haciendo uso de prototipos así como pruebas y ensayos para corregir errores. Dependiendo del lenguaje de programación y su versión se crean las bibliotecas y componentes reutilizables dentro del mismo proyecto para hacer que la programación sea un proceso mucho más rápido. Pruebas Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba que funciona correctamente y que cumple con los requisitos, antes de ser puesto Implantación El software obtenido se pone en producción. Se implantan los niveles software y hardware que componen el proyecto. La implantación es la fase con más duración y con más cambios en el ciclo de elaboración de un proyecto. Es una de las fases finales del proyecto. Durante la explotación del sistema de software pueden surgir cambios, bien para corregir errores o bien para introducir mejoras. Todo ello se recoge en los Documentos de Cambios.
  • 3. PRUEBAS Análisis y definición de requerimientos : los servicios, las restricciones y las metas del sistema se establece mediante una consulta a los usuarios del sistemas
  • 4. Diseño del sistema y software : el proceso de diseño del sistema asigna los requerimientos , para e sistema de hardware o de software establece una arquitectura de sistema global es el resumen las extracciones fundamentales del sistema
  • 5. Implementación y pruebas de unidad: durante esta etapa , el diseño de software se realiza como un conjunto de programas , es verificar su complimiento
  • 6. Integración y pruebas de sistemas : las unidades de programas o individuales se integran como una prueba completa después de estas pruebas se liberan al cliente el sistema.
  • 7. Operaciones y mantenimiento :esta mas larga cuando se corrige errores y se pone en practica un mantenimiento .
  • 8. DESARROLLO INCREMENTAL Una de las ventajas de la herencia y la composición es el soporte al desarrollo incremental permitiendo introducir nuevo código sin causar fallos en el ya existente. Si aparecen fallos, éstos son rectificados con nuevo código. Heredando de (o componiendo con) clases y funciones existentes y añadiendo miembros de datos y funciones miembros (y redefiniendo las funciones existentes durante la herencia) puede dejar el código existente - por otro que todavía se esta usando - que alguien todavía lo este utilizando. Si ocurre algún error, ahora sabe donde esta el nuevo código, y entonces podrá leerlo mas rápido y fácilmente que si lo hubiera modificado en el cuerpo del código existente.
  • 10. BENEFICIOS Son 3 1 se reduce el costo de adaptar los requerimientos cambiantes del cliente , es mucho mas requerido el modelo cascada 2 es mas sencillo obtener retroalimentación del cliente sobre el trabajo que se realizo 3 mas rápida la entrega y implementación del mismo
  • 11. INGENIERÍA DE SOFTWARE ORIENTADA A LA REUTILIZACIÓN En la mayoría de los proyectos de software hay ciertas reutilización de software , esto sucede cuando las personas trabaja en proyectos de código similares 1 análisis de componentes: da una especificación de requerimientos, se realiza una búsqueda de componentes para implementar dicha aplicación 2 modificación de requerimientos :durante esta etapa se analizan requerimientos de dicha reflejan los componentes todo mundo 3 diseño de sistema con reutilización : este se diseña marco de conceptual del sistema es posible diseñar un nuevo software con esta base 4 desarrollo e integración : se diseña software que no puede procurase de manera externa y crea un nuevo sistema ,desarrolla proceso ves de actividades independientes
  • 12. TIPOS DE SISTEMAS UTILIZADOS EN LA REUTILIZACIÓN Servicios web estos se desarrollan atender servicios y se atiende des terminales remotas Colecciones de objetos son marcos de componentes Net o J2ee Sistema de software independientes se configuran en un entorno particular
  • 13. ACTIVIDADES DEL PROCESO Son secuenciales y entrelazadas de actividades técnicas y administrativas son herramientas manejar grandes volúmenes de información. , estas depende de software personal para trabajar y programación extrema . Especiación de software La Especificación de Requisitos Software (ERS) es una descripción completa del comportamiento del sistema que se va a desarrollar. Incluye un conjunto de casos de uso que describe todas las interacciones que tendrán los usuarios con el software. Los casos de uso también son conocidos como requisitos funcionales. Además de los casos de uso, la ERS también contiene requisitos no funcionales (o complementarios). Los requisitos no funcionales son requisitos que imponen restricciones en el diseño o la implementación (Como por ejemplo restricciones en el diseño o estándares de calidad).
  • 14. ACTIVIDADES DE PROCESOS DE REQUERIMIENTOS Estudio de factibilidad Obtención y análisis de requerimientos Validación de requerimientos Administración de requerimientos El análisis y la especificación de requisitos pueden parecer una tarea relativamente sencilla, pero las apariencias engañan. El contenido de comunicación es muy denso. Abundan las ocasiones para malas interpretaciones o falta de información. Es muy probable que haya ambigüedad. El dilema al que se enfrenta el ingeniero de software puede entenderse muy bien repitiendo la famosa frase de un cliente anónimo: “Sé que cree que entendió lo que piensa que dije, pero no estoy seguro de que se dé cuenta de que lo que escuchó no es lo que yo quise decir”.
  • 15. VALIDACIÓN DE SOFTWARE Llamado verificación y validación (V&V) para mostrar que un sistema cumple tanto con las especificaciones como con las expectativas del cliente, puede incluir procesos de comprobación. Con excepción de programas pequeños los sistemas no deben ponerse en pruebas como una unidad monolítica, de modo que los errores produce cuan el sistema está en mantenimiento.
  • 16. EVOLUCIÓN DEL SOFTWARE Una de las razones principales por la que cada vez más software se incorpora en los sistemas grandes y complejos. Esta distinción entre desarrollo y mantenimiento es cada vez más irrelevante. Es muy difícil que cual quiera sistema sea un sistema complejo nuevo.
  • 17. COMO ENFRENTAR EL CAMBIO Es inevitable en todos los grandes proyectos de software. Los requerimientos varían conforme el tamaño de la empresa, a medida que se pone a disposición nuevas tecnologías, surgen nuevas posibilidades del diseño e implementación, es decir que cambia cualquier que se haya desarrollado y volver a probar el sistema. Existen dos enfoques relacionados que se usan para reducir los costos de rehacer. 1.- Evitar el cambie donde el proceso del software incluye actividades que anticipa cambios posibles antes de requerirse la labor significativa de rehacer. 2.- Tolerancia al cambio, donde el proceso se diseña de modo que los cambios se ejecuten con un costo relativamente bajo..
  • 18. CREACIÓN DE PROTOTIPO Es una versión inicial del sistema que se usa para demostrar conceptos, tratar opciones de diseños y encontrar más sobre el problema y sus posibles soluciones. Un prototipo de desarrollo de software se usa en un proceso de desarrollo software para contribuir a anticipar los cambios que se requieran: 1.- El proceso de ingeniería de requerimiento, un prototipo ayuda con la selección y validación de requerimiento de sistema. 2.- En el proceso del diseño de sistema, un prototipo sirve para buscar soluciones específicas de software y apoyar el diseño de interfaces del usuario.
  • 19. ENTREGA INCREMENTAL Es u enfoque al desarrollo del software donde algunos de los incrementos diseñados se entrega al cliente y se implementa para usarse en un entorno operacional, llamado proceso de entrega incremental. Una vez identificado los incrementos del sistema, se define como detalle los requerimientos de los servicios que se van a entregar en el primer incremento. Y las entregas incrementales tienen una ventaja. 1.- Los clientes pueden utilizar los primeros incrementos como prototipo y pueden adquirir experiencias que informe sobre sus requerimientos. 2.- Los clientes deben esperar hasta la entrega completa del sistema, antes de ganar el valor del mismo. 3.-El proceso mantiene los beneficios del desarrollo incremental en cuanto a que debe ser relativamente sencillo incorporar cambios al sistema. 4.- Puesto que primero se entrega los servicios de mayor prioridad y luego se integra los incrementos, los servicios de sistemas más importantes reciben mayores pruebas.
  • 20. MODELO ESPIRAL El proceso del software se representa como un espiral, y como una secuencia de actividades como cierto retroceso de una actividad a otra. Cada ciclo en espiral representa una fase de los procesos del software y el ciclo más interno puede relacionar con la factibilidad del sistema. etc. Cada ciclo en espiral se divide en 4 ciclos: 1.- Establecimiento del objeto.- Se define como objetivo específico para dicha fase del proyecto o restricciones en el proyecto o en el producto. 2.-Valoracion y reducción del riesgo.- Se realiza un análisis minuciosos es decir se da acciones para reducir el riesgo. 3.- Desarrollo y validación.- Se elige un módulo de desarrollo para el sistema. Ejemplo Creación de prototipo desechable sería el mejor enfoque de desarrollo. 4.- Planeación.- El proyecto se revisa y se toma una decisión sobre si hay que continuar con otro ciclo de espiral. La diferencia Principal entre el modelo en espiral con otros modelos del procesos del software es su reconocimiento explícito de riesgo.
  • 21. EL PROCESO UNIFICADO RACIONAL “RUP” (Rational Unified Process) Es un ejemplo del modelo del proceso moderno que se derivó de trabajo sobre el UML y procesos asociados de desarrollo de software unificado, ilustra la buena práctica en especificación y diseño, la cual apoya la creación de prototipo y entrega incremental. RUP presenta una sola visión del proceso, por lo general se describe tres perspectivas. 1.-Una perspectiva dinámicas que muestran las fases del modelo atreves del tiempo. 2.-Una perspectiva estática que presentas las actividades del proceso que se establecen 3.-Una perspectiva practica que sugiere buena práctica a usar durante el proceso.
  • 22. RUP busca combinar la perspectiva estática y dinámica en un solo diagrama y haces que sea difícil de entender. RUP tiene cuatro fases discretas en el proceso del software, a diferencia de modelo en cascada, donde la fase se iguala con actividades del proceso. RUP está vinculada estrechamente con la empresa que con la preocupación técnica. Fases: • Concepción.- establecer un caso empresarial para el sistema. • Elaboración.- Desarrollar la comprensión del problema de dominio, y establece un marco conceptual arquitectónico para el sistema. • Construcción.- Incluye diseño, programación y pruebas del sistema. • Transición.- Se interesa por el cambio del sistema desde la comunidad del desarrollo hasta el usuario. En RUP cada fase se puede presentar en una forma interactiva, con los resultados desarrollados incrementales. Describe la buena práctica de ingeniería, lo que se recomienda son: 1.Desarrollo de software de manera interactiva. 2.Gestión de requerimiento 3.Usar arquitectura basada en componentes 4.Software modelado vidualmente 5.Verificar la calidad de software. 6.Controlar los cambios del software.