Вы находитесь на странице: 1из 33

Introduccin a la Ingeniera de

Software Captulo 1
Curso de Ing. De Software FIIS UNAC

Ing. Eddie Malca Vicente


Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 1

No es ms sabio aquel que sabe mucho,


sino aquel que hace mucho con lo poco
que sabe.

Objetivos
Curso de Ingeniera de Software

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.

Tpicos expuestos

Preguntas frecuentes acerca de la Ingeniera de Software.

Responsabilidad tica y profesional.

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 PBI en todos los pases desarrollados.

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.

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?

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?

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.

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.

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

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.

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.

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.

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.

Distribucin de costos por actividad


Wate rfall m ode l
0

25

Spe c ific ation

50

De sign

1 00

75

De ve lopm e nt

Inte g ration and te sting

Ite rative de ve lopm e nt


0

25

Spe c ific ation

75

Ite rative de ve lopm e nt

Com pone nt-base d softw are e ng


0

25

Spe c ific ation

50

Sy ste m te sting

ine e ring
50

75

De ve lopm e nt

10

Sy ste m de ve lopm e nt

1 00

Inte g ration and te sting

De ve lopm e nt and e volution c osts for long-life tim e sy st


0

1 00

em s

200

30

Sy ste m e volution

400

Costos de desarrollo del producto

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.

Qu son las herramientas CASE (Computer-Aided 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.

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

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.

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.

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.

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

Cdigo de Etica ACM/IEEE

Las sociedades profesionales en los Estados


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.

Unidos

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:

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.

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.

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.

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.

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.

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.

Introduccin a la Ingeniera de
Software Captulo 1
Curso de Ing. De Software FIIS UNAC

Ing. Eddie Malca Vicente


Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 1

Вам также может понравиться