conceptos básicos de ingeniería de softwareertello/swe/sesion01.pdf · ingeniería de software...

23
Conceptos básicos de Ingeniería de Software Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 5 de septiembre del 2012 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 1 / 23

Upload: phungnhi

Post on 19-Sep-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos de Ingeniería de Software

Dr. Eduardo A. RODRÍGUEZ TELLO

CINVESTAV-Tamaulipas

5 de septiembre del 2012

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 1 / 23

Page 2: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Objetivos

Objetivos

Definir la Ingeniería de Software y explicar su importancia

Discutir los conceptos de producto de software y proceso desoftware

Introducir la noción de responsabilidad profesional

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 2 / 23

Page 3: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Ingeniería de Software

Ingeniería de Software

La economía de todos los países desarrollados es dependientedel software

Actualmente cada vez mas sistemas son controlados por software

La Ingeniería de Software concierne a teorías, métodos yherramientas para el desarrollo profesional de software

El gasto en la Ingeniería de Software, representa un altoporcentaje del PIB de los países desarrollados

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 3 / 23

Page 4: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos

Conceptos básicos

¿Qué es software?

¿Qué es la Ingeniería de Software?

¿Cuál es la diferencia entre Ingeniería de Software y CienciasComputacionales?

¿Cuál es la diferencia entre Ingeniería de Software e Ingenieríade Sistemas?

¿Qué es un proceso de software?

¿Qué es un modelo de proceso de software?

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 4 / 23

Page 5: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos

Conceptos básicos...

¿Cuáles son los costos de la Ingeniería de Software?

¿Qué son los métodos de Ingeniería de Software?

¿Qué es CASE?

¿Cuáles son los atributos del software de calidad?

¿Cuáles son los retos de la Ingeniería de Software?

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 5 / 23

Page 6: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Software

¿Qué es software?

Programas de cómputo y su documentación asociada:requerimientos, modelos de diseño y manuales de usuario

El software puede ser desarrollado para un cliente en particular opara un mercado general

El software puede ser:Genérico: desarrollado para venderse a múltiples clientes (Excel,Word, etc.)A la medida: desarrollado bajo demanda del cliente a undesarrollador específico

El software nuevo puede ser creado desarrollando nuevosprogramas, configurando sistemas de software genérico oreutilizando software existente

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 6 / 23

Page 7: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Ing. de Software

¿Qué es la Ingeniería de Software?

Una disciplina de la Ingeniería que concierne a todos los aspectosde la producción de software

Los Ingenieros de Software deben:Adoptar un enfoque sistemático para llevar a cabo su trabajoUtilizar las herramientas y técnicas apropiadas para resolver elproblema planteado, de acuerdo a las restricciones de desarrollo ya los recursos disponibles

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 7 / 23

Page 8: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Ing. de Software y Ciencias Computacionales

¿Cuál es la diferencia entre Ingeniería de Software yCiencias Computacionales?

Las Ciencias Computacionales conciernen a la teoría yfundamentos de cualquier sistema de cómputo (hardware osoftware)

La Ingeniería de software concierne los aspectos prácticos deldesarrollo y puesta en marcha de productos útiles de software

La Ingeniería de Software aún está lejos de ser considerada unaciencia como los son la química o la física

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 8 / 23

Page 9: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Ing. de Software e Ing. de Sistemas

¿Cuál es la diferencia entre Ingeniería de Software eIngeniería de Sistemas?

La Ingeniería de Sistemas concierne a todos los aspectos deldesarrollo de sistemas basados en cómputo incluyendo hardware,software y la ingeniería de procesos.

La Ingeniería de Software es una parte de este proceso quecomprende el desarrollo de software, control, aplicaciones ybases de datos del sistema

Los ingenieros de software son los encargados de laespecificación del sistema, del diseño de la arquitectura, laintegración y la puesta en marcha.

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 9 / 23

Page 10: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Proceso de software

¿Qué es un proceso de software?

Un conjunto estructurado de actividades cuya meta es eldesarrollo o evolución de un software

Algunas actividades genéricas en todos los procesos de softwareson:

Especificación, qué debe hacer el software y cuáles son susespecificaciones de desarrolloDesarrollo, producción del sistema de softwareValidación, verificar que el software cumple con lo solicitado por elclienteEvolución, cambiar/adaptar el software a las nuevas demandas

Estas actividades varían dependiendo de la organización y deltipo de sistema a desarrollarse

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 10 / 23

Page 11: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Modelo de proceso de software

¿Qué es un modelo de proceso de software?

Representación formal y simplificada de un proceso de software,presentada desde una perspectiva específica

Ejemplos de perspectivas del proceso de software:Flujo de trabajo, secuencia de actividadesFlujo de datos, flujo de la informaciónRol/acción, quién realiza qué

Modelos Genéricos:Cascada, separar en distintas fases de especificación y desarrolloDesarrollo Iterativo, la especificación, desarrollo y validación estáninterrelacionadosPrototipado, un modelo sirve de prototipo para la construcción delsistema finalBasado en componentes, asume que partes del sistema ya existeny se enfoca a su integración

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 11 / 23

Page 12: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Modelo de proceso de software

¿Qué es un modelo de proceso de software?...Modelo de Cascada

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 12 / 23

Page 13: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Modelo de proceso de software

¿Qué es un modelo de proceso de software?...Modelo de Desarrollo Iterativo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 13 / 23

Page 14: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Costos de la Ing. de Software

¿Cuáles son los costos de la Ingeniería de Software?

El costo total de un software esta dividido aproximadamente de lasiguiente forma:

60% costos de desarrollo40% costos de pruebas

En el software a la medida los costos de evolución a menudoexceden los costos de desarrollo

Los costos dependen del tipo de sistema que se desarrolla y delos requerimientos del mismo tales como desempeño yconfiabilidad

La distribución de los costos depende del modelo de desarrolloempleado

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 14 / 23

Page 15: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Costos de la Ing. de Software

¿Cuáles son los costos de la Ingeniería deSoftware?...Distribución de costos por actividad

?Imagen tomada de [Sommerville, 2006]

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 15 / 23

Page 16: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Costos de la Ing. de Software

¿Cuáles son los costos de la Ingeniería deSoftware?...Costos de desarrollo

?Imagen tomada de [Sommerville, 2006]

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 16 / 23

Page 17: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Métodos de Ing. de Software

¿Qué son los métodos de Ingeniería de Software?

Enfoques estructurados para el desarrollo de software queincluye:

Descripciones del modelo, descripciones de modelos gráficos quedeben ser producidosReglas, restricciones aplicadas a los modelos de sistemasRecomendaciones, para realizar un diseño efectivoAdministración del proceso, que actividades deben realizarse y enqué orden

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 17 / 23

Page 18: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos CASE

¿Qué es CASE?

CASE es Computer-Aided Software Engineering

Programas que son usados para dar soporte automatizado a lasactividades del proceso de software:

Análisis de requerimientos, modelado del sistema, pruebas ydepuración (debugging)

Las herramientas CASE son comúnmente usadas para darsoporte a los métodos de software

Editores para la notación del métodoMódulos de análisis que verifican que las reglas del método secumplanGeneradores de reportes que facilitan la creación de ladocumentación del sistemaGeneradores de código a partir del modelo del sistema

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 18 / 23

Page 19: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Atributos del software

¿Cuáles son los atributos del software de calidad?

El software debe proveer la funcionalidad y desempeñorequeridos por el usuario y debe ser mantenible, confiable yaceptable

Mantenible, el software debe poder evolucionar para continuarcumpliendo con las especificacionesConfiable, el software no debe causar daños físicos o económicosen el caso de que falleEficiente, el software no debe desperdiciar los recursos del sistemaAceptable, el software debe ser aceptado por los usuarios para losque fue diseñado. Debe ser entendible, utilizable y compatible conotros sistemas

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 19 / 23

Page 20: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Conceptos básicos Retos de la Ing. de Software

¿Cuáles son los retos de la Ingeniería de Software?

HeterogeneidadDesarrollar técnicas para construir software que pueda hacer frentea plataformas y ambientes de ejecución heterogéneos (diferentestipos de Hw y Sw)

Tiempos de entregaDesarrollar técnicas que permitan reducir los tiempos de entregadel software sin comprometer la calidad

ConfianzaDesarrollar técnicas que permitan que los usuarios confíenplenamente en el software

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 20 / 23

Page 21: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Responsabilidad ética y social

Responsabilidad ética y social

La Ingeniería de Software comprende responsabilidades que vanmás allá de la simple aplicación de habilidades técnicas

Los ingenieros de Software deben actuar de manera honesta yética si desean ser respetados como profesionales

Una conducta ética es más que sólo respetar la ley

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 21 / 23

Page 22: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Responsabilidad ética y social Responsabilidad profesional

Responsabilidad ética y social...Responsabilidad profesional

Confidencialidad

Competencia

Derechos de propiedad intelectual

Mal uso de la computadora

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 22 / 23

Page 23: Conceptos básicos de Ingeniería de Softwareertello/swe/sesion01.pdf · Ingeniería de Software Ingeniería de Software La economía de todos los países desarrollados es dependiente

Tarea

Para discusión en la próxima clase

Investigar y analizar el código de ética profesional de losingenieros de software desarrollado por ACM/IEEE (SoftwareEngineering Code of Ethics and Professional Practice)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos básicos 5 de septiembre del 2012 23 / 23