1 EVOLUCIÓN Y PRINCIPIOS EVOLUCIÓN Y PRINCIPIOS DE LA INGENIERIA DEL DE LA INGENIERIA DEL SOFTWARE SOFTWARE
Centro ISYS. Esc. Computación. UCV/2005 2
Contenido
Contenido
1. Evolución de la Ingeniería de Software
Centro ISYS. Esc. Computación. UCV/2005 3
Contexto : década 50
Contexto : década 50
Hardware: mainframes, cintas magnéticas. Costos altos
Lenguajes: ensambladores, Fortran
Centro ISYS. Esc. Computación. UCV/2005 4
Contexto : década 50
Contexto : década 50
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
Centro ISYS. Esc. Computación. UCV/2005 6
Contexto : década 60
Contexto : 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
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
Centro ISYS. Esc. Computación. UCV/2005 9
Contexto : década 70
Contexto : década 70
Hardware: mainframes, minicomputadores, microcomputadores, surgen los PCLenguajes: COBOL, PL/I, Pascal, Prolog Métodos: programación
estructurada,refinamiento paso a paso. Computación distribuida, Interfaces
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
Centro ISYS. Esc. Computación. UCV/2005 11
Commodore CBM 3032
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 80
Evolución: década de los 80
primera mitad – segunda mitadHardware: 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 avanzadas Lenguajes: C++, Standard ML Paradigma de programación: irrumpe la programación OO Computació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 software
Relevancia de las interfaces de usuario Aumento exponencial del número y tipo de usuarios
Demanda creciente de aplicaciones
Resolver problemas en todos los dominios Inicio de las aplicaciones basadas en la tecnología Internet .
Centro ISYS. Esc. Computación. UCV/2005 15
Contexto : década 90
Contexto : 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 .
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 milenio
Contexto : 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 .
Centro ISYS. Esc. Computación. UCV/2005 18
Factores que influyen en los
Factores que influyen en los
cambios en IS
cambios en IS
Costos Tiempo de desarrollo
Redes de Computadores Tecnologías
Emergentes
Masificación y variedad de los
microcomputadores y accesorios Interfaces de usuario.
Software libre
Centro ISYS. Esc. Computación. UCV/2005 19
Principios en la IS
Contenido
Contenido
GHEZZI, C., JAZAYERI, M., MANDRIOLI, D. "Fundamentals of Software Engineering". Prentice-Hall International Editions. 2da ed. Nov. 2002Centro ISYS. Esc. Computación. UCV/2005 20
Principios en la IS
Principios en la IS
Los principios forman la base de métodos, técnicas, metodologías y herramientas
Seis principios que pueden ser usados en todas las fases del desarrollo de
software
Modularidad es el principio clave que soporta el diseño del software
Centro ISYS. Esc. Computación. UCV/2005 21
Una representación visual
Una 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 IS
Principios en la IS
1. Rigor y formalidad 2. Abstracción 3. Modularidad 4. Anticipación al cambio 5. Generalidad 6. Incrementalidad.Centro ISYS. Esc. Computación. UCV/2005 23
Principios: Rigor y
Principios: Rigor y
Formalidad
Formalidad
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
Centro ISYS. Esc. Computación. UCV/2005 24
Principios: Abstracción
Principios: 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
Centro ISYS. Esc. Computación. UCV/2005 25
Principios. Modularidad
Principios. 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: Modularidad
Principios: Modularidad
Alta Cohesión del módulo
(el módulo es una unidad significativa)
Bajo Acoplamiento entre módulos (mínimas interacciones entre ellos)
Centro ISYS. Esc. Computación. UCV/2005 27
Una representación visual
Una representación visual
(a) (b)
Centro ISYS. Esc. Computación. UCV/2005 28
Una representación visual
Una representación visual
(a) (b)
Centro ISYS. Esc. Computación. UCV/2005 29
Principios: Modularidad
Principios: 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
Centro ISYS. Esc. Computación. UCV/2005 30 Descomposición Descomposición análisis análisis -Problema Subprob. 4 Subprob. 2 Subprob. 1 Subprob. 3 solución. 4 solució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 cambio
Anticipació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: Generalidad
Principios: 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
Centro ISYS. Esc. Computación. UCV/2005 33
Principios: Incrementalidad
Principios: 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