ingenieria de software - uabcfcqi.tij.uabc.mx/usuarios/luisgmo/data/2 modelos 2007.pdf · modelo...

28
INGENIERIA DE SOFTWARE INGENIERIA DE SOFTWARE Es el estudio de los principios y metodologías para desarrollo Es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software ... y mantenimiento de sistemas de software ... Zelkovitz Zelkovitz Es la aplicaci Es la aplicaci ó ó n pr n pr á á ctica el conocimiento cient ctica el conocimiento cient í í fico en fico en el dise el dise ñ ñ o y construcci o y construcci ó ó n de programas de n de programas de computadora y la documentaci computadora y la documentaci ó ó n asociada requerida n asociada requerida para desarrollar , operar y mantenerlos ... para desarrollar , operar y mantenerlos ... Bohem Bohem

Upload: others

Post on 27-May-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

INGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE

Es el estudio de los principios y metodologías para desarrollo Es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software ... y mantenimiento de sistemas de software ... ZelkovitzZelkovitz

Es la aplicaciEs la aplicacióón prn prááctica el conocimiento cientctica el conocimiento cientíífico en fico en el diseel diseñño y construccio y construccióón de programas de n de programas de computadora y la documentacicomputadora y la documentacióón asociada requerida n asociada requerida para desarrollar , operar y mantenerlos ... para desarrollar , operar y mantenerlos ... BohemBohem

INGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE

Trata del establecimiento de los principios y métodos de la Trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable que sea ingeniería a fin de obtener software de modo rentable que sea

fiable y trabaje en máquinas reales ... fiable y trabaje en máquinas reales ... BauerBauer

Es la aplicación de un enfoque sistemático, Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación disciplinado y cuantificable al desarrollo, operación (funcionamiento) y mantenimiento del software (funcionamiento) y mantenimiento del software ------IEEEIEEE

PRINCIPIOS DE LAPRINCIPIOS DE LAINGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE

1. HAZ DE LA CALIDAD LA RAZON DE TRABAJAR1. HAZ DE LA CALIDAD LA RAZON DE TRABAJAR2. ES POSIBLE SOFTWARE DE ALTA CALIDAD2. ES POSIBLE SOFTWARE DE ALTA CALIDAD

3. UNA BUENA GESTION ES MAS IMPORTANTE QUE UNA 3. UNA BUENA GESTION ES MAS IMPORTANTE QUE UNA BUENA TECNOLOGIABUENA TECNOLOGIA

4. LAS PERSONAS Y TIEMPO NO SON INTERCAMBIABLES4. LAS PERSONAS Y TIEMPO NO SON INTERCAMBIABLES5. IMPORTANTE SELECCIONAR EL MODELO ADECUADO5. IMPORTANTE SELECCIONAR EL MODELO ADECUADO

6. ENTREGAR PRODUCTOS AL USUARIO LO MAS PRONTO 6. ENTREGAR PRODUCTOS AL USUARIO LO MAS PRONTO POSIBLEPOSIBLE

7. DETERMINAR EL PROBLEMA ANTES DE ESCRIBIR LOS 7. DETERMINAR EL PROBLEMA ANTES DE ESCRIBIR LOS REQUISITOSREQUISITOS

8. EVALUAR LAS ALTERNATIVAS DEL DISEÑO8. EVALUAR LAS ALTERNATIVAS DEL DISEÑO9. DISEÑAR SIN DOCUMENTACION ES NO DISEÑAR 9. DISEÑAR SIN DOCUMENTACION ES NO DISEÑAR

PRINCIPIOS DE LAPRINCIPIOS DE LAINGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE

10. MINIMIZAR LA DISTANCIA INTELECTUAL10. MINIMIZAR LA DISTANCIA INTELECTUAL11. USAR FORMALISMOS DISTINTOS PARA LAS DISTINTAS 11. USAR FORMALISMOS DISTINTOS PARA LAS DISTINTAS

FASESFASES12. LAS TECNICAS SON ANTERIORES A LAS 12. LAS TECNICAS SON ANTERIORES A LAS

HERRAMIENTASHERRAMIENTAS13. INSPECCIONAR EL CODIGO13. INSPECCIONAR EL CODIGO

14. PRIMERO HAZLO CORRECTO, DESPUES HAZLO RAPIDO14. PRIMERO HAZLO CORRECTO, DESPUES HAZLO RAPIDO15. LA GENTE ES LA CLAVE DEL ÉXITO15. LA GENTE ES LA CLAVE DEL ÉXITO

16. INTRODUCE LAS MEJORAS CON CUIDADO16. INTRODUCE LAS MEJORAS CON CUIDADO17. ASUMIR CADA QUIEN SU RESPONSABILIDAD17. ASUMIR CADA QUIEN SU RESPONSABILIDAD18. LA ENTROPIA DEL SOFTWARE ES CRECIENTE18. LA ENTROPIA DEL SOFTWARE ES CRECIENTE

CAPAS DE LACAPAS DE LAINGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE

HERRAMIENTAS: HERRAMIENTAS: proporciona un enfoque para el proceso y proporciona un enfoque para el proceso y métodos, es soporte, se llama CASEmétodos, es soporte, se llama CASE

METODOS: METODOS: indican cómo construir técnicamente el softwareindican cómo construir técnicamente el software

PROCESO: PROCESO: la ingeniería de software se fundamente en el la ingeniería de software se fundamente en el proceso, es la unión que mantiene juntas las capas de proceso, es la unión que mantiene juntas las capas de

tecnologíatecnología

UN ENFOQUE DE CALIDAD: UN ENFOQUE DE CALIDAD: cualquier enfoque debe apoyarse cualquier enfoque debe apoyarse sobre un compromiso de organización de calidadsobre un compromiso de organización de calidad

CALIDAD

PROCESO

METODOS

HERRAMIENTAS

CAPAS DE LACAPAS DE LAINGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE

La estrategia para el desarrollo de La estrategia para el desarrollo de software se le llama software se le llama MODELO DE MODELO DE

PROCESOPROCESO o o PARADIGMA DE PARADIGMA DE INGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE

PARADIGMAS DEL SOFTWARE

Cada paradigma es un intento de ordenar las actividades de ayudar al contro y coordinación de

los proyectos de software

PARADIGMA 1: CICLO DE VIDA CLASICO

ó MODELO LINEAL SECUENCIAL

Demanda un acercamiento secuencial y sistemático que coordine las siguientes

actividades

Ing. de Sistemas

o de Información

ANALISIS DISEÑO CODIGO PRUEBA

INGENIERIA DE SISTEMAS: es el establecimiento de requisitos y de las partes que se necesitan para el desarrollo del sistema

ANALISIS: conocimiento de la información, funciones, relaciones, comportamiento, rendimiento e interconexión

DISEÑO: Se centra en la estructura de datos, arquitectura del software, representaciones de interfaz y detalle procedural

GENERACION DE CODIGO: realización en un lenguaje de programación

PRUEBAS: internas de lógica y externas de funcionalidad

MANTENIMIENTO: correctivo, adaptativo y perfectivo

POR QUE FALLA?

Causa confusión al inicio ( requerimientos )

Es difícil el cliente exponga todos los requisitos

El cliente debe tener paciencia hasta que el proyecto termine o este avanzado

PARADIGMA 2: CONSTRUCCION DE PROTOTIPOS

Consiste en crear modelos del software que se va a construir

ESCUCHAR AL CLIENTE

CONSTRUIR

MAQUETA

CLIENTE PRUEBA MAQUETA

Diseño Rápido

Recolección de Requisitos

Evaluación por el cliente

POR QUE FALLA?

No se ha tenido en cuenta la calidad del software

Querra hacer del prototipo un producto final

EFECTIVO SI:

Se definen las reglas al comienzo

Cliente y desarrollador se ponen de acuerdo que el prototipo es un mecanismo para definir los requerimientos

PARADIGMA 3: EL MODELO DRA (RAD)

Desarrollo Rápido de Aplicaciones

Modelo lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto

Es una adaptación del lineal utilizando una contrucción basada en componentes

Comprende las siguientes fases:

1 Modelado de Gestión ( que información )

2 Modelado de Datos (características obj )

3 Modelado del Proceso ( flujo de información)

4 Generación de aplicaciones ( lenguajes, técnicas)

5 Pruebas y entrega ( pruebas )

POR QUE FALLA?

Para proyectos grandes requiere mucho recurso humano

Requiere clientes y desarrolladores comprometidos

No todas las aplicaciones son apropiadas para DRA

No es adecuado cuando los riesgos son altos

PARADIGMA 4: MODELO INCREMENTAL

Combina el lineal con el de prototipos

Se centra en la entrega de un producto operacional con cada incremento

Es util cuando no hay suficiente personal y no alcanza la fecha límite

ANALISIS DISEÑO CODIGO PRUEBA

ANALISIS DISEÑO CODIGO PRUEBA

ANALISIS DISEÑO CODIGO PRUEBA

Entrega primer incremento

Entrega segundo

incremento

TIEMPO /

CALENDARIZACION

PARADIGMA 5: MODELO ESPIRAL

Combina prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial

Utiliza la construcción de prototipos como mecanismo de reducción de riesgos por lo tanto demanda una consideración directa de los riesgos

Planificación

Construcción y AdaptaciónEvaluación del cliente

Comunicación con el cliente

Ingeniería

Análisis de riesgos

12

34

MODELO ESPIRAL

ACTIVIDADES PRINCIPALES:

Comunicación con el cliente

Planificación ( determinar objetivos, recursos, tiempo, alternativas, restricciones )

Analisis de riesgos

Ingeniería ( construir la aplicación )

Construcción y acción ( adaptación, probar, instalar, dar soporte )

Evaluación del cliente ( valoración de resultados )

OBTIENE EN LAS ETAPAS:

1 proyecto de desarrollo de conceptos

2 proyecto de desarrollo de nuevos productos

3 proyecto de mejora de productos

4 proyecto de mantenimiento de productos

POR QUE FALLA?

Puede resultar difícil convencere a grandes clientes de que el proceso es controlable

Requiere una habilidad para la evaluación del riesgo ( sino se reconocen riesgos surgirán problemas )

PARADIGMA 6: DESARROLLO BASADO EN COMPONENTES

Es un modelo de la tecnología de objetos

Las clases son reutilizables por las diferentes aplicaciones y arquitecturas del sistema

Conduce a la reutilización del software

Se basa en el UML

PARADIGMA 7: TECNICAS DE 4TA GENERACION

Es software preestablecido para ingeniereos programadores de alto nivel y genera codificaciones específicas

Se enfoca en la habilidad de manejar un leguaje lo mas cercano al natural

Estas son CASE y generadores de código

Ahorra tiempo en proyectos cortos

DEFINICION Qué?

Identificar la informacion que ha de ser procesada

Su función

Rendimiento

Comportamiento del sistema

Interfaces

Restricciones

Criterios de validación

REQUISITOS

FASES DE LA INGENIERIA DEL SOFTWARE

DESARROLLO Cómo?

Cómo se diseñan las estructuras de datos

Cómo implementarse los procedimientos

Cómo caracterizar las interfaces

Cómo traducir al lenguaje

Cómo realizar las pruebas

FASES DE LA INGENIERIA DEL SOFTWARE

MANTENIMIENTO

Se centra en el CAMBIO,

en la corrección de errores

Adaptaciones del software

Cambio por las mejoras

4 tipos de cambio:

Corrección

Adaptación

Mejora

Prevención

FASES DE LA INGENIERIA DEL SOFTWARE

FASES DE LA INGENIERIA DEL SOFTWARE

DEFINICION DESARROLLO MANTENIMIENTO

ANALISIS

PLANIFICACION

ANALISIS REQUERIMIENTOS

DISEÑO

CODIFICACION

PRUEBA

CORRECTIVO

ADAPTATIVO

PERFECTIVO