La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

UNIVERSIDAD POPULAR DEL CESAR

Presentaciones similares


Presentación del tema: "UNIVERSIDAD POPULAR DEL CESAR"— Transcripción de la presentación:

1 UNIVERSIDAD POPULAR DEL CESAR
INGENIERIA DE SOFTWARE Maribel Romero Mestre

2 Fundamentos de Ingeniería de Software Objetivos
Presentar al alumno conceptos básicos de la Ingeniería de Software. Analizar la evolución del software Describir los modelos del ciclo de vida de software

3 Fundamentos de Ingeniería de Software Conceptos básicos
Software: Es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo". Según el mismo autor, "un producto de software es un producto diseñado para un usuario". Definicion IEEE

4 Fundamentos de Ingeniería de Software Importancia del Software
La economía de los países desarrollados dependen del Software. Mas y mas sistemas son controlados por software. El gasto en la Ingeniería de software representa un alto porcentaje del PIB de los países.

5 Fundamentos de Ingeniería de Software Evolución del Software
Primeros años Orientación por lotes Distribución Limitada Software a la medida Segunda era Multiusuario Tiempo real Sistema de gestión de Bases de datos Software como producto Tercera era 1980 Sistemas distribuidos Incorporación de inteligencia Hardware de bajo costo Impacto en el consumo Cuarta era Sistemas potentes Tecnología orientado a objetos Sistemas expertos Redes neuronales artificales

6 Fundamentos de Ingeniería de Software Definición Ingeniería de Software
La Ingeniería del software es una disciplina o área de la Informática o Ciencias de la Computación, que ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo. Ingeniería de Software es la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones costo-efectivas (eficaces en costo o económicas) a los problemas de desarrollo de software", es decir, "permite elaborar consistentemente productos correctos, utilizables y costo-efectivos" [Cota 1994].

7 Fundamentos de Ingeniería de Software Definición Ingeniería de Software
La Ingeniería de Software se define como la disciplina tecnológica relacionada con la producción sistemática y el mantenimiento de productos de software que son desarrollados y modificados en el tiempo previsto y dentro de los costos estimados.

8 Ingeniería de Software
Fundamentos de Ingeniería de Software Definición Ingeniería de Software Métodos Ingeniería de Software Herramientas Procedimientos Conjunto de métodos, herramientas y procedimientos para producir software de gran calidad. [R. Pressman]

9 Fundamentos de Ingeniería de Software
Los métodos describen como construir técnicamente el software. Comprenden las actividades: Planificación y estimación de proyectos Análisis de requisitos Diseño Codificación Prueba Mantenimiento Las herramientas dan soporte automático o semiautomático a los métodos. Los procedimientos relacionan formalmente a los métodos y herramientas.

10 Capas de la Ingenieria de Software
Capa proceso. El proceso define un marco de trabajo. Los métodos de la ingeniería de software indican cómo construir técnicamente el software. Las herramientas de la ingeniería del software proporcionan un soporte automático o semi-automático para el proceso y los métodos

11 Características de la ingeniería del software (Van Vliet 1993)
Construcción de programas grandes Controlar la complejidad Cooperación entre las personas implicadas Evolución del software Eficiencia en el desarrollo Soporte real a los usuarios

12 ¿Donde nos encontramos?
Con Problemas, tendremos que disponer de: Técnicas de desarrollo que minimicen la complejidad de un sistema software. Métodos y conceptos que permitan al productor y al cliente explorar la naturaleza del sistema software lo antes posible. Técnicas que minimicen los efectos devastadores de las modificaciones durante el desarrollo y la explotación.

13 ¿Que hace un Ingeniero? Construir artefactos dentro de unas limitaciones de costos, utilizando el conocimiento y las teorías de la ciencia sobre la cual se basa el artefacto.

14 Modelo de la Ingeniería del software (Thayer 1988)

15 Técnicas básicas usadas en las ingenierías
Históricamente se han utilizado técnicas como: El modelado División del Producto División del Proceso

16 El modelado. Simplificación del objeto en el mundo real, pero que es suficientemente realista como para dar una idea de lo que ocurrirá en la realidad y usarse como base del desarrollo.

17 División del Producto. Se fracciona el producto de modo que cada fragmento lo puede realizar un miembro del grupo de desarrollo.

18 División del Proceso. Implica dividir el desarrollo del artefacto por fases. Normalmente se habla de especificación, diseño y fabricación. ¿Que? ¿Como? Pruebas Realización

19 Madurez del Proceso del SOFTWARE.
En el desarrollo de software nos encontramos con la siguiente situación Ciclos de Vida del SOFTWARE Metodologías de Desarrollo del SOFTWARE Clientes y Proveedores, con intereses distintos Desarrolladores que cada cual va a la suya. La forma de evitar el desastre pasa por: Tener un ciclo de vida apropiado a la situación. Complejidad: ¿Es un producto complejo? Incertidumbre: ¿El cliente sabe lo que quiere? Utilizar una metodología de desarrollo Lenguaje claro, Especificación, diseño, ... Conjunto de herramientas a utilizar. Un proceso maduro, es decir: Que conozcamos bien (utilizado otras veces) Que lo tengamos medido Que sea completo, para producir con calidad. Madurez del Proceso del SOFTWARE.

20 Ciclo de Vida del Software
“Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software” IEEE 1074 En el momento en que se percibio el desastre del software se trato de regular las tareas que se deben realizar durante el desarrollo de software, y el ordenen que se deben realizar. Se tomaron como ejemplo otras ingenierías.

21 Ciclo de Vida del Software
“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” ISO En el momento en que se percibio el desastre del software se trato de regular las tareas que se deben realizar durante el desarrollo de software, y el ordenen que se deben realizar. Se tomaron como ejemplo otras ingenierías.

22 Ciclo de Vida del Software
Consiste en determinar: Las fases productivas de un proyecto, Los objetivos de cada fase productiva, y Los productos obtenidos en cada una de estas fases así como sus características. En el momento en que se percibio el desastre del software se trato de regular las tareas que se deben realizar durante el desarrollo de software, y el ordenen que se deben realizar. Se tomaron como ejemplo otras ingenierías.

23 Fundamentos de Ingeniería de Software Definición Ingeniería de Software
El proceso de ingeniería de software se define como "un conjunto de etapas parcialmente ordenadas con la intención de logra un objetivo, en este caso, la obtención de un producto de software de calidad" [Jacobson 1998]. El proceso de desarrollo de software "es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo". Concretamente "define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo" [Jacobson 1998].

24 Proceso de Software Es un conjunto de actividades técnicas y administrativas realizadas durante la adquisición, desarrollo, mantenimiento y retiro de software. [SWEBOK] El proceso de la ingenieria de Software es el elemento que mantiene junto los estratos de la tecnologia y permite el desarrollo racional y a tiempo del software de computadora. [PRESSMAN]

25 ¿Qué es un Proceso de Desarrollo de SW?
Define Quién debe hacer Qué, Cuándo y Cómo debe hacerlo No existe un proceso de software universal. Las características de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable Sistema nuevo o modificado Requisitos nuevos o modificados Proceso de Desarrollo de Software

26 Proceso de Software

27 Proceso de Software Especificación: Establecer los requerimientos y restricciones del sistema. Diseño: Producir un modelo en papel del sistema. Manufactura: Construir el sistema. Prueba: Verificar que el sistema cumpla con las especificaciones requeridas. Instalación: Entregar el sistema al usuario y asegurar su operacionalidad. Mantenimiento: Reparar fallas en el sistema cuando sean descubiertas.

28 Caracteristicas del Proceso
Entendible Visible Soportable Aceptable Confiable Robusto Mantenible Rapidez

29 Los procesos son importantes
El problema del software se reduce a la dificultad que afrontan los desarrolladores para coordinar las múltiples cadenas de trabajo. Se necesita de un proceso que integre las múltiples facetas del desarrollo. Proceso que: Guía para ordenar las actividades de un equipo Gestiona tareas individuales y equipo Especifique los artefactos a desarrollar Ofrezca criterios para el control la medición de los productos y servicios

30 Incidencia de proceso en la calidad de producto de software
Cliente/Usuario Proceso Producto Desarrollador

31 Elementos de un Proceso SW
Actividades Herramientas Personas Proceso SW Roles Artefactos Notación

32 Modelos de procesos de desarrollo de Software
Modelo lineal Modelo Cascada Modelos incrementales Modelo incremental Modelo DRA (Desarrollo rápido de aplicaciones) Modelo Evolutivos Prototipos Espiral Desarrollo concurrente Desarrollo basados en componentes

33 Modelo Lineal Aplicación secuencial de una serie de pasos
Propuesto por W. Royce a principios de los años 70. Aplicación secuencial de una serie de pasos Cada paso genera entradas y documentación para la siguiente.                                              

34 Modelo Lineal Criticas al ciclo de vida
Proyectos muy poco siguen el flujo secuencial. Dificultad para establecer los requerimientos al principio del proceso. Los errores no se detectan en el tiempo indicado. Las correcciones se hacen en el momento que se presente el problema.                                              

35 Modelo Cascada

36 Modelo Cascada Flujo secuencial entre las etapas.
La salida de una etapa es la entrada para la siguiente. Supone que para comenzar una etapa deben haber finalizado las anteriores. El proceso debe ser disciplinado, planeado y gerenciado.

37 Modelo Cascada Consideraciones
Las iteraciones son costosas e implican rehacer trabajo debido a la producción y aprobación de documentos. Aunque son pocas iteraciones, es normal congelar parte del desarrollo y continuar con las siguientes fases. Los problemas se dejan para su posterior resolución, lo que lleva a que estos sean ignorados o corregidos de una forma poco elegante. Existe una alta probabilidad de que el software no cumpla con los requisitos del usuario por el largo tiempo de entrega del producto. Es inflexible a la hora de evolucionar para incorporar nuevos requisitos. Es difícil responder a cambios en los requisitos.

38 Modelo Incremental

39 Modelo Incremental El modelo incremental combina elementos del modelo en cascada aplicado en forma iterativa. Entrega el software en partes pequeñas pero utilizables “Incrementos”. El usuario se involucra mas. Si un error importante es realizado, solo la ultima iteración necesita ser descartada. Difícil de evaluar el costo total.

40 Modelo Incremental Ventajas Desventaja
Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema. Pueden empezar a usarlo desde el primer incremento. Los clientes pueden aclarar los requisitos que no tengan claros conforme ven las entregas del sistema. Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir en cada incremento. Las partes más importantes del sistema son entregadas primero, por lo cual se realizan más pruebas en estos módulos y se disminuye el riesgo de fallos. Desventaja Cada incremento debe ser pequeño para limitar el riesgo (menos de líneas). Cada incremento debe aumentar la funcionalidad. Es difícil establecer las correspondencias de los requisitos contra los incrementos. Es difícil detectar las unidades o servicios genéricos para todo el sistema.

41 Modelo Desarrollo Rapido de Aplicaciones DRA
Es una adaptación a alta velocidad del modelo en cascada, en el que se desarrollo rápido mediante un enfoque de construcción basado en componentes. Crea un sistema completamente funcional dentro de un periodo muy corto.

42 Modelo Desarrollo Rapido de Aplicaciones DRA

43 Modelo prototipado La construcción de prototipos es un proceso que facilita al programador la creación de un modelo de software a construir.

44 Modelo prototipado Observaciones del prototipado
Facilita la captación de los requerimientos del cliente Reduce el riesgo del parcheado del producto final. La construcción de prototipo supone una inversión inicial. El cliente ve funcionando una versión de lo que será su programa sin asumir que su versión no es robusta ni completa.

45 Modelo prototipado No modifica el flujo del ciclo de vida
Reduce el riesgo de construir productos que no satisfagan las necesidades de los usuarios Reduce costos y aumenta la probabilidad de éxito Exige disponer de las herramientas adecuadas No presenta calidad ni robustez Una vez identificados todos los requisitos mediante el prototipo, se construye el producto de ingeniería

46 Modelo Espiral

47 Modelo Espiral

48 Modelo Espiral Trata de mejorar los ciclos de vida clásicos y prototipos. Permite acomodar otros modelos Incorpora objetivos de calidad y gestión de riesgos Elimina errores y alternativas no atractivas al comienzo Permite iteraciones, vuelta atrás y finalizaciones rápidas Cada ciclo empieza identificando: Los objetivos de la porción correspondiente Las alternativas Restricciones Cada ciclo se completa con una revisión que incluye todo el ciclo anterior y el plan para el siguiente

49 Modelo Espiral Ventajas
Reconocimiento explícito de las diferentes alternativas. Identificación de riesgos para cada alternativa desde el comienzo. Al dividir el proyecto en ciclos, al final de cada uno existe un acuerdo para los cambios que hay que realizar en el sistema. El modelo se adapta a cualquier tipo de actividad adicional

50 Modelos evolutivos Desventaja Aplicabilidad
Poca visibilidad en el proceso Los sistemas no están muy especificados Se requiere habilidades especiales. Aplicabilidad Para sistemas interactivos pequeños o medianos. Para partes de sistemas grandes. Para sistemas de corta vida.

51 Modelo Basado en Componentes

52 Modelo Basado en Componentes
Ventajas Centra su utilización en la reutilización de sus componentes y eliminación de errores en información descubierta en fases iniciales Los objetivos de calidad son el principal objetivo. Integra desarrollo con mantenimiento. Disminuye el costo y esfuerzo de desarrollo. Reduce el tiempo de entrega. Disminuye los riesgos durante el desarrollo.


Descargar ppt "UNIVERSIDAD POPULAR DEL CESAR"

Presentaciones similares


Anuncios Google