UNIVERSIDAD TECNICA ESTATAL DE QUEVEDO UNIDAD DE ESTUDIOS A DISTANCIA CARRERA: INGENIERÍA EN SISTEMAS
TEMA: INGENIERIA DE SOFTWARE
NOMBRE: DANILO FERNANDO PULSARA BRAVO
TUTOR: ING. RICARDO AGUIRRE
QUEVEDO
-
LOS RIOS
2014
- ECUADOR
Ingeniería de software Ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software, y el estudio de estos enfoques, es decir, la aplicación de la ingeniería al software. Es la aplicación de la ingeniería al software, ya que integra matemáticas, ciencias de la computación y prácticas cuyos orígenes se encuentran en la ingeniería 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).
Se pueden citar otras definiciones enunciadas por prestigiosos autores: Zelkovitz, 1978. Ingeniería de software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software Bohem, 1976. Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como desarrollo de software o producción de software . Bauer, 1972. La ingeniería de software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales Algunos autores consideran que "desarrollo de software" es un término más apropiado que "ingeniería de software" para el proceso de crear software. Personas como Pete McBreen (autor de "Software Craftmanship") cree que el término IS implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software. La creación del software es un proceso intrínsecamente creativo y la ingeniería del software trata de sistematizar este proceso con el fin de acotar el riesgo del fracaso en la consecución del objetivo, por medio de diversas técnicas que se han demostrado adecuadas en base a la experiencia previa. La IS se puede considerar como la ingeniería aplicada al software, esto es, por medios sistematizados y con herramientas preestablecidas, la aplicación de ellos de la manera más eficiente para la obtención de resultados óptimos;
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
Objetivos la ingeniería de software En la construcción y desarrollo de proyectos se aplican métodos y técnicas para resolver los problemas, la informática aporta herramientas y procedimientos sobre los que se apoya la ingeniería de software. Los objetivos específicos de la titulación son los siguientes:
Diseñar aplicaciones informáticas que se ajusten a las necesidades de las organizaciones. Dirigir y coordinar el desarrollo de aplicaciones complejas. Intervenir en todas las fases del ciclo de vida de un producto. Estimar los costes de un proyecto y determinar los tiempos de desarrollo. Hacer el seguimiento de costes y plazos. Dirigir equipos de trabajo de desarrollo software. Organizar la realización de pruebas que verifiquen el correcto funcionamiento de los programas y que se ajustan a los requisitos de análisis y diseño. Diseñar, construir y administrar bases de datos. Dirigir y asesorar a los programadores durante el desarrollo de aplicaciones. Introducir procedimientos de calidad en los sistemas, evaluando métricas e indicadores y controlando la calidad del software producido. Organizar y supervisar el trabajo de su equipo de los técnicos de mantenimiento y los ingenieros de sistemas y redes. 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. Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente. Definir una disciplina que garantice la producción y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado.
Aspectos básicos de calidad de software. La descripción que se hace de los factores que influyen en un software de calidad se basan 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
“El conjunto completo de actividades de ingeniería de software necesarias para transformar los requerimientos del usuario en software.
Método del ciclo de vida clásico (ETAPAS)
El método del ciclo de vida para desarrollo de sistemas es el conjunto de actividades que los analistas, diseñadores y usuarios realizan para desarrollar e implantar un sistema de información. CICLOS DE VIDA El proceso que se sigue para construir, entregar y hacer evolucionar el software, desde la concepción de una idea hasta la entrega y el retiro del sistema.
REQUERIMIENTOS: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar. Comprende todas las tareas relacionadas con la determinación de las necesidades o de las condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta los diversos requisitos de los inversores, que pueden entrar en conflicto entre ellos.
DISEÑO EN DETALLE: definición precisa de cada subconjunto de la aplicación PROGRAMACIÓN: (Programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño. Implementar un diseño en código puede ser la parte más obvia del trabajo de ingeniería de software, pero no necesariamente es la que demanda mayor trabajo y ni la más complicada. La complejidad y la duración de esta etapa está íntimamente relacionada al o a los lenguajes de programación utilizados, así como al diseño previamente realizado PRUEBA DE UNIDAD: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
INTEGRACIÓN: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada. PRUEBA BETA: Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación del problema. Una técnica es probar por separado cada módulo del software, y luego probarlo de manera integral, para así llegar al objetivo. Para garantizar que el software cumple con las especificaciones originales. DOCUMENTACIÓN: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.
MANTENIMIENTO: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo). El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida de una aplicación dependen del tipo de modelo de ciclo de vida acordado entre el cliente y el equipo de desarrolladores.
Ética de la ingeniería de software
La Ética y La Informática La ética informática se considerarla como la disciplina que analiza problemas éticos que son creados por la tecnología de los ordenadores o también los que son transformados o agravados por la misma, es decir, por las personas que utilizan los avances de las tecnologías de la información. La ética informática estaría relacionada con los problemas conceptuales y los vacíos en las regulaciones que ha ocasionado la tecnología de la información. El problema es que hay una falta de reglamentación en cómo utilizar estas nuevas tecnologías que posibilitan nuevas actividades para las cuales no hay o no se perciben con nitidez principios de actuación claros.
Sociedad. Los ingenieros del software actuarán de manera consistente con el interés general. En particular, los ingenieros de software deberán, adecuadamente:
Aceptar completa responsabilidad por su trabajo. Moderar los intereses del ingeniero del software, el empresario, el cliente y los usuarios con los del bienestar público. Dar el visto bueno al software sólo si se tiene fundada creencia de que es seguro, cumple las especificaciones, ha pasado las pruebas pertinentes y no disminuye la calidad de la vida, disminuye la confidencialidad o daña al medio ambiente. El efecto último del trabajo debiera ser el bienestar público. Mostrar a las personas o autoridades correspondientes cualquier peligro real o potencial para el usuario, la sociedad o el medio ambiente, que consideren, de manera razonable, que esté asociado con el software, o documentos relacionados. Cooperar en las materias relacionadas con las preocupaciones graves causadas por el software, su instalación, mantenimiento, soporte o documentación. Ser justo y veraz en todas las afirmaciones, especialmente en las que sean públicas, relativas al software o documentos relacionados, métodos y herramientas. Considerar las cuestiones de discapacidades físicas, asignación de recursos, desventajas económicas y otros factores que puedan disminuir el acceso a los beneficios del software. Estar dispuesto a donar las capacidades profesionales para buenas causas y contribuir a la educación del público en general con respecto a esta disciplina.
Cliente y Empresario Los ingenieros de software deberán actuar de maneras en que se representen los mejores intereses para sus clientes y empresarios, consistentemente con el interés general. En particular los ingenieros de software deberán, adecuadamente:
Proporcionar servicios sólo en las áreas de su competencia, siendo honestos y francos acerca de cualquier limitación en su experiencia o educación. No utilizar conscientemente software obtenido o retenido de manera ilegal o no ética. Utilizar la propiedad de un cliente o patrón sólo en maneras adecuadamente autorizadas, y con el conocimiento y consentimiento de los mismos. Garantizar que cualquier documento en el que se confía ha sido aprobado, cuando así se requiera, por alguien con autoridad para hacerlo. Mantener como privada cualquier información confidencial obtenida mediante el trabajo profesional, siempre que tal confidencialidad no sea inconsistente con los aspectos de interés general y con la ley. Identificar, documentar, recoger evidencia e informar con prontitud al cliente o empresario si, en su opinión, es probable que fracase un proyecto, que se demuestre demasiado caro, que viole la legislación sobre propiedad intelectual, o que sea problemático. Identificar, documentar e informar al empresario o cliente sobre cualquier asunto de interés social, o del que se tenga conocimiento, acerca del software o documentos relacionados. No aceptar trabajo externo que vaya en detrimento del trabajo que se desarrolle para su principal contratante. No representar interés contrario al del empresario o cliente, a menos que se comprometa otro valor ético más elevado; en este último caso se informará al empresario o a otra autoridad adecuada acerca de esa preocupación ética.
Producto Los ingenieros de software deberán garantizar que sus productos y las modificaciones relacionadas cumplen los estándares más elevados posibles. En particular, los ingenieros de software deberán, según sea adecuado
Promover máxima calidad, coste aceptable, y un plazo razonable, garantizando que quedan claros los compromisos significativos al respecto, y que los aceptan el empresario y el cliente, y que están disponibles para consideración por el usuario y el público en general. Garantizar objetivos adecuados y alcanzables para cualquier proyecto en el que trabajen o lo vayan a hacer.
Identificar, definir, y examinar temas éticos, económicos, culturales, legales y medioambientales relacionados con cualquier proyecto. Garantizar que están cualificados, mediante una adecuada combinación de educación, adiestramiento y experiencia, para cualquier proyecto en el que trabajen o lo vayan a hacer. Garantizar una metodología adecuada para cualquier proyecto en el que trabajen o lo vayan a hacer. Trabajar para seguir los estándares de la industria, si disponibles, que sean los más adecuados para las tareas, desviándose de los mismos sólo cuando esté justificado ética o técnicamente. Esforzarse para entender completamente las especificaciones del software que están desarrollando. Garantizar que las especificaciones para el software sobre el que trabajan han sido bien documentadas, satisfacen los requisitos del usuario y tienen las aprobaciones adecuadas. Garantizar estimaciones cuantitativas realistas de coste, plazos, personal, y resultados de cualquier proyecto en el que trabajen o vayan a hacerlo, y proporcionar una evaluación de la incertidumbre de esas estimaciones. Garantizar unas adecuadas pruebas, depuraciones y revisiones del software y de los documentos relacionados en los que se trabaje. Garantizar una adecuada documentación, incluyendo problemas significativos descubiertos y las soluciones adoptadas, para cualquier proyecto en el que trabajen. Trabajar para desarrollar software y documentos relacionados que respeten la confidencialidad de aquellos que van a verse afectados por ese software. Ser cuidadosos para utilizar sólo datos precisos, obtenidos mediante medios legales y éticos, y utilizarlos sólo de maneras adecuadamente autorizadas. Mantener la integridad de los datos, siendo sensible a aquellos que estén obsoletos u equivocados. Tratar todas las formas del mantenimiento del software con la misma profesionalidad que los nuevos desarrollos.
Juicio Los ingenieros de software deberán mantener integridad e independencia en su valoración profesional. En particular, los ingenieros del software deberán, adecuadamente:
Moderar todos los juicios técnicos por la necesidad de amparar y mantener valores humanos. Firmar sólo los documentos preparados bajo su supervisión o dentro de sus áreas de competencia, y con los que se está de acuerdo. Mantener objetividad profesional con respecto a cualquier software o documentos relacionados para los que se les pida evaluación. No involucrarse en prácticas financieras engañosas, tales como sobornos, dobles facturaciones u otras prácticas impropias.
Comunicar a todas las partes los conflictos de interés que no puedan evitarse razonablemente. Rechazar la participación, como miembros o asesores, en organismos privados, gubernamentales o profesionales vinculados con temas de software, en los que tengan, o sus patronos o clientes, potenciales conflictos de interés no revelados.
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 mantenimiento del software. En particular, aquellos ingenieros de software en funciones de dirección o liderazgo deberán, adecuadamente:
Garantizar una buena gestión en cualquier proyecto en los que trabajen, incluyendo procedimientos efectivos para promover calidad y reducción del riesgo. Garantizar que se informa a los empleados de los estándares antes de adherirse a ellos. Garantizar que los empleados conocen las políticas y procedimientos del empresario para la protección de las claves de acceso, ficheros y otra información que sea confidencial para el empresario o para otros. Asignar trabajo sólo después de tener en cuenta la educación y experiencia, moderados con el deseo de mejorar tal educación y experiencia Garantizar unas estimaciones cuantitativas realistas del coste, plazo, personal, calidad y productos en cualquier proyecto en el que trabajen o tengan intención de hacerlo, y proporcionar una valoración de la incertidumbre de esas estimaciones. Atraer empleados sólo mediante una descripción completa y precisa de las condiciones del empleo. Ofrecer una adecuada y justa remuneración.
Profesión Los ingenieros de software deberán progresar en la integridad y reputación de la profesión, consistentemente con el interés general. En particular, los ingenieros de software deberán, en la medida de lo posible:
Ayudar a desarrollar un ambiente organizativo favorable a un comportamiento ético. Promover el conocimiento general de la ingeniería del software. Diseminar el conocimiento de ingeniería del software mediante la participación en organizaciones profesionales, reuniones y publicaciones. Apoyar, como miembros de una profesión, a otros ingenieros de software que se esfuercen en seguir este Código.
No promover el interés propio a costa de la profesión, el cliente o el empresario. Obedecer todas las leyes que gobiernen su trabajo, a menos que, en circunstancias excepcionales, tal cumplimiento sea inconsistente con el interés general. Ser preciso en la descripción de las características del software en el que se trabaja, evitando no sólo falsas declaraciones, sino también declaraciones que podrían razonablemente suponerse especulativas, vacías, decepcionantes, engañosas o dudosas.
Compañeros Los ingenieros de software serán justos y serán soporte de sus compañeros. En particular, los ingenieros de software deberán, adecuadamente:
Animar a los compañeros a adherirse a este Código. Ayudar a los compañeros en el desarrollo profesional. Reconocer completamente el trabajo de otros y abstenerse de atribuirse méritos no reconocidos. Revisar el trabajo de otros de forma objetiva, sincera y adecuadamente documentada. Tratar justamente las opiniones, preocupaciones o quejas de un compañero. Ayudar a los compañeros en el conocimiento completo de los estándares de trabajo, incluyendo políticas y procedimientos para proteger las claves de acceso, ficheros y otra información confidencial, y medidas de seguridad en general. No interferir injustamente en
Persona Los ingenieros de software deberán participar en el aprendizaje continuo de la práctica de su profesión y promoverán un enfoque ético en la práctica de la profesión. En particular, los ingenieros de software deberán continuamente preocuparse de:
Mejorar su conocimiento de los avances en el análisis, especificación, diseño, desarrollo, mantenimiento y pruebas del software y documentos relacionados, junto con la gestión del proceso de desarrollo. Mejorar su capacitación para crear software de calidad, seguro, fiable y útil con un coste razonable y en un plazo razonable. Mejorar su capacidad para producir documentación precisa informativa y correctamente escrita. Mejorar su comprensión del software y documentos relacionados en los que se trabaja y del entorno en el que se utilizarán.
Mejorar su conocimiento de los estándares pertinentes y de las leyes que regulan el software y los documentos relacionados en los que trabajan. Mejorar su conocimiento de este Código, su interpretación y su aplicación al trabajo. No dar un tratamiento injusto a nadie por prejuicios irrelevantes. No influenciar a otros para tomar acción alguna que conlleve un incumplimiento de este Código. Reconocer que las inobservancias personales de este Código son inconsistentes con ser un ingeniero de software profesional.
CONCLUCION:
La ingeniería de software es una disciplina de la ingeniería que nos ayuda a desarrollar sistemas de software a tiempo y a la vez que se cumple con las expectativas de calidad y que permanezca dentro de presupuestos. Sus elementos importantes son algoritmo estructura de datos y documentos
En el desarrollo de productos de software las etapas de análisis de requerimientos y diseño toman gran parte del tiempo del proyecto. El modelo planteado en los proyectos pretende establecer parámetros de diseño generales que permitan agilizar los mismos.
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 http://www.monografias.com/trabajos5/inso/inso.shtml http://www.monografias.com/trabajos5/inso/inso. Leer mรกs: http://www.monografias.com/trabajos5/inso/inso.shtml#ixzz35BC87lyS http://es.kioskea.net/contents/223-ciclo-de-vida-del-software http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_requisitos http://www.monografias.com/trabajos15/ingeniero-informatico/ingenieroinformatico.shtml#ixzz35BPme8Jc http://sistemas.uniandes.edu.co/~isis2603/dokuwiki/lib/exe/fetch.php?media=princip al:isis2603-modelosciclosdevida.pdf