Vous êtes sur la page 1sur 31

Ingeniera de Software

Lic. Victoriano Cardozo


Introducir y comprender la Ingeniera de Software
y explicar su importancia.
Establecer respuestas a preguntas clave acerca de
la Ingeniera de Software.
Introducir aspectos ticos y profesionales y
explicar la importancia de los mismos para los
ingenieros de software.


Preguntas frecuentes acerca de la Ingeniera de
Software.
Responsabilidad tica y profesional.
Las economas de TODAS las naciones desarrolladas son
dependientes de software y sistemas informticos.
Cada vez ms sistemas son controlados por software.
La Ingeniera de Software concierne teoras, mtodos y
herramientas para el desarrollo profesional de software.
Los gastos en software representan una fraccin
significativa del PIB en todos los pases desarrollados.
Los costos del software a menudo dominan en los costos de un
sistema computacional o informtico. Los costos de software en
una PC son a menudo mayores que el costo del hardware.
Cuesta ms el mantenimiento del software que el desarrollo del
mismo. Para sistemas de larga vida, los costos de mantenimiento se
multiplican con respecto a los costos de desarrollo.
A la Ingeniera de Software le compete el desarrollo de software
rentable.
Qu es Software?
Qu es la Ingeniera de Software?
Cul es la diferencia entre Ingeniera de Software
y Computacin?
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?
Cules son los costos que implica la Ingeniera de
Software?
Cules son las metodologas de desarrollo de
Software?
Qu son las herramientas CASE (Computer-Aided
Software Engineering)
Cules son los atributos de un buen software?
Cules son los desafos primordiales frente a la
Ingeniera de Software?
Programas de cmputo y documentacin asociada, como ser
documentos de requerimientos, arquitectura y modelos de diseo
y manuales de usuario.
Los productos software pueden ser desarrollados para un cliente
particular o bien para el mercado en general.
Los productos software pueden ser:
Genricos desarrollados para ser vendidos a una gama de diversos clientes,
ejemplo: software como Excel o Word.
Hecho a medida desarrollado para un cliente particular acorde a sus
requerimientos y especificaciones.
Nuevo software puede ser creado desarrollando nuevos
programas, configurando sistemas de software genrico o
reutilizando software existente.
La Ingeniera de Software es una disciplina de la
ingeniera que concierne a todo lo referente con
produccin de software.
Los ingenieros de software deberan adoptar un
enfoque sistemtico y organizado con respecto a
su trabajo, utilizar herramientas y tcnicas
apropiadas con relacin al problema planteado,
las restricciones del desarrollo y los recursos
disponibles.
La computacin comprende teoras y
fundamentos de cualquier sistema de cmputo; a
la Ingeniera de Software le concierne los
aspectos prcticos del desarrollo y entrega de
software til.
Las teoras de la computacin an son
insuficientes para respaldar completamente a la
Ingeniera de Software (indistintamente a,
ejemplo, la fsica y la ingeniera elctrica).
A la ingeniera de sistemas le competen todos los
aspectos de desarrollo de sistemas basados en
cmputos, incluyendo hardware, software y
procesos de ingeniera. La Ingeniera de Software
es parte de este proceso, haciendo referencia al
desarrollo de la infraestructura del software,
aplicaciones y bases de datos en el sistema.
Los ingenieros de sistemas estn involucrados
con la especificacin del sistema, diseo
arquitectnico, integracin y despliegue del
mismo.
Un conjunto sistemtico de actividades cuya meta es
el desarrollo o la evolucin del software.
Actividades genricas en todos los procesos de
software son:
Especificacin lo que el sistema debera hacer y sus
restricciones de desarrollo
Desarrollo produccin del sistema software
Validacin comprobando que el software es lo que el
cliente quiere
Evolucin cambios y mantenimiento en el software con
relacin a los cambios en los requerimientos y demandas.
Una representacin simplificada de un proceso de software,
presentada desde una perspectiva especfica.
Ejemplos de perspectivas de proceso son:
Perspectiva de flujo de trabajo secuencia de actividades;
Perspectiva de flujo de datos flujo de informacin;
Perspectiva de Casos de Uso quin hace qu (funcionalidad).
Modelos de proceso genricos
Modelo en Cascada;
Desarrollo iterativo;
Ingeniera de Software basada en componentes.
Rigurosamente, 60% de los costos son de
desarrollo, 40% son costos de prueba. Para
software hecho a medida, los costos de evolucin
a menudo exceden los costos de desarrollo.
Varan acorde al tipo de sistema a desarrollar y a
los requerimientos con respecto a los atributos del
mismo, como ser el funcionamiento y la
confiabilidad del sistema.
La distribucin de los costos depende del modelo
empleado para el desarrollo del software
Wat erfal l model
It erati ve development
Component -based software eng i neering
Development and evol uti on cost s for long-l ifeti me syst ems
Syst emevoluti on
10 200 30 400 0
Syst emdevel opment
Speci fi cat ion Desi gn Development Int egrat i on and t est ing
25 50
75
100 0
Speci fi cat ion Development Int egrat i on and t est ing
25 50 75 100 0
Speci fi cat ion Iterat ive devel opment Syst emt est ing
25 50 75 100 0
Acercamientos estructurados al desarrollo de software que
incluyen modelos del sistema, notaciones, reglas, pautas de
diseo y pasos a seguir.
Descripciones del modelo
Descripciones de modelos grficos que deben ser producidos;
Reglas
Restricciones aplicadas a los modelos del sistema;
Recomendaciones
Pautas para un buen diseo en la prctica;
Pasos a seguir
Qu actividades deben seguirse.
Sistemas de software cuya finalidad es la de proveer soporte
automatizado para actividades de proceso o desarrollo de
software.
Los sistemas CASE son usados con frecuencia como soporte
dentro de la metodologa de desarrollo.
Herramientas CASE tempranas o Superiores
Herramientas para soportar las actividades tempranas de requerimientos y
diseo dentro del proceso de software;
Herramientas CASE tardas o Inferiores
Herramientas para soportar actividades posteriores como ser la
programacin, depuracin y prueba o testeo.
El software debe entregar la funcionalidad y el funcionamiento
requeridos por el usuario al l mismo, y debe ser mantenible,
confiable y aceptable.
Mantenibilidad
El software debe evolucionar para cubrir necesidades cambiantes;
Confiabilidad
El software debe ser confiable;
Eficiencia
El software no debera hacer mal uso de los recursos del sistema;
Aceptabilidad
El software debe aceptar las necesidades de los usuarios para los cuales
fue diseado. Esto significa que debe ser entendible, de utilidad y
compatible con otros sistemas.
Heterogeneidad, entrega y confianza.
Heterogeneidad
Tcnicas de desarrollo para la construccin de software que puedan
encararse con plataformas heterogneas y ambientes de ejecucin
apropiados;
Entrega
Tcnicas de desarrollo que lleven a una entrega de software ms rpida;
Confianza
Tcnicas de desarrollo que demuestren que el software es de confianza para
con sus usuarios.
La Ingeniera de Software implica
responsabilidades mayores que el simple uso de
habilidades tcnicas.
Los ingenieros de software deben comportarse
de manera honesta y ticamente responsable si
van a ser respetados como profesionales.
Comportamiento ticamente responsable es
mucho ms que simplemente actuar dentro de la
ley.
Confidencialidad
Los ingenieros deberan normalmente respetar la
confidencialidad de sus clientes independientemente
de que se haya firmado o no un previo acuerdo de
confidencialidad.
Capacidad
Los ingenieros no deberan pretender tener mayor
capacidad (intelectual y laboral) de la que tienen,
deben aceptar conscientemente trabajo que est
acorde a su capacidad.

Derechos de propiedad intelectual
Los ingenieros deberan estar conscientes de las leyes que gobiernan el
uso de propiedad intelectual, como ser patentes y derechos reservados.
Deben ser cuidadosos al garantizar que la propiedad intelectual de sus
clientes est protegida.
Mal uso de la computadora
Los ingenieros de software no deberan usar sus habilidades tcnicas
para un mal uso de las computadoras de otras personas. El mal uso de
una computadora comprende desde lo relativamente simple (jugar en la
computadora del cliente) hasta lo extremamente serio (diseminar virus).
Las sociedades profesionales en los Estados Unidos
cooperaron para producir un cdigo de prctica
tica.
Miembros de estas organizaciones fueron
consecuentes con el cdigo de prctica tica cuando
se asociaron.
El cdigo contiene ocho principios relacionados al
comportamiento y las decisiones hechas por
ingenieros de software profesionales, incluyendo a
los que lo ejercan, educadores, encargados,
supervisores y editores, asi como aprendices y
estudiantes de la profesin.
Prembulo
La versin corta del cdigo resume aspiraciones a un alto nivel de
abstraccin; las clusulas que se incluyen en la versin completa dan
ejemplos y detalles de cmo estas aspiraciones cambian nuestro modo de
actuar como profesionales de la Ingeniera de Software. Sin las aspiraciones,
los detalles pueden llegar a ser legalistas y aburridos; sin los detalles, las
aspiraciones pueden llegar a ser ruidosas pero vacas; juntas, las aspiraciones
y los detalles forman un cdigo cohesivo.
Los ingenieros de software se comprometern a hacer del anlisis,
especificacin, diseo, desarrollo, prueba y mantenimiento de software una
profesin respetable y beneficiosa. Acorde a su compromiso con la salud,
bienestar y seguridad del pblico, los ingenieros de software se adherirn a
los ocho principios siguientes:

PUBLICO
Los ingenieros de software actuarn constantemente con el inters pblico.
CLIENTE Y EMPLEADOR
Los ingenieros de software actuarn acorde al mayor inters de sus clientes y
empleadores en constancia con el inters pblico.
PRODUCTO
Los ingenieros de software garantizarn que sus productos y relativas
modificaciones van acorde a los estndares profesionales ms altos posibles.
JUICIO
Los ingenieros de software mantendrn su integridad e independencia de
juicio como profesional.
GERENCIA
Gerentes y lderes de Ingeniera de Software suscribirn y promovern un
acercamiento tico hacia el manejo de desarrollo de software y evolucin.
PROFESION
Los ingenieros de Software incrementarn la integridad y reputacin de la
profesin en constancia con el inters pblico.

COLEGAS
Los ingenieros de software sern condescendientes y
brindarn apoyo a sus colegas.
UNO MISMO
Los ingenieros de software participarn en la
formacin continua con respecto a la prctica de su
profesin y promovern un acercamiento tico a la
prctica de la profesin.
Desacuerdo en principio con las polticas de
administracin superior.
El empleador acta de un modo no tico y lanza
un sistema de seguridad crtico sin terminar la
prueba del sistema.
Participacin en el desarrollo de armamento
militar o sistemas nucleares.

La Ingeniera de Software es una disciplina de la ingeniera
concerniente a todos los aspectos de la produccin de
software.
Los productos software estn consistidos de programas
desarrollados y su documentacin asociada. Atributos
esenciales del producto son la mantenibilidad, formalidad,
eficiencia y utilidad.
El proceso de software consiste en actividades involucradas en
el desarrollo de productos software. Actividades bsicas son la
especificacin del software, desarrollo, validacin y evolucin.
Las metodologas son maneras organizadas de producir
software. Estas incluyen sugerencias para el proceso a seguir,
notaciones a usar, reglas que rigen las descripciones del
sistema que son pautas para el desarrollo.
Las herramientas CASE son sistemas de software diseadas para
soportar actividades rutinarias en el proceso de software, como
ser: editar diagramas de diseo, verificaciones de la consistencia
de diagramas y seguir el rastro de las pruebas del programa que
han sido ejecutadas.
Los ingenieros de software tienen responsabilidades para con la
profesin y la sociedad. No deberan simplemente preocuparse de
aspectos tcnicos.
Las sociedades profesionales publican cdigos de conducta que
establecen los estndares de comportamiento que se esperan de
sus miembros.