Anzeige
Anzeige

Más contenido relacionado

Anzeige

Proceso del Software

  1. + Proceso del Software Hernández Rodríguez Ares Atzarel 6IM7
  2. + Proceso del Software  Una definición sencilla de proceso es “serie de acciones que conducen a un final”.  Siempre que para alcanzar algún fin deseado necesitemos ejecutar una serie de acciones, y estas acciones tengan cierto orden, dependencias, roles responsables, resultados, tiempos de ejecución y herramientas de apoyo, estaremos hablando de procesos, que pueden ser predefinidos y personalizados.
  3. + Proceso del Software  Un proceso del software es un conjunto de actividades que conducen a la creación de un producto de software  La meta es desarrollar o mejorar procesos.  El conjunto de personas, estructuras de organización, reglas, políticas, actividades y sus procedimientos, componentes de software, metodologías, y herramientas utilizadas o creadas específicamente para definir, desarrollar, ofrecer un servicio, innovar y extender un producto de software son parte de estos procesos
  4. + Proceso del Software  Un proceso de software efectivo habilita a la organización a incrementar su productividad al desarrollar software: 1. Permite estandarizar esfuerzos, promover reuso, repetición y consistencia entre proyectos. 2. Provee la oportunidad de introducir mejores prácticas de la industria. 3. Permite entender que las herramientas deben ser utilizadas para soportar un proceso. 4. Establece la base para una mayor consistencia y mejoras futuras.
  5. + Proceso del Software  Algunas actividades fundamentales son comunes para todos los procesos del software: I. Especificación de software. Se debe definir la funcionalidad de software y las restricciones de operación II. Diseño e implementación del software. Se debe validar el software que cumpla su especificación. III. Validación del software. Se debe validar el software para asegurar que hace lo que el cliente desea IV. Evolución del software. El software debe evolucionar para cubrir las necesidades cambiantes del cliente.
  6. + Modelos del Proceso de Software  Un modelo de software es un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso (norma ISO 12207-1) [ISO/IEC, 1995]  Es decir: un modelo de software es una representación abstracta de un proceso del software.
  7. + Modelo en Cascada  Conocido también como modelo lineal o “clasico”  Se denomina modelo en cascada porque su característica principal es que no se comienza con un paso hasta que no se ha terminado el anterior. (Bennington 1956, Modificado por Royce en 1970, Pressman lo presenta como ciclo de vida clásico).
  8. + Modelo en Cascada  El modelo en Cascada establece que el software debe ser construido, rigurosamente, a través de una transformación sucesiva de documentos, siguiendo una estrategia lineal de desarrollo. Primero saber qué se quiere y después, cuando se conozca todo lo que se quiere, empezar a construirlo.  El modelo de cascada también conocido como modelo lineal secuencial sugiere un enfoque sistemático, secuencial para el desarrollo del software que comienza en un nivel de sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento.
  9. + Etapas del Modelo en Cascada 1. Análisis y definición de requerimientos. Los servicios, restricciones y metas del sistema se definen a partir de las consultas con los usuarios. Se definen en detalle y sirven como una especificación del sistema. 2. Diseño del sistema de software. El proceso de diseño de sistema divide los requerimientos en sistemas en hardware y software. Establece la arquitectura completa del sistema.
  10. + Etapas del Modelo en Cascada 3. Implementación y prueba de unidades. En esta etapa el diseño del software se lleva a cabo como un conjunto o unidades de programa. La prueba de unidades implica verificar que cada una cumpla su especificación. 4. Integración y prueba del sistema. Los programas o las unidades individuales de programas se integran y prueban como sistema completo para asegurar que se cumplan los requerimientos del software. 5. Funcionamiento y mantenimiento. El sistema se instala y se pone en funcionamiento. El mantenimiento implica corregir errores no cubiertos en las etapas anteriores del ciclo de vida, mejorar la implementación de las unidades del sistema.
  11. + Desarrollo evolutivo  Se basa en la idea de desarrollar una implementación inicial, exponiéndola a los comentarios de los usuarios y refinándola a través de las diferentes versiones hasta que se desarrolla un sistema adecuado.
  12. + Tipos de modelos evolutivos 1. Desarrollo exploratorio: El objetivo del proceso es trabajar con el cliente para explorar sus requerimientos y entregar un sistema final. El desarrollo empieza con las partes del sistema que se comprenden mejor. El sistema evoluciona agregando nuevos atributos propuestos por el cliente. 2. Prototipos desechables: El objetivo del proceso de desarrollo evolutivo es comprender los requerimientos del cliente y entonces desarrollar una definición mejorada de los requerimientos del sistema. El prototipo se centra en experimentar con los requerimientos del cliente que no se comprenden del todo.
  13. + Prototipos desechables  El prototipo es una versión rudimentaria del sistema que posteriormente es desechada  Se desarrolla código para explorar factores críticos para el éxito del sistema  La implementación usa lenguajes y/o métodos de desarrollo más rápidos que los definitivos  Se usa como herramienta auxiliar de la especificación de requisitos y el diseño
  14. + Características del desarrollo evolutivo a. Enfoque de desarrollo que se utiliza cuando no se conoce con seguridad lo que se quiere construir b. Se comienza diseñando e implementando las partes más destacadas del sistema c. La evaluación del prototipo proporciona la realimentación necesaria para aumentar y refinar el prototipo d. El prototipo evoluciona y se transforma en el sistema final
  15. + Desarrollo evolutivo  Este suele ser más efectivo que el enfoque de cascada, ya que satisface las necesidades inmediatas de los clientes. Las ventajas que proporciona el enfoque evolutivo es que la especificación de puede desarrollar en forma creciente.  Cuenta con 2 problemas: ① El proceso no es visible. Si los sistemas se desarrollan rápidamente, no es rentable producir documentos que reflejen cada versión del sistema. ② A menudo los sistemas tienen una estructura deficiente. Los cambios continuos tienden a corromper la estructura del software.
  16. + Ingeniería de Software Basada en Componentes  Se enmarca en un contexto más amplio: ingeniería del software basada en componentes  Enfoque de desarrollo que trata de maximizar la reutilización de software existente [Sommerville, 2002] Modelo Orientado a la Reutilización
  17. + Ingeniería del Software basada en componentes  Se divide en 2:  Ingeniería del dominio El objetivo de la ingeniería del dominio es identificar, construir, catalogar y diseminar un conjunto de componentes de software que tienen aplicación en el software actual y futuro dentro de un dominio de aplicación particular  Desarrollo basado en componentes
  18. +
  19. + Desarrollo basado en componentes  Un componente es una unidad ejecutable e independiente  Los componentes publican su interfaz y todas las interacciones son a través de ella  La ingeniería del software basada en componentes tiene la ventaja obvia de reducir la cantidad de software a desarrollarse y así reduce los costos y los riesgos. Por lo general permite una entrega más rápida del software.
  20. + Etapas del Modelo basado en componentes 1. Especificación de requerimientos. Similar al modelo de cascada. 2. Análisis de componentes. A partir de la especificación se buscan los componentes para implementar esta especificación. 3. Modificación de requerimientos. Los requerimientos se analizan utilizando información acerca de los componentes que se han descubierto. Entonces estos componentes se modifican para reflejar los componentes disponibles.
  21. + Etapas del Modelo basado en componentes 4. Diseño del sistema con reutilización. En esta fase se diseña o se reutiliza un marco de trabajo para el sistema. Los diseñadores tienen en cuenta los componentes que se reutilizan y organizan el marco de trabajo para que los satisfaga. 5. Desarrollo e integración. Para crear el sistema, el software que no se puede adquirir externamente se desarrolla, y los componentes y los sistemas adquiridos se integran. 6. Validación del sistema. Similar al modelo de cascada
  22. + Iteración de Procesos  La esencia de los procesos iterativos es que la especificación se desarrolla junto con el software.  Permite prepararse para los cambios. Cuando se disponen nuevas tecnologías, cambian los diseños y la implementación.
  23. + Modelo en Espiral  Fue propuesto inicialmente por B. Boehm [Boehm, 1986, 1988]  Es un modelo de proceso de software evolutivo, que proporciona el potencial para el desarrollo rápido de versiones incrementales del software
  24. + Características del Modelo en espiral  Puede considerarse como un metamodelo de proceso  Principalmente, reúne características del modelo clásico y de prototipos  Aparece el análisis de riesgo  Se divide en un numero de actividades estructurales, también denominadas regiones de tareas. En el modelo original de Boehm aparecen cuatro regiones de tareas  Planificación, Análisis de riesgos, Ingeniería, Evaluación del cliente  El avance se realiza desde el centro de la espiral hacia el exterior
  25. + Modelo incremental  El modelo incremental aplica secuencias lineales de forma escalonada mientras avanza el tiempo.  Corrige la necesidad de una secuencia no lineal de pasos de desarrollo. Cada secuencia lineal produce un incremento del software  El modelo incremental entrega el software en partes pequeñas, pero utilizables, llamadas “incrementos”. En general, cada incremento se construye sobre aquel que ya ha sido entregado.
  26. + Modelo incremental  Cuando se utiliza un modelo incremental, el primer incremento a menudo es un producto esencial.  El cliente utiliza el producto central.  Como un resultado de utilización y/o de evaluación, se desarrolla un plan para el incremento siguiente. El plan afronta la modificación del producto central a fin de cumplir mejor las necesidades del cliente y la entrega de funciones, y características adicionales. Este proceso se repite siguiendo la entrega de cada incremento. Hasta que se elabore el producto completo.
  27. + Modelo incremental  El modelo de proceso incremental, como la construcción de prototipos y otros enfoques evolutivos, es iterativo por naturaleza. Pero a diferencia de la construcción de prototipos, el modelo incremental se centra en la entrega de un producto operacional con cada incremento  Este modelo constituyo un avance sobre el modelo en cascada pero también presenta problemas. Aunque permite el cambio continuo de requisitos, aun existe el problema de determinar si los requisitos propuestos son validos. Los errores en los requisitos se presentan tarde y su corrección resulta tan costosa como en el modelo en cascada.
Anzeige