Sei sulla pagina 1di 31

Una introduccin a la Ingeniera de

Software

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide1

Objetivos

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide2

Tpicos expuestos

Preguntas frecuentes acerca de la Ingeniera de


Software.
Responsabilidad tica y profesional.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide3

Ingeniera de Software

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide4

Costos del Software

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide5

Preguntas frecuentes acerca de


Ingeniera de Software

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?

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide6

Preguntas frecuentes acerca de


Ingeniera 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?

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide7

Qu es 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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide8

Qu es la Ingeniera de Software?

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide9

Cul es la diferencia entre Ingeniera de


Software y Computacin?

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).

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide10

Cul es la diferencia entre Ingeniera de


Software e ingeniera de sistemas?

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide11

Qu es un proceso de software?

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide12

Qu es un modelo de proceso de
software?

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide13

Cules son los costos de Ingeniera de


Software?

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

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide14

Distribucin de costos por actividad


Waterfall model
0

25

Specifi cation

Design

50

75

Development

100

Integration and testing

It erative development
0

25

Specifi cation

50

75

Iterative development

100

System testing

Component-based software eng


ineering
0

25

Specifi cation

50

Development

75

100

Integration and testing

Development and evolution costs for long-lifetime syst


ems
0

10

System development

IanSommerville2004

200

30

400

System evolution

SoftwareEngineering,7thedition.Chapter1

Slide15

Costos de desarrollo del producto

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide16

Cules son las metodologas de desarrollo


de software?

Acercamientos estructurados al desarrollo de software


que incluyen modelos del sistema, notaciones, reglas,
pautas de diseo y pasos a seguir.
Descripciones del modelo

Reglas

Restricciones aplicadas a los modelos del sistema;

Recomendaciones

Descripciones de modelos grficos que deben ser producidos;

Pautas para un buen diseo en la prctica;

Pasos a seguir

Qu actividades deben seguirse.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide17

Qu son las herramientas CASE (ComputerAided Software Engineering)

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide18

Cules son los atributos de un buen


software?

El software debe entregar la funcionalidad y el


funcionamiento requeridos por el usuario al l mismo, y
debe ser mantenible, confiable y aceptable.
Mantenibilidad

Confiabilidad

El software debe ser confiable;

Eficiencia

El software debe evolucionar para cubrir necesidades


cambiantes;

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide19

Cules son los desafos primordiales frente a


la Ingeniera de Software?

Heterogeneidad, entrega y confianza.


Heterogeneidad

Entrega

Tcnicas de desarrollo para la construccin de software que


puedan encararse con plataformas heterogneas y ambientes
de ejecucin apropiados;
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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide20

Responsabilidad tica y profesional

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide21

Aspectos de responsabilidad
profesional

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide22

Aspectos de responsabilidad
profesional

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).

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide23

Cdigo de Etica ACM/IEEE

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide24

Cdigo de Etica - prembulo

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:

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide25

Cdigo de Etica - Principios

PUBLICO

CLIENTE Y EMPLEADOR

Los ingenieros de software actuarn constantemente con el


inters pblico.
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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide26

Cdigo de Etica - Principios

JUICIO

GERENCIA

Los ingenieros de software mantendrn su integridad e


independencia de juicio como profesional.
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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide27

Cdigo de Etica - Principios

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide28

Dilemas Eticos

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide29

Puntos Clave

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide30

Puntos Clave

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.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter1

Slide31

Potrebbero piacerti anche