pontificia universidad javeriana ingeniería de software...

50
Pontificia Universidad Javeriana Ingeniería de Software Olga Lucía Roa Pontificia Universidad Javeriana Ingeniería de Software Profesora: Olga Roa Cali 2007

Upload: others

Post on 16-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Pontificia Universidad JaverianaIngeniería de Software

Profesora: Olga Roa

Cali2007

Page 2: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

AgendaSoftware e Ingeniería de SoftwareModelos de ciclo de vida de desarrollo

CascadaEvolutivo

PrototiposEspiral

Modelo en VFases genéricas del proceso de desarrollo

Page 3: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Software

Software es un producto intangible Maneja Productos, administración de información y transmisión de la misma.

Funcionalidades del SoftwareSoporta y provee funcionalidades a otros sistemasControla otros programas (por ej. Un sistema operativo)Ayuda en las comunicaciones (ej., networkingsoftware)Ayuda a construir otro software (ej., herramientas de desarrollo y diseño)

Page 4: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Software es un juego de item´s u objetos que forman una configuración, esta incluye:

• programas • documentos• datos ...

¿Qué es Software?

El software es complejo, porque inicialmente se concibe como algo abstracto

Page 5: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Clases de Software

system softwareapplication softwareengineering/scientific software embedded software product-line softwareWebApps (Web applications)AI software

Page 6: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Ingeniería de Software

“La ingeniería de software es una disciplina que integra métodos, herramientas y procedimientos para el desarrollo de software.”[1]

Desde la década del sesenta ha existido un movimiento tendiente a cambiar la programación de computadores de un estado artesanal a una disciplina similar a la ingeniería. El campo de la ingeniería de software surgió con el objetivo de introducir una técnica disciplinada al desarrollo de software.

[1] PRESSMAN, Roger S. Ingeniería de Software : Un enfoque práctico. 6a edición. McGraw-Hill. España. 1993

Page 7: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Ingeniería de SoftwareFritz Bauer estableció una de las primeras definiciones de

ingeniería de software en 1969: “Ingeniería de Software es el establecimiento y uso de principios robustos de ingeniería, orientados a obtener software que sea fiable y funcione de manera eficiente sobre máquinas reales”.[2]

Los puntos claves de esta definición pueden observarse en todas las disciplinas de ingeniería : principios robustos y productos económicos y confiables.

[2] Cita de BAUER, Fritz tomada de NAUR, P y RANDELL, B (editores). Software Engineering: A report on a Conference sponsored by the NATO Science Comittee/ NATO. 1969 citada en MARTIN, James y McCLURE, Carma. Structured Techniques for Computing. Prentice-Hall. Englewood Cliffs, NJ, EE.UU. 1985

Page 8: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Ingeniería de SoftwareLa ingeniería de software, al igual que otras

ingenierías, debe trabajar con elementos gerenciales y humanos, además de los elementos técnicos propios. Sin embargo, a diferencia de las otras ingenierías, su producto, el software, es inmaterial. El desarrollo de software no puede, por tanto, ser manejado y controlado como otros procesos para productos físicos. El desarrollo de software es una actividad compleja por naturaleza.

Page 9: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

La complejidad del SoftwareLa complejidad del desarrollo de software se ve

agravada por el constante y acelerado avance tecnológico de la industria electrónica. Cada día los fabricantes son capaces de producir máquinas más económicas y poderosas. Esto posibilita desarrollar actualmente aplicaciones que no podrían realizarse cinco o diez años atrás. Las necesidades del usuario, el software en sí mismo y el proceso de desarrollo de software son cada vez más complejos.

Page 10: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Historia de Ingeniería de Software

La ingeniería de software surgió de una serie de investigaciones en la década de los sesenta. Las primeras investigaciones al respecto buscaban hallar mejores mecanismos para escribir programas. Trabajos posteriores, como el análisis y diseño estructurado, comenzaron a presentar un visión más amplia del proceso. La disciplina se ha enriquecido con muchas investigaciones y avances tecnológicos desde esa época.

La ingeniería de software, durante toda su vida, ha estado “marcada” por tres enfoques o paradigmas principales :- Los métodos orientados a procesos- Los métodos orientados a la información- Los métodos orientados a objetos

Page 11: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Modelos de ciclo de vida de desarrollo

El mantenimiento como el 80-20Costo beneficio de dar de baja Vs. construir nuevo software?

Page 12: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Características del Software

software se debe adaptar a las necesidades de un nuevo ambiente de computo ó tecnología.software debe poder implementar nuevos requerimientos del negociosoftware se debe extender y ser compatible con otros versiones de software más actualizadas y diferentes bases de datos.software se debe poder configurar fácilmente para trabajar en ambientes de red.

Page 13: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

El modelo de cascadaUno de los primeros modelos de ciclo de vida del desarrollo. Fue establecido por W. Royceen 1970.El primero en establecer el proceso de desarrollo como la ejecución de un conjunto de actividades.Cada actividad genera como salidas productos y modelos que son utilizados como entradas para el proceso subsiguiente. Una actividad debe terminarse (por lo menos, en algún grado) para empezar la siguiente.

Page 14: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

El modelo de cascada

El modelo presenta una situación ideal para el proceso de desarrollo: un proceso con progresos ordenados y coherentes. NO ES REALISTA!Enfoque secuencial no permite el tratamiento de fenómenos reales!Se cometen errores en las diferentes etapas.En términos generales el modelo en cascada:

Asume que todo va en una direcciónNo hay sobre-posición ni iteraciones entre las fasesImplica una entrega al completar cada una de las fasesAsume que el conocimiento y requerimientos obtenidos en las fases iniciales del proyecto no cambia significativamente durante la vida del mismo.

Page 15: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

El modelo de cascada

Page 16: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Modelo Evolutivo

Desarrollo exploratorioEl objetivo es trabajar con clientes y evolucionar un sistema final iniciando en una especificación. Los requerimientosdeben estar claros.

Usando prototiposEl objetivo es entender los requerimientosdel sistema. Los requerimientos se van refinando

Espiral...

Page 17: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

El modelo de espiral

Barry Boehm -1976 Busca manejar los riesgos asociados al modelo de cascada. El modelo en espiral es, esencialmente, un desarrollo completo en cascada en cada iteración.

Page 18: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

El modelo de espiral

Page 19: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

El modelo de espiralEn cada una de la iteraciones, se deben cumplir

cuatro actividades principales (una en cada cuadrante) :Planeación : determinación de los objetivos, alternativas y restriccionesAnálisis de riesgo : análisis de alternativas e identificación/resolución de riesgosIngeniería : desarrollo del producto hasta “el siguiente nivel”.Evaluación : valoración por parte del cliente de los resultados obtenidos.

Page 20: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

El modelo de espiralSe van construyendo versiones sucesivas del software, cada vez más completas.Se introducen las actividades de análisis de los riesgos asociados al desarrollo y a la evaluación por parte del cliente de los resultados del software.Maneja el concepto de versiones del sistema de software. Este modelo es similar al manejo de productos comerciales que liberan versiones, cada vez más completas y complejas.

Page 21: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

El modelo de prototipos

Variación del modelo en espiral.Construcción incremental de prototipos. NO del sistema completo.Desarrollo rápido de aplicaciones o RAD (DuPontCo. 1985)El proceso iterativo de construcción de prototipos debe estar precedido por una fase de análisis y construcción del modelo conceptual. Posteriormente, cada una de las iteraciones deberá contar con una fase rápida de análisis y con la confrontación permanente de las necesidades del usuario.

Page 22: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

El modelo de prototipos

Page 23: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Modelo en V (Alan Davis)Énfasis en revisiones y pruebas de los proyectos.

Page 24: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Modelo en V

Requirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andunit codeand tess

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

Service Acceptancetest

Systemintegration test

Sub-systemintegration test

Page 25: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

FASES GENÉRICAS DEL PROCESO DE DESARROLLO

Pasos genéricos que caracterizan el desarrollo de software Independiente del método o el esquema de ciclo de vida utilizado.

Modelo de cinco fases genéricasModelo de tres fases genéricas

Page 26: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

FASES GENÉRICAS DEL PROCESO DE DESARROLLO

MODELO DE CINCO FASES GENÉRICAS

1. Análisis (Qué)2. Diseño (Cómo)3. Implementación (Construcción)4. Pruebas y corrección de defectos

(Encontrar defectos. Pruebas de: unidad, integración, sistema)

5. Operación y mantenimiento (configuración, operación dentro del entorno. NO se deben construir funcionalidades completas)

Page 27: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

FASES GENÉRICAS DEL PROCESO DE DESARROLLO

MODELO DE TRES FASES GENÉRICAS (Pressman)Definición

Análisis del sistema.Planificación del proyecto de software.Análisis de requerimientos (requisitos).

Desarrollo Diseño del softwareCodificaciónPrueba del software

Mantenimiento (cambios)Correctivos, tendientes a corregir defectos y errores.Adaptativos, tendiente a adaptar el software a los cambios del entorno. De Mejoramiento, tendiente a incorporar nuevas funcionalidades al software.

Page 28: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

“… el proceso de construcción de software en el país (Colombia) es artesanal, poco disiciplinado, y depende en gran medida de las personas que participan en él”.

Iván CifuentesUniandes - Opus Ingeniería

Page 29: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

“La industria de software es el mejor camino para entrar de lleno a la economía digital y cerrar la brecha del desarrollo. Alrededor de estas empresas crecen sectores complementarios y de un importante valor estratégico, como la educación especializada. (…) Esta puede ser la última oportunidad”

Jorge AramburoPSL Ltda.

Page 30: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Industria de Software en Colombia

En nuestro país ¿Cómo se desempeña la industria?¿Qué expectativas existen?

Page 31: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Industria de Software en Colombia

Según Fedesoft…El mercado local de software…

$57.391 millones para 1992$88.227 millones para 1993$202.507 millones para 1997$474.000 millones para 1999

Page 32: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Definición de un Proceso para trabajar en grupo

TSPi – Team Software Process

Page 33: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 34: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 35: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 36: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 37: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 38: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 39: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 40: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 41: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 42: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 43: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 44: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 45: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 46: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 47: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 48: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 49: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa

Page 50: Pontificia Universidad Javeriana Ingeniería de Software ...cic.puj.edu.co/wiki/lib/exe/fetch.php?media=... · tendiente a cambiar la programación de computadores de un estado artesanal

Pontificia Universidad Javeriana Ingeniería de Software

Olga Lucía Roa