EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL SOFTWARE · interfaces gráficas (GUI) Hardware:...
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.