Está en la página 1de 55

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA

CURSO: CALIDAD Y PRUEBA DE SOFTWARE


(SESION 1)

Profesor: Mg. Mario Huapaya Chumpitaz


INDICE

UNIDAD I: Concepto de la Ingeniería de Software

1. Que es la Ingeniería de Software?


2. La crisis de software
3. Producto Software
4. Ciclo de vida de una aplicación
5. Los atributos de un buen software
6. Los retos de la ingeniería de software
7. La ética del ingeniero de software
8. El concepto de conocimientos de la ingeniería de
software SWEBOK
9. Caso practico
1. Que es la Ingeniería de Software ?

Definición de la ingeniería del


software (NATO, 68)
La ingeniería del software es el
establecimiento y uso de principios
de ingeniería razonables con el
objetivo de obtener software
económicamente, que sea de
confianza y trabaje eficientemente en
las maquinas reales.
1. Que es la Ingeniería de Software ?
Definición de la ingeniería del software
(R.E. Fairley 1985)
Hemos definido la Ingeniería del
Software como la disciplina tecnológica
concerniente a la producción y
mantenimiento sistemáticos de
productos software que son
desarrollados y modificados en el tiempo
y con los costes estimados.

Además, la Ingeniería del software tiene


que ver con cuestiones de gestión que
caen fuera del dominio de la
programación tradicional.
1. Que es la Ingeniería de Software ?
Características de la ingeniería del
software (Van Vliet 1993)
 Construcción de programas grandes
 Controlar la complejidad
 Cooperación entre las personas
implicadas
 Evolución del software
 Eficiencia en el desarrollo
 Soporte real a los usuarios
1. Que es la Ingeniería de Software ?
Desde 1968 hasta la fecha han sido muchos los esfuerzos realizados por
los departamentos de informática de las universidades, y por
organismos de estandarización (SEI, IEEE, ISO) para identificar las causas
del problema y definir pautas estándar para la producción y
mantenimiento del software.
Los esfuerzos se han encaminado en tres direcciones principales.
 Identificación de los factores clave que determinan la calidad del
software
 Identificación de los procesos necesarios para producir y mantener
software.
 Acotación, estructuración y desarrollo de la base de conocimiento
necesaria para la producción y mantenimiento de software.
El resultado ha sido la necesidad de profesionalizar el desarrollo,
mantenimiento y operación de los sistemas de software, introduciendo
métodos y formas de trabajo sistemáticos, disciplinados y cuantificables.
2. Producto Software
Producto de software no comprende sólo el código. Incluye también
la documentación y los datos de configuración
3. La crisis de software
3. La crisis de software
La Llamada “CRISIS DEL SOFTWARE”
 ¿Por qué toma tanto tiempo desarrollar software?
 ¿Por qué es tan elevado su costo?
 ¿Por qué no se puede entregar programas libres de
errores?
 ¿Por qué es tan costoso su mantenimiento?
 ¿Por qué resulta tan difícil constatar el progreso del
desarrollo de software?
 ¿La calidad se mide o se construye?
3. La crisis de software

1970’s - Crisis del software


 Exceso en la capacidad para desarrollar software grande
y complejo, con la tecnología existente.
 Costo de las actividades de mantenimiento del software
superior a los costos de nuevos desarrollos.
 Inicio el descenso en los costos del hardware.
 Aumento de proyectos que fallaron a causa del software.
Soluciones
 Mejores lenguajes de programación (PL/1, APL, Jovial)
 Lenguajes formales para especificar requerimientos
 Lenguajes estructurales y multitareas.
3. La crisis de software

1985
 Crecimiento de la Industria del Software a $ USD 300 MM
 Reconocimiento de la Ingeniería de Software como una
disciplina de la Ingeniería.
 Los costos del hardware continúan disminuyendo.
 Surgen las herramientas CASE y lenguajes de modelamiento:
 Implementación de un proceso específico de desarrollo
 Representar gráficamente los diseños del software
 Fácil de mantener, validar y entender.
Soluciones
 Muchas compañías se dieron cuenta que necesitaban realizar
mejoras significativas en su proceso de desarrollo.
3. La crisis de software

CASOS DE FRACASO

London Ambulance Dispatching System (1992)


 Sistema para gestionar las llamadas de emergencias.
 Inversión :1.8 millones €.
 Pérdidas: se estima 20 vidas.
 Problema: El sistema no distinguía llamadas distintas.
 Retenía llamadas durante horas.
 Usuarios sin formación.
 Implantación del sistema de manera apresurada.
3. La crisis de software
Agencia Espacial Europea (1996)
 Sistema de navegación del Ariane 5. Evolución del Ariane
4
 Inversión: 7 billones de dólares.
 Pérdidas: 2 satélites se desintegraron.
 Problema: Sobrecarga al operar con la velocidad 5 veces
mayor que en el Ariane 4)
 No se controlaban las excepciones.
3. La crisis de software
Nike (2001)
 Sistema para automatizar la gestión, producción y venta.
 Inversión : 400 millones dólares.
 Pérdidas: 100 millones en ventas. Reducción de un tercio
del valor de las acciones
 Problema: El sistema intercambiaba órdenes de
producción.
 Exceso de stock en algunos productos y falta en otros.
3. La crisis de software
ACTUALIDAD
 Los proyectos sobrepasan los cronogramas establecidos.
 Errores funcionales.
 Calidad por debajo de lo esperado.
 Se requiere re-ingeniería constantemente.
 Necesidad de maduración continua en los procesos y
profesionales.
 Los requerimientos no-funcionales sin certificación o pruebas.
 Soluciones
 Idea de dividir para vencer
 Metodologías ágiles
 Test-Driven Development (TDD)
 Behavior-Driven Development (BDD)
 Herramientas para pruebas no-funcionales
3. La crisis de software
Proyectos para el desarrollo de sistemas de software
Fracaso Problemático Éxito
2004 19% 53% 29%

2000 23% 49% 28%

1998 28% 46% 26%

1995 40% 33% 27%

1994 31% 53% 16%

El proyecto se aborta o el sistema no se llega a utilizar


Desbordamiento de agendas o costes. Las funcionalidades no cubren
las expectativas. Problemas funcionales
Proyecto realizado en el tiempo previsto, con los costes previstos,
con la funcionalidad esperada y ofreciendo un funcionamiento
correcto.
3. La crisis de software
3. La crisis de software
4. Ciclo de vida de una aplicación
ISO 12207:
4. Ciclo de vida de una aplicación
4. Ciclo de vida de una aplicación: Estrategia de software
4. Ciclo de vida de una aplicación
El conocimiento
o “know how” necesario se encuentra dividido en mayor o menor %
en:
4. Ciclo de vida de una aplicación

El desarrollo
Se realiza de forma
4. Ciclo de vida de una aplicación

En un DESARROLLO INCREMENTAL
Las entregas se pueden producir con secuencia:
4. Ciclo de vida de una aplicación

Para gestionar un DESARROLLO INCREMENTAL

Son apropiadas las técnicas de gestión visual kanban para evitar los cuellos
de botella y los tiempos muertos. Ajustándolas con criterios de flexibilidad a
las circunstancias de nuestro trabajo y equipo
4. Ciclo de vida de una aplicación
5. Atributos de un Buen Software
5. Atributos de un Buen Software
5. Atributos de un Buen Software
5. Atributos de un Buen Software
ISO/IEC 9126: Tecnologías de la Información – Calidad de los
Productos Software.
 ISO/IEC 9126-1: Modelo de Calidad
 ISO/IEC 9126-2: Métricas Externas
 ISO/IEC 9126-3: Métricas Internas
 ISO/IEC 9126-4: Métricas de Calidad en Uso
Utilidades:
 Validar la completitud de una definición de requisitos.
 Identificar requisitos software.
 Identificar objetivos para el diseño software.
 Identificar requisitos para las pruebas del software.
 Identificar requisitos para el aseguramiento de la calidad.
 Identificar criterios de aceptación para un producto software
terminado.
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126
Identificación de Características, subcaracterísticas y atributos de
calidad…
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126
…para definir modelos de calidad
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126
Capacidad del producto software para … bajo condiciones
especificadas.
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126 Funcionalidad
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126 Fiabilidad
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126 Usabilidad
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126 Eficiencia
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126 Mantenibilidad
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126 Portabilidad
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126
5. Atributos de un Buen Software
Calidad de Producto – ISO 9126
6. Los retos de la Ingeniería de Software
1. El reto de heterogeneidad. Cada vez mas, se requiere que los
sistemas operen como sistemas distribuidos en redes que
incluyen diferentes tipos de computadoras y con diferentes
clases de sistemas de soporte.

2. El reto de la entrega. Muchas técnicas tradicionales de


ingeniería de software consumen tiempo. El tiempo que estos
consumen es para producir un software de calidad.

3. El reto de la confianza. El software tiene relación con todos los


aspecto de nuestra vida, es esencial que podamos confiar en
el. El reto de la confianza es desarrollar técnicas que demuestra
que los usuarios pueden confiar en el software.
7. el código de ética del Ingeniero de software
Los ingenieros de software deberán comprometerse a convertir el
análisis, especificación, diseño, implementación, pruebas y
mantenimiento de software en una profesión respetada y benéfica, los
ingenieros de software deberán sujetarse a los ocho principios
siguientes:

1. Sociedad. Los ingenieros de software actuarán en forma congruente


con el interés social.
2. Cliente. y empresario. Los ingenieros de software actuarán de manera
que se concilien los mejores
intereses de sus clientes y empresarios, congruentemente con el interés
social.
3. Producto. Los ingenieros de software asegurarán que sus productos y
modificaciones correspondientes
cumplen los estándares profesionales más altos posibles.
4. Juicio. Los ingenieros de software mantendrán
integridad e independencia en su juicio profesional.
7. el código de ética del Ingeniero de software
Los ingenieros de software deberán comprometerse a convertir el
análisis, especificación, diseño, implementación, pruebas y
mantenimiento de software en una profesión respetada y benéfica, los
ingenieros de software deberán sujetarse a los ocho principios
siguientes:

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.
6. Profesión. Los ingenieros de software incrementarán la integridad y
reputación de la profesión congruentemente con el interés social.
7. Colegas. Los ingenieros de software apoyarán y serán justos con sus
colegas.
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.
8. El concepto de conocimientos de la Ingeniería de
software SWEBOK
¿Cuáles son los objetivos del proyecto?
En la edición de 2014 (v.3), se definen 15 áreas de conocimiento:
 Requisitos de Software
 Diseño de Software
 Construcción de Software
 Pruebas de Software
 Mantenimiento de Software
 Gestión de la configuración
 Gestión de la Ingeniería de Software
 Proceso de Ingeniería de Software
 Herramientas y métodos de la Ingeniería de Software
 Calidad del Software
 Práctica Profesional de la Ingeniería de Software
 Economía de la Ingeniería de Software
 Fundamentos de Computación
 Fundamentos Matemáticos
 Fundamentos de Ingeniería
8. El concepto de conocimientos de la Ingeniería de
software SWEBOK
¿Cuáles son los objetivos del proyecto?
En la edición de 2014 (v.3), se definen 15 áreas de conocimiento:
Las disciplinas relacionadas son:
 Computer Engineering
 Computer Science
 General Management
 Mathematics
 Project Management
 Quality Management
 Systems Engineering
8. El concepto de conocimientos de la Ingeniería de
software SWEBOK
8. El concepto de conocimientos de la Ingeniería de
software SWEBOK
8. El concepto de conocimientos de la Ingeniería de
software SWEBOK
8. El concepto de conocimientos de la Ingeniería de
software SWEBOK
8. El concepto de conocimientos de la Ingeniería de
software SWEBOK
La Ingeniería del Software es una ingeniería muy joven que necesitaba:
 Definirse a sí misma: ¿Cuáles son las áreas de conocimiento que la
comprenden?
SWEBOK: Software Engineering Body of knowledge
 Definir los procesos que intervienen en el desarrollo, mantenimiento y
operación del software

ISO/IEC 12207: Procesos del ciclo de vida del software


 De las mejores prácticas, extraer modelos de cómo ejecutar esos procesos para
evitar los problemas de la “crisis del software”
CMM / CMMI
ISO/IEC TR 15504
 Definir estándares menores para dibujar criterios unificadores en requisitos,
pruebas, gestión de la configuración, etc.
IEEE 830 - IEEE 1362 - ISO/IEC 14764 …
8. El concepto de conocimientos de la Ingeniería de
software SWEBOK
El proyecto SWEBOK (Software Engineering Body of Knowledge)
comenzó sus actividades de manera efectiva dentro del SWECC1
en 1997 (aunque el comité SWECC se creó en 1993).
En el proyecto también están representados:
los dos principales organizaciones de estandarización en
Ingeniería del Software: IEEE e ISO/IEC JTC1/SC/.
El cuerpo de conocimiento identificado por el proyecto SWEBOK
se ha configurado como el estudio más relevante y como la
referencia de más autoridad en toda la comunidad informática
para la acotación y descripción de los conocimientos que
configuran la Ingeniería del software.
9. Caso Practico

a) Definir grupo de trabajo


b) Discuta en grupo el proyecto (software desarrollado) que lo van a someter a
prueba de software
c) Defina el cronograma preliminar para realizar la prueba del software
Muchas Gracias!!!
mhuapaya.chu@gmail.com

También podría gustarte