O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Topicos de ingeniería de software

3.796 visualizações

Publicada em

Ingenieria de software aplicada , Topicos de ingenieria de software

Publicada em: Software
  • If you are looking for customer-oriented academic and research paper writing service try ⇒⇒⇒ WRITE-MY-PAPER.net ⇐⇐⇐ liked them A LOTTT Really nice solutions for the last-day papers
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

Topicos de ingeniería de software

  1. 1. Equipo 4 Ing. De Software Aplicada 110602 Hernández Rosales Alejandra Hurtado Escobedo Alejandro Islas Castro Amainary Jazmín Martinez Alejandro Josue
  2. 2. En esta presentación se describen los principales topicos utilizados en la ingeniería de software con el objetivo de enriquecer el conocimiento del lector y de esta manera lograr que la ingeniería de software sea mas fácil de comprender .
  3. 3. La Ingeniería de Sistemas representa la principal herramienta de trabajo de los desarrolladores de sistemas de información. Está representa por una metodología compuesta por un conjunto de etapas que se realizan secuencialmente para dar vida a una aplicación en forma evolutiva. Cada etapa se integra por un conjunto de acciones encaminadas para obtener productos específicos, como: especificaciones, diagramas, formatos, código, pruebas y documentos diversos. A continuación se describen algunos enfoques para el desarrollo de los sistemas de información: Cleanroom Reingeniería Ingeniería web Desarrollo basado en componentes Sistemas críticos
  4. 4. Es una ingeniería y un proceso directivo para el desarrollo del software de alta calidad con confiabilidad certificada. Cleanroom fue desarrollado originalmente por el Dr. Harlan Mills y varios colegas de IBM. El nombre “Cleanroom” fue tomado de la industria de electrónica, donde un cuarto limpio físico existe para prevenir la introducción de defectos durante la fabricación del hardware. El foco del proceso de Cleanroom está en la prevención del defecto, más bien que el retiro del defecto.
  5. 5. 1. Desarrollo del Software basado en métodos formales: hace uso el método de la estructura de caja para especificar y para diseñar un producto de software. La verificación que el diseño pone correctamente la especificación en ejecución se realiza con la revisión del equipo. 2.Puesta en práctica incremental bajo control de calidad estadístico: utiliza un acercamiento iterativo , en el cual el producto se desarrolla en los incrementos que aumentan gradualmente la funcionalidad puesta en ejecución. La calidad de cada incremento se mide contra estándares preestablecidos para verificar que está procediendo el proceso del desarrollo aceptable. Una falta de resolver estándares de calidad da lugar a la cesación de la prueba para el incremento actual, y a una vuelta a la fase de diseño.
  6. 6. 3. Prueba estadístico Sana: se realiza como experimento estadístico. De acuerdo con la especificación formal, un subconjunto representativo de la trayectoria de la entrada-salida del software se selecciona y se prueba. Esta muestra entonces se analiza estadística para producir una estimación de la confiabilidad del software, y un nivel de la confianza en esa estimación. Ventajas Mejoras significativas en la corrección, La confiabilidad Estas ventajas traducen generalmente a una reducción en las faltas de producto campo-experimentadas, reducida duración de ciclo, facilidad del mantenimiento, y vida de un producto más largo.
  7. 7. Pasos del método de Cleanroom: Algunos de los procesos que constituyen el acercamiento de Cleanroom son: 1. Análisis de requisitos: produciendo y repasando “especificaciones informales”. 2. Diseño de alto nivel: convertir los requisitos en las máquinas y las funciones del estado 3. Diseño detallado: refinamiento adicional de funciones 4. Codificación por el incremento: código que se convierte y verificarlo que usa métodos informales. Se prohíbe la prueba de compilación del código o de la unidad. 5. Preaprueba por el incremento: generación de los casos de la prueba. 6. Prueba estadística por el incremento: se compila, se liga y se prueba el código. Se validan los resultados.
  8. 8. Es la “modificación de un producto software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.”
  9. 9. La reingeniería del software involucra diferentes actividades como son: Análisis de inventarios Reestructuración de documentos Ingeniería inversa Reestructuración de programas y datos Ingeniería directa con la finalidad de crear versiones de programas ya existentes que sean de mejor calidad y los mismos tengan una mayor facilidad de mantenimiento.
  10. 10. Análisis de Inventarios: El inventario tal vez no sea más que un modelo en una hoja de cálculo que contenga información que proporcione una descripción detallada (tamaño, edad, importancia para el negocio) de las aplicaciones activas. Los candidatos a la reingeniería aparecen cuando se ordena esta información en función de su importancia para el negocio, longevidad, mantenibilidad actual y otros criterios localmente importantes. Es entonces cuando es posible asignar recursos a las aplicaciones candidatas para el trabajo de reingeniería. Reestructuración de documentos: La documentación debe actualizarse pero se tiene recursos limitados. Se utiliza un enfoque de “documentar cuando se toque”. El sistema es crucial para el negocio y debe volver a documentarse por completo incluso en este caso un enfoque inteligente es recortar la documentación a un mínimo esencial. Cada una de estas opciones es viable. Una organización de software debe elegir la más apropiada para cada caso.
  11. 11. Ingeniería Inversa: es el proceso de análisis de un programa con el fin de crear una representación de programa con un nivel de abstracción más elevado que el código fuente. La Ingeniería inversa es un proceso de recuperación de diseño. Con las herramientas de la ingeniería inversa se extraerá del programa existente información del diseño arquitectónico y de proceso, e información de los datos. Reestructuración de datos: comienza con una actividad de ingeniería inversa. La arquitectura de datos actual se analiza con minuciosidad y se define los modelos de datos necesarios, se identifican los objetivos de datos y los atributos, y después se revisa la calidad de las estructuras de datos existentes. Ingeniería directa: no solo recupera la información de diseño a partir del software existente, también utiliza esta información para alterar o reconstruir el sistema existente con la finalidad de mejorar su calidad global. En la mayoría de los casos el software sometido a reingeniería vuelve a implementar la función del sistema existente y también añade nuevas funciones o mejoras.
  12. 12. La Ingeniería de la Web es la aplicación de metodologías sistemáticas, disciplinadas y cuantificables al desarrollo eficiente, operación y evolución de aplicaciones de alta calidad en la World Wide Web En este sentido, la Ingeniería de la Web hace referencia a las metodologías, técnicas y herramientas que se utilizan en el desarrollo de Aplicaciones Web complejas y de gran dimensión en las que se apoya la evaluación, diseño, desarrollo, implementación y evolución de dichas aplicaciones.
  13. 13. El desarrollo de Aplicaciones Web posee determinadas características que lo hacen diferente del desarrollo de aplicaciones o software tradicional y sistemas de información. La Ingeniería de la Web es multidisciplinar y aglutina contribuciones de diferentes áreas: Arquitectura de la información ingeniería de hipermedia/hipertexto Ingeniería de requisitos Diseño de interfaz de usuario Usabilidad Diseño gráfico y de presentación Diseño y análisis de sistemas Ingeniería de software Ingeniería de datos Indexado y recuperación de información Testeo Modelado y simulación, Despliegue de aplicaciones Operación de sistemas y gestión de proyectos
  14. 14. La Ingeniería de la Web no es un clon o subconjunto de la ingeniería de software aunque ambas incluyen desarrollo de software y programación, pues a pesar de que la Ingeniería de la Web utiliza principios de ingeniería de software, incluye nuevos enfoques, metodologías, herramientas, técnicas, guías y patrones para cubrir los requisitos únicos de las aplicaciones web. Los principales aspectos de la Ingeniería de la Web incluyen, entre otros, los siguientes temas: Diseño de procesos de negocio para aplicaciones web Herramientas CASE para aplicaciones web Generación de código para aplicaciones web Desarrollo web colaborativo Modelado conceptual de aplicaciones web Diseñó de Modelos de datos para sistemas de información web Ingeniería web empírica Entornos de desarrollo de aplicaciones web integrados Herramientas de autor para contenido multimedia Pruebas de rendimiento de aplicaciones basadas en web Personalización y adaptación de aplicaciones web Modelado de procesos para aplicaciones web Herramientas y métodos de prototipado
  15. 15. La ingeniería de software basada en componentes (CBSE) (también conocida como desarrollo basado en componentes(CBD)) es una rama de la ingeniería de software que enfatiza la separación de asuntos (separation of concerns (SoC)) por lo que se refiere a la funcionalidad de amplio rango disponible a través de un sistema de software dado. Es un acercamiento basado en la reutilización para definir, implementar, y componer componentes débilmente acoplados en sistemas. Esta práctica persigue un amplio grado de beneficios tanto en el corto como el largo plazo, para el software en sí mismo y para las organizaciones que patrocinan tal software.
  16. 16. Los ingenieros de software consideran los componentes como parte de la plataforma inicial para la orientación a servicios. Los componentes pueden producir o consumir eventos y pueden ser usados para las arquitecturas dirigida por eventos (EDA). Beneficios del Desarrollo de Software Basado en Componentes 1. Reutilización del software. Nos lleva a alcanzar un mayor nivel de reutilización de software. 2. Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el conjunto completo de componentes ensamblados. 3. Simplifica el mantenimiento del sistema. Cuando existe un débil acoplamiento entre componentes, el desabollador es libre de actualizar y/o agregar componentes según sea necesario, sin afectar otras partes del sistema. 4. Mayor calidad. Dado que un componente puede ser construido y luego mejorado continuamente por un experto u organización, la calidad de una aplicación basada en componentes mejorará con el paso del tiempo
  17. 17. Ventajas: El análisis del riesgo se hace de forma explícita y clara; Une los mejores elementos de los restantes modelos. Reduce riesgos del proyecto Incorpora objetivos de calidad Integra el desarrollo con el mantenimiento Desventajas: •Genera mucho tiempo en el desarrollo del sistema Modelo costoso Requiere experiencia en la identificación de riesgos Inconvenientes: Genera mucho trabajo adicional. Cuando un sistema falla se pierde tiempo y coste dentro de la empresa. Exige una cierta habilidad en los analistas (es bastante difícil).
  18. 18. Los sistemas críticos son sistemas técnicos o socio-técnicos de los cuales dependen las personas o los negocios. Si estos sistemas no ofrecen sus servicios de la forma esperada, pueden provocar graves problemas y pérdidas importantes.
  19. 19. Hay tres tipos principales de sistemas críticos: 1. Sistemas de seguridad críticos. Son sistemas cuyo fallo de funcionamiento puede provocar perjuicio, pérdida de vidas o daños graves al medio ambiente. ambiente. Un ejemplo de un sistema de seguridad crítico es un sistema de control para una planta de fabricación de productos químicos. 2. Sistemas de misión críticos. Son sistemas cuyo fallo de funcionamiento puede provocar errores en algunas actividades dirigidas por objetivos. Un ejemplo de de un sistema de misión crítico es un sistema de navegación para una nave espacial. 3. Sistemas de negocio críticos. Son sistemas cuyo fallo de funcionamiento puede provocar costes muy elevados para el negocio que utiliza un sistema de este tipo. Un ejemplo de un sistema de negocio crítico es un sistema de cuentas bancarias.
  20. 20. La propiedad más importante de un sistema crítico es su confiabilidad. El término confiabilidad fue propuesto por Laprie 1995 para hacer referencia a las siguientes propiedades relacionadas de los sistemas: disponibilidad, fiabilidad, seguridad y protección. Existen varias razones por las que la confiabilidad es la propiedad más importante de los sistemas críticos: 1.- Los sistemas que son no fiables, inseguros o desprotegidos son rechazados a me- nudo por sus usuarios. Si los usuarios no confían en un sistema, se negarán a utilizarlo. Es más, también rehusarán comprar o utilizar productos de la misma compañía que produjo el sistema no confiable, puesto que creen que éstos tampoco son confiables.
  21. 21. 2.- Los sistemas no confiables pueden provocar pérdida de información. Es muy cara la captura y mantenimiento de los datos; algunas veces cuesta más que el sistema informático que los procesa. Se tiene que hacer un gran esfuerzo e invertir mucho dinero para duplicar los datos importantes a fin de protegerlos de cualquier corrupción. 3.- Los costes de los fallos de funcionamiento del sistema pueden ser enormes. En algunas aplicaciones, como un sistema de control de reactores o un sistema de navegación aérea, el coste de un fallo en el sistema es mayor en varios órdenes de magnitud que el coste de dicho sistema de control.
  22. 22. Conclusión A medida que se van creando más aplicaciones en la computadora, se despiertan otras inquietudes, por lo que la capacidad de los recursos disponibles se ve saturada. Por esto es importante hacer un buen de estos recursos, procurando aprovecharlos al máximo mediante la tecnología más adecuada que garantice el éxito en las tareas emprendidas. Los diferentes topicos mencionados anteriormente tienen como objetivo brindar una línea de acción en la definición y construcción de un sistema de información, por lo que a través de su conocimiento y aplicación se podrán obtener diversas experiencias, que permitirán al usuario desarrollar cada vez más y mejores sistemas.
  23. 23. Bibliografia. http://ingdesoftware-karina.blogspot.mx/2007/07/qu-es-el-cleanroom.html http://www.mondragon.edu/es/eps/investigacion/grupos-de- investigacion/ingenieria-del-software http://ingenieriadelsofware.bligoo.com/ingenieria-web#.U9has7H5fIV http://es.slideshare.net/jasc_584/ingenieriadesoftware- iansommerville7maedicion-9417118 http://cnx.org/content/m17438/latest/

×