ingeniería de software m.i. haydeé meléndez guillén universidad autónoma de baja california...

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

Upload: conchita-villas

Post on 05-Mar-2015

4 views

Category:

Documents


1 download

TRANSCRIPT

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

Ingeniería de Software

M.I. Haydeé Meléndez Guillén

Universidad Autónoma de Baja Universidad Autónoma de Baja California California

Facultad de Ingeniería EnsenadaFacultad de Ingeniería Ensenada

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

Contenido

Introducción1.1 Definiciones1.2 Consideraciones de software y

hardware1.3 Factores de calidad y

productividad1.4 Problemas y soluciones en la

administración de software

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

¿Qué es el Software?

Software Es un conjunto de elementos u objetosQue conforman una configuraciónIncluye

• Programas• Documentos• Datos

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

¿Qué es el software?

El software en ingeniería

El software no caduca

El software es complejo

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

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

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

¿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.

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

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.

¿Qué es la ingeniería de software?

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

¿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.

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

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).

¿Qué es la ingeniería de software?

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

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.

¿Qué es la ingeniería de software?

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

Ingeniería de Software es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software.

¿Qué es la ingeniería de software?

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

Perspectiva histórica del desarrollo de software

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.

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• ...

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

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.

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

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)

Consideraciones del hardware y software 

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

Factores de calidad y productividad

Basili y Zelkowitz [BAS78] definen cinco factoresimportantes 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.

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

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.

Factores de calidad y productividad

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

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

Factores de calidad y productividad

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

Fiable Capacidad de ofrecer los mismos

resultados bajo las mismas condiciones.

Eficiente Utilización óptima de los recursos de

la máquina.

Atributos de calidad del software:

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

Robusto No poseer un comportamiento

catastrófico ante situaciones excepcionales (Tolerante a fallos).

Correcto Se ajusta a las especificaciones

dadas por el usuario.

Atributos de calidad del software:

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

Portable Capaz de integrarse en entornos distintos

con el mismo esfuerzo.

Adaptable (extensibilidad) Modificar alguna función sin que afecte a

sus actividades.

Atributos de calidad del software:

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

Inteligible Diseño claro, bien estructurado y

documentado.

No Erróneo No exista diferencia entre los valores reales

y los calculados

Reutilizable (reusabilidad)

Atributos de calidad del software:

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

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”

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

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.

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

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

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

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:

Factores para la calidad del software:

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

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:

Factores para la calidad del software:

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

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...

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

En tercer lugar, el marco de trabajo proporciona más interacción del personal de calidad en el esfuerzo de desarrollo..

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

No hay forma de medir directamente la facilidad de mantenimiento; por consiguiente, se deben utilizar medidas indirectas.

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

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.

Factores para la calidad del software:

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

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»

Factores para la calidad del software:

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

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).

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

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.

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

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.

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

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.

Problemas y soluciones en la administración de software

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

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.

Problemas y soluciones en la administración de software