presentación de la materia - facultad de ciencias exactas ... · breve estudio epistemológico de...

35
 Análisis de Sistemas Presentación de la materia

Upload: others

Post on 18-Apr-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Análisis de SistemasPresentación de la materia

Page 2: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Maximiliano Cristiá

Licenciado en Matemática, U.N.R.

Master en Computación, U.R.O.U.

Profesor Adjunto responsable de Análisis de Sistemas e Ingeniería de Software, U.N.R.

Profesor Adjunto responsable de Ingeniería de Software I y II, U.N.C.

Cofundador de FLOWGATE SECURITY CONSULTING

Page 3: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Andrés Krapf

Estudiante avanzado de LCC

Colaborador en Análisis de Sistemas e Ingeneniería de Software desde junio de 2004.

Consultor asociado en FLOWGATE SECURITY CONSULTING

Page 4: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Recursos de la materia

Sitio Web: www.fceia.unr.edu.ar/asist

Suscribirse a [email protected] enviando un mail a [email protected] con cuerpo:

subscribe asist

Fotocopias en Alfa

Page 5: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

● Parcial evalúa la unidad II. Es individual y presencial. Se toma a fines de cuatrimestre.

● Recuperatorio se toma a fines de cuatrimestre.● Examen final. Promovidos rinden sólo unidad

III, regulares y libres rinden todo.● Posiblemente haya un trabajo práctico opcional

Evaluaciones

Page 6: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Unidad I: Introducción

El Análisis de Sistemas es una especialidad de la Ingeniería de Software. Por lo tanto, intentaremos definir el alcance de "ingeniería de software", su problemática, el ciclo de vida de sus productos, y sus principios.

Page 7: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Breve estudio epistemológico de la Ingeniería de Software

Page 8: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Qué es IS?

NATO (1968): enfoque sistemático, disciplinado y cuantificable del desarrollo, operación y mantenimiento de software.Ghezzi (1991): el campo de las ciencias de la computación que trata sobre la construcción de software de una envergadura o complejidad tales que debe ser construido por equipos de ingenieros.Parnas (1997): debería ser un matrimonio de la ciencia del software con el viejo conocimiento de la ingeniería tradicional.

Page 9: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Qué es IS? (2)

Booch (1996): desarrollo de lo que llamamos software de dimensión industrial. La característica distintiva de este software es que resulta sumamente difícil para un individuo comprender todas las sutilezas de su diseño.

Jackson (1998): entonces si IS aun no existe, al menos existe ingeniería de compiladores, ingeniería de sistemas operativos... Nunca habrá "ingeniería de software".

Page 10: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Qué es IS?

Reemplazar renuncias por garantías(Parnas)

Page 11: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Qué no es IS?

Programación. Sólo la parte "final" del desarrollo de un sistema industrial involucra la programación y en general el IS es supervisor.Programación de pequeños sistemas. Todo sistema que puede ser comprendido, desarrollado y mantenido por un individuo.Matemática ni Ciencias de la Computación.

Page 12: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Qué hace el IS?

Construye máquinas. No construye el hardware, sino el comportamiento que lo hará útil para algo.

Escribe descripciones.

Page 13: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Qué hace el IS? (2)

Ingeniería de requerimientos: extracción, análisis, formalización y validación.Arquitectura y diseño: especificación formal, análisis y verificación.Validación y verificación (diseño del plan).Gerenciamiento de proyectos.

Page 14: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Qué debe saber el IdS?

Dominar a fondo las técnicas de descripción, y entender qué hace que una descripción particular sirva o no para un propósito determinado.

El subconjunto de las CC que es relevante al diseño de software pero también el conocimiento sobre diseño, matemática, lógica y otras ciencias y métodos que son conocidos por otros ingenieros.

Page 15: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Qué debe saber el IdS?

Moverse en distintos niveles de abstracción

Construir modelos

Diseñar

Especificar

Verificar propiedades de los sistemas

Programar

Page 16: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Artesanía o ingeniería?

Si los productos de la IS no ofrecen garantías, ¿es realmente una ingeniería?Si un IS no puede predecir cuándo o con qué probabilidad fallarán sus productos, ¿es arte o ingeniería?Si para cada nuevo sistema no sirve de nada la experiencia previa, las soluciones anteriores, ¿es ingeniería?Si cada nuevo programador inventa todo, ¿educamos ingenieros?

Page 17: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Ingeniería

... aplicación disciplinada del conocimiento científico para resolver económicamente restricciones conflictivas y requerimientos de problemas prácticos...... refiere a la práctica de organizar el diseño y construcción de cualquier artefacto que transforma el mundo físico que nos rodea para satisfacer una necesidad previamente reconocida...

Page 18: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Ingeniería (2)

Producción

Artesanía

Ciencia

Comercialización

Ingeniería profesional" Amateurs virtuosos" Intuición y fuerza bruta" Progreso aleatorio" Transmisión casual" Uso extravagante de los 

materiales disponibles" Manufactura más bien para 

uso que para ventas 

" Artesanos expertos" Procedimientos estables" Refinamiento pragmático" Capacitación en mecánica" Preocupación por los costos 

y suministro de materiales" Manufactura para ventas 

" Profesionales capacitados" Análisis y teoría" El progreso depende de la 

ciencia" Se habilitan nuevas 

aplicaciones  por medio del análisis

" Se segmenta el mercado por la variedad de productos

Page 19: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Diseño normalizado: la mejora o aplicación de la tradición aceptada bajo nuevas o más comprometidas situaciones.Dispositivos: entidad cuyos principios de diseño están bien definidos, estructurados y sujetos a un diseño normalizado.Sistemas: ensamble de dispositivos. Se convierte en dispositivo cuándo existe un diseño normalizado.

Ingeniería (3)

Page 20: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Es ingeniería? (1)

Aeropuerto, Denver, EE.UU., 10 veces Heathrow. Sistema subterráneo de traslado de equipaje: 4000 telecarros independientes.Software para el control del sistema de carros.La inauguración debió postergarse 3 veces.El presupuesto era de 193 millones.La empresa reconoció que no podía predecir el momento en que lograría estabilizarlo.

Page 21: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Es ingeniería? (2)

Satélite Clementine, DoD, NASA.Selección de blancos.En lugar de situar a la Luna en la mira, el sistema encendió los motores durante 11 minutos y agotó el combustible.Encuesta IBM, sistemas distribuidos: 55% costó más de lo calculado, 68% no cumplió los plazos, 88% tuvo que re-diseñarse.

Page 22: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Es ingeniería? (3)

El FBI gastó 170 millones de dólares en el Virtual Case File para luego abandonarlo completamente.La Administración Federal de Aviación de EE.UU canceló un proyecto para actualizar los sistemas de control aéreo cuando ya se habían gastado 2.600 millones de dólares.FoxMayer Drug Co. se fundió luego de que su ERP que costó 40 millones mostrara innumerables fallas.

Page 23: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Es ingeniería? (4)

Se calcula que entre el 15% y el 20% de los proyectos de más de U$S 10 millones se cancelan antes de ser si quiera terminados.

Page 24: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Es ingeniería? (5)

Ariane-5: un hito en el proyecto espacial europeo; terminó en desastre debido a una falla en el software que controlaba el movimiento horizontal.Therac-25: aparato para el tratamiento del cáncer mediante emisión de rayos; se reemplazaron ciertos controles de hardware por software, el cual falló y causó la muerte de varias personas.http://www.cs.tau.ac.il/~nachumd/verify/horror.html

Page 25: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Es artesanía?

Praxis, U.K., control de tráfico aéreo, notaciones formales, demostraciones matemáticas sobre el diseño.

GEC Alsthom, Francia, trenes eléctricos, redactó el diseño completo y el programa final mediante notaciones formales y aplicaron métodos matemáticos para demostrar la consistencia de ambos.

CICS de IBM, la parte del sistema que se especificó formalmente tuvo 10 veces menos errores que el resto.

Page 26: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Dónde estamos?

80: Metodologías de desarrollo del software

Sólo ejemplos aislados (algoritmos, estructuras de datos, construcción de compiladores)

1965­70: Algoritmos, estructuras de datos

Producción

Artesanía

Ciencia

Comercialización

Ingeniería profesional

Page 27: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

¿Por qué?

Brooks: la misma esencia del software impide la existencia de balas de plata; es inherentemente más complejo que toda otra construcción humana.

Otros: la IS aun es inmadura debido a su corta historia y a que es, en muchos aspectos, diferente de las otras ingenierías.

Incluso puede no existir IS la cual debería, en el futuro, dividirse en varias especialidades.

Page 28: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

No silver bullet (1)

Si bien inocente y directo al comienzo, un proyecto de software, es capaz de convertirse en un monstruo de impuntualidad, presupuestos excedidos, y productos repletos de fallas.No existe un único desarrollo, sea tecnológico o de gerenciamiento, que por sí sólo pueda prometer, dentro de una década, un avance si quiera de un orden de magnitud en productividad, confiabilidad o simplicidad.

Page 29: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

No silver bullet (2)La esencia de una entidad de software es una trama de conceptos interdependientes: conjuntos de datos, relaciones entre datos, algoritmos e invocación de funciones. Esta esencia es abstracta, es decir, es la misma bajo distintas representaciones.La parte difícil de construir software es la especificación, el diseño y la verificación de esa trama conceptual, no la tarea de representarla y testear la representación.

Page 30: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

La parte difícil de construir software es la especificación...

Tiempo transcurrido de desarrollo

Costo

 de e

xtra

cció

n de

 erro

res

Inicio fase de programación

Ingeniería de requerimientos

Java o Haskell no van a producir, por sí 

solos, un avance si quiera de un orden 

de magnitud en productividad, confiabilidad o 

simplicidad

Page 31: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

No silver bullet (3)

Complejidad: la cantidad de estados que tiene un software es varias veces superior al de la mayoría de las construcciones humanas.

Conformidad: mucha de la complejidad que el IS debe dominar es arbitraria.

Modificabilidad: es constantemente sometido a presiones para modificarlo.

Invisibilidad: es invisible y no visualizable.

Page 32: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

No silver bullet (4)

Comprar, no construir: reutilización

Crecer, no construir: incrementalidad

Refinamiento de requerimientos: prototipación rápida.

Identificar a los grandes diseñadores de la nueva generación

La generación de modelos ataca la esencia, la construcción adecuada y la verificación de la trama conceptual.

Page 33: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

La ciencia (formal) que subyace a la IS es la lógica formal.

La ciencia (fáctica) que subyace a las ingenierías tradicionales es la física.

Esto es una diferencia cualitativa esencial.

No hay especialización.

Sólo en escasas ramas existen diseños normalizados; de hecho, se habla siempre de construir sistemas y no de construir dispositivos.

Es diferente e inmadura (1)

Page 34: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Ética profesional

Educación en matemática, lógica, diseño, etc.Métodos formales

Arquitecturas de software, estilos arquitectónicos

Especialización:

según dominios de aplicación

según fases del ciclo de vida del software

ciertamente, no según la tecnología utilizada

Es diferente e inmadura (2)

Page 35: Presentación de la materia - Facultad de Ciencias Exactas ... · Breve estudio epistemológico de la Ingeniería de Software ... Ghezzi (1991): el campo de las ciencias de la computación

   

Objetivos poco realistas o mal articulados.Estimaciones imprecisas de los recursos necesarios.Requerimientos mal definidos.El estado del proyecto no se conoce con precisión.Riesgos no gerenciados.Mala comunicación entre cliente, desarrollador y usuario.Uso de tecnología inmadura.Falta de habilidad para manejar la complejidad del proyecto.Prácticas de desarrollo descuidadas.Gerenciamiento del proyecto inadecuado.Problemas políticos entre los interesados.Presiones comerciales.

¿Por qué los proyectos de software fallan tanto?