Ingenieria de software y etica de software

Page 1

UNIVERSIDAD TÉCNICA ESTATAL DE QUEVEDO MODALIDAD SEMI PRESENCIAL

MODULO DESARROLLO DE SISTEMAS E INGENIERIA DE SOFTWARE TEMA: INGENIERIA DE SOFTWARE Y ETICA DE LA INGENIERIA DE SOFTWARE AUTOR: JEFFERSON STALIN MACIAS DIAZ

TUTOR: ING. RICARDO AGUIRRE Quevedo – Los Ríos – Ecuador 2014


Ingeniería del software 

Definición IEEE La aplicación de un enfoque sistemático (ordenado), disciplinado y cuantificable al desarrollo, operación y mantenimiento de software, esto es, la aplicación de la ingeniería en el área del software. Hoy en día el software juega un papel central en casi todos los aspectos de la vida cotidiana: gobierno, finanzas, educación, transporte, medicina, etc... De forma paralela, la complejidad de los sistemas ha crecido de forma dramática, y anualmente se gastan miles de millones de dólares en cuestiones de desarrollo de software. La ingeniería del software pretende utilizar los recursos computacionales de tal manera

que

se

produzcan soluciones eficientes

y

eficaces

a

los problemas informáticos, el éxito de un proyecto involucra elementos como la planeación, la administración y la utilización de metodologías de desarrollo de software. La Ingeniería de Software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, mantenimiento y operación del software. Los principios y prácticas de esta disciplina son esenciales para el desarrollo de sistemas grandes, complejos y confiables. La Ingeniería de Software es una disciplina con un rico cuerpo de conocimiento, práctica y teoría. Esta disciplina ha madurado muy rápidamente. Desde 1968, cuando el término ingeniería de software fue usado por primera vez, la disciplina de Ingeniería de Software ha generado numerosas revistas, conferencias, sociedades profesionales, programas de grado y posgrado, certificaciones profesionales y estándares. Debido a que las funcionalidades de los productos y sistemas crecen, se necesita implementar eficientemente y correctamente el complejo software que posibilita este crecimiento. Todas las medianas y grandes compañías así como las agencias de gobierno tienen sistemas sofisticados que son críticos para


gestionar sus proyectos y la propia organización. Estos sistemas dan soporte a procesos del negocio y técnicos. Debido a que hoy en día gran parte de su funcionalidad está implementada en software, una gran parte de la responsabilidad de esta implementación recae en los Especialistas en Ingeniería de Software. A través de la planeación se determinan los recursos necesarios para el desarrollo del proyecto, la factibilidad del mismo y el tiempo estimado de desarrollo; unido a ello con la administración se controla, evalúa y corrige la dirección de acuerdo a las contingencias y demás elementos que se vayan presentando durante el desarrollo; finalmente, a través del uso de una metodología se busca lograr el acople de los participantes y la garantía de una determinada calidad. Debe notarse que las metodologías de desarrollo de software sólo constituyen uno de los mecanismos que actualmente se utilizan para alcanzar software de calidad; no debemos dejar de lado aspectos de la dirección de proyectos que también buscan calidad en el proceso de desarrollo y en el producto final. Considerando que la calidad es un término bastante impreciso se ha decidido establecer este tema como punto de partida. Como complemento se trata el tema del manejo de la complejidad puesto que es un tópico fundamental dentro de una metodología, que es la herramienta fundamental con la que se pretende guiar el proceso de elaboración de un producto software de alta calidad. Calidad en la ingeniería del software. En una versión sucinta la calidad en la ingeniería del software es un grupo de características que representa la efectividad y la eficiencia de un sistema de información. Es importante enfatizar en dos puntos: 

Un software de calidad debe ser eficaz, es decir, que debe realizar las funciones establecidas, debe ser amigable. Un usuario debe utilizar el software porque produce resultados confiables, realiza todas las operaciones que se requieren, ejecuta las operaciones en un tiempo aceptado y es fácilmente usado por el grupo de usuarios a quien esté dirigido.


Para ilustrar el concepto de calidad de manera más profunda, es necesario considerar algunos aspectos fundamentales que caracterizan al software de calidad

como

son:

solidez,

exactitud,

completitud,

mantenibilidad,

reutilizabilidad, claridad en la documentación, entre otros que serán descritos a continuación. 

Aspectos básicos de calidad de software. La descripción que se hace de los factores que influyen en un software de calidad se basa principalmente en las ideas presentadas por Robert Dunn, Philip Crosby y Roger S. Pressman. Sin embargo, también se han tomado algunos aportes de Bertrand Meyer y Mauricio Fernando Alba. Robert Dunn presenta la calidad en el software tomando dos puntos de vista: la calidad en el proceso de desarrollo y la calidad en el producto final, estos dos grupos principales los agrupa en los siguiente aspectos de calidad: confiabilidad, utilizabilidad, mantenibilidad, y adaptabilidad. Roger Pressman describe similares factores de calidad agrupados en tres grupos: calidad en operación, calidad en revisión y calidad en transición. A continuación se presentan los factores de calidad de acuerdo al orden dado por Dunn. Confiabilidad. Este término es necesario sea separado en varios elementos que permiten darle al software el matiz de fiable. Sus componentes son: 

Completitud

Consistencia y precisión

Solidez

Simplicidad

Calidad en los procesos de desarrollo

Seguridad y Verificabilidad, estas dos últimas que se determinan con el sistema en uso.


Usabilidad. Si bien es cierto que la confiabilidad es un factor muy importante en la calidad del software también lo es el hecho de que es necesario considerar otros factores como los que se mencionan en esta sección puesto que de nada sirve un software que funcione correcta y confiablemente si el usuario prefiere no utilizarlo. 

Exactitud de los procesos

Claridad y exactitud de la documentación

Completitud

Eficiencia y verificabilidad del software

Claridad y amigabilidad de la interfaz

Mantenibilidad. Este aspecto de calidad involucra los elementos que simplifican

la

labor

del código del programa.

de

prevención,

Retomar

un

código

corrección escrito

o meses

ampliación antes

es

un trabajo dispendioso y agobiante, en especial cuando las aplicaciones no cuentan con la característica a la cual aquí se hace referencia. Se pueden considerar como atributos de este aspecto: 

Exactitud y claridad en la documentación

Modularidad acoplamiento

Facilidad de lectura

Simplicidad

Portabilidad. Es la capacidad que posee un sistema de información que le permite funcionar en diferentes plataformas ya sean hardware o de software. A continuación se describen cada uno de los aspectos de calidad mencionados: Calidad en los procesos de desarrollo. Se resume en la frase "bien planeado y cuidadosamente ejecutado". Este aspecto asegura la confiabilidad, puesto que


el plan que se realice para desarrollar el sistema, debe incluir pruebas bien seleccionadas que evalúen la confiabilidad del programa en cualquier situación. Claridad y amigabilidad de la interfaz. De igual forma la interfaz debe ser clara y agradable al usuario, las interfaces complejas son causa de la no utilización de los sistemas de información. Claridad y exactitud de la documentación. Hay que anotar que toda aplicación requiere de una documentación suficientemente clara con el fin de que cualquier persona con conocimientos básicos en computación pueda aprender la forma de operación sin que requiera la asesoría de los desarrolladores o conocedores de la herramienta, a menos que se trate de eventualidades donde realmente sea necesario consultar al proveedor. Completitud o adecuación. Se refiere a que los resultados de operaciones sean acordes al comportamiento del mundo real desde todos los estados y condiciones permitidos por la aplicación, es decir, el programa debe reflejar la realidad. Un programa es inconsistente si presenta respuestas erróneas en algunos casos. Una mala especificación de rangos en un dominio sobre los cuales realizan diferentes operacione smatemáticas puede llevar a que algunos cálculos se realicen dentro de límites inapropiados, obteniéndose resultados erróneos. Otro caso de inconsistencia se presenta cuando ocurren eventos que paran abruptamente la ejecución del programa, sólo un sistema de calidad podrá conservar datos consistentes después de una falla. Eficiencia y verificabilidad del software. Otro aspecto que no debe pasar por alto es el de la verificabilidad, puesto que es imprescindible contar con los requerimientos, y sobre todo en aquellos sistemas donde se obtengan resultados que no sean visibles. Exactitud de los procesos. Un programa no será utilizado por un usuario si sus resultados no son exactos. Tampoco se puede garantizar el uso de un programa que no presta las utilidades que el usuario requiere, es decir, que sea incompleto. Además, un programa ineficiente que no cumpla con los requerimientos de tiempo, memoria o flexibilidad no podrá satisfacer las expectativas de quienes lo utilizan.


Robustez o solidez. Se refiere a la capacidad del software de defenderse de las acciones anormales que llevan al sistema a un estado no deseado o por lo menos no previsto, causando un comportamiento inesperado, indeseado y posiblemente erróneo. El software de hoy, debe estar en capacidad de analizar los datos que recibe para hacer cumplir requerimientos o condiciones del software y enfrentar de la mejor manera los errores cometidos por un usuario al utilizar la aplicación. Es importante resaltar, que la solidez no siempre es generada por la digitación inapropiada del usuario, sino también por un mal procesamiento o un mal encadenamiento de procesos. El resultado de un proceso, aunque sea correcto, puede estar fuera de los límites permitidos en los parámetros del módulo que lo recibe y si este módulo no controla los parámetros que le entran caerá en un estado inesperado. Seguridad y audibilidad. Son importantes, puesto que un usuario no puede confiar en los datos de un sistema que no le ayude a controlar el acceso de personas no autorizadas o a detectar errores de operación en los que se introducen y generan datos erróneos. Simplicidad. Promueve la utilización de estructuras de fácil manipulación con el fin de evitar que el programador se aleje del problema que desea resolver. Además, se reduce la probabilidad de cometer errores. Así que, no es aconsejable hacer uso de estructuras complejas a menos que se necesite cumplir con requerimientos de vital importancia tales como tiempos máximos de proceso u otros similares. 

Calidad de software. Se define la calidad de software como la ausencia de errores de funcionamiento, la adecuación a las necesidades del usuario, y el alcance de un desempeño apropiado (tiempo, volumen, espacio), además del cumplimiento de los estándares. Los objetivos que la calidad persigue son: La aceptación (utilización real por parte del usuario) y la Mantenibilidad (posibilidad y facilidad de corrección, ajuste y modificación durante largo tiempo). Para alcanzar estos objetivos, es necesaria una actitud y compromiso de todo el personal que se encuentre en el desarrollo del proyecto, y en todas y cada una de las etapas (en general, planeación, análisis, diseño, programación, pruebas, mantenimiento) correspondientes al ciclo de vida que se hubiese


seleccionado para el proyecto. En forma adicional durante el proceso de aplicación de las metodologías se requiere tener en cuenta : 1. Realización de Revisiones Técnicas Formales durante cada etapa. 2. Realización de pruebas y revisiones por personas "externas" al proyecto. 3. Elaboración de la adecuada documentación del software, y de los cambios. 4. Verificación del cumplimiento de los estándares de desarrollo 5. Medición permanente de la productividad del proceso y de la calidad de los resultados. 6. Desarrollo y ajustes de modelos estadísticos de calidad y productividad. 7. Control de la desviación de los promedios de calidad y productividad. Uno de los elementos que permite dar garantía acerca de la calidad del software es la aplicación de métricas, estas son medidas estadísticas aplicadas a un software determinado, garantizando calidad así como lo afirma Pressman: "La garantía de calidad del software, es una "Actividad de protección" que se aplica a lo largo de todo el proceso de ingeniería del software" Todos los elementos anteriormente enumerados indican herramientas que se deben tener en cuenta al momento de desarrollar un software, agrupando en una definición estos elementos se afirma que : Un software debe estar desarrollado "En concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software" , si cumple los aspectos señalados se puede afirmar que se posee un software de calidad. Teniendo en cuenta esto, se puede afirmar 1. Los requisitos del software son la base de las medidas de la calidad. 2. Los estándares especificados definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software, Si no se distinguen esos criterios no habrá calidad del software.


3. Existe un conjunto de requisitos implícitos que a menudo no se mencionan, si no se alcanzan estos requerimientos podría la calidad quedar en entredicho. Los requisitos son llamados por los usuarios finales llaman elementos obvios, los cuales el diseñador no debe dejar pasar sin explicación. Medidas de los algoritmos. En los procesos de calidad de software uno de los elementos que más puede inquietar a los diseñadores es el adecuado manejo de los algoritmos y su eficiencia, para que el resultado sea óptimo al momento de ser implementado, para eliminar esta preocupación por parte del diseñador aparece en la disciplina de la ingeniería del software un tema que es el análisis de algoritmos, en este tema aparecen elementos como la complejidad computacional, verificación de programas, entre otros. Complejidad

computacional

- La

complejidad

computacional

estudia

los costos de cómputo necesarios para resolver un problema; entendiéndose por costos los recursos de espacio de almacenamiento y de, principalmente, tiempo de cómputo. La complejidad temporal tiene que ver con el tiempo que tarda un programa para ejecutarse, la complejidad espacial estudia la cantidad de almacenamiento que es necesario para una operación. Al analizar la complejidad de un algoritmo, el tiempo está expresado en términos de pasos de computación elementales (asignaciones, comparaciones, operaciones matemáticas básicas, etc.), por ejemplo, una operación de asignación ocupa una unidad de tiempo para ejecutarse, un ciclo ocupa el número de iteraciones en que está definido, etc.


Ingeniería de Software Código de Ética y Práctica Profesional 5.2 Versión corta PREÁMBULO La versión corta del código resume las aspiraciones a un alto nivel de abstracción; las cláusulas que se incluyen en la versión completa proporcionan ejemplos y detalles acerca de cómo estas aspiraciones modifican nuestra manera de actuar como profesionales de la ingeniería de software. Sin las aspiraciones los detalles pueden convertirse en tediosos y legalistas; sin los detalles las aspiraciones pueden convertirse en altisonantes pero vacías; juntas, las aspiraciones y los detalles forman un código cohesivo. Los ingenieros de software deberán comprometerse a convertir el análisis, especificación, diseño, implementación, pruebas y mantenimiento de software en una profesión respetada y benéfica. De acuerdo a su compromiso con la salud, seguridad y bienestar social, los ingenieros de software deberán sujetarse a los ocho principios siguientes: 1. Sociedad. Los ingenieros de software actuarán en forma congruente con el interés social. 2. Cliente. y empresario. Los ingenieros de software actuarán de manera que se concilien los mejores intereses de sus clientes y empresarios, congruentemente con el interés social. 3. Producto. Los ingenieros de software asegurarán que sus productos y modificaciones correspondientes cumplen los estándares profesionales más altos posibles. 4. Juicio. Los ingenieros de software mantendrán integridad e independencia en su juicio profesional.


5. Administración.

Los

ingenieros

de

software gerentes

y

líderes

promoverán y se suscribirán a un enfoque ético en la administración del desarrollo y mantenimiento de software. 6. Profesión. Los ingenieros de software incrementarán la integridad y reputación de la profesión congruentemente con el interés social. 7. Colegas. Los ingenieros de software apoyarán y serán justos con sus colegas. 8. Personal. Los ingenieros de software participarán toda su vida en el aprendizaje relacionado con la práctica de su profesión y promoverán un enfoque ético en la práctica de la profesión. PRINCIPIOS Principio 1. Sociedad. Los ingenieros de software actuarán de forma congruente con el interés social. Particularmente, los ingenieros de software deberán, cuando sea apropiado: 1. Aceptar la responsabilidad total de su trabajo. 2. Moderar los intereses del ingeniero de software, el empresario, el cliente y los usuarios con el bienestar social. 3. Aprobar software sólo si se tiene una creencia bien fundamentada de que es seguro, cumple las especificaciones, pasa las pruebas apropiadas y no reduce la calidad de vida, la privacidad o daña el medio ambiente. El efecto último del trabajo deberá ser el bien social. 4. Exponer a las personas o autoridades apropiadas cualquier daño real o potencial al usuario, a la sociedad o el medio ambiente, que razonablemente se cree que está asociado con el software o documentos relacionados.


5. Cooperar en los esfuerzos para solucionar asuntos importantes de interés

social

causados

por

el

software,

su

instalación,

mantenimiento, soporte o documentación. 6. Ser justo y veraz en todas las afirmaciones, particularmente las públicas, relativas al software o documentos asociados, métodos y herramientas. 7. Considerar incapacidad física, distribución de recursos, desventajas económicas y otros factores que pueden reducir el acceso a los beneficios del software. 8. Estar motivado a ofrecer voluntariamente asistencia técnica a buenas causas y contribuir a la educación pública relacionada con esta profesión.

Principio 2. Cliente y empresario. Los ingenieros de software actuarán de manera que se concilien lo mejores intereses de sus clientes y empresarios, congruentemente con el interés social. Particularmente, los ingenieros de software deberán, cuando sea apropiado: 1. Prestar servicios en sus áreas de competencia, siendo honestos y francos acerca de sus limitaciones en su experiencia y educación. 2. No usar conscientemente software que se obtiene o retiene ya sea ilegalmente o sin ética. 3. Usar la propiedad de un cliente o empresario sólo en forma propiamente autorizada y con el conocimiento y consentimiento del cliente o empresario. 4. Cuando se requiera, asegurar que cualquier documento en el que se confía ha sido aprobado por alguien autorizado para aprobarlo.


5. Mantener secreta cualquier información confidencial obtenida en su labor profesional, donde tal confidencialidad es congruente con el interés social y congruente con la ley. 6. Identificar, documentar, reunir evidencia y reportar oportunamente al cliente o al empresario si, en su opinión, un proyecto tiene probabilidades de fracasar, de ser muy costoso, de violar la ley de propiedad intelectual o ser problemático de cualquier otro modo. 7. Identificar, documentar y reportar al cliente o empresario asuntos significativos de interés social, de los cuales se tiene conocimiento, acerca del software o documentos relacionados. 8. Rechazar trabajos externos que vayan en detrimento del trabajo que se realiza para su patrón primario. 9. No promover intereses adversos a su empresario o cliente, a menos que se comprometa un interés ético más alto; en ese caso, informar al empresario u otra autoridad apropiada del interés ético en cuestión. Principio 3. Producto. Los ingenieros de software asegurarán que sus productos y sus modificaciones correspondientes cumplen los estándares profesionales más altos posibles. Particularmente, los ingenieros de software deberán, cuando sea apropiado: 1. Procurar la alta calidad, costos aceptables y una agenda razonable asegurando que los costos y beneficios significativos son claros y aceptados por el empresario y el cliente, y están disponibles para consideración del usuario y de la sociedad. 2. Asegurar que las metas y objetivos para cualquier proyecto que se propone o en el que se trabaja sean adecuados y alcanzables. 3. Identificar, definir y atender asuntos éticos, económicos, culturales, legales y ambientales relacionados a los proyectos de trabajo.


4. Asegurar que se está calificado, con una combinación apropiada de educación, adiestramiento y experiencia para cualquier proyecto en que se trabaje o que se proponga trabajar. 5. Asegurar que se usan los métodos apropiados en cualquier proyecto en el que se trabaja o se propone trabajar. 6. Tratar de seguir los estándares profesionales más adecuados, siempre que estén disponibles, para el proyecto en que se trabaja. Sólo en caso de que hubiera una justificación ética o técnica mayor, se permitiría alterar dichos estándares. 7. Esforzarse por entender completamente las especificaciones del software en el que se trabaja. 8. Asegurar que las especificaciones del software en el que se trabaja están bien documentadas, satisfacen los requerimientos del usuario y cuentan con las aprobaciones adecuadas. 9. Asegurar estimaciones cuantitativas realistas de costos, agenda, personal, calidad y resultados de cualquier proyecto en el que se trabaja o se propone trabajar, proporcionando una evaluación de la incertidumbre de esas estimaciones. 10. Asegurar que las pruebas, depuración, revisión del software y documentos relacionados con los que se trabaja sean adecuados. 11. Asegurar

que

la

documentación

sea

adecuada,

incluyendo

problemas significativos encontrados y soluciones adoptadas, para cualquier proyecto en el que se trabaja. 12. Trabajar para desarrollar software y documentos relacionados que respeten la privacidad de aquellos a quienes está dirigido este software.


13. Ser cuidadoso para usar sólo datos precisos derivados por medios éticos y legales, y usarlos sólo de las maneras propiamente autorizadas. 14. Mantener la integridad de los datos siendo sensible a aquellos inexactos u obsoletos. 15. Tratar todas las formas de mantenimiento de software con el mismo profesionalismo que los desarrollos nuevos. Principio 4. Juicio. Los ingenieros de software mantendrán integridad e independencia en su juicio profesional. Particularmente, los ingenieros de software deberán, cuando sea apropiado: 1. Moderar todos los juicios técnicos por la necesidad de apoyar y mantener los valores humanos. 2. Endosar documentos únicamente cuando han sido preparados bajo su supervisión o dentro de sus áreas de competencia y con los cuales se está de acuerdo. 3. Mantener objetividad profesional con respecto a cualquier software o documento relacionado del cual se le pidió una evaluación. 4. No involucrarse en prácticas financieras fraudulentas tal como corrupción,

facturación

doble

u

otras

prácticas

financieras

impropias. 5. Exponer a todas las partes involucradas aquellos conflictos de interés que no puedan evitarse o evadirse razonablemente. 6. Negarse a participar como miembro o asesor en organismos profesionales, privados o gubernamentales vinculados en asuntos relacionados con software donde sus empresarios o clientes pudieran tener conflictos de intereses no declarados todavía.


Principio 5. Administración. Los ingenieros de software gerentes y líderes promoverán y se suscribirán a un enfoque ético en la administración del desarrollo y mantenimiento de software. Particularmente, los ingenieros de software administrando o dirigiendo deberán, cuando sea apropiado: 1. Asegurar una buena administración para cualquier proyecto en el cual trabaje, incluyendo procedimientos efectivos para promover la calidad y reducir riesgos. 2. Asegurar que los ingenieros de software estén informados de los estándares antes de sujetarse a ellos. 3. Asegurar que los ingenieros de software conozcan las políticas y procedimientos del empresario para proteger las contraseñas, archivos e información que es confidencial al empresario o confidencial a otros. 4. Asignar trabajo sólo después de tomar en cuenta contribuciones adecuadas de educación y experiencia moderadas con un deseo de continuar esa educación y experiencia. 5. Asegurar estimaciones de costos, agendas, personal, calidad y resultados cuantitativamente realistas en cualquier proyecto que trabaje o se propone trabajar, proporcionando una evaluación de la incertidumbre de esas estimaciones. 6. Atraer ingenieros de software potenciales sólo bajo una descripción completa y precisa de las condiciones del empleo. 7. Ofrecer una remuneración justa y equitativa. 8. No impedir injustamente que alguna persona ocupe una posición para la cual está perfectamente calificada. 9. Asegurar que exista un acuerdo equitativo en lo referente a la propiedad

de

cualquier

software,

proceso,

investigación,


documentación u otra propiedad intelectual a la cual el ingeniero de software ha contribuido. 10. Tomar medidas prudentes en procesos legales vinculados a la violación de la política de un empresario o de este código. 11. No pedir a un ingeniero de software hacer algo incongruente con este código. 12. No castigar a nadie por expresar temas éticos relativos a cualquier proyecto. Principio 6. Profesión. Los ingenieros de software incrementaren la integridad y reputación de la profesión

congruentemente

con

el

interés

social. Particularmente,

los

ingenieros de software deberán, cuando sea apropiado: 1. Ayudar a desarrollar un ambiente organizacional favorable para actuar éticamente. 2. Promover el conocimiento público de la ingeniería de software. 3. Extender el conocimiento de la ingeniería de software participando apropiadamente en organizaciones, reuniones y publicaciones profesionales. 4. Apoyar, como miembros de una profesión, a otros ingenieros de software que se esfuercen por seguir este código. 5. No promover el interés propio a costa de la profesión, cliente o empresario. 6. Obedecer todas las leyes que gobiernan su trabajo, salvo en circunstancias excepcionales, donde tal obediencia es incongruente con el interés social. 7. Ser preciso en la descripción de las características del software en el que trabaja, evitando no sólo declaraciones falsas, sino también


declaraciones que podrían ser razonablemente asumidas como especulativas, vacías, fraudulentas, engañosas o dudosas. 8. Tomar la responsabilidad de detectar, corregir y reportar errores en el software y documentos asociados en los que se trabaja. 9. Asegurar que los clientes, empresarios y supervisores conozcan el compromiso de los ingenieros de software con este código de ética, y las subsecuentes ramificaciones de tal compromiso. 10. Evitar asociaciones con negocios y organizaciones que estén en conflicto con este código. 11. Reconocer que las violaciones de este código son incongruentes con ser un ingeniero de software profesional. 12. Hablar seriamente con la gente involucrada cuando se detecten violaciones significativas de este código, a menos que sea imposible, contra productivo o peligroso. 13. Reportar las violaciones significativas de este código a las autoridades correspondientes cuando está claro que consultar con la gente involucrada en estas violaciones es imposible, contra productivo o peligroso. Principio 7. Colegas. Los ingenieros de software apoyarán y serán justos con sus colegas. Particularmente, los ingenieros de software deberán, cuando sea apropiado: 1. Motivar a sus colegas a sujetarse a este código. 2. Ayudar a sus colegas en el desarrollo profesional. 3. Reconocer completamente el trabajo de otros y abstenerse de atribuirse méritos indebidos. 4. Revisar el trabajo de otros en forma objetiva, sincera y propiamente documentada.


5. Escuchar equitativamente las opiniones, preocupaciones y quejas de un colega. 6. Ayudar a sus colegas a que estén totalmente alertas a los actuales estándares incluyendo políticas y procedimientos de protección de contraseñas, archivos, información confidencial y las medidas de seguridad en general. 7. No intervenir injustamente en la carrera de algún colega; sin embargo, el interés del empresario, del cliente o el interés social puede conducir a ingenieros de software, de buena fe, a cuestionar la competencia de un colega. 8. En situaciones fuera de sus propias áreas de competencia, solicitar las opiniones de otros profesionales que tengan competencia en esa área. Principio 8. Personal. Los ingenieros de software participarán toda su vida en el aprendizaje relacionado con la práctica de su profesión y promoverán un enfoque ético en la práctica de la profesión. Particularmente, los ingenieros de software deberán, cuando sea apropiado: 1. Mejorar

su

conocimiento

de

los

avances

en

el

análisis,

especificación, diseño, desarrollo, mantenimiento, pruebas del software y documentos relacionados, junto con la administración del proceso de desarrollo. 2. Mejorar su habilidad para crear software seguro, confiable, útil y de calidad a costos razonables y en un tiempo razonable. 3. Mejorar

su

habilidad

para

producir

documentación

precisa,

informativa y bien redactada. 4. Mejorar su comprensión del software de los documentos con que se trabaja y del medio ambiente donde serán usados.


5. Mejorar su conocimiento de los estándares relevantes y de las leyes que gobiernan el software y los documentos con que se trabaja. 6. Mejorar su conocimiento de este código, su interpretación y su aplicación al trabajo. 7. No tratar injustamente a nadie debido a prejuicios irrelevantes. 8. No influenciar a otros a emprender alguna acción que involucre una violación de este código. 9. Reconocer que las violaciones personales de este código son incongruentes con ser un ingeniero de software profesional.



Análisis de los temas Ingeniería de software Cuando hablamos de ingeniería de software podemos decir que es una rama de la ingeniería que nos ayuda para la creación de nuestro software teniendo en cuenta aspectos de producción, análisis y manera como se va a realizar un sistema (software), la etapa de producción y el mantenimiento del mismo después de ponerse en funcionamiento. La ingeniería de software nos ayuda a crear software de gran calidad que produzca y genere una solución en nuestro problemas, paro lo cual debemos tener en cuenta una planeación, administración utilizando metodologías de desarrollo. Ética de software Son todos los principios básicos y los marcos legales al momento de la creación de nuestro sistema es decir las reglas y nuestras responsabilidades. Los cuales están basados en principios de la ingeniería, lo mismos que nos garantiza una calidad de profesional siempre y cuando operemos dentro de este marco legal.


Linkografia Ingeniería de software http://www.monografias.com/trabajos15/ingenieria-software/ingenieria-software.shtml#ixzz34zEREGtm http://www.fing.edu.uy/cpap/carreras/especializaci%C3%B3n-en-ingenier%C3%AD-de-software

http://www.humbertocervantes.net/cursos/ingsoft/PresentacionCurso.pdf

Ética de la ingeniería de software http://www.acm.org/about/about/se-code-s https://attachment.fbsbx.com/file_download.php?id=540629012709141&eid=ASsPpSHt3q6ao xQc0LJL3gFz8zhsTK09bSJ_mLIR21QW7SUu4cZ34FkrESool2_ZxhM&inline=1&ext=1403296448 &hash=ASsKV5XwH60oiNDr


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.