INTEGRANTES: Javier Melo Rivera Adriana Rodríguez Mahecha Grupo: Software Madaura (MaDaUrA) Pagina del wiki: http://madaura.wikispaces.com Contenido: 1. Definición de Ingeniería de Software. 2. Cuadro comparativo de modelos o procesos prescriptivos. 3. Proceso a aplicar a nuestro proyecto 1. INGENIERÍA DE SOFTWARE: Es la disciplina o área de la informática que está definida como el procesamiento automático de la información que ofrece métodos y técnicas para desarrollar y mantener software de calidad. SOFTWARE: Es equipamiento lógico o soporte lógico de una computadora, y comprende el conjunto de los componentes lógicos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema. SOFTWARE DE CALIDAD: Es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario. Es como la aptitud de un producto o servicio que se va a prestar para satisfacer las necesidades del usuario, en este caso en nuestro proyecto, o empresa, también la calidad de los productos, equipos y de los programas En si esta ingeniería trata con áreas muy diversas de la informática y de las ciencias de la computación, tales como construcción de compiladores, sistemas operativos, o desarrollos , abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de información y aplicables a infinidad de áreas: negocios, investigación científica, medicina, producción etc. 2. CUADRO COMPARATIVO DE MODELOS O PROCESOS PRESCRIPTIVOS. En la ingeniera de software nos basamos en la calidad como ya lo explicamos antes en la calidad del software entonces para ello, se siguen ciertos pasos que se adaptan a las necesidades del software que se está construyendo. Estos pasos son denominados procesos. Se tienen diferentes modelos de estos procesos, los cuales detallan los elementos que intervienen en cada uno de estos, ellos son los que nos ayudan y facilitan el desarrollo de software. Modelos: Cascada Evolutivo Iterativo Espiral Incremental MODELO CASCADA: el cual es el más sencillo de todos porque las fases se siguen de manera lineal, este modelo sirve perfectamente cuando todos los requisitos para el software están muy bien definidos y se sabe que no sufrirán grandes cambios. Puesto que al haber modificaciones estas alterarían el adecuado proceso de desarrollo ya que no se puede regresar a fases anteriores. MODELOS INCREMENTALES: son aquellos en donde se requiere proporcionar de manera rápida un conjunto limitado de funcionalidad para el usuario y después refinarla y expandirla en las entregas posteriores del software MODELOS EVOLUTIVOS: son interactivos, los caracteriza la forma en que permiten que los ingenieros de software desarrollen versiones cada vez más completas del software. MODELO PROTOTIPADO: modela el producto final y permite efectuar un test sobre determinados atributos del mismo sin necesidad de que este disponible. Se trata, simplemente, de testear haciendo uso del modelo. Esta técnica puede ser utilizada en cualquier etapa de desarrollo. A medida que el proceso progresa y el producto se completa, el prototipo ha de abarcar, cada vez más las características del producto final. MODELO EN ESPIRAL: es un modelo de proceso de software evolutivo que combina la naturaleza iterativa de construcción de prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial. CASCADA ITERACTIVO CARACTERISTICAS VENTAJAS DESVENTAJAS *Es el más utilizado. *Para que el proyecto tenga éxito debe hacerse todas las fases. *Si se cambia el orden delas fases el resultado no tiene la misma calidad. *Facilita el desarrollo en lo que respecta a la interfaz de usuario. *tiene un modelo y planificación fácil y sencillo. *Sus fases son conocidas por los desarrollador es. * Se evitan proyectos largos y se entrega “algo de valor” a los usuarios con cierta frecuencia. * El usuario se involucra más. * Se puede cambiar los requerimiento s pues como nos basamos en una versión a esta la aumentamos o la Modificamos. *Tarda mucho tiempo en pasar por todo el ciclo. *El mantenimiento se realiza en el código fuente. *El mercado cambia y todo cambia. * Corrige la necesidad de una secuencia no lineal de pasos de desarrollo * El sistema se crea añadiendo componentes funcionales al sistema incrementos *Se ajusta a entornos de alta incertidumbre * Difícil de evaluar el coste total. * Requiere gestores experimentados. * Necesitan una gran planeación. * Al requerir constantemente la ayuda de los usuarios Finales, se agrega un costo extra a la compañía. * Reduce el riesgo de construir productos que no satisfagan las necesidades de PROTOTIPADO los usuario * Reduce costos y aumenta la probabilidad de éxito * Exige disponer de las herramientas adecuadas * El prototipado es un medio excelente para recoger la realimentación del usuario final, así como también es mucho más rápido de desarrollarse. * El cliente se va familiarizando con el nuevo producto. . * La gestión de desarrollo que es lenta porque da vueltas hasta que el usuario este de acuerdo, o se pongan Limites. * Imposibilidad de conocer a priori el tiempo de desarrollo * Es muy difícil y complejo realizarlo *El ciclo identifica los objetivos de la porción correspondiente, Las alternativas, y las Restricciones. * Una vez resueltos los riesgos se sigue el ciclo en cascada * Se evalúan las alternativas respecto a los objetivos y las restricciones. * Al entregar productos desde el final de la primera iteración es mas fácil validar los requisitos * El riesgo en general es menor, porque si todo se hace mal , solo se ha perdido el tiempo y recursos invertidos en una iteración * Es difícil evaluar los riesgos * Genera mucho tiempo en el desarrollo del sistema * Modelo costoso requiere experiencia en la identificación de riesgos ESPIRAL 3. Vemos que lo importante en la ingeniería de software es la calidad, el proceso que llevaremos a cabo en nuestro proyecto de “Madaura” es el de cascada ya que necesitamos calidad de software en nuestro sistema, componente o proceso que nos cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario, y así satisfacer a el cliente. El método de cascada es sencillo, porque las fases se siguen de manera lineal, este modelo nos permite definir muy bien todos los requisitos para el software, por que analiza los requerimientos, luego diseño de sistemas, diseño de programa, codificación, pruebas, implementación y mantenimiento.