0% encontró este documento útil (0 votos)
301 vistas39 páginas

00 Introduccion

Cargado por

Estrada Cesar
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
301 vistas39 páginas

00 Introduccion

Cargado por

Estrada Cesar
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introduccin a la Ingeniera de Software.

Profesor Adn Zepeda Gorostiza. [email protected] http://profesores.fi-b.unam.mx/adanzg

Ingeniera de Software

Introduccin

Pgina 0

Objetivos.
Introducir la Ingeniera de Software y explicar su importancia. Contestar las preguntas claves acerca de la Ingeniera de Software. Introducir consideraciones ticas y profesionales y explicar por qu son importantes para los Ingenieros de Software.

Ingeniera de Software

Introduccin

Pgina 1

Ingeniera de Software.
Las economas de las naciones desarrolladas dependen del software. Ms y ms sistemas se controlan mediante software. La Ingeniera de Software estudia las teoras, mtodos y herramientas para el desarrollo profesional del software. Los gastos en software representan una fraccin significativa del PNB de todos los pases desarrollados.

Ingeniera de Software

Introduccin

Pgina 2

Costos del Software.


Los costos del software a menudo dominan el costo de los sistemas de cmputo. El costo del software en una PC frecuentemente es mayor que el costo del hardware. Cuesta ms mantener que desarrollar el software. En sistemas de larga vida, los costos de mantenimiento pueden exceder varias veces el costo del desarrollo. La Ingeniera de Software tiene que ver con el desarrollo del software de manera eficiente respecto al costo.

Ingeniera de Software

Introduccin

Pgina 3

Los Costos del Software


Costo directo. Adquisicin o desarrollo de un sistema de Software. Costo indirecto. Utilizacin del software; incluye aspectos como la capacitacin, instalacin, soporte tcnico, entre otros. Costo oculto. Ocasionado principalmente por las fallas del software. Son difciles de prever y afectan principalmente a los sistemas conocidos como de misin crtica.

Ingeniera de Software

Introduccin

Pgina 4

Costos ocultos y consecuencias por fallas del Software.


1. Consecuencias inmediatas y efectos directos. Perjuicios ocasionados mientras dura la cada del sistema. Son relativamente predecibles dado que dependen directamente del tiempo que dure la interrupcin en la operacin. 2. Consecuencias a mediano y largo plazo y efectos indirectos. Perjuicios posteriores a la cada de los sistemas. Varan, desde la restauracin de los datos, servicios de emergencia, hasta posibles accidentes y juicios en contra. Es difcil predecir el costo real del software a mediano y largo plazo.
Ingeniera de Software Introduccin Pgina 5

Fallas en sistemas de software.


Sobregiro del Bank of New York (1985):
Tuvo accidentalmente un sobregiro de 32,000 millones de dls. Ocasionado por un contador de 16 bits que se activ provocando un desbordamiento (overflow) del contador que nunca fue verificado. El banco no pudo procesar nuevas transferencias por lo que la Reserva Federal de USA le hizo un traspaso de 24,000 millones de dls. Tuvo que pagar 5 millones de dls. de intereses mientras se arreglaba el software.

Ingeniera de Software

Introduccin

Pgina 6

Fallas en sistemas de software (2).


Accidente de un F-18 (1986):
Un avin de combate F-18 se estrell a causa de un giro descontrolado (unrecoverable spin) atribuido a una expresin if-then, para la cual no habia instruccin else por considerarse innecesaria, lo que origin una excepcin fuera de control del programa.

Ingeniera de Software

Introduccin

Pgina 7

Fallas en sistemas de software (3).


Falla del software de AT&T (1990):
American Telegraph and Telephone tuvo una falla masiva en su sistema de comunicaciones, durando alrededor de nueve horas e interrumpiendo millones de llamadas internacionales. El problema se origin en uno de los programas de ruteo escritos en lenguaje C.

Ingeniera de Software

Introduccin

Pgina 8

Fallas en sistemas de software (4).


Falla de software en la Estacin Nuclear Bruce, Canad (1990):
Un error de software en la estacin nuclear de Bruce ocasion la liberacin de miles de litros de agua radioactiva. Se control rpidamente causando nicamente la prdida de dinero y tiempo, manteniendo la estacin fuera de operacin por varias semanas.

Ingeniera de Software

Introduccin

Pgina 9

Fallas en sistemas de software (5).


Error de procesador Pentium de Intel (1994):
Un error de punto flotante en el procesador Pentium le cost a Intel 475 millones de dls. El procesador Pentium III de 1 GHz, tuvo que ser retirado del mercado.

Error del sistema de cobranza lleva a una compaa a la quiebra (1996):


El intento por cambiar un nuevo sistema de software de cobranza, de un servicio de programacin de una gran compaa de televisin por satlite, caus la quiebra de la compaa.

Ingeniera de Software

Introduccin

Pgina 10

Fallas en sistemas de software (6).


Error en equipo de Cisco (1998):
Un error en un equipo de ruteo (switch) de Cisco en uso por AT&T se propag por cientos de equipos de ruteo en su red de alta velocidad, dejando fuera de servicio miles de cajeros automticos y lectores de tarjetas de crdito.

Error del milenio Y2K (2000):


Cuando los programadores adoptaron la conversacin de representar el ao con dos dgitos, en lugar de cuatro: a los dos dgitos se concatenaba la constante 19 al inicio para generar la fecha completa. Segn el Grupo Gartner, los costos de conversin de los programas fueron de alrededor de 600,000 millones de dls.
Introduccin Pgina 11

Ingeniera de Software

Preguntas frecuentes respecto a la Ingeniera de Software.


Qu es software? Qu es Ingeniera de Software? Cul es la diferencia entre Ingeniera de Software y Ciencia de Cmputo? Cul es la diferencia entre Ingeniera de Software e Ingeniera de Sistemas? Qu es un proceso de software? Qu es un modelo de un proceso de software?
Introduccin Pgina 12

Ingeniera de Software

Preguntas frecuentes respecto a la Ingeniera de Software (2).


Cul es el costo de la Ingeniera de Software? Cules son los mtodos de la Ingeniera de Software? Qu es CASE (Computer-Aided Software Engineering)? Cules son los atributos del buen software? Cules son los retos fundamentales de la Ingeniera de Software?
Introduccin Pgina 13

Ingeniera de Software

Qu es Software?
Programas de computadora y su documentacin asociada, como requerimientos, modelos de diseo y manuales de usuario. El producto de software puede ser desarrollado para un cliente en particular o para el mercado en general. Los productos de software pueden ser:
Genricos - desarrollados para ser vendidos a un rango general de diferentes clientes, e.g. software de PC como Excel o Word. A la medida desarrollados para un solo cliente de acuerdo a sus especificaciones.

Se puede crear nuevo software desarrollando nuevos programas, configurando sistemas de software genricos o reutilizando software existente.
Introduccin Pgina 14

Ingeniera de Software

Qu es la Ingeniera de Software?
La Ingeniera de Software es una disciplina ingenieril que trata con todos los aspectos de la produccin de software. Los Ingenieros de Software deben adoptar un enfoque sistemtico y organizado en su trabajo y utilizar herramientas y tcnicas apropiadas dependiendo del problema a resolver, las restricciones del desarrollo y los recursos disponibles.

Ingeniera de Software

Introduccin

Pgina 15

Cul es la diferencia entre Ingeniera de Software y Ciencia de Cmputo?


La Ciencia de Cmputo trata de la teora y los fundamentos; la Ingeniera de Software trata con las cuestiones prcticas de desarrollo e implantacin de software til. Las teoras de la Ciencia de Cmputo son todava insuficientes para actuar como material de soporte completo para la Ingeniera de Software (a diferencia, por ejemplo de la Fsica o la Ingeniera Elctrica).

Ingeniera de Software

Introduccin

Pgina 16

Cul es la diferencia entre Ingeniera de Software e Ingeniera de Sistemas?


La Ingeniera de Sistemas trata todos los aspectos del desarrollo de sistemas basados en computadoras, incluyendo el hardware, el software y la ingeniera de los procesos. La Ingeniera de Software es parte de este proceso y se concentra en el desarrollo de la infraestructura de software, su control y las bases de datos del sistema. Los Ingenieros de Sistemas se involucran en la especificacin del sistema, su diseo arquitectnico, su integracin y su instalacin.
Introduccin Pgina 17

Ingeniera de Software

Qu es un proceso de software?
Un conjunto de actividades cuyo propsito es el desarrollo o la evolucin de software. Las actividades genricas en todos los procesos de software son:
Especificacin qu debe hacer el sistema y cuales son las restricciones para su desarrollo. Desarrollo produccin del sistema de software. Validacin verificar que el software es lo que el cliente desea. Evolucin cambios en el software en respuesta a demandas de cambios.

Ingeniera de Software

Introduccin

Pgina 18

Qu es un modelo de un proceso de software?


Una representacin simplificada de un proceso de software, presentada desde una perspectiva especfica. Algunos ejemplos de perspectivas de procesos:
Perspectiva de flujo de trabajo secuencia de actividades. Perspectiva de flujo de datos flujo de informacin. Perspectiva de rol/accin quien hace que. Cascada. Desarrollo iterativo. Ingeniera de Software basada en componentes.

Modelos genricos de procesos.


Ingeniera de Software

Introduccin

Pgina 19

Cul es el costo de la Ingeniera de Software?


Aproximadamente el 60% del costo es desarrollo, 40% pruebas. Para software a la medida, el costo de evolucin a menudo excede el costo de desarrollo. El costo vara dependiendo del tipo de sistema que se desarrolla y los requerimientos de atributos del sistema, como rendimiento y confiabilidad. La distribucin del costo depende del modelo de desarrollo utilizado.

Ingeniera de Software

Introduccin

Pgina 20

Distribucin de costo por actividad.

Ingeniera de Software

Introduccin

Pgina 21

Costo de desarrollo del producto.

Ingeniera de Software

Introduccin

Pgina 22

Complejidad del software


Complejidad del problema: cuanto mayor sea el nmero de requerimientos o funcionalidad ofrecida por una aplicacin, mayor ser el tamao del sistema, creando sistemas ms difciles de comprender y desarrollar. Complejidad de la solucin: cuando la complejidad del problema es muy grande y difcil de reducir, es muy importante reducir la otra fuente de complejidad: el de la solucin (el software).

Ingeniera de Software

Introduccin

Pgina 23

Complejidad del software (2).


Factor esttico.
Corresponde a la funcionalidad que un sistema de software debe ofrecer al ser inicialmente desarrollado.

Factor dinmico
Corresponde a la funcionalidad que vara con el tiempo. Segn la Ley de Lehman, todo programa que se use se modificar y cuando un programa se modifica su complejidad aumenta.

Ingeniera de Software

Introduccin

Pgina 24

Confiabilidad del software


La confiabilidad (reliability) de un sistema de software describe que tan correcto y a prueba de fallas es un sistema. Depende de la cantidad de errores que tiene un sistema. La robustez (robustness) del software, la cual describe que tan bien el sistema responde ante circunstancias anormales.

Ingeniera de Software

Introduccin

Pgina 25

Cules son los mtodos de la Ingeniera de Software?


Enfoques estructurados en desarrollo de software, que incluyen modelos del sistema, notaciones, reglas, prcticas de diseo y guas de procesos. Descripciones de los Modelos.
Descripciones de modelos grficos que deben producirse. Restricciones aplicadas a los modelos. Consejos en buenas prcticas de diseo. Qu actividades seguir.

Reglas.

Recomendaciones. Guas de procesos.

Ingeniera de Software

Introduccin

Pgina 26

Qu es CASE (Computer-Aided Software Engineering)?


Sistemas de Software que intentan proprocionar soporte automatizado de las actividades de los procesos de software. Los sistemas CASE se usan frecuentemente como soporte a los mtodos. CASE superior (Upper-CASE).
Herramientas que soportan requerimientos y diseo. las actividades iniciales de

CASE inferior (Lower-CASE).


Herramientas que soportan actividades programacin, depuracin y pruebas. posteriores como

Ingeniera de Software

Introduccin

Pgina 27

Cules son los atributos del buen software?


El software debe proporcionar la funcionalidad y rendimiento requeridos por el usuario y debe ser mantenible, confiable eficiente y aceptable. Mantenibilidad.
El software demandados. debe evolucionar para incluir cambios

Dependabilidad.
El software debe ser confiable. El software no debe desperdiciar recursos del sistema. El software debe ser aceptado por los usuarios para los que se dise. Esto significa que debe ser entendible, usable y compatible con otros sistemas.
Introduccin Pgina 28

Eficiencia. Aceptabilidad.

Ingeniera de Software

Cules son los retos fundamentales de la Ingeniera de Software?


Heterogeneidad. Desarrollo de tcnicas para construir software
que soporte plataformas y ambientes de ejecucin heteregeneos.

Tiempo de entrega. Desarrollo de tcnicas que permitan la


entrega rpida del software.

Confianza. Desarrollo de tcnicas que demuestren que los


usuarios pueden confiar en el software.

Ingeniera de Software

Introduccin

Pgina 29

Responsabilidad tica y profesional.


La Ingeniera de Software implica responsabilidades ms amplias que simplemente la aplicacin de habilidades tcnicas. Los Ingenieros de Software deben comportarse de manera honesta y ticamente responsable, para ser respetados como profesionales. La conducta tica va ms all del simple respeto de la legalidad.

Ingeniera de Software

Introduccin

Pgina 30

Consideraciones de responsabilidad profesional.


Confidencialidad.
Los Ingenieros de Software deben por norma respetar la confidencialidad de sus empleadores o clientes independientemente de que se haya o no firmado un acuerdo de confidencialidad.

Competencia.
Los Ingenieros de Software no deben aparentar niveles de competencia que no tienen. No deben aceptar trabajo que no son capaces de realizar.

Ingeniera de Software

Introduccin

Pgina 31

Consideraciones de responsabilidad profesional.


Derechos de propiedad intelectual.
Los Ingenieros de Software deben conocer las leyes locales que regulan el uso de la propiedad intelectual, como patentes, copyrights, etc. Deben tener cuidado de asegurarse que la propiedad intelectual de sus empleadores o clientes est protegida. Los ingenieros de software no deben usar sus habilidades tcnicas para hacer mal uso de computadoras de otras personas. El mal uso de computadoras abarca desde cuestiones relativamente triviales (como jugar juegos en la mquina de un empleador) hasta cosas muy serias (como diseminacin de virus).

Mal uso de computadoras.

Ingeniera de Software

Introduccin

Pgina 32

Cdigo de tica de la ACM/IEEE.


Estas sociedades profesionales de Estados Unidos han cooperado para producir un cdigo de prctica tica. Los miembros de estas organizaciones firman el cdigo de prctica cuando ingresan a ellas. El cdigo contiene ocho principios relativos a la conducta y las decisiones hechas por Ingenieros de Software profesionales, incluyendo profesionales en s, educadores, gerentes, supervisores y directivos, as como estudiantes y becarios.

Ingeniera de Software

Introduccin

Pgina 33

Cdigo de tica prembulo.


Prembulo.
La versin corta del cdigo sumariza sus aspiraciones en un nivel de abstraccin muy alto; las clasulas incluidas en la versin completa incluyen ejemplos y detalles de como estas aspiraciones afectan la manera como actuamos como Ingenieros de Software profesionales. Sin estas aspiraciones los detalles pueden parecer legalistas y tediosos; sin los detalles, las aspiraciones pueden parecer altisonantes pero vacas; juntos, las aspiraciones y los detalles forman un cdigo coherente. Los Ingenieros de Software deben comprometerse consigo mismos para hacer del anlisis, especificacin, diseo, desarrollo, pruebas y mantenimiento de software, una profesin benfica y respetable. De acuerdo a sus compromisos con la salud, seguridad y bienestar del pblico, los Ingenieros de Software deben adherirse a los siguientes Ocho Principios:
Introduccin Pgina 34

Ingeniera de Software

Cdigo de tica principios.


PBLICO.
Los Ingenieros de Software deben actuar consistentemente con el inters pblico. Los Ingenieros de Software deben actuar de la mejor manera de acuerdo a los intereses de su cliente y empleador, consistente con el inters pblico. Los Ingenieros de Software deben asegurarse de que sus productos y las modificaciones relacionadas cumplan con los estndares profesionales ms altos posibles.

CLIENTE Y EMPLEADOR.

PRODUCTO.

Ingeniera de Software

Introduccin

Pgina 35

Cdigo de tica principios.


JUICIO.
Los Ingenieros de Software deben mantener integridad e independencia en su juicio profesional. Los gerentes y lderes de Ingeniera de Software deben adoptar y promover un enfoque tico del manejo del desarrollo y mantenimiento del software. Los Ingenieros de Software deben avanzar en la integridad y reputacin de la profesin, consistente con el inters pblico.

GERENCIA.

PROFESIN.

Ingeniera de Software

Introduccin

Pgina 36

Cdigo de tica principios.


COLEGAS. Los Ingenieros de Software deben ser justos con y apoyar a sus colegas. PERSONALES. Los Ingenieros de Software deben continuar aprendiendo de por vida lo concerniente a la prctica de su profesin y deben promover un enfoque tico de la misma.

Ingeniera de Software

Introduccin

Pgina 37

Dilemas ticos.
Desacuerdo con las poltica de la gerencia superior. El empleador acta de forma no tica y libera un sistema crtico en seguridad sin haber terminado las pruebas del mismo. Participacin en el desarrollo de armas militares o sistemas nucleares.

Ingeniera de Software

Introduccin

Pgina 38

También podría gustarte