Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

(Inmer)La Ingenieria de Software

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Modelo cliente servidor
Modelo cliente servidor
Wird geladen in …3
×

Hier ansehen

1 von 22 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Andere mochten auch (20)

Anzeige

Ähnlich wie (Inmer)La Ingenieria de Software (20)

Aktuellste (20)

Anzeige

(Inmer)La Ingenieria de Software

  1. 1. La Ingeniería de Software<br />En esta presentación se dan a conocer:<br /><ul><li>Producto
  2. 2. Procesos
  3. 3. Modelos de Software</li></ul>Inmer Alexai Flores Rodríguez<br />S-I-B<br />
  4. 4. Producto<br />1.1 La Evolución del Software<br />1.2 El Software<br />1.3 El Software: ¿Una Crisis en el Horizonte?<br />Inmer Alexai<br />
  5. 5. 1.1 La Evolución de Software<br />Inmer Alexai<br />Hoy en día el software tiene un doble papel. Es un producto y, al mismo tiempo, el vehículo para entregarlo. Como producto, hace entrega de la potencia informática que incorpora el hardware informático o, mas ampliamente, una red de computadora que es el accesible por hardware local.<br />
  6. 6. 1.2 El Software<br />El Software se desarrolla no se fabrica en un sentido clásico. Aunque existen similitudes entre el desarrollo del Software y la construcción del Hardware, ambas actividades son fundamentalmente diferentes. En ambas actividades la buena calidad se adquiere mediante un buen diseño, pero en el hardware puede introducir problemas de calidad que no existen en el Software.<br />Inmer Alexai<br />
  7. 7. 1.3 El Software: ¿Una crisis en el Horizonte?<br />Muchos autores han caracterizado los problemas asociados con el desarrollo de Software como una crisis. Esto se define como un punto decisivo en el curso de algo, momento, etapa o evento decisivo o crucial. Sin embrago, en términos de calidad del Software total y de velocidad con la cual son desarrollados los productos y los sistemas basados en computadoras solamente ha habido un lento cambio en disciplinas tecnológicas relacionadas con el Software.<br />Inmer Alexai<br />
  8. 8. Proceso<br />2.1 Ingeniería del Software: Una tecnología Estratificada.<br />2.2 El Proceso del Software<br />Inmer Alexai<br />
  9. 9. 2.1 Ingeniería del Software: Una tecnología Estratificada.<br />Es el establecimiento y uso de principios robustos de la ingeniería a fin de obtener económicamente Software que sea fiable y que funcione eficientemente sobre maquinas reales. Ya que es también una tecnología multicapas estableciendo una organización de calidad. Estratificada porque va por capas siendo desglosada en capas de desarrollo.<br />Inmer Alexai<br />
  10. 10. 2.2 El Proceso del Software.<br />Se establece un marco común del proceso definiendo un pequeño numero de actividades del marco de trabajo que son aplicables a todos los proyectos del software. Esto permite que se adapten las características del proyecto del Software y a los requisitos del equipo del proyecto.<br />Inmer Alexai<br />
  11. 11. Niveles de Madurez del Proceso.<br />Inicial: se caracteriza según el caso y ocasionalmente incluso de forma caótica. Se definen pocos procesos, y el éxito depende del esfuerzo individual.<br />Repetible: se establecen los procesos de gestión del proyecto para hacer seguimiento del coste, de la planificación y de la funcionalidad.<br />Inmer Alexai<br />
  12. 12. 3. Definido: el proceso de Software de las actividades de gestión y de ingeniería se documenta, se estandariza y se integra dentro de un proceso de Software de toda una organización.<br />4. Gestionado: se recopilan medidas detalladas del proceso del Software y de la calidad del producto se incluyen las medidas definidas en el nivel 3.<br />Optimización: mediante una retroalimentación cuantitativa del proceso, ideas y tecnologías innovadoras se posibilita una mejora del proceso. En este nivel se incluyen las características definidas para el nivel 4.<br />Inmer Alexai<br />
  13. 13. Modelos de Software<br />Modelo en cascada o Clásico (modelo tradicional) <br />Modelo en espiral (modelo evolutivo) <br />Modelo de prototipos <br />Desarrollo por etapas<br />Desarrollo iterativo y creciente o Interativo Incremental <br />RAD (Rapid Application Development)<br />Inmer Alexai<br />
  14. 14. Modelo de Cascada<br />En Ingeniería de software el desarrollo en cascada, también llamado modelo en cascada, es el enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, de forma tal que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior.<br />Un ejemplo de una metodología de desarrollo en cascada es:<br />Análisis de requisitos<br />Diseño del Sistema<br />Diseño del Programa<br />Codificación<br />Pruebas <br />Implantación<br />Mantenimiento<br />Inmer Alexai<br />
  15. 15. Fases del Modelo<br />Análisis de requisitos <br />Se analizan las necesidades de los usuarios finales del software para determinar qué objetivos debe cubrir. De esta fase surge una memoria llamada SRD (documento de especificación de requisitos), que contiene la especificación completa de lo que debe hacer el sistema sin entrar en detalles internos. Es importante señalar que en esta etapa se deben consensuar todo lo que se requiere del sistema y será aquello lo que seguirá en las siguientes etapas, no pudiéndose requerir nuevos resultados a mitad del proceso de elaboración del software. <br />Diseño del Sistema <br />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.. <br />Diseño del Programa <br />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. <br />Inmer Alexai<br />
  16. 16. Codificación <br />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 librerías y componentes reutilizables dentro del mismo proyecto para hacer que la programación sea un proceso mucho más rápido. <br />Pruebas <br />Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba que funciona correctamente antes de ser puesto en explotación. <br />Implantación <br />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. <br />Mantenimiento<br />Es una de las fases finales del proyecto Durante la explotación del sistema software pueden surgir cambios, bien para corregir errores o bien para introducir mejoras. Todo ello se recoge en los Documentos de Cambios. <br />Inmer Alexai<br />
  17. 17. Ejemplo del Modelo de Cascada<br />Inmer Alexai<br />
  18. 18. Modelo de Espiral<br />El Desarrollo en Espiral es un modelo de ciclo de vida desarrollado por Barry Boehm en 1985, utilizado generalmente en la Ingeniería de software. Las actividades de este modelo se conforman en una espiral, cada bucle representa un conjunto de actividades. Las actividades no están fijadas a priori, sino que las siguientes se eligen en función del análisis de riesgo, comenzando por el bucle interior.<br />En cada vuelta o iteración hay que tener en cuenta Los Objetivos:<br />Que necesidad debe cubrir el producto.<br />Alternativas: Las diferentes formas de conseguir los objetivos de forma exitosa, desde diferentes puntos de vista como pueden ser:Características: experiencia del personal, requisitos a cumplir, etc.Formas de gestión del sistema.Riesgo asumido con cada alternativa.Desarrollar y Verificar: Programar y probar el software.Si el resultado no es el adecuado o se necesita implementar mejoras o funcionalidades Se planificaran los siguientes pasos y se comienza un nuevo ciclo de la espiral. <br />Inmer Alexai<br />
  19. 19. La espiral tiene una forma de caracola y se dice que mantiene dos dimensiones, la radial y la angular:Angular: Indica el avance del proyecto software dentro de un ciclo. <br />Radial: Indica el aumento del coste del proyecto, ya que con cada nueva iteración se pasa más tiempo desarrollando. <br />Este sistema es muy utilizado en proyectos grandes y complejos como puede ser, por ejemplo, la creación de un Sistema Operativo.Al ser un modelo de Ciclo de Vida orientado a la gestión de riesgo se dice que uno de los aspectos fundamentales de su éxito radica en que el equipo que lo aplique tenga la necesaria experiencia y habilidad para detectar y catalogar correctamente los riesgos.TareasPara cada ciclo habrá cuatro actividades:Determinar o fijar objetivos<br />Fijar también los productos definidos a obtener: requerimientos, especificación, manual de usuario.Fijar las restricciones. <br />Identificación de riesgos del proyecto y estrategias alternativas para evitarlos.Hay una cosa que solo se hace una vez: planificación inicial o previa.<br />Inmer Alexai<br />
  20. 20. Análisis del riesgo<br />Se estudian todos los riesgos potenciales y se seleccionan una o varias alternativas propuestas para reducir o eliminar los riesgos.Desarrollar, verificar y validar (probar) <br />-Tareas de la actividad propia y de prueba.-Análisis de alternativas e identificación resolución de riesgos.-Dependiendo del resultado de la evaluación de los riesgos, se elige un modelo para el desarrollo, el que puede ser cualquiera de los otros existentes, como formal, evolutivo, cascada, etc. Así si por ejemplo si los riesgos en la interfaz de usuario son dominantes, un modelo de desarrollo apropiado podría ser la construcción de prototipos evolutivos. Si lo riesgos de protección son la principal consideración, un desarrollo basado en transformaciones formales podría ser el más apropiado.Planificar <br />Revisamos todo lo hecho, evaluándolo, y con ello decidimos si continuamos con las fases siguientes y planificamos la próxima actividad.Mecanismos de control<br />La dimensión radial mide el coste.La dimensión angular mide el grado de avance del proyecto.<br />Inmer Alexai<br />
  21. 21. Modelo de Prototipo<br />En Ingeniería de software el desarrollo con prototipación, también llamado modelo de prototipos que pertenece a los modelos de desarrollo evolutivo, se inicia con la definición de los objetivos globales para el software, luego se identifican los requisitos conocidos y las áreas del esquema en donde es necesaria más definición. Entonces se plantea con rapidez una iteración de construcción de prototipos y se presenta el modelado (en forma de un diseño rápido).El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final (por ejemplo, la configuración de la interfaz con el usuario y el formato de los despliegues de salida). El diseño rápido conduce a la construcción de un prototipo, el cual es evaluado por el cliente o el usuario para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará. La iteración ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo.<br />Inmer Alexai<br />
  22. 22. Desarrollo por Etapas<br />El modelo de desarrollo de software por etapas es similar al Modelo de prototipos ya que se muestra al cliente el software en diferentes estados sucesivos de desarrollo, se diferencia en que las especificaciones no son conocidas en detalle al inicio del proyecto y por tanto se van desarrollando simultáneamente con las diferentes versiones del código.<br />Pueden distinguirse las siguientes fases:<br /><ul><li>Especificación conceptual
  23. 23. Análisis de requerimientos
  24. 24. Diseño inicial
  25. 25. Diseño detallado, codificación, depuración y liberación
  26. 26. Estas diferentes fases se van repitiendo en cada etapa del diseño</li></ul>Inmer Alexai<br />
  27. 27. Desarrollo Iterativo y Creciente<br />Desarrollo iterativo y creciente (o incremental) es un proceso de desarrollo de software, creado en respuesta a las debilidades del modelo tradicional de cascada.Para apoyar el desarrollo de proyectos por medio de este modelo se han creado frameworks (entornos de trabajo), de los cuales los dos más famosos son el Rational Unified Process y el Dynamic Systems Development Method. El desarrollo incremental e iterativo es también una parte esencial de un tipo de programación conocido como Extreme Programming y los demás frameworks de desarrollo rápido de software.<br />Inmer Alexai<br />
  28. 28. RAD( Desarrollo Rápido de Aplicaciones)<br />El desarrollo rápido de aplicaciones o RAD (acrónimo en inglés de rapid application development) es un proceso de desarrollo de software, desarrollado inicialmente por James Martin en 1980. El método comprende el desarrollo iterativo, la construcción de prototipos y el uso de utilidades CASE (Computer Aided Software Engineering). Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar también la usabilidad, utilidad y la rapidez de ejecución.<br />Hoy en día se suele utilizar para referirnos al desarrollo rápido de interfaces gráficas de usuario tales como Glade, o entornos de desarrollo integrado completos. Algunas de las plataformas más conocidas son Visual Studio, Delphi, Foxpro o Anjuta.<br />Inmer Alexai<br />

×