Está en la página 1de 23

Conceptos bsicos de Ingeniera de Software

Dr. Eduardo A. R ODRGUEZ T ELLO


C INVESTAV-Tamaulipas

5 de septiembre del 2012

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 1 / 23


Objetivos

Objetivos

Definir la Ingeniera de Software y explicar su importancia

Discutir los conceptos de producto de software y proceso de


software

Introducir la nocin de responsabilidad profesional

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 2 / 23


Ingeniera de Software

Ingeniera de Software

La economa de todos los pases desarrollados es dependiente


del software

Actualmente cada vez mas sistemas son controlados por software

La Ingeniera de Software concierne a teoras, mtodos y


herramientas para el desarrollo profesional de software

El gasto en la Ingeniera de Software, representa un alto


porcentaje del PIB de los pases desarrollados

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 3 / 23


Conceptos bsicos

Conceptos bsicos

Qu es software?

Qu es la Ingeniera de Software?

Cul es la diferencia entre Ingeniera de Software y Ciencias


Computacionales?

Cul es la diferencia entre Ingeniera de Software e Ingeniera


de Sistemas?

Qu es un proceso de software?

Qu es un modelo de proceso de software?

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 4 / 23


Conceptos bsicos

Conceptos bsicos...

Cules son los costos de la Ingeniera de Software?

Qu son los mtodos de Ingeniera de Software?

Qu es CASE?

Cules son los atributos del software de calidad?

Cules son los retos de la Ingeniera de Software?

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 5 / 23


Conceptos bsicos Software

Qu es software?

Programas de cmputo y su documentacin asociada:


requerimientos, modelos de diseo y manuales de usuario

El software puede ser desarrollado para un cliente en particular o


para un mercado general

El software puede ser:


Genrico: desarrollado para venderse a mltiples clientes (Excel,
Word, etc.)
A la medida: desarrollado bajo demanda del cliente a un
desarrollador especfico

El software nuevo puede ser creado desarrollando nuevos


programas, configurando sistemas de software genrico o
reutilizando software existente

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 6 / 23


Conceptos bsicos Ing. de Software

Qu es la Ingeniera de Software?

Una disciplina de la Ingeniera que concierne a todos los aspectos


de la produccin de software

Los Ingenieros de Software deben:


Adoptar un enfoque sistemtico para llevar a cabo su trabajo
Utilizar las herramientas y tcnicas apropiadas para resolver el
problema planteado, de acuerdo a las restricciones de desarrollo y
a los recursos disponibles

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 7 / 23


Conceptos bsicos Ing. de Software y Ciencias Computacionales

Cul es la diferencia entre Ingeniera de Software y


Ciencias Computacionales?

Las Ciencias Computacionales conciernen a la teora y


fundamentos de cualquier sistema de cmputo (hardware o
software)

La Ingeniera de software concierne los aspectos prcticos del


desarrollo y puesta en marcha de productos tiles de software

La Ingeniera de Software an est lejos de ser considerada una


ciencia como los son la qumica o la fsica

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 8 / 23


Conceptos bsicos Ing. de Software e Ing. de Sistemas

Cul es la diferencia entre Ingeniera de Software e


Ingeniera de Sistemas?

La Ingeniera de Sistemas concierne a todos los aspectos del


desarrollo de sistemas basados en cmputo incluyendo hardware,
software y la ingeniera de procesos.

La Ingeniera de Software es una parte de este proceso que


comprende el desarrollo de software, control, aplicaciones y
bases de datos del sistema

Los ingenieros de software son los encargados de la


especificacin del sistema, del diseo de la arquitectura, la
integracin y la puesta en marcha.

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 9 / 23


Conceptos bsicos Proceso de software

Qu es un proceso de software?

Un conjunto estructurado de actividades cuya meta es el


desarrollo o evolucin de un software

Algunas actividades genricas en todos los procesos de software


son:
Especificacin, qu debe hacer el software y cules son sus
especificaciones de desarrollo
Desarrollo, produccin del sistema de software
Validacin, verificar que el software cumple con lo solicitado por el
cliente
Evolucin, cambiar/adaptar el software a las nuevas demandas

Estas actividades varan dependiendo de la organizacin y del


tipo de sistema a desarrollarse

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 10 / 23


Conceptos bsicos Modelo de proceso de software

Qu es un modelo de proceso de software?

Representacin formal y simplificada de un proceso de software,


presentada desde una perspectiva especfica

Ejemplos de perspectivas del proceso de software:


Flujo de trabajo, secuencia de actividades
Flujo de datos, flujo de la informacin
Rol/accin, quin realiza qu

Modelos Genricos:
Cascada, separar en distintas fases de especificacin y desarrollo
Desarrollo Iterativo, la especificacin, desarrollo y validacin estn
interrelacionados
Prototipado, un modelo sirve de prototipo para la construccin del
sistema final
Basado en componentes, asume que partes del sistema ya existen
y se enfoca a su integracin

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 11 / 23


Conceptos bsicos Modelo de proceso de software

Qu es un modelo de proceso de software?...


Modelo de Cascada

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 12 / 23


Conceptos bsicos Modelo de proceso de software

Qu es un modelo de proceso de software?...


Modelo de Desarrollo Iterativo

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 13 / 23


Conceptos bsicos Costos de la Ing. de Software

Cules son los costos de la Ingeniera de Software?

El costo total de un software esta dividido aproximadamente de la


siguiente forma:
60 % costos de desarrollo
40 % costos de pruebas

En el software a la medida los costos de evolucin a menudo


exceden los costos de desarrollo

Los costos dependen del tipo de sistema que se desarrolla y de


los requerimientos del mismo tales como desempeo y
confiabilidad

La distribucin de los costos depende del modelo de desarrollo


empleado

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 14 / 23


Conceptos bsicos Costos de la Ing. de Software

Cules son los costos de la Ingeniera de


Software?...
Distribucin de costos por actividad

?
Imagen tomada de [Sommerville, 2006]

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 15 / 23


Conceptos bsicos Costos de la Ing. de Software

Cules son los costos de la Ingeniera de


Software?...
Costos de desarrollo

?
Imagen tomada de [Sommerville, 2006]

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 16 / 23


Conceptos bsicos Mtodos de Ing. de Software

Qu son los mtodos de Ingeniera de Software?

Enfoques estructurados para el desarrollo de software que


incluye:
Descripciones del modelo, descripciones de modelos grficos que
deben ser producidos
Reglas, restricciones aplicadas a los modelos de sistemas
Recomendaciones, para realizar un diseo efectivo
Administracin del proceso, que actividades deben realizarse y en
qu orden

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 17 / 23


Conceptos bsicos CASE

Qu es CASE?

CASE es Computer-Aided Software Engineering

Programas que son usados para dar soporte automatizado a las


actividades del proceso de software:
Anlisis de requerimientos, modelado del sistema, pruebas y
depuracin (debugging)

Las herramientas CASE son comnmente usadas para dar


soporte a los mtodos de software
Editores para la notacin del mtodo
Mdulos de anlisis que verifican que las reglas del mtodo se
cumplan
Generadores de reportes que facilitan la creacin de la
documentacin del sistema
Generadores de cdigo a partir del modelo del sistema

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 18 / 23


Conceptos bsicos Atributos del software

Cules son los atributos del software de calidad?

El software debe proveer la funcionalidad y desempeo


requeridos por el usuario y debe ser mantenible, confiable y
aceptable
Mantenible, el software debe poder evolucionar para continuar
cumpliendo con las especificaciones
Confiable, el software no debe causar daos fsicos o econmicos
en el caso de que falle
Eficiente, el software no debe desperdiciar los recursos del sistema
Aceptable, el software debe ser aceptado por los usuarios para los
que fue diseado. Debe ser entendible, utilizable y compatible con
otros sistemas

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 19 / 23


Conceptos bsicos Retos de la Ing. de Software

Cules son los retos de la Ingeniera de Software?

Heterogeneidad
Desarrollar tcnicas para construir software que pueda hacer frente
a plataformas y ambientes de ejecucin heterogneos (diferentes
tipos de Hw y Sw)

Tiempos de entrega
Desarrollar tcnicas que permitan reducir los tiempos de entrega
del software sin comprometer la calidad

Confianza
Desarrollar tcnicas que permitan que los usuarios confen
plenamente en el software

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 20 / 23


Responsabilidad tica y social

Responsabilidad tica y social

La Ingeniera de Software comprende responsabilidades que van


ms all de la simple aplicacin de habilidades tcnicas

Los ingenieros de Software deben actuar de manera honesta y


tica si desean ser respetados como profesionales

Una conducta tica es ms que slo respetar la ley

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 21 / 23


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 R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 22 / 23


Tarea

Para discusin en la prxima clase

Investigar y analizar el cdigo de tica profesional de los


ingenieros de software desarrollado por ACM/IEEE (Software
Engineering Code of Ethics and Professional Practice)

Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 23 / 23

También podría gustarte