40
Introducción a la Ingeniería de Software.

Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 0

Introducción a la Ingeniería

de Software.

Page 2: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 1

• Introducir la Ingeniería de Software y explicar su

importancia.

• Contestar las preguntas claves acerca de la

Ingeniería de Software.

• Introducir consideraciones éticas y profesionales

y explicar por qué son importantes para los

Ingenieros de Software.

Objetivos.

Page 3: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 2

Ingeniería de Software.

• Las economías de las naciones desarrolladas dependendel software.

• Más y más sistemas se controlan mediante software.

• La Ingeniería de Software estudia las teorías, métodos yherramientas para el desarrollo profesional del software.

• Los gastos en software representan una fracciónsignificativa del PNB de todos los países desarrollados.

Page 4: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 3

Costos del Software.

• Los costos del software a menudo dominan el costo de

los sistemas de cómputo. El costo del software en una

PC frecuentemente es mayor que el costo del hardware.

• Cuesta más mantener que desarrollar el software. En

sistemas de larga vida, los costos de mantenimiento

pueden exceder varias veces el costo del desarrollo.

• La Ingeniería de Software tiene que ver con el desarrollo

del software de manera eficiente respecto al costo.

Page 5: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 4

Los Costos del Software

• Costo directo. Adquisición o desarrollo de un sistema de Software.

• Costo indirecto. Utilización del software; incluye aspectos como la capacitación, instalación, soporte técnico, entre otros.

• Costo oculto. Ocasionado principalmente por las fallas del software. Son difíciles de prever y afectan principalmente a los sistemas conocidos como de misión crítica.

Page 6: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 5

Costos ocultos y consecuencias por fallas del

Software.

1. Consecuencias inmediatas y efectos directos.

Perjuicios ocasionados mientras dura la caída del sistema.

Son relativamente predecibles dado que dependen

directamente del tiempo que dure la interrupción en la

operación.

2. Consecuencias a mediano y largo plazo y efectos

indirectos.

Perjuicios posteriores a la caída de los sistemas. Varían,

desde la restauración de los datos, servicios de emergencia,

hasta posibles accidentes y juicios en contra. Es difícil

predecir el costo real del costo indirecto a mediano y largo

plazo.

Page 7: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 6

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.

Page 8: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 7

Accidente de un F-18 (1986):

• Un avión de combate F-18 se estrelló a causa de un

giro descontrolado (unrecoverable spin) atribuido a

una expresión “if-then”, para la cual no habia

instrucción “else” por considerarse innecesaria, lo

que originó una excepción fuera de control del

programa.

Fallas en sistemas de software (2).

Page 9: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 8

Falla del software de AT&T (1990):

• American Telegraph and Telephone tuvo una fallamasiva en su sistema de comunicaciones, durandoalrededor de nueve horas e interrumpiendo millonesde llamadas internacionales.

• El problema se originó en uno de los programas de ruteo escritos en lenguaje C.

Fallas en sistemas de software (3).

Page 10: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 9

Falla de software en la Estación Nuclear Bruce,

Canadá (1990):

• Un error de software en la estación nuclear de Bruce

ocasionó la liberación de miles de litros de agua

radioactiva. Se controló rápidamente causando únicamente

la pérdida de dinero y tiempo, manteniendo la estación fuera

de operación por varias semanas.

Fallas en sistemas de software (4).

Page 11: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 10

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 compañía a la quiebra (1996):

• El intento por cambiar un nuevo sistema de software de cobranza,de un servicio de programación de una gran compañía detelevisión por satélite, causó la quiebra de la compañía.

Fallas en sistemas de software (5).

Page 12: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 11

Error en equipo de Cisco (1998):

• Un error en un equipo de ruteo (“switch”) de Cisco en uso por AT&Tse propagó por cientos de equipos de ruteo en su red de altavelocidad, dejando fuera de servicio miles de cajeros automáticos ylectores de tarjetas de crédito.

Error del milenio “Y2K” (2000):

• Cuando los programadores adoptaron la conversación de representarel año con dos dígitos, en lugar de cuatro: a los dos dígitos seconcatenaba la constante 19 al inicio para generar la fecha completa.Según el Grupo Gartner, los costos de conversión de los programasfueron de alrededor de 600,000 millones de dls.

Fallas en sistemas de software (6).

Page 13: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 12

Obama Care (2015):

• Una mala arquitectura de la aplicación web para controlar laoperación del nuevo sistema de salud en Estados Unidos, llamadoObama Care, ocasionó que en los primeros días de su operación sesaturara de manera que los tiempos de respuesta fueroninaceptables.

• El sistema fue retirado durante varios meses mientras se corregíanlas fallas del diseño arquitectónico.

• Muchos usuarios llegaron a la conclusión de que el sistema de salud(no la aplicación Web) no era adecuado.

Fallas en sistemas de software (7).

Page 14: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 13

Dos accidentes fatales del Boeing 737 Max:

• Una falla en el software de control del avión ocasionó que entrara enpicada y no se pudiera levantar aun con intervención manual.

• Dos accidentes fatales ocasionaron que toda la flota de este tipo deavión dejara de volar mientras se corrige la falla.

• A la fecha, la corrección del software continúa en etapa de prueba ylos aviones no están volando.

Fallas en sistemas de software (8).

Page 15: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 14

Preguntas frecuentes respecto a la

Ingeniería de Software (1).

• ¿Qué es software?

• ¿Qué es Ingeniería de Software?

• ¿Cuál es la diferencia entre Ingeniería de

Software y Ciencia de Cómputo?

• ¿Cuál es la diferencia entre Ingeniería de

Software e Ingeniería de Sistemas?

• ¿Qué es un proceso de software?

• ¿Qué es un modelo de un proceso de software?

Page 16: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 15

Preguntas frecuentes respecto a la

Ingeniería de Software (2).

• ¿Cuál es el costo de la Ingeniería de Software?

• ¿Cuáles son los métodos de la Ingeniería de

Software?

• ¿Qué es CASE (Computer-Aided Software

Engineering)?

• ¿Cuáles son los atributos del buen software?

• ¿Cuáles son los retos fundamentales de la

Ingeniería de Software?

Page 17: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 16

¿Qué es Software?

• Programas de computadora y su documentaciónasociada, como requerimientos, modelos de diseño ymanuales de usuario.

• El producto de software puede ser desarrollado para uncliente en particular o para el mercado en general.

• Los productos de software pueden ser:• Genéricos - desarrollados para ser vendidos a un rango

general de diferentes clientes, e.g. software de PC como Excelo Word.

• A la medida – desarrollados para un solo cliente de acuerdo asus especificaciones.

• Se puede crear nuevo software desarrollando nuevosprogramas, configurando sistemas de software genéricoso reutilizando software existente.

Page 18: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 17

¿Qué es la Ingeniería de Software?

• La Ingeniería de Software es una disciplina ingenieril que

trata con todos los aspectos de la producción de software

útil.

• Los Ingenieros de Software deben adoptar un enfoque

sistemático y organizado en su trabajo y utilizar

herramientas y técnicas apropiadas dependiendo del

problema a resolver, las restricciones del desarrollo y los

recursos disponibles.

Page 19: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 18

¿Cuál es la diferencia entre Ingeniería de

Software y Ciencia de Cómputo?

• La Ciencia de Cómputo trata de la teoría y los

fundamentos; la Ingeniería de Software trata con las

cuestiones prácticas de desarrollo e implantación de

software útil.

• Las teorías de la Ciencia de Cómputo son todavía

insuficientes para actuar como material de soporte

completo para la Ingeniería de Software (a diferencia, por

ejemplo de la Física respecto a la Ingeniería Eléctrica).

Page 20: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 19

¿Cuál es la diferencia entre Ingeniería de

Software e Ingeniería de Sistemas?

• La Ingeniería de Sistemas trata todos los aspectos deldesarrollo de sistemas basados en computadoras,incluyendo el hardware, el software y la ingeniería de losprocesos. La Ingeniería de Software es parte de esteproceso y se concentra en el desarrollo de lainfraestructura de software, su control y las bases dedatos del sistema.

• Los Ingenieros de Software se involucran en laespecificación del sistema, su diseño arquitectónico, suintegración y su instalación.

Page 21: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 20

¿Qué es un proceso de software?

• Un conjunto de actividades cuyo propósito es el desarrolloo la evolución de software.

• Las actividades genéricas en todos los procesos desoftware son:

• Especificación – qué debe hacer el sistema y cuales son lasrestricciones para su desarrollo.

• Desarrollo – producción del sistema de software.

• Validación – verificar que el software es lo que el cliente desea.

• Evolución – cambios en el software en respuesta a demandas decambios.

Page 22: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 21

¿Qué es un modelo de un proceso

de software?

• Una representación simplificada de un proceso de software,

presentada desde una perspectiva específica.

• Algunos ejemplos de perspectivas de procesos:

• Perspectiva de flujo de trabajo – secuencia de actividades.

• Perspectiva de flujo de datos – flujo de información.

• Perspectiva de rol/acción – quien hace que.

• Modelos genéricos de procesos.

• Cascada.

• Desarrollo iterativo.

• Ingeniería de Software basada en componentes.

Page 23: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 22

¿Cuál es el costo de la Ingeniería

de Software?

• Aproximadamente el 60% del costo es desarrollo, 40%

pruebas. Para software a la medida, el costo de

evolución a menudo excede el costo de desarrollo.

• El costo varía dependiendo del tipo de sistema que se

desarrolla y los requerimientos de atributos del sistema,

como rendimiento y confiabilidad.

• La distribución del costo depende del modelo de

desarrollo utilizado.

Page 24: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 23

Costo de desarrollo del producto.

Specification Development System testing

25 50 75 1000

Page 25: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 24

Complejidad del software

• Complejidad del problema: cuanto mayor sea el número de

requerimientos o funcionalidad ofrecida por una aplicación,

mayor será el tamaño del sistema, creando sistemas más

difíciles de comprender y desarrollar.

• Complejidad de la solución: cuando la complejidad del

problema es muy grande y difícil de reducir, es muy

importante reducir la otra fuente de complejidad: la de la

solución (el software).

Page 26: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 25

• Factor estático.

Corresponde a la funcionalidad que un sistema de

software debe ofrecer al ser inicialmente desarrollado.

• Factor dinámico

Corresponde a la funcionalidad que varía con el tiempo.

Según la “Ley de Lehman: todo programa que se use se

modificará y cuando un programa se modifica su

complejidad aumenta”.

Complejidad del software (2).

Page 27: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 26

Confiabilidad del software

• La confiabilidad (reliability) de un sistema desoftware describe que tan correcto y a pruebade fallas es un sistema. Depende de la cantidadde errores que tiene un sistema.

• La robustez (robustness) del software, la cualdescribe que tan bien el sistema responde antecircunstancias anormales.

Page 28: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 27

¿Cuáles son los métodos de la Ingeniería de

Software?

• Enfoques estructurados en desarrollo de software, queincluyen modelos del sistema, notaciones, reglas, prácticasde diseño y guías de procesos.

• Descripciones de los Modelos.• Descripciones de modelos gráficos que deben producirse.

• Reglas.• Restricciones aplicadas a los modelos.

• Recomendaciones.• Consejos en buenas prácticas de diseño (best practices).

• Guías de procesos.• Qué actividades seguir.

Page 29: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 28

¿Qué es CASE (Computer-Aided Software

Engineering)?

• Sistemas de Software que intentan propocionar soporte

automatizado de las actividades de los procesos de

software.

• Los sistemas CASE se usan frecuentemente como soporte

a los métodos.

• CASE superior (Upper-CASE).

• Herramientas que soportan las actividades iniciales de

requerimientos y diseño.

• CASE inferior (Lower-CASE).

• Herramientas que soportan actividades posteriores como

programación, depuración y pruebas.

Page 30: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 29

¿Cuáles son los atributos del buen software?

El software debe proporcionar la funcionalidad y rendimiento requeridospor el usuario y debe ser mantenible, eficiente, confiable aceptable.

• Mantenibilidad.

• El software debe evolucionar para incluir cambios demandados.

• Eficiencia.

• El software no debe desperdiciar recursos del sistema.

• Confiabilidad.

• El software debe ser confiable, i.e debe dar los resultados esperados.

• Aceptabilidad.

• El software debe ser aceptado por los usuarios para los que sediseñó. Esto significa que debe ser entendible, usable y compatiblecon otros sistemas.

Page 31: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 30

¿Cuáles son los retos fundamentales de la

Ingeniería de Software?

• Heterogeneidad. Desarrollo de técnicas para construir software

que soporte plataformas y ambientes de ejecución hetereógeneos.

• Tiempo de entrega. Desarrollo de técnicas que permitan la

entrega rápida del software.

• Confianza. Desarrollo de técnicas que demuestren que los

usuarios pueden confiar en el software.

Page 32: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 31

Responsabilidad ética y profesional.

• La Ingeniería de Software implica responsabilidades más

amplias que simplemente la aplicación de habilidades

técnicas.

• Los Ingenieros de Software deben comportarse de manera

honesta y éticamente responsable, para ser respetados

como profesionales.

• La conducta ética va más allá del simple respeto de la

legalidad.

Page 33: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 32

Consideraciones de responsabilidad

profesional.

• Confidencialidad. • Los Ingenieros de Software deben por norma respetar

la confidencialidad de sus empleadores o clientesindependientemente de que se haya o no firmado unacuerdo de confidencialidad.

• Competencia.• Los Ingenieros de Software no deben aparentar niveles

de competencia que no tienen. No deben aceptartrabajo que no son capaces de realizar.

Page 34: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 33

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.

• Mal uso de computadoras.

• Los ingenieros de software no deben usar sus habilidades

técnicas para hacer mal uso de computadoras de otras personas.

El mal uso de computadoras abarca desde cuestiones

relativamente triviales (como jugar juegos en la máquina de un

empleador) hasta cosas muy serias (como diseminación de virus).

Page 35: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 34

Código de Ética de la ACM/IEEE.

• Estas sociedades profesionales de Estados Unidos han cooperado para producir un código de ética para los Ingenieros de Software.

• Los miembros de estas organizaciones firman el códigode ética cuando ingresan a ellas.

• El código 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.

ACM: American Computer Manufacturers. IEEE: Institute of Electric and Electronic Engineers.

Page 36: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 35

Código de Ética – preámbulo.

• Preámbulo.• La versión corta del código sumariza sus aspiraciones en un nivel

de abstracción muy alto; las claúsulas incluidas en la versióncompleta incluyen ejemplos y detalles de como estas aspiracionesafectan la manera como actuamos como Ingenieros de Softwareprofesionales. Sin estas aspiraciones los detalles pueden parecerlegalistas y tediosos; sin los detalles, las aspiraciones puedenparecer altisonantes pero vacías; juntos, las aspiraciones y losdetalles forman un código coherente.

• Los Ingenieros de Software deben comprometerse consigomismos para hacer del análisis, especificación, diseño, desarrollo,pruebas y mantenimiento de software, una profesión benéfica yrespetable. De acuerdo a sus compromisos con la salud,seguridad y bienestar del público, los Ingenieros de Softwaredeben adherirse a los siguientes Ocho Principios:

Page 37: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 36

Código de Ética – 8 principios.

1. Los Ingenieros de Software deben actuar

consistentemente con el interés público.

2. Los Ingenieros de Software deben actuar de la mejor

manera de acuerdo a los intereses de su cliente y

empleador, consistente con el interés público.

3. Los Ingenieros de Software deben asegurarse de que

sus productos y las modificaciones relacionadas

cumplan con los estándares profesionales más altos

posibles.

Page 38: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 37

Código de Ética – principios.

4. Los Ingenieros de Software deben mantener integridad e

independencia en su juicio profesional.

5. Los gerentes y líderes de Ingeniería de Software deben

adoptar y promover un enfoque ético del manejo del

desarrollo y mantenimiento del software.

6. Los Ingenieros de Software deben avanzar en la

integridad y reputación de la profesión, consistente con el

interés público.

Page 39: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 38

Código de Ética – principios.

7. Los Ingenieros de Software deben ser justos con y

apoyar a sus colegas.

8. Los Ingenieros de Software deben continuar

aprendiendo de por vida lo concerniente a la práctica

de su profesión y deben promover un enfoque ético de

la misma.

Page 40: Introducción a la Ingeniería de Software.profesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/00Introduccion.pdf · general de diferentes clientes, e.g. software de PC como Excel

Ingeniería de Software Introducción Página 39

Dilemas éticos.

• Desacuerdo con las política de la gerencia superior.

• El empleador actúa de forma no ética y libera un sistema

crítico en seguridad sin haber terminado las pruebas del

mismo.

• Participación en el desarrollo de armas militares o

sistemas nucleares.