La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ACI 602 Ingeniería de Software

Presentaciones similares


Presentación del tema: "ACI 602 Ingeniería de Software"— Transcripción de la presentación:

2 ACI 602 Ingeniería de Software
Clase 2 Ingeniería de Software

3 El Proceso de Desarrollo de Sistemas
Causas para el ESTUDIO de Modelos Costos asociados al desarrollo de software excesivamente elevados. El comportamiento y funcionalidad del sistema actual es insatisfactorio. Motivación de los ingenieros a desarrollar nuevos modelos de desarrollo, incluyendo prototipos, síntesis de software, software reutilizable,….

4 El Proceso de Desarrollo de Sistemas
Necesidades de las organizaciones Definir las actividades necesarias en el desarrollo de un Sistema de Información. Mantener una coherencia entre todos los proyectos de una misma organización. Introducir puntos de control para realizar revisiones y controles de calidad, toma de decisiones. Investigación de paradigmas o modelos de desarrollo.

5 El Proceso de Desarrollo de Sistemas
Que se debe realizar División del Producto Se fracciona el producto de modo que cada fragmento lo puede realizar un miembro del grupo de desarrollo.

6 El Proceso de Desarrollo de Sistemas
División del Proceso Implica dividir el desarrollo del sistemas en fases o etapas, y normalmente se habla de especificación, diseño y construcción. ¿Como? ¿Que? Pruebas Realización

7 El Proceso de Desarrollo de Sistemas
Existen algunos Modelos de Ingeniería del software (Thayer)

8 El Proceso de Desarrollo de Sistemas
Definición de Ingeniería de Software (R.E. Fairley 1985) Ingeniería de Software se define como la disciplina tecnológica que incluye: Desarrollo y mantenimiento sistemáticos de productos software que son desarrollados y modificados en el tiempo y con los costos estimados.. Gestión que no están dentro del dominio de la programación tradicional de un sistema.

9 El Proceso de Desarrollo de Sistemas
Como se debe abordar el desarrollo de un Sistema.

10 El Proceso de Desarrollo de Sistemas
La Versión Ideal A alguien se le ha ocurrido introducir Informática Requerimientos del Sistema Investigación Inicial, Identificación de Necesidades, Encuesta, etc. Estudio de Viabilidad Requerimientos del Software Análisis Especificación Diseño Preliminar y Detallado Diseño Especificación de diseño Codificación y Depuración Codificación Aplicación Test y pruebas previas a la OPERACIÓN Validación Instalación, Explotación OPERACIÓN Y MANTENIMIENTO

11 El Proceso de Desarrollo de Sistemas
El Cono de Helado USUARIOS Identificación Explotación de Necesidades Especificación CLIENTES Validación Esencial Especificación ANALISTA Empaquetado Física Diseño Integración DISEÑADORES Y CODIFICADORES Codificación

12 El Proceso de Desarrollo de Sistemas
El Modelo Real Identificación Explotación de Necesidades Especificación Validación Esencial Especificación Empaquetado Física Diseño Integración Codificación

13 El Proceso de Desarrollo de Sistemas
Propuesta de Yourdon Encuesta Análisis diseño Preliminar Estudio del HW Diseño Detallado Codificación Prueba de Unidad subsistema Sistema Requerimientos del Usuario Especificación Funcional Necesidades de Rendimiento del Sistema Configuración Final de los Programas Módulos Codificados Probados Subsistemas Probado

14 El Proceso de Desarrollo de Sistemas
Ciclo de vida del Software 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. Esto incluye la vida del sistema desde la definición de los requisitos hasta la finalización de su uso.”

15 El Proceso de Desarrollo de Sistemas
DEFINICIONES CICLO DE VIDA: Conjunto de etapas que se han de llevar a cabo para crear, explotar y mantener un Sistema Informático. METODOS: Son las normativas que marcan las directrices que se han de seguir para llevar a cabo una tarea. Responde a la pregunta QUÉ. TECNICAS: Es un modo de representación para la solución de un problema concreto. Responde a la pregunta CÓMO.

16 El Proceso de Desarrollo de Sistemas
HERRAMIENTAS: Proporcionan un soporte automático o semi-automático para el proceso y para los métodos. METODOLOGIA: Es un conjunto coherente de métodos y técnicas que cubren más de una etapa del ciclo de vida.

17 El Proceso de Desarrollo de Sistemas
Paradigmas o Modelos de desarrollo Los paradigmas o modelos de desarrollo de Software son estrategias de desarrollo para organizar las diversas etapas y actividades del ciclo de vida del software. Describen las transiciones entre las etapas, especificando qué actividades desarrollar en cada momento. Selección de un modelo o paradigma específico dependiendo de la naturaleza del proyecto y/o aplicación, los métodos, las herramientas a utilizar, los controles y entregas que se requieren.

18 El Proceso de Desarrollo de Sistemas
El trabajo asociado a la ingeniería de Software puede dividirse en tres fases fundamentales, independientemente del área de aplicación: FASE DE DEFINICIÓN FASE DE DESARROLLO FASE DE MANTENIMIENTO

19 El Proceso de Desarrollo de Sistemas
Fase de Definición Qué información ha de ser procesada Qué función y rendimiento se desea Qué comportamiento se espera del sistema Qué interfaces van a ser establecidas Qué restricciones de diseño existen Qué criterios de validación se necesitan para esta fase definición.

20 El Proceso de Desarrollo de Sistemas
Dependiendo del paradigma o modelo se definen un conjunto específico de actividades, pero las tareas principales serán: ingeniería de sistema o de información. planificación del proyecto del software. análisis de los requisitos.

21 El Proceso de Desarrollo de Sistemas
Fase de Desarrollo Cómo se diseñaran las estructuras de datos. Cómo se implementara la función como una arquitectura de software. Cómo se caracterizarán las interfaces. Cómo se traducirá el diseño en un lenguaje de programación. Cómo se realizarán las prueba

22 El Proceso de Desarrollo de Sistemas
Fase de Desarrollo Las tareas principales serán: Diseño del software. Generación de código. Prueba del software.

23 El Proceso de Desarrollo de Sistemas
Fase de Mantenimiento Fase centrada en el cambio que va asociado a: La corrección de errores. Las adaptaciones requeridas a medida que evoluciona el entorno del software. Los cambios producidos por los requerimientos cambiantes del software.

24 El Proceso de Desarrollo de Sistemas
Fase de Mantenimiento Podemos visualizar cuatro tipos de cambio: Corrección Adaptación (Cambio de sistema Operativo, reglas de la empresa,etc.). Mejora. Prevención (reingeniería)

25 El Proceso de Desarrollo de Sistemas
Fase de Mantenimiento Actividades a realizar Gestión de riesgos. Revisiones técnicas formales. Mediciones. Garantia de calidad del software. Seguimiento y gestion del proyecto de software. Gestión de reutilización.

26 El Proceso de Desarrollo de Sistemas
Si desglosando las fases anteriores, encontramos las principales fases o etapas del ciclo de vida del software: Identificación del sistema y definición de requerimientos Análisis Diseño Desarrollo e implementación Integración y prueba del software Documentación Entrenamiento y uso Mantenimiento del software

27 El Proceso de Desarrollo de Sistemas
Principales Modelos de Desarrollo Ciclo de vida en cascada o modelo tradicional (WaterFall). Prototipo. Modelo o ciclo de vida en espiral. Programación Exploratoria. Transformaciones formales. Modelos de desarrollo orientados a objetos.

28 El Proceso de Desarrollo de Sistemas
Ciclo de vida en cascada o modelo Tradicional La finalidad de este modelo es establecer orden en el desarrollo de grandes productos de software. Las diferentes etapas son procesadas de un modo lineal. Es la base de muchos otros modelos, levemente mejorada y retocada a lo largo del tiempo. Aún en nuestros días sigue siendo muy utilizado.

29 El Proceso de Desarrollo de Sistemas
Enfocado a especificar lo que el sistema ha de hacer (definición de requerimientos) antes de la construcción del sistema. Define los componentes que van a interaccionar. Gestiona la identificación de errores. Genera un conjunto de documentos para más tarde son utilizados y permitir un buen chequeo y mantenimiento del sistema. Reducir los costos de desarrollo y mantenimiento.

30 El Proceso de Desarrollo de Sistemas
Etapas del Ciclo de vida en cascada 1. Definición de requerimientos Estudio detallado de la situación actual del problema a tratar. Definición de los requerimientos que debe cumplir el nuevo sistema. 2. Análisis y diseño del sistema Descomposición modular del sistema. Descripción detallada de cada uno de los módulos y sus inter-relaciones, todo ello para poder facilitar al máximo la fase de codificación.

31 El Proceso de Desarrollo de Sistemas
Etapas del Ciclo de vida en cascada 3. Implementación (codificación) Cada módulo como resultado de la fase anterior es traducido a la herramienta o lenguaje con el cual se construirá el sistema. 4. Integración y pruebas Verificación del correcto funcionamiento de cada módulo y todo el sistema una vez ha sido integrado. Detectar errores en la codificación, definiciones de requerimientos y de diseño

32 El Proceso de Desarrollo de Sistemas
5. Explotación y mantenimiento Garantizar el mantenimiento del sistema. Corrección de errores detectados en esta fase, adaptación del sistema a nuevos entornos. ¿Cuál es la etapa que absorbe la mayoría de tiempo? La fase de explotación y mantenimiento, y es un costo adicional para el cliente.

33 El Proceso de Desarrollo de Sistemas
Objetivos principales de cada una de las fases: Estudio del sistema actual y viabilidad del nuevo sistema. Identificación de usuarios relacionados. Estudio de su puesto de trabajo. Deficiencias actuales. Sugerencias para el futuro. Establecer los objetivos del nuevo sistema. Determinar la viabilidad proponiendo diversas soluciones. Planificación de desarrollo.

34 El Proceso de Desarrollo de Sistemas
Ciclo de vida en cascada: Ventajas Objetivos principales de cada una de las fases: 2. Análisis Especificación estructurada utilizando diferentes técnicas de diagramas para modelar el sistema nuevo, realizand también el estudio de la situación actual. 3. Diseño Establecer un conjunto de módulos e interfaces entre ellos, desglosando la especificación obtenida en la fase de análisis. Facilita la tarea de codificación, transformando los modelos lógicos a físicos.

35 El Proceso de Desarrollo de Sistemas
4. Implementación Obtener un producto utilizando un lenguaje de programación y obteniendo una integración de los módulos. 5. Generación de pruebas de aceptación Especificación de un conjunto de pruebas. 6. Garantía de calidad. Obtener un producto de calidad. 7. Descripción de los procedimientos Toda la documentación necesaria para describir tanto los procesos como el producto resultante. 8. Instalación e implantación del nuevo sistema al entorno. Instalar el producto final.

36 El Proceso de Desarrollo de Sistemas
Como se Representa Documentación Definición de requerimientos Análisis y Diseño del sistema Implementación Integración y Pruebas Explotación y Mantenimiento

37 El Proceso de Desarrollo de Sistemas
Ciclo de vida en cascada: Desventajas El establecimiento explícito de todos los requerimientos del sistema al principio del desarrollo. Poca flexibilidad para cambios en el sistema. No muestra interactividad entre fases. Nada hecho hasta el final. La validación de los requerimientos iniciales no se realiza hasta el final.

38 El Proceso de Desarrollo de Sistemas
La implementación del sistema de un modo ascendente implica: primero las pruebas modulares después la de los subsistemas finalmente la del sistema completo Los problemas graves suelen encontrarse en la interfase entre subsistemas.

39 El Proceso de Desarrollo de Sistemas
Modelo del Prototipo Utilizados principalmente en el desarrollo de sistemas donde existe un pobre conocimiento de los requerimientos o la rápida evolución de los mismos a través del tiempo. Captura de requerimientos  “diseño rápido” El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles al usuario. El prototipo es evaluado por el cliente y el usuario está autorizado para refinar los requerimientos del software a ser desarrollado.

40 El Proceso de Desarrollo de Sistemas
Fases: Análisis y especificación de los requerimientos del usuario. Diseño e implementación de un prototipo. Énfasis en la interfase del usuario, equipo pequeño para minimizar los costos de comunicación.

41 El Proceso de Desarrollo de Sistemas
Utilización de herramientas de ayuda al desarrollo. Ejercicio del prototipo, refinamiento iterativo del prototipo. Refinamiento de los requerimientos. A partir de la fase 6 se sigue con el estándar del ciclo de vida.

42 El Proceso de Desarrollo de Sistemas
El ciclo de vida de Prototipos Desechables es el siguiente: Aceptado Obtención Especificación Construcción Prototipo Ciclo de Vida Clásico Evaluación Cliente Mejora de la Especificación NO Aceptado

43 El Proceso de Desarrollo de Sistemas
Prototipo

44 Prototipo :Desventajas
El Proceso de Desarrollo de Sistemas Prototipo :Desventajas El diseño rápido indica muchas de las veces el utilizar fragmentos de programas ya existentes y herramientas que faciliten la rápida generación de programas, lo que puede llevar a : No se tiene en cuenta la calidad del software, ni su mantenimiento. Ineficiencia de los programas, utilización de recursos, utilización de lenguajes inadecuados

45 Cuando el cliente no sabe o no quiere revisar modelos
El Proceso de Desarrollo de Sistemas Prototipo: ¿Para QUE nos puede ser útil? Cuando el cliente no sabe o no quiere revisar modelos abstractos de datos (DER o DFD) para la validación de los resultados que se van obteniendo. “No sé lo que quiero , pero lo reconoceré en cuanto lo vea” Sistemas on-line donde la importancia reside más en la interficie de usuario que en los procesos.

46 Modelo o ciclo de vida en espiral
El Proceso de Desarrollo de Sistemas Modelo o ciclo de vida en espiral Se produce una cadena continua de productos, los cuales están disponibles para la examinación y evaluación por parte del cliente. Provee mecanismos para la seguración de la calidad del software. La reevaluación después de cada fase permite cambios en las percepciones de los usuarios, avances tecnológicos o perspectivas financieras.

47 Planificación : El Proceso de Desarrollo de Sistemas
Puntos Importantes Planificación : Determinación de objetivos, alternativas, restricciones y elaboración del plan de desarrollo para el ciclo actual. Análisis de riesgos : Evaluación de las alternativas, identificación y resolución de riesgos. Se decide si se sigue o no con el proyecto.

48 El Proceso de Desarrollo de Sistemas
Ingeniería : Desarrollo del producto siguiendo un modelo: ciclo de vida o cascada, prototipo, etc... Evaluación por el cliente Valoración de resultados

49 El Proceso de Desarrollo de Sistemas
Modelo Espiral Determinar objetivos, Evaluar alternativas, alternativas, restricciones identificar y resolver riesgos REVISIÓN Acuerdo Planificar las próximas Desarrollar, verificar fases

50 El Proceso de Desarrollo de Sistemas

51 El Proceso de Desarrollo de Sistemas
Modelo o ciclo de vida en espiral: Ventajas Intenta eliminar errores en las fases tempranas. Es el mismo modelo para el desarrollo y el mantenimiento. Provee mecanismos para la aseguración de la calidad del software. Trabaja bien en proyectos complejos, dinámicos e innovadores. La reevaluación después de cada fase permite cambios en las percepciones de los usuarios, avances tecnológicos o perspectivas financieras. La focalización en los objetivos y limitaciones ayuda a asegurar la calidad.

52 El Proceso de Desarrollo de Sistemas
Modelo o ciclo de vida en espiral: Dominio Dominio de aplicación Proyectos complejos, dinámicos, innovadores, ambiciosos, llevados a cabo por equipos internos (no necesariamente de software). Dominios de aplicación inapropiados Dominio de problemas fáciles: si el domino del problema está bien entendido y no hay mayores riesgos, es difícil y consume tiempo buscar riesgos donde no los hay.

53 El Proceso de Desarrollo de Sistemas
Modelos de desarrollo Programación Exploratoria Basado en el desarrollo de una implementación inicial, exponiéndola a la opinión del usuario y luego refinándola a través de muchas etapas hasta obtener un sistema adecuado. Sistemas en los que es difícil (o imposible) establecer una detallada especificación. (ejemplo: Inteligencia Artificial) Forma de validación no medible, convirtiéndose en una apreciación subjetiva por parte del cliente. No puede ser utilizado en el desarrollo de grandes sistemas.

54 El Proceso de Desarrollo de Sistemas
Modelos de desarrollo Programación Exploratoria

55 El Proceso de Desarrollo de Sistemas
Modelos de desarrollo Transformaciones Formales Definición formal de los requerimientos del sistema ir desarrollando metódicamente hasta llegar al sistema definitivo. Se puede demostrar la validación de los requerimientos. Ejemplo de aplicación: desarrollo de nuevos Sistemas Operativos, dispositivos médicos, desarrollo de aviónica, etc. La ambigüedad, lo incompleto y la inconsistencia se descubren y corrigen más fácilmente.

56 Ingeniería Inversa y Reingeniería
El Proceso de Desarrollo de Sistemas Ingeniería Inversa y Reingeniería Consiste en analizar un programa y representarlo en un mayor nivel de abstracción que el código fuente. Se debe extraer información del diseño de datos, de la arquitectura y del detalle del mismo, para poder entenderlo. La Reingeniería no sólo recupera información sobre el diseño de un programa existente sino que utiliza esta información para reestructurar o reconstruir el programa existente, con vistas a adaptarlo a un cambio, a ampliarlo o a mejorar su calidad general.

57 El Proceso de Desarrollo de Sistemas
Modelos de desarrollo Orientación a objetos Primero se empezaron a utilizar los lenguajes de programación estructurados, que permiten la descomposición modular de los programas; esto condujo a la adopción de técnicas de diseño estructuradas y de ahí se paso al análisis estructurado. El paradigma orientado a objetos ha seguido el mismo camino: el uso de la Programación Orientada a Objetos (POO) ha modificado las técnicas de diseño para adaptarlas a los nuevos lenguajes y ahora se están empezando a utilizar técnicas de análisis basadas en esta nueva forma de desarrollar software.

58 El Proceso de Desarrollo de Sistemas
Los métodos orientados a objeto describen e implementan los sistemas de información desde un punto de vista más real.

59 El Proceso de Desarrollo de Sistemas
Modelos de desarrollo Orientación a objetos La cultura implícita en los modelos usuales de ciclo de vida está basada en el “proyecto” ( y “Beneficios”), mientras que en el desarrollo orientado a objetos está basada en el “producto” (e “inversión”).

60 El Proceso de Desarrollo de Sistemas
Términos más importantes en la orientación a objetos: Reusabilidad: Los nuevos Sistemas OO pueden ser creados utilizando otros sistemas OO ya existentes. Extensibilidad: Los nuevos sistemas OO son fácilmente ampliables, sin tener que retocar los módulos empleados en su construcción.

61 El Proceso de Desarrollo de Sistemas
Las características principales del enfoque orientado a objetos son, en primer lugar: Identidad : Los datos se organizan en entidades discretas y distinguibles llamadas objetos. Estos objetos pueden ser concretos o abstractos, pero cada objeto tiene su propia identidad. Dicho de otra forma: dos objetos son distintos incluso aún en el caso de que los valores de todos sus atributos coincidan. Dos manzanas pueden ser totalmente idénticas pero no por eso pierden su identidad: nos podemos comer una u otra.

62 El Proceso de Desarrollo de Sistemas
Clasificación: Los objetos que tengan los mismos atributos y comportamiento se agrupan en clases. Todas las manzanas tienen una serie de atributos comunes: tamaño, peso, grado de maduración, y un comportamiento común: podemos coger una manzana, moverla o comerla. Los valores de los atributos podrán ser distintos para cada una de ellas, pero todas comparten los mismos atributos y comportamiento (las operaciones que se pueden realizar sobre ellas). Una clase es una abstracción que describe propiedades (atributos y comportamiento) relevantes para una aplicación determinada, ignorando el resto.

63 El Proceso de Desarrollo de Sistemas
Polimorfismo: El polimorfismo permite que una misma operación pueda llevarse a cabo de forma diferente en clases diferentes. Por ejemplo, la operación mover, es distinta para una pieza de ajedrez que para una ficha de damas, pero ambos objetos pueden ser movidos. Una operación es una acción o transformación que realiza o padece un objeto. La implementación específica de una operación determinada en una clase determinada se denomina método.

64 El Proceso de Desarrollo de Sistemas
Herencia. El concepto de herencia se refiere al compartir atributos y operaciones basada en una relación jerárquica entre varias clases. Una clase puede definirse de forma general y luego refinarse en sucesivas subclases. Cada clase hereda todas las propiedades (atributos y operaciones) de su superclase y añade sus propiedades particulares. La posibilidad de agrupar las propiedades comunes de una serie de clases en una superclase y heredar estas propiedades en cada una de las subclases es lo que permite reducir la repetición de código en el paradigma OO y es una de sus principales ventajas.

65 El Proceso de Desarrollo de Sistemas
Etapas del Desarrollo O.O Fase Planificación y Especificación de Requerimientos 1. Definir el Plan-Borrador. 2. Crear el Informe de Investigación Preliminar. 3. Definir los Requerimientos. 4.Registrar Términos en el Glosario. 5. Implementar un Prototipo. (opcional) 6. Definir Casos de Uso (de alto nivel y esenciales). 7.Definir el Modelo Conceptual-Borrador. 8.Definir la Arquitectura del Sistema-Borrador. 9. Refinar el Plan.

66 El Proceso de Desarrollo de Sistemas
Fase de Construcción: Análisis 1.Definir Casos de Uso Esenciales en formato expandido. 2.Refinar los Diagramas de Casos de Uso. 3.Refinar el Modelo Conceptual. 4.Refinar el Glosario. 5.Definir los Diagramas de Secuencia del Sistema. 6.Definir Diagramas de Estados. (opcional)

67 El Proceso de Desarrollo de Sistemas
Fase de Construcción: Diseño 1. Definir los Casos de Uso Reales. 2. Definir Informes e Interfaz de Usuario. 3. Refinar la Arquitectura del Sistema. 4. Definir los Diagramas de Interacción. 5. Definir el Diagrama de Clases de Diseño. 6. Definir el Esquema de Base de Datos. Fases de Implementación y Pruebas


Descargar ppt "ACI 602 Ingeniería de Software"

Presentaciones similares


Anuncios Google