Issuu on Google+

Carrera: Ingeniería en Sistemas Paralelo: “ST”

TEMA INGIENERIA DE SOFTWARE

MÓDULO DESARROLLO DE SISTEMAS E INGIENERIA DE SOFTWARE

NOMBRE VILLARREAL BRIONES MARIO RUBÉN

TUTOR ING. RICARDO AGUIRRE

Quevedo -

Los Ríos - Ecuador 2014

1|Página


INGENIERÍA DE SOFTWARE La ingeniería de software es una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan en el desarrollo de los programas informáticos (software).

Esta disciplina trasciende la actividad de programación, que es el pilar fundamental a la hora de crear una aplicación. El ingeniero de software se encarga de toda la gestión del proyecto para que éste se pueda desarrollar en un plazo determinado y con el presupuesto previsto.

La ingeniería de software, por lo tanto, incluye el análisis previo de la situación, el diseño del proyecto, el desarrollo del software, las pruebas necesarias para confirmar su correcto funcionamiento y la implementación del sistema. Un

campo

directamente

relacionado con la ingeniería de software es la arquitectura de sistemas, que consiste en determinar y esquematizar la estructura general del proyecto, diagramando su esqueleto con un grado relativamente alto de especificidad y señalando los distintos componentes que serán necesarios para llevar a cabo el desarrollo, tales como aplicaciones complementarias y bases de datos. Se trata de un punto fundamental del proceso, y es muchas veces la clave del éxito de un producto informático. La primera de todas las etapas del trabajo que realizan los ingenieros de software consiste en estudiar minuciosamente las características que se creen necesarias para el programa a desarrollar, y es éste el punto en el cual deben encontrar un equilibrio (cada vez más difícil de alcanzar) entre las demandas excesivas de los malos consumidores y las posibilidades de la compañía. El tiempo es dinero, y las empresas del mundo informático lo saben muy bien.

2|Página


Cada función de un programa, cada rasgo que lo vuelva más cómodo, más inteligente, más accesible, se traduce en una cantidad determinada de tiempo, que a su vez acarrea los sueldos de todas las personas involucradas en su desarrollo. Pero además del costo de producción necesario para realizar cada una de las piezas de un programa, la ingeniería de software debe decidir cuáles de ellas tienen sentido, son coherentes con el resto y son necesarias para comunicar claramente la esencia y los objetivos de la aplicación. Etapas de ingeniería de software 1. Se

Análisis de requerimientos: extraen

los

requisitos

del

producto de software. En esta etapa la habilidad y experiencia en la ingeniería del software es crítica para

reconocer

requisitos

incompletos,

ambiguos

o

contradictorios.

Usualmente

el

cliente/usuario

tiene

incompleta/inexacta

una de

visión lo

que

necesita y es necesario ayudarle para obtener la visión completa de los requerimientos. El contenido de comunicación en esta etapa es muy intenso ya que el objetivo es eliminar la ambigüedad en la medida de lo posible. 2. Especificación: Es la tarea de describir detalladamente el software a ser escrito, de una forma rigurosa. Se describe el comportamiento esperado del software y su interacción con los usuarios y/u otros sistemas. 3. Diseño y arquitectura: Determinar cómo funcionará de forma general sin entrar en detalles incorporando consideraciones de la implementación tecnológica, como el hardware, la red, etc. Consiste en el diseño de los componentes del sistema que dan respuesta a las funcionalidades descritas en la segunda etapa también conocidas como las entidades de negocio. Generalmente se realiza en base a diagramas que permitan describir las interacciones entre las entidades y su secuenciado. 4. Programación: Se traduce el diseño a código. Es la parte más obvia del trabajo de ingeniería de software y la primera en que se obtienen resultados “tangibles”. No necesariamente es la etapa más larga ni la más compleja aunque una especificación o 3|Página


diseño incompletos/ambiguos pueden exigir que, tareas propias de las etapas anteriores se tengan que realizarse en esta. 5. Prueba: Consiste en comprobar que el software responda/realice correctamente las tareas indicadas en la especificación. Es una buena praxis realizar pruebas a distintos niveles (por ejemplo primero a nivel unitario y después de forma integrada de cada componente) y por equipos diferenciados del de desarrollo (pruebas cruzadas entre los programadores o realizadas por un área de test independiente). 6. Documentación: Realización del manual de usuario, y posiblemente un manual técnico con el propósito de mantenimiento futuro y ampliaciones al sistema. Las tareas de esta etapa se inician ya en la primera fase pero sólo finalizan una vez terminadas las pruebas. 7. Mantenimiento: En esta etapa se realizan un mantenimiento correctivo (resolver errores) y un mantenimiento evolutivo (mejorar la funcionalidades y/o dar respuesta a nuevos requisitos). HISTORIA Los grandes sistemas de software constituyen un elemento común en nuestra sociedad, convirtiéndose imprescindibles para la industria, el comercio y las personas. El reconocimiento de la necesidad de un enfoque de ingeniería en al desarrollo del software se remonta a dos conferencias de la OTAN en 1968 y1969, donde se acuñó el nombre de ingeniería de Software y se sentaron las bases que hacen posible el avance de esta disciplina. CAPAS DEL SOFTWARE

Herramientas Son aplicaciones que apoyan la administración del proceso, proporcionan un enfoque automático o semiautomático para el proceso y para los métodos. Métodos Los métodos de la ingeniería de software indican cómo construir técnicamente el software. 4|Página


Procesos El proceso de la ingeniería de software es la unión que mantiene juntas las capas de tecnología y que permiten un desarrollo racional y oportuno de la ingeniería de software. El proceso define un marco de trabajo para un conjunto de áreas clave de proceso que se deben establecer para la entrega de la tecnología de la ingeniería de software. Enfoque de Calidad: Grado en que un sistema, proceso o componente cumple con los requerimientos especificados y las necesidades del cliente o usuario

OBJETIVOS Entre los objetivos de la ingeniería de software están: 

Mejorar la calidad de los productos de software

Aumentar la productividad y trabajo de los ingenieros del software.

Facilitar el control del proceso de desarrollo de software.

 Promover mayor calidad al desarrollar aplicaciones complejas. 

Brindar mayor exactitud en los costos de proyectos y tiempo de desarrollo de los mismos.

Aumentar la eficiencia de los sistemas al introducir procesos que permitan medir mediante normas específicas, la calidad del software desarrollado, buscando siempre la mejor calidad posible según las necesidades y resultados que se quieren generar.

Una mejor organización de equipos de trabajo, en el área de desarrollo y mantenimiento de software.

Detectar a través de pruebas, posibles mejoras para un mejor funcionamiento del software desarrollado.

Limitaciones El software tiene la capacidad de emular inteligencia creando un modelo de ciertas características de la inteligencia humana pero sólo posee funciones predefinidas que abarcan un conjunto de soluciones que en algunos campos llega a ser limitado. Aun 5|Página


cuando tiene la capacidad de imitar ciertos comportamientos humanos no es capaz de emular el pensamiento humano porque actúa bajo condiciones. Otro aspecto limitante del software proviene del proceso totalmente mecánico que requiere de un mayor esfuerzo y tiempos elevados de ejecución lo que lleva a tener que implementar el software en una máquina de mayor capacidad. Especificación La especificación de requisitos describe el comportamiento esperado en el software una vez desarrollado. Gran parte del éxito de un proyecto de software radicará en la identificación de las necesidades del negocio (definidas por la alta dirección), así como la interacción con los usuarios funcionales para la recolección, clasificación, identificación, priorización y especificación de los requisitos del software. Entre las técnicas utilizadas para la especificación de requisitos se encuentran:  

Caso de uso Historias de usuario

Arquitectura La integración de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas gerenciales, requieren de capacidad y liderazgo para poder ser conceptualizados y proyectados a futuro, solucionando los problemas de hoy. El rol en el cual se delegan todas estas actividades es el del Arquitecto. El arquitecto de software es la persona que añade valor a los procesos de negocios gracias a su valioso aporte de soluciones tecnológicas. La arquitectura de sistemas en general, es una actividad de planeación, ya sea a nivel de infraestructura de red y hardware, o de software. Para ello se documenta utilizando diagramas, por ejemplo:    

Diagramas de clases Diagramas de base de datos Diagrama de despliegue Diagrama de secuencia

6|Página


VENTAJAS     

Facilitar la tarea de seguimiento del proyecto Optimizar el uso de recursos Facilitar la comunicación entre usuarios y desarrolladores Facilitar la evaluación de resultados y cumplimiento de objetivos Ayudar a comprender el problema

  

Permitir la reutilización Facilitar el mantenimiento del producto final Optimizar el conjunto y cada una de las fases del proceso de desarrollo. ETICA DE LA INGENIERIA DE SOFTWARE

Los ordenadores poseen hoy día una función central cada vez mayor en el comercio, industria, administración, medicina, educación, entretenimiento, relaciones sociales y vida diaria. Son ingenieros de software

quienes

contribuyen,

mediante participación directa o enseñanza,

al

análisis,

especificación, diseño, desarrollo, certificación,

mantenimiento

y

pruebas de sistemas software. Debido

a

su

posición

en

el

desarrollo de sistemas software, los ingenieros suficientes

del

software

oportunidades

tienen para

causar beneficio o generar daño, para permitir a otros causar beneficio o generar daño, o para influenciar a otros a causar beneficio o generar daño. Para garantizar, en la medida de lo posible, que sus esfuerzos se utilizarán para hacer el bien, los ingenieros de software deben obligarse a hacer de la ingeniería del software una profesión respetada y beneficiosa. De acuerdo con tal cometido, los ingenieros de software debieran adherirse al siguiente Código de Ética y Práctica Profesional. PRINCIPIOS o

Sociedad: Los ingenieros del software actuarán de manera coherente con el interés general.

7|Página


o

Cliente y empresario: Los ingenieros del software deberán actuar de tal modo que se sirvan los mejores intereses para sus clientes y empresarios, y consecuentemente con el interés general.

o

Producto: Los ingenieros del software deberán garantizar que sus productos y las modificaciones relacionadas con ellos cumplen los estándares profesionales de mayor nivel más que sea posible.

o

Juicio: Los ingenieros del software deberán mantener integridad e independencia en su valoración profesional.

o

Gestión: Los gestores y líderes en ingeniería del software suscribirán y promoverán un enfoque ético a la gestión del desarrollo y el mantenimiento del software.

o

Profesión: Los ingenieros del software deberán progresar en la integridad y la reputación de la profesión, coherentemente con el interés general.

o

Compañeros: Los ingenieros del software serán justos y apoyarán a sus compañeros.

Persona: Los ingenieros del software deberán participar en el aprendizaje continuo de la práctica de su profesión y promoverán un enfoque ético en ella.

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: o Aceptar la responsabilidad total de su trabajo. o Moderar los intereses del ingeniero de software, el empresario, el cliente y los usuarios con el bienestar social. o 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. o 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.

8|Página


o Cooperar en los esfuerzos para solucionar asuntos importantes de interés social causados por el software, su instalación, mantenimiento, soporte o documentación. o Ser justo y veraz en todas las afirmaciones, particularmente las públicas, relativas al software o documentos asociados, métodos y herramientas. o Considerar incapacidad física, distribución de recursos, desventajas económicas y otros factores que pueden reducir el acceso a los beneficios del software. o 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: o Prestar servicios en sus áreas de competencia, siendo honestos y francos acerca de sus limitaciones en su experiencia y educación. o No usar conscientemente software que se obtiene o retiene ya sea ilegalmente o sin ética. o Usar la propiedad de un cliente o empresario sólo en forma propiamente autorizada y con el conocimiento y consentimiento del cliente o empresario. o Cuando se requiera, asegurar que cualquier documento en el que se confía ha sido aprobado por alguien autorizado para aprobarlo. o 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. o 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. o 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.

9|Página


o Rechazar trabajos externos que vayan en detrimento del trabajo que se realiza para su patrón primario. o 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: o 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. o Asegurar que las metas y objetivos para cualquier proyecto que se propone o en el que se trabaja sean adecuados y alcanzables. o Identificar, definir y atender asuntos éticos, económicos, culturales, legales y ambientales relacionados a los proyectos de trabajo. o 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. o Asegurar que se usan los métodos apropiados en cualquier proyecto en el que se trabaja o se propone trabajar. o 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. o Esforzarse por entender completamente las especificaciones del software en el que se trabaja. o 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. o Asegurar estimaciones cuantitativas realistas de costos, agenda, personal, calidad y resultados de cualquier proyecto en el que se trabaja o se propone

10 | P á g i n a


trabajar, proporcionando una evaluación de la incertidumbre de esas estimaciones. o Asegurar que las pruebas, depuración, revisión del software y documentos relacionados con los que se trabaja sean adecuados. o Asegurar que la documentación sea adecuada, incluyendo problemas significativos encontrados y soluciones adoptadas, para cualquier proyecto en el que se trabaja. o Trabajar para desarrollar software y documentos relacionados que respeten la privacidad de aquellos a quienes está dirigido este software. o Ser cuidadoso para usar sólo datos precisos derivados por medios éticos y legales, y usarlos sólo de las maneras propiamente autorizadas. o Mantener la integridad de los datos siendo sensible a aquellos inexactos u obsoletos. o 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: o Moderar todos los juicios técnicos por la necesidad de apoyar y mantener los valores humanos. o 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. o Mantener objetividad profesional con respecto a cualquier software o documento relacionado del cual se le pidió una evaluación. o No involucrarse en prácticas financieras fraudulentas tal como corrupción, facturación doble u otras prácticas financieras impropias. o Exponer a todas las partes involucradas aquellos conflictos de interés que no puedan evitarse o evadirse razonablemente. o 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. 11 | P á g i n 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: o Asegurar una buena administración para cualquier proyecto en el cual trabaje, incluyendo procedimientos efectivos para promover la calidad y reducir riesgos. o Asegurar que los ingenieros de software estén informados de los estándares antes de sujetarse a ellos. o 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. o 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. o 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. o Atraer ingenieros de software potenciales sólo bajo una descripción completa y precisa de las condiciones del empleo. o Ofrecer una remuneración justa y equitativa. o No impedir injustamente que alguna persona ocupe una posición para la cual está perfectamente calificada. o 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. o Tomar medidas prudentes en procesos legales vinculados a la violación de la política de un empresario o de este código. o No pedir a un ingeniero de software hacer algo incongruente con este código. o No castigar a nadie por expresar temas éticos relativos a cualquier proyecto.

12 | P á g i n a


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: o Ayudar a desarrollar un ambiente organizacional favorable para actuar éticamente. o Promover el conocimiento público de la ingeniería de software. o Extender el conocimiento de la ingeniería de software participando apropiadamente en organizaciones, reuniones y publicaciones profesionales. o Apoyar, como miembros de una profesión, a otros ingenieros de software que se esfuercen por seguir este código. o No promover el interés propio a costa de la profesión, cliente o empresario. o Obedecer todas las leyes que gobiernan su trabajo, salvo en circunstancias excepcionales, donde tal obediencia es incongruente con el interés social. o 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. o Tomar la responsabilidad de detectar, corregir y reportar errores en el software y documentos asociados en los que se trabaja. o 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. o Evitar asociaciones con negocios y organizaciones que estén en conflicto con este código. o Reconocer que las violaciones de este código son incongruentes con ser un ingeniero de software profesional. o Hablar seriamente con la gente involucrada cuando se detecten violaciones significativas de este código, a menos que sea imposible, contra productivo o peligroso. o 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. 13 | P á g i n a


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: o Motivar a sus colegas a sujetarse a este código. o Ayudar a sus colegas en el desarrollo profesional. o Reconocer completamente el trabajo de otros y abstenerse de atribuirse méritos indebidos. o Revisar el trabajo de otros en forma objetiva, sincera y propiamente documentada. o Escuchar equitativamente las opiniones, preocupaciones y quejas de un colega. o 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. o 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. o 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: o 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. o Mejorar su habilidad para crear software seguro, confiable, útil y de calidad a costos razonables y en un tiempo razonable. o Mejorar su habilidad para producir documentación precisa, informativa y bien redactada. o Mejorar su comprensión del software de los documentos con que se trabaja y del medio ambiente donde serán usados. 14 | P á g i n a


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

15 | P á g i n a


CONCLUSION La ingeniería del software es el proceso formal de desarrollo de software en el que las necesidades del usuario se traducen en requerimientos, estos se transforman en diseño que se implementa en código que se prueba, documenta y se certifica para su uso operativo El que la ciencia avance y la técnica ofrezca cada vez mejores soluciones a problemas prácticos no quiere decir que los problemas éticos o las cuestiones de sentido queden resueltos de manera satisfactoria o no tengan ya lugar. Los problemas éticos, sociales o de sentido de una sociedad no se resuelven simplemente con un progreso tecnológico, en este caso un progreso en las tecnologías de la información. Queda claro que la tecnología de información juega un papel principal en esta nueva era, pero también aceptamos que se presentan complejos dilemas morales y éticos, los cuales representan un desafío que debemos afrontar de una manera decidida y responsable. La sociedad deberá prepararse cada vez más para afrontar esta transición que se presenta, y cada individuo deberá administrar los conocimientos e información con juicio recto y moral.

16 | P á g i n a


LINKOGRAFIA http://definicion.de/ingenieria-de-software/ http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software http://www.monografias.com/trabajos15/ingenieria-software/ingenieria-software.shtml http://www.sc.ehu.es/jiwdocoj/elcodigo.htm http://seeri.etsu.edu/Codes/SpanishVersionSECode.htm http://es.scribd.com/doc/21945680/Resumen-de-La-Ingenieria-de-Software http://proyectosguerrilla.com/blog/2013/02/las-cinco-etapas-en-la-ingenieria-delsoftware/

17 | P รก g i n a


Ingieneria de software