1 / 45

E SCUELA P ROFESIONAL DE I NGENIERIA DE S ISTEMAS

E SCUELA P ROFESIONAL DE I NGENIERIA DE S ISTEMAS. Sesión 1 :. Ingeniería de software. Temario. Presentación de Silabo Prueba de Entrada Introducción Metodologías Mensaje Final Preguntas. Presentación del Silabo. Presentación del Silabo. Prueba de Entrada. Introducción. Ingeniería.

airell
Download Presentation

E SCUELA P ROFESIONAL DE I NGENIERIA DE S ISTEMAS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS Sesión 1 : Ingeniería de software

  2. Temario ... • Presentación de Silabo • Prueba de Entrada • Introducción • Metodologías • Mensaje Final • Preguntas

  3. Presentación del Silabo

  4. Presentación del Silabo

  5. Prueba de Entrada

  6. Introducción ...

  7. Ingeniería Conjunto de conocimientos y técnicas científicas Software Conjunto de instrucciones que permite al Hardware desempeñar trabajo útil.

  8. ¿Qué es Ingeniería de Software? Es una disciplina o área de la informática o ciencia de la computación, que ofrece conocimientos, técnicas y métodos para desarrollar y mantenersoftware de calidadque resuelva problemas de todo tipo.

  9. ¿Qué es Software de Calidad? • Es la aptitud de un producto o servicio para satisfacer la necesidades del usuario. • Funcionalidad • Fiabilidad • Usabilidad • Eficiencia • Mantenibilidad • Portabilidad

  10. Calidad de Producto – ISO 9126 Características

  11. Capas de la Ingeniería de Software • La Ing.Software es una tecnología multicapa • Enfoque de Calidad • Proceso • Métodos • Herramientas

  12. Capas de la Ingeniería de Software • PROCESOS • Es la unión que mantiene juntas las capas de tecnología y que permite un desarrollo racional y oportuno de la ingeniería de software. • Asegurando un Producto Excelente

  13. Capas de la Ingeniería de Software • METODOS • Indican como construir técnicamente el software • Abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento. • HERRAMIENTAS • Uso de tecnologías para asistir el desarrollo del software y asegurar el cumplimiento de los objetivos del software • Proporcionan un enfoque automático / semiautomático para el proceso y para las metodologías.

  14. El estado de desarrollo de software • La mayoría de los proyectos de desarrollo de software fallan • Qué significa fallar? • No cumplir los cronogramas • No cumplir el presupuesto • No satisfacer la funcionalidad requerida • Demasiados defectos una vez en producción • Demasiado frágil a los cambios • ...

  15. ¿Quétipo de ProblemasSurgen? Retrasos en los proyectos. Falta de calidad. Incumplimiento con la funcionalidad acordada. Desarrolladores innovadores. Exceso de requerimientos y funcionalidad. Falta de planificación. Motivación débil, Falta de participación. No existe gestión de riesgos. ALLSOFT, S.A.. de C.V., 2002

  16. La gestión tradicional en la ing. de software

  17. Planificar y Evaluar Proyectos ... • ¿Podré cumplir con los plazos? • ¿Estaré dentro de lo presupuestado? • ¿El cliente quedará satisfecho? Las Metodologías pueden ser la ayuda que necesitamos, si podemos usarlas correctamente !!

  18. Metodologías ...

  19. ¿Qué es una Metodología ... Las metodologías imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más predecible y eficiente.

  20. Metodologías ... Metodología Monumental Existen hace mucho tiempo, no han sido exitosas porque son muy burócratas, se han orientado al documento más que a los resultados.

  21. Metodologías ... • Es necesario establecer un enfoque disciplinado y sistemático para desarrollar un proyecto de software. • “Conjunto de filosofías, fases, procedimientos, reglas, técnicas, herramientas, documentación y aspectos de formación para los desarrolladores de sistemas de información.” - Maddison 1983 • “Conjunto de procedimientos, técnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software.” • Las Metodologías nos describen: • Cómo se debe dividir un proyecto en etapas. • Qué tareas se llevan a cabo en cada una • Qué salidas se producen y cuándo • Qué restricciones se aplican • Qué herramientas se van a utilizar • Cómo se gestiona y controla un proyecto

  22. Clasificación de las Metologías según el Modelo de Proceso • Modelos Convencionales o Tradicionales • Cascada • Incremental • Prototipado Evolutivo • Espiral • Modelos de Desarrollo AGILES

  23. Modelo lineal o Cascada • El modelo lineal presenta una estructura secuencial (de ahí el nombre de Modelo en cascada) • Formada por seis fases o etapas: • Definición de Requerimientos • Análisis y Diseño • Implementación • Prueba • Mantenimiento • El desarrollo de las fases, se produce de manera secuencial. • El Modelo en cascada no permite retroceder, por lo que se hace estrictamente necesario que al final de cada fase el analista de sistemas verifique y valide todo el trabajo realizado.

  24. Modelo de Cascada (gráfica) Definición de Requerimientos Análisis y Diseño y del Sistema Implementación y Prueba de unidades Integración y Prueba del Sistema Operación y Mantenimiento

  25. Modelo incremental • El modelo incremental es una evolución del modelo de cascada; viene a suplir el problema de no poder retroceder en las fases de desarrollo del software. • Comienza con el análisis de los requisitos, tras el cual se prepara un primer diseño. • Este modelo ofrece la posibilidad de comenzar un diseño, arquitectura, estructura, etc del software, que de no convencer al cliente (o al propio programador) es rechazado y se comienza con una segunda iteración (o un segundo diseño), sin necesidad de realizar un nuevo análisis de requisitos. • Pueden realizarse tantas iteraciones como sean necesarias.

  26. Modelo incremental Actividades Concurrentes Versión Inicial Análisis y Diseño Análisis de Requerimientos Versiones Intermedias Desarrollo Versión Final Validación

  27. Modelo de construcción de prototipos • Este modelo no secuencial, basado en la construcción de simulaciones o modelos ejecutables de aplicaciones más extensos • Persigue un objetivo principal: la participación directa del cliente en la construcción del software requerido. • Las fases son similares a las del modelo en cascada. • El diseño rápido del prototipo se mostrará al cliente para que evalúe el trabajo realizado. • El prototipo es una versión reducida del programa completo. Tras recoger los requisitos tanto del cliente como del sistema, se comienza con el diseño rápido del prototipo; • El diseño completoobedece al previo diseño de pequeños prototipos específicos para funciones individuales. Más tarde, estos diseños serán unidos en uno sólo. • Después, se procede a la construcción del mismo.

  28. Modelo de construcción de prototipos En Ingeniería de software la construcción de prototipos pertenece a los modelos de desarrollo evolutivo, El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar mucho dinero pues a partir de que este sea aprobado es que el desarrollador puede iniciar el verdadero desarrollo del software.

  29. Modelo espiral • Este modelo, también no secuencial, es algo más complejo que los anteriores, aunque incluye un elemento muy útil e importante en el desarrollo del software: análisis de riesgos. • El modelo en espiral concreta cuatro fases: • Definición de Objetivos • Evaluación y reducción de riesgos • Desarrollo y Validación • Planificación • Si ésta última fase es afirmativa, el modelo continúa con la estructura del Ciclo de vida Clásico. Si el cliente no está satisfecho con el resultado, se cubre otra banda de la espiral y se vuelve a la primera fase (de planificación).

  30. Modelo de Proceso de Espiral Análisis de riesgos Definición de objetivos Análisis de Riesgos Análisis de Riesgos Análisis de Riesgos Prototipo Operacional Prototipo 3 Análisis de Riesgos Prototipo 2 Proto tipo 3 REVISIÓN Simulaciones, modelos y benchmarks Plan de requerimientos Plan del ciclo de vida Concepto de Operación Requeri mientos de SW Analisis Producto Diseño Detallado Plan de Desarrollo Validación de Requerimientos Codificación Prueba de Unidades Plan de Integración y Prueba Diseño Prueba de Integración Prueba de Aceptación Planificación Desarrollo y Pruebas Servicio

  31. Metodologías ... Metodología Ágil Son la justa medida entre “ningún proceso” y “demasiado proceso”, proporcionando simplemente “suficiente proceso” para que el esfuerzo valga la pena !!!

  32. ModelosTradicionales vs Agiles • Las Metodologías Tradicionales se centran especialmente el control del proceso, mediante un rigorosa definición de roles, actividades, artefactos y herramientas y notaciones para el modelado y documentación detallada. Muy efectivas y necesarias para proyectos grandes. • Las Metodologías Agiles dan mayor prioridad al individuo, a la colaboración con el cliente y al desarrollo incremental del software con interacciones muy cortas.

  33. Costo de los Cambio en la Costrucción de SW • A medida que avanza el tiempo, el costo es exponencial en el caso de la construcción mediante una metodología tradicional a diferencia de la metodología tradicional.

  34. Principios de la MetologíaAgil • Satisfacer al cliente a través de tempranos y continuos entregables • Abrazar el cambio, ya que los requisitos cambian todo el tiempo • Entregar con frecuencia software que funcione, de dos semanas a un par de meses • Trabajar juntos diariamente en el proyecto tanto las personas del negocio como los desarrolladores. • El método mas eficiente y eficaz para transmitir información a los integrantes de un equipo de desarrollo, es conversación cara a cara • La medida principal de avance es el software que funciona • Construir proyectos alrededor de individuos motivados • Asumir simplicidad • Promover el desarrollo sostenible

  35. ¿Cuando un método es ágil? • El desarrollo de software es • Incremental • liberaciones pequeñas y ciclos rápidos. • Cooperativo • clientes y desarrolladores trabajando juntos. • Simple y Directo • el método es fácil de aprender y modificar. • Adaptativo • es posible realizar cambios de último momento.

  36. Reflexión • Highsmith & Cockburn 2001 “Lo que es nuevo en los procesos ágiles no son las prácticas que usan, sino que reconozcan a las personas como primeros implicados en el éxito de un proyecto, además de un intenso foco en la efectividad y la manejabilidad. Esto genera una nueva combinación de valores y principios que definen una visión ágil del mundo.”

  37. Las ágiles más conocidas ... • XP (Programación Extrema) • La familia Cristal de Cockburn • Código Abierto • ASD (Desarrollo de Software Adaptable) • SCRUM • FFD (Desarrollo Manejado por Rasgos) • DSDM (Método de desarrollo de sistema dinámico) • RUP (RationalUnifiedProcess)

  38. Programación Extrema (XP) • Creado por Kent Beck • Metodología ágil • Diseñada para entornos dinámicos • Pensada para equipos pequeños (hasta 10 programadores) • Orientada fuertemente hacia la codificación • Énfasis en la comunicación informal, verbal • Basado en cinco valores • Comunicación Eficaz: Colaboración estrecha pero informal (verbal) entre los clientes y los desarrolladores • Simplicidad: XP restringe a los desarrolladores para que diseñen solo para las necesidades inmediatas. • Retroalimentación: XP usa las pruebas unitarias como táctica principal de pruebas • Coraje y Valentía: Permite a los desarrolladores que se sientan cómodos con reconstruir su código cuando sea necesario.

  39. Proceso de la Programación Extrema

  40. SCRUM • SCRUM es un termino de Rugby, es la agrupación de los miembros del equipo. De esta manera el equipo trata de recorrer la distancia hacia la meta como una unidad, pasándose la pelota entre ellos. • Concebido por Jeff Sutherland y su equipo de desarrollo a principios de la década de 1990.

  41. ¿ Que es Scrum? ¿ Ciclo de Vida ? • Todo el trabajo es realizado en Sprints (30 días) • Durante el Sprint se realizan reuniones que constituyen la inspección empírica y las practicas de adaptación de Scrum. • SCRUM es una metodología ágil de gestión de proyectos cuyo objetivo primordial es elevar al máximo la productividad de un equipo. • Reduce al máximo la burocracia y actividades no orientadas a producir software que funcione y produce resultados en periodos muy breves de tiempo (cada 30 días), por medio de iteraciones o Sprints. • Ideal para proyectos con un rápido cambio de requerimientos.

  42. Mensaje Final ...

  43. Mensaje Final ... • Las metodologías nos dan la posibilidad de hacer mejor las cosas y generar valor. • El adoptar metodologías en una organización no es un proceso fácil y requiere de ayuda externa. • Hay prácticas que son aplicables a cualquier tipo de proyecto que uno quiera emprender. • Para romper paradigmas hay que tener la mente abierta.

  44. Preguntas ...

  45. Gracias ...

More Related