EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware:...

33
1 EVOLUCIÓN Y PRINCIPIOS EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL DE LA INGENIERIA DEL SOFTWARE SOFTWARE

Transcript of EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware:...

Page 1: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

1

EVOLUCIÓN Y PRINCIPIOS EVOLUCIÓN Y PRINCIPIOS

DE LA INGENIERIA DEL DE LA INGENIERIA DEL

SOFTWARESOFTWARE

Page 2: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 2

ContenidoContenido

1. Evolución de la Ingeniería de Software2. Principios en la IS

Page 3: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 3

Contexto : década 50Contexto : década 50

Hardware: mainframes, cintas magnéticas. Costos altos

Lenguajes: ensambladores, Fortran

Primeros compiladores (segunda mitad)

Page 4: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 4

Contexto : década 50Contexto : década 50

Mainframes Cinta magnética

Page 5: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 5

Evolución de la IS Evolución de la IS (década 50)(década 50)

Desarrollo de software = desarrollo de programas

Actividad individual

Desarrollador = usuario

Aplicaciones con distribución reducida

Resolver problemas científicos y de ingeniería

“...codificar y depurar...”

Page 6: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 6

Contexto : década 60Contexto : década 60

Hardware: mainframes comerciales, almacenamiento en discos magnéticos, minicomputadores. Costos altos

Programación orientada a función

Lenguajes: Cobol, PL/I, Simula 67

Page 7: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 7

La Burroughs 5500

Contexto : década 60

Page 8: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 8

Evolución de la IS Evolución de la IS (década 60)(década 60)

Actividad de grupo

Desarrollador ‡ usuario

Desarrollo de software para mercadeo

Resolver problemas complejos en diferentes dominios, además de científicos y de ingeniería

Programación orientada a función.

Page 9: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 9

Contexto : década 70Contexto : década 70

Hardware: mainframes, minicomputadores, microcomputadores, surgen los PC

Lenguajes: COBOL, PL/I, Pascal, Prolog

Métodos: programación estructurada,refinamiento paso a paso.

Computación distribuida, Interfaces basadas en Lenguajes de Comando.

Page 10: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 10

Evolución de la IS Evolución de la IS (década 70)(década 70)

Desarrollo de la tecnología

Actividad de grupo

Desarrollador ‡ usuario

Desarrollo de software para mercadeo

Diversidad del dominio de aplicaciones

Programación orientada a módulos

Modelo de la cascada .

Page 11: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 11

Commodore CBM 3032

Evolución de la IS (década 70)

Page 12: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 12

¿Qué ocurre en la década 70?¿Qué ocurre en la década 70?

Crisis del software!!

Page 13: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 13

Evolución: década de los 80Evolución: década de los 80primera mitad – segunda mitad

Hardware: computadores personales, primeras estaciones de trabajo, redes locales

Lenguajes: C, Ada

Paradigma de programación: programación estructurada, modular

Herramientas interactivas, interfaces gráficas (GUI)

Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo, redes locales y globales, Internet, arquitecturas avanzadasLenguajes: C++, Standard MLParadigma de programación: irrumpe la programación OOComputación cliente-servidor

Page 14: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 14

Evolución de la IS Evolución de la IS (década 80)(década 80)

El usuario se incorpora al proceso de desarrollo de softwareRelevancia de las interfaces de usuarioAumento exponencial del número y tipo de usuariosDemanda creciente de aplicacionesResolver problemas en todos los dominiosInicio de las aplicaciones basadas en la tecnología Internet .

Page 15: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 15

Contexto : década 90Contexto : década 90

Hardware: masificación del uso de los computadores personales, arquitecturas paralelas, multimedia

Redes de computadoras (LAN, WAN..)

Lenguajes: Orientados a objetos, visuales (Java, VisualC++, HTML,..)

Paradigma de programación: OO, patrones y framework

Crecimiento de Internet y el Web .

Se resaltan características o sucesos relevantes

Page 16: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 16

Evolución de la IS Evolución de la IS (década 90)(década 90)

Los productos se insertan en la globalización

El ciberespacio introduce nuevos tipos de aplicaciones: comercio electrónico, educación a distancia,...

Ambientes colaborativos

El Web como infraestructura de las aplicaciones corporativas (Intranets) .

Page 17: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 17

Contexto : nuevo milenioContexto : nuevo milenio

Hardware: dispositivos moviles, computación ubicua

Redes de computadoras (inalambricas..)

Paradigma de programación: modelos basados en componentes

Crecimiento de Internet y la Web .

Se resaltan características o sucesos relevantes

Page 18: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 18

Factores que influyen en los Factores que influyen en los cambios en IScambios en IS

Costos Tiempo de desarrollo

Redes de ComputadoresTecnologías

Emergentes

Masificación y variedad de losmicrocomputadores y accesorios Interfaces de usuario.

Software libre

Page 19: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 19

Principios en la IS

ContenidoContenido

GHEZZI, C., JAZAYERI, M., MANDRIOLI, D. "Fundamentals of Software Engineering". Prentice-Hall International Editions. 2da ed. Nov. 2002

Page 20: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 20

Principios en la ISPrincipios en la IS

Los principios forman la base de métodos, técnicas, metodologías y herramientasSeis principios que pueden ser usados

en todas las fases del desarrollo de softwareModularidad es el principio clave que

soporta el diseño del software

Page 21: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 21

Una representación visualUna representación visual

Principles

Methodologies

principios

métodos y técnicas

metodologías

herramientas

Page 22: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 22

Principios en la ISPrincipios en la IS

1. Rigor y formalidad

2. Abstracción

3. Modularidad

4. Anticipación al cambio

5. Generalidad

6. Incrementalidad.

Principios aplica al proceso y al producto

Page 23: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 23

Principios: Rigor y Principios: Rigor y FormalidadFormalidad

Significa ...

seguir procesos sistemáticos y verificables en el proceso de desarrollo de software

IMPLICACIONES:

• La formalidad es la base de automatización de procesos

• Principio esencial para obtener productos reusables

Page 24: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 24

Principios: AbstracciónPrincipios: Abstracción

Significa...

Aplicar un proceso mental o intelectual que permite identificar lo relevante e ignorar los detalles

IMPLICACIONES:

• percepción del qué/cómo (la separación de intereses )

• percepción del todo/partes (modularidad)

Page 25: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 25

Principios. ModularidadPrincipios. Modularidad

Un sistema complejo puede ser dividido en piezas más simples llamadas módulos

Un sistema que está conformado por módulos se dice que es modular

Page 26: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 26

Principios: ModularidadPrincipios: Modularidad

Alta Cohesión del módulo(el módulo es una unidad significativa)

Bajo Acoplamiento entre módulos(mínimas interacciones entre ellos)

modularidad adecuada

Page 27: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 27

Una representación visualUna representación visual

(a) (b)

Alto acoplamiento Bajo acoplamiento

Page 28: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 28

Una representación visualUna representación visual

(a) (b)

Alto acoplamiento Bajo acoplamiento

Page 29: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 29

Principios: ModularidadPrincipios: Modularidad

permite:

descomponer en partes un sistema complejo (descomposición) componer el sistema a partir de sus partes

(composición)

Comprender el sistema y las partes (comprensión)

Page 30: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 30

DescomposiciónDescomposición- análisis -- análisis -

Problema

Subprob. 4

Subprob. 2

Subprob. 1 Subprob. 3

solución. 4solución. 2

Solución. 1

solución. 3

Solución

Composición- síntesis -

Page 31: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 31

Principios: Principios: Anticipación al cambioAnticipación al cambio

Significa:

La capacidad de prever cómo y dónde pueden ocurrir los cambios

•La aplicación de este principio es altamente apreciado en la etapa de mantenimiento

•Es un principio relevante para el desarrollo de componentes reusables

Page 32: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 32

Principios: GeneralidadPrincipios: Generalidad

Significa:

buscar la solución más amplia (que englobe los casos específicos)

• Busca la solución más amplia para problemas específicos

• La solución general puede ser menos eficiente o más costosa

• Principio importante para desarrollar productos reusables.

Page 33: EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo,

Centro ISYS. Esc. Computación. UCV/2005 33

Principios: IncrementalidadPrincipios: Incrementalidad

Significa:

Construcción del producto por aproximaciones sucesivas y/o por componentes (partes)

• Desarrollo de prototipos para los componentes críticos

• Útil para desarrollo de aplicaciones no precisas, donde no están bien definidos los requerimientos.