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