INGENIERÍA DEL SOFTWARE



Documentos relacionados
El Proceso Unificado de Desarrollo de Software


ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen

Departamento de Lenguajes y Sistemas Informáticos. Ciclo de vida del software

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

2 EL DOCUMENTO DE ESPECIFICACIONES

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

E-learning: E-learning:

Gestión de Proyectos Informáticos

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

ADMINISTRACIÓN DE LA PRODUCCIÓN

Durante la determinación del problema dentro de los procesos de mercadeo de R & S Training se pudo notar notables deficiencias en las relaciones con

Sistemas de Información

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

Ciclo de vida del Software

Tema 2. Ingeniería del Software I feliu.trias@urjc.es

METODOLOGÍA TRADICIONAL.

Ventajas del software del SIGOB para las instituciones

Anteproyecto Fin de Carrera

Elementos requeridos para crearlos (ejemplo: el compilador)

Modelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software

Análisis y Diseño de Aplicaciones

CICLO DE VIDA DEL SOFTWARE

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Bechtle Solutions Servicios Profesionales

Ingeniería de Software I

Gestión de la Configuración

Ingeniería de Software

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un

Ingeniería de Software. Procesos. Proyecto de Ingeniería. Metodologías. Metodologías. Metodologías. Metodologías de desarrollo

Proyecto Fin de Carrera

DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA

Gestión y Desarrollo de Requisitos en Proyectos Software

Ingeniería de Software

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

METODOLOGÍA TRADICIONAL.

El Proceso de Desarrollo de Software. Diseño de Software Avanzado Departamento de Informática

El modelo de ciclo de vida cascada, captura algunos principios básicos:

Sistemas de Gestión de Calidad. Control documental

Reporte inicial. Metodología

ANÁLISIS DE CARGOS. 1. Nombre del cargo 2. Posición del cargo en el organigrama. 3. Contenido del cargo. 1. Requisitos intelectuales

Estructuras de Control - Diagrama de Flujo

Qué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Propuesta Matriz de Actividades para un Ciclo de Vida de Explotación de Datos

Metodologías Ágiles Desde una Perspectiva de Project Management. Fernando Contreras Velásquez Project Management & Engineering Services.

Modelos y Bases de Datos

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP

Contabilidad de Costos

Práctica del paso de generación de Leads

Cuarto grado de Primaria

TITULO Editorial Autores ISBN AÑO

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Modelos y Bases de Datos

INGENIERÍA DE SOFTWARE. Sesión 3: Tipos

GUÍAS. Módulo de Diseño de software SABER PRO

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

CAPITULO VI PLAN DE IMPLEMENTACIÓN DEL SISTEMA DE PRESUPUESTOS DE COSTOS DE TIEMPOS ESTÁNDARES DE CONFECCIÓN DE PRENDAS DE VESTIR DE TEJIDO DE PUNTO.

Gestión de Configuración del Software

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Análisis del Consumidor

Diseño de un estudio de investigación de mercados

ORIENTACIONES GENERALES SOBRE EL PROCESO DE TRABAJO DE GRADO

Syllabus.

UT 1. Metodologías. Secundaria.

CMMI (Capability Maturity Model Integrated)

Plan de curso Sílabo-

AHORRACOM SOLUCIONES AVANZADAS S.L. Avda. de la Industria 13, Oficina Alcobendas, Madrid.

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Unidad 1. Fundamentos en Gestión de Riesgos

App para realizar consultas al Sistema de Información Estadística de Castilla y León

UFS. MetPoint / MetHome

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Introducción. Definición de los presupuestos

FASCÍCULO. Decidir con inteligencia. Este es el momento.

Herramientas Tecnológicas de Productividad

cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

Business Process Management(BPM)

EL SECRETO DE UN SOFTWARE EXITOSO

Portafolio de Servicios y Productos

Procesos Críticos en el Desarrollo de Software

Cómo mejorar la calidad del software a través de una gestión adecuada de la productividad de las pruebas

CAPÍTULO I FORMULACIÓN DEL PROBLEMA

Software diseñado especialmente para Planificación del entrenamiento, control de evaluaciones, Captura y Edición de Video.

ISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE

Aprendiendo con las redes sociales

Interacción Persona - Ordenador

comunidades de práctica

Materiales para el taller: Planificación y equipos de producción

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

SÍNTESIS Y PERSPECTIVAS

REGISTRO DE EMPRESAS Y PERSONAS BASE DE INFORMACIÓN DE CLIENTES & CONTACTOS

Transcripción:

INGENIERÍA DEL SOFTWARE

Sesión No. 2 Nombre: Procesos de ingeniería del software INGENIERÍA DEL SOFTWARE 1 Contextualización La ingeniería de software actualmente es muy importante, pues con los avances tecnológicos se crean muchas cosas que funcionan y operan mediante aplicaciones informáticas, el uso de los medios mecánicos está dejando de ser muy frecuente, por lo que es importante conocer las propiedades que puede manejar un software, las aplicaciones más grandes y pequeñas de uso cotidiano y la forma en que se idean y desarrollan éstas para diferentes usos, ya sea dispositivos móviles, televisores inteligentes, automóviles, software de computadora, etcétera. razasar.jimdo.com-

INGENIERÍA DEL SOFTWARE 2 Introducción al Tema Dentro de la forma en que se desarrollan aplicaciones y medios de programación, se ubica un importante procedimiento para su desarrollo y representación antes de la creación, en éste se pueden determinar los ciclos de vida de cada uno y los procesos por los que debe pasar para cumplir con la idea principal, los objetivos que debe efectuar y el uso de recursos que tendrá, definiendo un mínimo y un máximo para concretar el trabajo estipulado dentro de su código.

INGENIERÍA DEL SOFTWARE 3 Explicación Ciclo de vida del software Qué es un ciclo de vida en el software? Cualquier sistema secuencial tiene fases que dividen su complejidad y sus funciones, en el caso de la ingeniería de software, a este conjunto se le conocen como ciclo de vida de software. En éste de describen las fases en las que se divide el sistema para cumplir sus objetivos cada una de estas fases validan una función específica y verifican que los métodos utilizados sean los adecuados. Dependiendo de la finalidad del producto, se elige el modelo de ciclo de vida en algunos casos, las fases pueden ser bucles de realimentación, y se repiten más de una vez en el sistema, recibiendo aportes nuevos a los resultados y mejoras al momento de la ejecución. En la mayoría de los desarrollos de proyectos actuales es complicado ejecutar un modelo de ciclo de vida secuencial o hermética, así que en algunos desarrollos se implementan dos o más modelos de ciclo de vida haciendo adaptables las fases necesarias para su correcto funcionamiento. Figura 1. Sicilia, M. Factores del coste del ciclo de vida del software [Distribución del coste del ciclo de vida]. Recuperado de http://cnx.org/contents/82e48bb4-de56-44fd-b069- bf470491e5b7@4/factores-del-coste-del-ciclo-d

INGENIERÍA DEL SOFTWARE 4 Es ciclo de vida del software puede ser muy costoso si las etapas principales no se analizan adecuadamente, ya que el siempre mantenimiento que abarca correcciones, mejores, optimizaciones y otros, puede llegar a abarcar hasta el 67 % del costo general del ciclo de vida, mientras que el análisis y diseño pueden abarcar tan solo un 6 o 7 % lo que perjudica su visión posterior. Procesos del ciclo de vida. Los procesos o etapas del ciclo de vida varían dependiendo del modelo de ciclo de vida que sea implementado, pero las etapas que están presentes en todos son: Análisis. Diseño. Codificación. Pruebas. Mantenimiento. Análisis: Es todo lo referente a la gestión de requerimientos del cliente, este presenta las necesidades que tiene y se crea una lista de requerimientos para su posible solución. Diseño: Una vez que el análisis de requerimiento ha sido realizado, procedemos a plasmar la información gráficamente en diagramas para poder entender cómo va a funcionar el sistema o la solución planteada, como vimos al inicio de este curso, hay soluciones que no requieren un sistema en sí, sin embargo, es recomendable realizar al menos un ciclo de vida simple antes de implantar un producto. Codificación: Es la interpretación a un lenguaje de programación, se elige el más óptimo y que más se adapte a los recursos con los que se cuenta. Pruebas: Antes de implementar el sistema en producción es necesario realizar pruebas con casos reales, aunque en producción siempre existirá un problema

INGENIERÍA DEL SOFTWARE 5 no planeado, por eso es importante tener el control total al momento de lanzar el sistema. Mantenimiento: Algunas veces la etapa más costosa del proyecto, se refiere a las mejores y correcciones del sistema. Figura 2. Pes, C. Qué es el ciclo de vida de un programa? [Etapas del ciclo de vida de un programa]. Recuperado de: http://www.carlospes.com/curso_de_ingenieria_del_software/01_03_ingenieria_del_softw are.php Ciclos de vida tradicionales Estos son ciclos que aún se utilizan para construir sistemas complejos, los cuales exigen de un análisis riguroso y formal, controles estrictos sobre el proceso, etcétera. Este ciclo de vida no es conveniente para los sistemas pequeños de escritorio, los ciclos de vida tradicionales, son; Ciclo de vida clásica o de cascada Ciclo de vida iterativo o incremental Ciclo de vida de prototipos Ciclo de vida en espiral. Ciclo de vida evolutivo

INGENIERÍA DEL SOFTWARE 6 Figura 3. Alonso, F., Martínez. & Segovia, F. (2005). Introducción a la ingeniería de software: Modelos de desarrollo de programas [Modelo de ciclo de vida en espiral de Boehm] (p.113). España: Delta Publicaciones. Ciclos de vida para sistemas orientados a objetos Algunos sistemas necesitan ser menos herméticos y ser más modulares en su desarrollo, esto es porque suelen tener constantes cambios en algunas partes de su estructura o desarrollos no planeados posteriores después de su implementación, para ellos se implementan un ciclo de vida orientado a objetos.

INGENIERÍA DEL SOFTWARE 7 Los ciclos de vida orientados a objetos son: Ciclo de vida fuente. Ciclo de vida de agrupamiento o clúster. Ciclo de vida PinBall. Figura 4. Muriel, J. (2012) Ciclos de vida orientados a objetos [Modelo Clúster]. Recuperado de: http://juanmurielc.blogspot.mx/ Cuál es la diferencia entre el modelo tradicional y el modelo orientado a objetos? La diferencia entre los modelos de ciclo de vida no es nada más que el uso al que van dirigidos, mientras que el modelo tradicional se orienta en sistemas herméticos que necesitan ser desarrollados de manera secuencial, el modelo orientado a objetos permite su manipulación en cualquier etapa del proyecto aun ya implementado, pero los dos ciclos tienen como base las mismas fases.

INGENIERÍA DEL SOFTWARE 8 Metodologías de desarrollo de software La metodología es un conjunto de conocimientos, herramientas y procedimientos para lograr un objetivo, en el desarrollo de software, las metodologías pueden seguir uno o varios ciclos de vida, cada una ocupa técnicas que desarrolla y mejora en base a la experiencia para adquirir un software de calidad. Concepto Qué es una metodología de desarrollo de software? Se conoce como metodología de desarrollo al conjunto de conocimientos y herramientas para crear software de calidad, esta se clasifica según su objetivo, precisión de requisitos, estructura del sistema, y diseño. Un ejemplo es el seguimiento de un ciclo de vida, como vimos en temas anteriores, iniciamos con la etapa de análisis de requerimientos, seguida del diseño, posteriormente el desarrollo del sistema, y si continuamos con las etapas podemos ver que tiene una continuidad, aunque el ciclo de vida no sea secuencial o hermético, esta es la importancia de tener metodologías de desarrollo.

INGENIERÍA DEL SOFTWARE 9 Cómo se clasifican las metodologías de desarrollo de software? En el desarrollo de software, las metodologías se dividen en: Metodologías tradicionales o pesadas. Metodologías agiles. Metodologías hibridas. Evolución histórica Cómo surge la metodología tradicional? La metodología tradicional o clásica surge al momento de la programación estructurada, es la primera metodología en desarrollarse, requiere de la etapa de análisis y diseño antes de la construcción del sistema, esto hace su implementación muy estricta. Su coste es muy alto al momento de implementar cambios y es poco flexible para algunos proyectos; esta metodología se centra en la documentación, esquemas, diagramas de planificación, entre otros. Algunos ejemplos de metodologías tradicionales son: Técnica de Modelado de Objetos (OMT, del inglés Object Modeling Technique) y Proceso Racional Unificado (RUP, del inglés Rational Unified Process).

INGENIERÍA DEL SOFTWARE 10 Cómo surge la metodología ágil? La metodología ágil surge de la necesidad de crear desarrollos flexibles y sencillos en periodos más cortos de tiempo que la anterior, además de que el cliente colabora para validar funcionalidades y requerimientos. Algunos ejemplos de metodologías agiles son: Programación Extrema (XP del inglés extreme Programming) y Scrum (su nombre proviene de un tipo de jugada del rugby). Figura 5. 8th annual state of agile survey (2014) Agile Methods & Practices [Agile Methodology Used]. Recuperado de: https://www.versionone.com/pdf/2013-state-of-agile-survey.pdf

INGENIERÍA DEL SOFTWARE 11 Cómo surge la metodología híbrida? La metodología hibrida surge de la a partir de la metodología ágil, ya que en los sistemas actuales se requiere mayor flexibilidad pero con la formalidad y secuencia de la metodología tradicional; es la unión de las mejores prácticas entre ambas. Las mismas empresas pueden crear su metodología hibrida como se adapte a sus necesidades, para incrementar su productividad. Un ejemplo de esta metodología es Proceso Unificado Esencial (EssUp del inglés Essential Unified Process).

INGENIERÍA DEL SOFTWARE 12 Conclusión Cuál es la importancia de las metodologías de desarrollo? Las metodologías de desarrollo de software son herramientas, fases y conocimientos que nos ayudan a cumplir los objetivos establecidos que van desde cada una de las fases del proyecto, hasta terminar el mismo, la metodología ágil nos permite tener más interacción con el cliente y poder regresar a etapas anteriores si existiera algún problema; mientras que la metodología tradicional es más estricta y sigue su proceso de forma secuencial. Pero también existe la metodología hibrida, que aún sigue en desarrollo y se adapta perfecto a los sistemas actuales, ya que está compuesta de las mejoras de la metodología tradicional y la metodología ágil. Hay que recordar que dependiendo del tamaño del sistema y los objetivos que va a cumplir se elige el modelo de ciclo de vida así como su metodología, lenguaje de programación, gestión de tiempos, entre otras.

INGENIERÍA DEL SOFTWARE 13 Para aprender más Uso de la metodología ágil actual. 8 th Annual State of Agile Survey (2014). Version One, Sitio Web: https://www.versionone.com/pdf/2013-state-of-agile-survey.pdf Metodologías hibridas para el desarrollo software. Jiménez Hernández E, Orantes Jiménez S. (2012). Metodologías híbridas para desarrollo de software: una opción factible para México. Revista Digital Universitaria, 1 de enero de 2012, Vol. 13, No.1. Sitio Web: http://www.revista.unam.mx/vol.13/num1/art16/#up

INGENIERÍA DEL SOFTWARE 14 Actividad de Aprendizaje Instrucciones: Para que reafirmes los conocimientos que has adquirido en esta sesión, tendrás que realizar una actividad la cual consiste en realizar un mapa conceptual donde detalles las metodologías de desarrollo y su relación con los ciclos de vida. Deberás guardarlo en formato JPG, para subirlo a la plataforma de la asignatura. Es muy importante que tengas claros los conceptos de esta sesión, ya que más adelante harás uso de ellos de manera práctica. Para esta actividad se tomará en cuenta lo siguiente: Título Datos personales Mapa conceptual Ortografía y redacción Bibliografía

INGENIERÍA DEL SOFTWARE 15 Bibliografía Alonso, F., Martínez, L., & Segovia, F. (2005). Introducción a la Ingeniería del Software: Modelos de desarrollo de Programas. España: Delta Publicaciones.