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

Post on 30-Jul-2020

10 views 0 download

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

1

EVOLUCIÓN Y PRINCIPIOS EVOLUCIÓN Y PRINCIPIOS

DE LA INGENIERIA DEL DE LA INGENIERIA DEL

SOFTWARESOFTWARE

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

ContenidoContenido

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

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)

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

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

Mainframes Cinta magnética

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...”

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

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

La Burroughs 5500

Contexto : década 60

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.

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.

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 .

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

Commodore CBM 3032

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

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!!

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

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 .

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

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) .

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

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

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

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

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

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

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

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)

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

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

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

Una representación visualUna representación visual

(a) (b)

Alto acoplamiento Bajo acoplamiento

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

Una representación visualUna representación visual

(a) (b)

Alto acoplamiento Bajo acoplamiento

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)

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 -

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

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.

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.