1 / 47

Ingeniería de Software

Universidad Autónoma de Baja California Facultad de Ingeniería Ensenada. Ingeniería de Software . M.I. Hayde é Meléndez Guillén. Contenido. Introducción 1.1 Definiciones 1.2 Consideraciones de software y hardware 1.3 Factores de calidad y productividad 1.4 Problemas y soluciones en la

connor
Télécharger la présentation

Ingeniería de Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Universidad Autónoma de Baja California Facultad de Ingeniería Ensenada Ingeniería de Software M.I. HaydeéMeléndez Guillén

  2. Contenido • Introducción • 1.1Definiciones • 1.2Consideraciones de software y hardware • 1.3Factores de calidad y productividad • 1.4 Problemas y soluciones en la administración de software

  3. ¿Qué es el Software? • Software • Es un conjunto de elementos u objetos • Que conforman una configuración • Incluye • Programas • Documentos • Datos

  4. ¿Qué es el software? • El software en ingeniería • El software no caduca • El software es complejo

  5. Aplicaciones de Software • Software de Sistema • Software de Tiempo Real • Software de Negocios • Software de Ingeniería/Científico • Software Incrustrado • Software de PC • Software de IA • Aplicaciones Web

  6. ¿Qué es la ingeniería de software? Una disciplina que integra métodos, herramientas y procedimientos para el desarrollo de software de computadora bajo un enfoque de calidad.

  7. ¿Qué es la ingeniería de software? Aplicación práctica del conocimiento científico en el diseño y construcción de programas de computadora y la documentación asociada requerida para desarrollar, operar (funcionar) y mantenerlos.

  8. ¿Qué es la ingeniería de software? Trata del establecimiento de los principios y métodos de la ingeniería a fín de obtener software de modo rentable que sea fiable y trabaje en máquinas reales.

  9. ¿Qué es la ingeniería de software? La disciplina tecnológica preocupada de la producción sistemática y del mantenimiento de los productos de software que son desarrollados y modificados en tiempo y dentro de un presupuesto definido. (Fairley, 1985).

  10. ¿Qué es la ingeniería de software? La ingeniería de software difiere de la programación tradicional en que se utilizan técnicas de ingeniería para especificar, diseñar, instrumentar, validar y mantener los productos dentro del tiempo y el presupuesto establecidos.

  11. ¿Qué es la ingeniería de software? Ingeniería de Software es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software.

  12. Perspectiva histórica del desarrollo de software • Década 80-90: • Nuevos paradigmas de programación y de producción de programas: • OO • C/S • 90’s - actualidad: • Análisis/Diseño OO. • Tecnología CASE • Componentes y reutilización • Interoperabilidad (CORBA, .NET...) • Internet • ISw. distribuida • repositorios de componentes reutilizables • e-business; e-commerce • ... • Década 50-60: • “Software como un añadido”. • Desarrollo artesanal, a medida. • Lenguajes de bajo nivel. • Década 60-70: • Software como producto. • Década lenguajes y compilación. • “Crisis del software”. • Década 70-80: • Programación estructurada. • Ingeniería del Software. • Primeros métodos estructurados.

  13. Consideraciones del hardware y software • El software es un elemento del sistema que es lógico, en lugar de físico. • El software se desarrolla no se fábrica en un sentido clásico.

  14. Consideraciones del hardware y software • El software no se «estropea». ¡Pero se deteriora!. • La mayoría del software se construye a medida. usar todo o nada (poco ensamblaje de componentes: reutilización)

  15. Factores de calidad y productividad Basili y Zelkowitz [BAS78] definen cinco factores importantes que inciden en la productividad del software: • Factores humanos: El tamaño y la experiencia de la organización de desarrollo. • Factores del problema: La complejidad del problema que se debe resolver y el número de cambios en las restricciones o los requisitos del diseño.

  16. Factores de calidad y productividad • Factores del proceso: Técnicas del análisis y diseño qué se utilizan, lenguajes y herramientas CASE y técnicas de revisión. • Factores del producto: Fiabilidad y rendimiento del sistema basado en computadora.

  17. Factores de calidad y productividad • Factores del recurso: Disponibilidad de herramientas CASE, y recursos (hardware y software).

  18. Atributos de calidad del software: • Fiable • Capacidad de ofrecer los mismos resultados bajo las mismas condiciones. • Eficiente • Utilización óptima de los recursos de la máquina.

  19. Atributos de calidad del software: • Robusto • No poseer un comportamiento catastrófico ante situaciones excepcionales (Tolerante a fallos). • Correcto • Se ajusta a las especificaciones dadas por el usuario.

  20. Atributos de calidad del software: • Portable • Capaz de integrarse en entornos distintos con el mismo esfuerzo. • Adaptable (extensibilidad) • Modificar alguna función sin que afecte a sus actividades.

  21. Atributos de calidad del software: • Inteligible • Diseño claro, bien estructurado y documentado. • No Erróneo • No exista diferencia entre los valores reales y los calculados • Reutilizable (reusabilidad)

  22. Factores para la calidad del software: El objetivo primordial de la ingeniería del software es: “Producir un sistema, aplicación o producto de alta calidad”

  23. Factores para la calidad del software: Para lograr este objetivo, los ingenieros de software deben aplicar métodos efectivos junto con herramientas modernas dentro del contexto de un proceso maduro de desarrollo del software.

  24. Factores para la calidad del software: Además, un buen ingeniero del software (y buenos gestores de la ingeniería del software) deben medir si la alta calidad se va a llevar acabo.

  25. Factores para la calidad del software: La calidad de un sistema, aplicación o producto es tan bueno como los requisitos que describen el problema, el diseño que modela la solución, el código que conduce a un programa ejecutable y las pruebas que ejercitan el software para detectar errores.

  26. Factores para la calidad del software: Un buen ingeniero del software utiliza mediciones que evalúan la calidad del análisis y los modelos de diseño, el código fuente y los casos de prueba que se han creado al aplicar la ingeniería del software. Para lograr esta evaluación de la calidad, el ingeniero debe utilizar medidas técnicas que evalúan la calidad con objetividad, no con subjetividad.

  27. Factores para la calidad del software: El gestor de proyectos también debe evaluar la calidad objetivamente, y no subjetivamente. A medida que el proyecto progresa el gestor del proyecto también debe evaluar la calidad. Las métricas privadas recopiladas por ingenieros del software se asimilan para proporcionar resultados en los proyectos.

  28. Factores para la calidad del software: Aunque se pueden recopilar muchas medidas de calidad, el primer objetivo en el proyecto es medir errores y defectos. Las métricas que provienen de estas medidas proporcionan una indicación de la efectividad de las actividades de control y de la garantía de calidad en grupos o en particulares

  29. Factores para la calidad del software: Los errores detectados por hora de revisión y los errores detectados por hora de prueba proporcionan una visión profunda de la eficacia de cada una de las actividades implicadas en la métrica.

  30. Factores para la calidad del software: Visión general de los factores que afectan a la calidad: En las dos décadas pasadas, McCall y Cavano [MCC78] definieron un juego de factores de calidad como los primeros pasos hacia el desarrollo de métricas de la calidad del software. Estos factores evalúan el software desde tres puntos de vista distintos:

  31. Factores para la calidad del software: • Operación del producto (utilizándolo). • Revisión del producto (cambiándolo). • Transición del producto (modificándolo para que funcione en un entorno diferente, p. ej.: «portándolo»). Los autores, en su trabajo, describen la relación entre estos factores de calidad (lo que llaman un «marco de trabajo» ) y otros aspectos del proceso de ingeniería del software:

  32. Factores para la calidad del software: En primer lugar, el marco de trabajo proporciona un mecanismo para que el gestor del proyecto identifique lo que considera importante. Estas cualidades son atributos del software, además de su corrección y rendimiento funcional, que tiene implicaciones en el ciclo de vida. En otros factores, como son facilidad de mantenimiento y transportabilidad, se ha demostrado que tienen un impacto significativo en el costo del ciclo de vida...

  33. Factores para la calidad del software: En segundo lugar, el marco de trabajo proporciona un medio de evaluar cuantitativamente lo bien que va progresando el desarrollo en relación con los objetivos de calidad establecidos.

  34. Factores para la calidad del software: En tercer lugar, el marco de trabajo proporciona más interacción del personal de calidad en el esfuerzo de desarrollo..

  35. Factores para la calidad del software: Por último, el personal de garantía de calidad puede utilizar indicaciones de calidad pobre para ayudar a identificar estándares [mejores] a contrastar en el futuro.

  36. Factores para la calidad del software: Medida de la calidad: Aunque hay muchas medidas de la calidad de software, la corrección, facilidad de mantenimiento integral y facilidad de uso proporcionan indicadores útiles para el equipo del proyecto. Gilb [GIL88] sugiere definiciones y medidas para cada uno de ellos.

  37. Factores para la calidad del software: Corrección: Un programa debe operar correctamente o proporcionará poco valor a sus usuarios. La corrección es el grado en el que el software lleva a cabo su función requerida.

  38. Factores para la calidad del software: Facilidad de mantenimiento: El mantenimiento del software cuenta con más esfuerzo que cualquier otra actividad de ingeniería del software. La facilidad de mantenimiento es la facilidad con la que se puede corregir un programa si se encuentra un error, se puede adaptar si su entorno cambia, o mejorar si el cliente desea un cambio de requisitos.

  39. Factores para la calidad del software: No hay forma de medir directamente la facilidad de mantenimiento; por consiguiente, se deben utilizar medidas indirectas.

  40. Factores para la calidad del software: Integridad: En esta época de intrusos informáticos y de virus, la integridad del software ha llegado a tener mucha importancia. Este atributo mide la habilidad de un sistema para resistir ataques (tanto accidentales como intencionados) contra su seguridad. El ataque se puede realizar en cualquiera de los tres componentes del software: programas, datos y documentos.

  41. Factores para la calidad del software: Para medir la integridad, se tienen que definir dos atributos adicionales: amenaza y seguridad. Amenaza es la probabilidad (que se puede estimar o deducir de la evidencia empírica) de que un ataque de un tipo determinado ocurra en un tiempo determinado. La seguridad es la probabilidad (que se puede estimar o deducir de la evidencia empírica) de que se pueda repeler el ataque de un tipo determinado.

  42. Factores para la calidad del software: Facilidad de uso: El calificativo «amigable con el usuario» se ha convertido en omnipresente en las discusiones sobre productos de software. Si un programa no es «amigable con el usuario», frecuentemente está abocado al fracaso, incluso aunque las funciones que realice sean valiosas. La facilidad de uso es un intento de cuantificar «lo amigable que puede ser con el usuario»

  43. Problemas y soluciones en la administración de software Thayer, Pyster y Wood sugirieron 20 áreas potenciales, y pidieron a 294 individuos su opinión respecto a la importancia de los problemas, la naturaleza de éstos, ya fuera técnica, gerencial o ambas, y sobre su posible solución (THA81).

  44. Problemas y soluciones en la administración de software problemas importantes en la administración fueron: • La planeación de proyectos de programación es generalmente pobre. • Los procedimientos y las técnicas para la selección de los gerentes de proyecto son pobres. • La contabilidad en proyectos de programación es pobre, cuestionando sobre quién es el responsable de las diversas funciones del proyecto.

  45. Problemas y soluciones en la administración de software • La capacidad para estimar correctamente los recursos requeridos para completar un proyecto de programación es pobre. • Los criterios de éxito en el desarrollo de proyectos son, con frecuencia, inapropiados; esto repercute en productos de programación no confiables, difíciles de usar y de mantener . • No existen reglas de decisión para ayudar a la selección de la adecuada organización estructural.

  46. Problemas y soluciones en la administración de software • No existen reglas de decisión para ayudar a la selección de las técnicas gerenciales más correctas para los proyectos de programación. • No siempre existen procedimientos, métodos y técnicas para el diseño de un sistema de control del proyecto que permita a los gerentes controlar con éxito sus proyectos. • No siempre existen procedimientos, técnicas, estrategias y ayuda que permitan vigilar el avance real de un proyecto.

  47. Problemas y soluciones en la administración de software • No existen estándares y técnicas para medir la calidad del desempeño y la cantidad de producción esperada de los programadores y analistas de procesamiento de datos.

More Related