Download - Calidad de Desarrollo de Software
-
8/8/2019 Calidad de Desarrollo de Software
1/68
Calidad en el desarrollo deSoftware
Ing. Alonso Morales Loaiza
-
8/8/2019 Calidad de Desarrollo de Software
2/68
Objetivo de la Materia
Introducir al estudiante a lasIntroducir al estudiante a lasmetodologas existentes en lametodologas existentes en laIndustria del Software para asegurarIndustria del Software para asegurar
la calidad de los proyectos.la calidad de los proyectos. Desarrollar las habilidades delDesarrollar las habilidades del
estudiante para medir sus procesosestudiante para medir sus procesos
personales de Softwarepersonales de Software
-
8/8/2019 Calidad de Desarrollo de Software
3/68
Podemos iniciar?
-
8/8/2019 Calidad de Desarrollo de Software
4/68
Autodiagnstico
De maneraindividual defina lossiguientesconceptos:
Calidad Software
Desarrollo
Proceso
Paradigma
Metodologa
UML Madurez
Capacidad
Modelo
-
8/8/2019 Calidad de Desarrollo de Software
5/68
Retroalimentacin
En equipos de 4personas discutasus definiciones ylleguen a unconsenso.
-
8/8/2019 Calidad de Desarrollo de Software
6/68
Contenido Temtico
1. Ingeniera de Software y Calidad
1.1 Conceptos bsicos de Calidad
1.2 Factores que determinan la calidad del
Software1.3 Caractersticas del Software
1.4 Modelos de desarrollo de Software
1.5 Importancia de las diferentes etapasen el Desarrollo de Software
-
8/8/2019 Calidad de Desarrollo de Software
7/68
Contenido Temtico
2. Mtricas y Procesos (PSP)
2.1 Introduccin al Personal SoftwareProcess (PSP)
2.2 Estructura del PSP2.3 Mtricas del PSP
-
8/8/2019 Calidad de Desarrollo de Software
8/68
Contenido Temtico
3. CMM-I Capability Maturity Model -Integration
3.1 Inmadurez y madurez en los procesos deCreacin de Software
3.2 Los cinco niveles de madurez en los Procesosde Creacin de Software
3.3 Definicin operacional del modelo CMM
3.4 Porqu usar el modelo CMM I?
-
8/8/2019 Calidad de Desarrollo de Software
9/68
Unidad IIngeniera de Software y Calidad
-
8/8/2019 Calidad de Desarrollo de Software
10/68
Objetivo de la Unidad
Introducir al alumno en el anlisis delos diferentes modelos de desarrollode Software, as como su relacin con
los conceptos bsicos de calidad en eldesarrollo de sistemas.
-
8/8/2019 Calidad de Desarrollo de Software
11/68
1. Ingeniera de SW y Calidad1.1 Conceptos Bsicos de Calidad
-
8/8/2019 Calidad de Desarrollo de Software
12/68
1. 1 Conceptos bsicos decalidad Clasifique las siguientes marcas enbase a su calidad:
-
8/8/2019 Calidad de Desarrollo de Software
13/68
1. 1 Conceptos bsicos decalidad Calidad
Conjunto de propiedades y decaractersticas de un producto o servicio,que le confieren aptitud para satisfacer
unas necesidades explcitas o implcitas.(Norma ISO 9000:8402)
Caracterstica o atributo de algo( AmericanHeritage Dictionary).
-
8/8/2019 Calidad de Desarrollo de Software
14/68
1. 1 Conceptos bsicos decalidad Calidad
Caractersticasmensurables: cosasque se pueden
comparar conestndaresconocidos como:longitud , color,maleabilidad.
-
8/8/2019 Calidad de Desarrollo de Software
15/68
1. 1 Conceptos bsicos decalidad Control de Calidad
Conjunto de tcnicasyConjunto de tcnicasyactividadesde carcteractividadesde carcter
operativo,utilizadasparaoperativo,utilizadasparaverificarlosrequerimientosverificarlosrequerimientosrelativosalacalidaddelrelativosalacalidaddel
productooservicioproductooservicio
-
8/8/2019 Calidad de Desarrollo de Software
16/68
1. 1 Conceptos bsicos decalidad Qu control de
calidad aplicaras,por ejemplo, paracomprar un par dezapatos deportivos(tennis)?
-
8/8/2019 Calidad de Desarrollo de Software
17/68
1. 1 Conceptos bsicos decalidad Garanta de calidad
Conjuntode accionesplanificadasy sistemticas
necesariasparaproporcionarlaconfianzaadecuadade que unproductooserviciosatisface los
requerimientosdadossobrecalidad.
-
8/8/2019 Calidad de Desarrollo de Software
18/68
1. 1 Conceptos bsicos decalidad Garanta de calidad
Ensoftware esundiseodeaccionesplanificado y
sistemtico, que se requiere paraasegurarlacalidaddelsoftware.
-
8/8/2019 Calidad de Desarrollo de Software
19/68
1. 1 Conceptos bsicos decalidad Calidad del Software
Es el grado con el que unsistema, componente o proceso
cumple con los requerimientos ylas necesidades o expectativasdel cliente o usuario (IEEE
610/1990)
-
8/8/2019 Calidad de Desarrollo de Software
20/68
1. 1 Conceptos bsicos decalidad Calidad del Software
Concordancia del software producidocon los requerimientos explcitamente
establecidos, con los estndares dedesarrollo prefijados y con losrequerimientos implcitos noestablecidos formalmente que desea
el usuario.( Pressman, 2006).
-
8/8/2019 Calidad de Desarrollo de Software
21/68
1. Ingeniera de SW y Calidad1.2 Factores que determinan la calidad del SW
-
8/8/2019 Calidad de Desarrollo de Software
22/68
1. 2 Factores que determinan lacalidad del software
a) Factores que se pueden medirdirectamente (objetivo: cualitativo)
b) Factores que se pueden medirindirectamente (subjetivo)
-
8/8/2019 Calidad de Desarrollo de Software
23/68
1. 2 Factores que determinan lacalidad del software
Factores de Calidad de McCall
Caractersticas Operativas
Capacidad de soportar cambios
Adaptabilidad a nuevos entornos
-
8/8/2019 Calidad de Desarrollo de Software
24/68
Caractersticas Operativas
Correccin
HACE LO QUE
QUIERO?Hasta donde satisface un programauna especificacin y logra los
objetivos del cliente.
-
8/8/2019 Calidad de Desarrollo de Software
25/68
Caractersticas Operativas
Fiabilidad
Lo hace de forma
fiable todo el tiempo?Hasta donde se puede esperar queun programa lleve a cabo su funcinpretendida con la exactitud requerida
-
8/8/2019 Calidad de Desarrollo de Software
26/68
Caractersticas Operativas
Eficiencia
Se ejecutar en mi
HW lo mejor que sepueda?La cantidad de recursos informticos
y cdigo necesaria para que unprograma realice su funcin.
-
8/8/2019 Calidad de Desarrollo de Software
27/68
Caractersticas Operativas
Seguridad
Es seguro?
Hasta donde se puede controlar elacceso al software o a los datos porpersonas no autorizadas.
-
8/8/2019 Calidad de Desarrollo de Software
28/68
Caractersticas Operativas
Usabilidad
Es fcil de manejar?El esfuerzo necesario para aprender,operar , preparar datos de entrada einterpretar salidas (resultados) de unprograma.
-
8/8/2019 Calidad de Desarrollo de Software
29/68
Capacidad de soportarcambios
Facilidad de mantenimiento
Puedo corregirlo?
El esfuerzo necesario para localizar yarreglar un error en un programa.
-
8/8/2019 Calidad de Desarrollo de Software
30/68
Capacidad de soportarcambios
Flexibilidad
Puedo cambiarlo?
El esfuerzo necesario para modificarun programa operativo.
-
8/8/2019 Calidad de Desarrollo de Software
31/68
Capacidad de soportarcambios
Facilidad de prueba
Puedo probarlo?
El esfuerzo necesario para probar unprograma y asegurarse de que realizala funcin pretendida.
-
8/8/2019 Calidad de Desarrollo de Software
32/68
Adaptabilidad a nuevosentornos
Portabilidad
Podr usarlo en otramquina?El esfuerzo necesario para transferirel programa de un entorno desistema de HW y/o SW a otro.
-
8/8/2019 Calidad de Desarrollo de Software
33/68
-
8/8/2019 Calidad de Desarrollo de Software
34/68
Adaptabilidad a nuevosentornos
Interoperabilidad
Podr hacerlo
interactuar con otrosistema?El esfuerzo necesario para acoplar unsistema con otro.
-
8/8/2019 Calidad de Desarrollo de Software
35/68
1. Ingeniera del SW y Calidad1.3 Caractersticas del SW
-
8/8/2019 Calidad de Desarrollo de Software
36/68
1.3 Caractersticas delSoftware
Crisis del SW
Software
Caractersticas del SW
-
8/8/2019 Calidad de Desarrollo de Software
37/68
La complejidad delsoftware producido
y demandado se
incrementa
constantemente.
La complejidad delsoftware producido
y demandado se
incrementa
constantemente.
La industria del
software no ha
podido satisfacer la
demanda.
La industria del
software no ha
podido satisfacer la
demanda.
Crisis del Software
-
8/8/2019 Calidad de Desarrollo de Software
38/68
1. Baja Calidad
del Software.
2. Tiempo y
PresupuestoExcedido.
3. Confiabilidad
Cuestionable.
4. AltosRequerimientos
de Personal
para desarrollo
y
1. Baja Calidad
del Software.
2. Tiempo y
PresupuestoExcedido.
3. Confiabilidad
Cuestionable.
4. AltosRequerimientos
de Personal
para desarrollo
y
Sntom
as
Sntom
as
Crisis del Software
-
8/8/2019 Calidad de Desarrollo de Software
39/68
1. Aumento del poder computacional.
2. Reduccin del costo del hardware.
3. Rpida obsolescencia de hardware
y software.
1. Aumento del poder computacional.
2. Reduccin del costo del hardware.
3. Rpida obsolescencia de hardware
y software.
Factores
de
influencia
Factores
de
influencia
Crisis del Software
-
8/8/2019 Calidad de Desarrollo de Software
40/68
4. Aceptacin de la computarizacin en lasempresas.
5. Incremento en el nmero de usuarios delos sistemas de software.
6. Tipo de usuario no homogneo aun ensistemas hechos a la medida.
4. Aceptacin de la computarizacin en lasempresas.
5. Incremento en el nmero de usuarios delos sistemas de software.
6. Tipo de usuario no homogneo aun ensistemas hechos a la medida.
Factores
de
influencia
Factores
de
influencia
Crisis del Software
-
8/8/2019 Calidad de Desarrollo de Software
41/68
7. Personal de desarrollado y mantenimientodiferente.
8. La magnitud del proyecto impacta en:a. Tiempo costo y nmero de desarrolladores,
b. Control administrativo y detalles tcnicos
9. Aumento en el conocimiento del problema.
7. Personal de desarrollado y mantenimientodiferente.
8. La magnitud del proyecto impacta en:a. Tiempo costo y nmero de desarrolladores,
b. Control administrativo y detalles tcnicos
9. Aumento en el conocimiento del problema.
Factores
de
influencia
Factores
de
influencia
Crisis del Software
-
8/8/2019 Calidad de Desarrollo de Software
42/68
10. Cambios en el entorno:a. Tecnolgicos (Internet,redes,ERP,CRM,SCM..)
b. Econmicos (crisis econmicas,globalizacin,..)
c. Sociales (nuevas necesidades, costumbresnuevas,..)
d.
Ambientales (...)e. ...
10. Cambios en el entorno:a. Tecnolgicos (Internet,redes,ERP,CRM,SCM..)
b. Econmicos (crisis econmicas,globalizacin,..)
c. Sociales (nuevas necesidades, costumbresnuevas,..)
d.
Ambientales (...)e. ...
Factores
de
influencia
Factores
de
influencia
Crisis del Software
-
8/8/2019 Calidad de Desarrollo de Software
43/68
1. Cmo desarrollar software?
2. Cmo dar mantenimiento al crecientevolumen de software?
3. Cmo poder mantenerse al corriente a
la creciente demanda de software?4. Porqu lleva tanto tiempo terminar los
programas?
5. Porqu tan caro?
6. Porqu no podemos encontrar todoslos errores?
7. Porqu es tan difcil evaluar el avance?
1. Cmo desarrollar software?
2. Cmo dar mantenimiento al crecientevolumen de software?
3. Cmo poder mantenerse al corriente a
la creciente demanda de software?4. Porqu lleva tanto tiempo terminar los
programas?
5. Porqu tan caro?
6. Porqu no podemos encontrar todoslos errores?
7. Porqu es tan difcil evaluar el avance?
Preguntas
-
8/8/2019 Calidad de Desarrollo de Software
44/68
1. Cmo
desarrollan el
software en
las
organizacione
s?
2. Los
desarrolladores de hoy en
da estn
consientes del
problema del
1. Cmo
desarrollan el
software en
las
organizacione
s?
2. Los
desarrolladores de hoy en
da estn
consientes del
problema del
Preguntas por equipo:
-
8/8/2019 Calidad de Desarrollo de Software
45/68
Producto de software
Conjunto de elementos de software (programas,
tablas, reportes, documentacin, etc.) que
tienen un propsito especfico y completo desde
el punto de vista del usuario, de tal manera quela sustraccin de cualquiera de los elementos
del conjunto dara como resultado que el
propsito no se cumpliera.
Producto de software
Conjunto de elementos de software (programas,
tablas, reportes, documentacin, etc.) que
tienen un propsito especfico y completo desde
el punto de vista del usuario, de tal manera quela sustraccin de cualquiera de los elementos
del conjunto dara como resultado que el
propsito no se cumpliera.
Programas
Estructura de datos + algoritmos
Programas
Estructura de datos + algoritmos
1.3.1 Software
-
8/8/2019 Calidad de Desarrollo de Software
46/68
a) Instrucciones (programas de computadora) que
cuando se ejecutan proporcionan la funcin y elrendimiento deseados
b) Estructuras de datos que permiten a los
programas manipular adecuadamente la
informacin
c) Documentos que describen la operacin y uso
a) Instrucciones (programas de computadora) que
cuando se ejecutan proporcionan la funcin y elrendimiento deseados
b) Estructuras de datos que permiten a los
programas manipular adecuadamente la
informacin
c) Documentos que describen la operacin y uso
1.3.1 Software
-
8/8/2019 Calidad de Desarrollo de Software
47/68
Productos de Software
Productosgenricos (sw demostrador)
Desarrollados poruna organizacinpara ser vendidosal mercado.
-
8/8/2019 Calidad de Desarrollo de Software
48/68
Productos de Software
Productos hechos a medida
Desarrollados bajo pedido a unaempresa desarrolladora de
software.
-
8/8/2019 Calidad de Desarrollo de Software
49/68
Productos de Software
La mayor parte del gasto del softwarees en productos genricos, pero hayms esfuerzo en el desarrollo de los
sistemas hechos a medida.
-
8/8/2019 Calidad de Desarrollo de Software
50/68
Como
ProductoComo
Proceso
ComoProyecto
Como
ProductoComo
Proceso
ComoProyecto
1.3.2 Caractersticas del SW
-
8/8/2019 Calidad de Desarrollo de Software
51/68
Tiene definidas una fecha deinicio de desarrollo y una fechaesperada o estimada de
terminacin.
Apoya alguna funcin del usuariohacia el cual est dirigido.
Tiene definidas una fecha deinicio de desarrollo y una fechaesperada o estimada de
terminacin.
Apoya alguna funcin del usuariohacia el cual est dirigido.
PRODUCTO
-
8/8/2019 Calidad de Desarrollo de Software
52/68
Se desarrolla y no se fabricacomo otros productos.
No se estropea.
No se desgasta.
Hecho por humanos.
Se desarrolla y no se fabricacomo otros productos.
No se estropea.
No se desgasta.
Hecho por humanos.
Diferencias como producto
-
8/8/2019 Calidad de Desarrollo de Software
53/68
Atributos de los productos de SW
Facilidad de mantenimiento Debe ser posible que el software evolucione y
que siga cumpliendo con sus especificaciones. Confiabilidad
El software no debe causar daos fsicos o
econmicos en el caso de fallas. Eficiencia
El software no debe desperdiciar los recursosdel sistema.
Utilizacin adecuada
El software debe contar tanto con una interfazde usuario adecuada como con unadocumentacin clara yprecisa.
I t i d l At ib t d l
-
8/8/2019 Calidad de Desarrollo de Software
54/68
Importancia de los Atributos delProducto de Software La importancia relativa de las caractersticas
depende del tipo de producto y en el ambiente enel que ser utilizado.
En algunos casos, algunos atributos puedendominar. En sistemas de seguridad crticos de tiempo real, los
atributos clave pueden ser la confiabilidad y la eficiencia.
Los costos tienden a crecer exponencialmente sise requieren altos niveles de alguna caracterstica.
-
8/8/2019 Calidad de Desarrollo de Software
55/68
Costos
Eficiencia
Costos de eficiencia
-
8/8/2019 Calidad de Desarrollo de Software
56/68
Mantenibilidad Usabilidad
Confiabilidad
Reusabilidad Portabilidad
Mantenibilidad Usabilidad
Confiabilidad
Reusabilidad Portabilidad
Calidad
Costos
Productividad
Tiempo
Metas de un producto
-
8/8/2019 Calidad de Desarrollo de Software
57/68
Externas
Internas
Del producto
Del proceso
Externas
Internas
Del producto
Del proceso
Clasificacin del Software
-
8/8/2019 Calidad de Desarrollo de Software
58/68
Correctividad, Confiabilidad, Robustez. Desempeo (performance)
Amigabilidad (Uso amigable)
Verificabilidad (Facilidad de verificar)
Mantenibilidad. Facilidad de mantenimiento: Para su reparacinp REPARABILIDAD
Para su evolucinp VIGENCIA
Reusabilidad
Portabilidad
Comprensibilidad (Comprehensibility):Facilidad de entenderse
Interoperabilidad
Correctividad, Confiabilidad, Robustez. Desempeo (performance)
Amigabilidad (Uso amigable)
Verificabilidad (Facilidad de verificar)
Mantenibilidad. Facilidad de mantenimiento: Para su reparacinp REPARABILIDAD
Para su evolucinp VIGENCIA
Reusabilidad
Portabilidad
Comprensibilidad (Comprehensibility):Facilidad de entenderse
Interoperabilidad
Propiedades del Software
Formas de categorizar el
-
8/8/2019 Calidad de Desarrollo de Software
59/68
Por tipo de Aplicacin o Disciplina.
Por tipo de Arquitectura
Por rea Funcional
Por nivel Jerrquico
Por tipo de Estructura Organizacional
Por Tiempo de Respuesta
Por tipo de Aplicacin o Disciplina.
Por tipo de Arquitectura
Por rea Funcional
Por nivel Jerrquico
Por tipo de Estructura Organizacional
Por Tiempo de Respuesta
Formas de categorizar elsoftware:
-
8/8/2019 Calidad de Desarrollo de Software
60/68
Para sistemas
Sistemas tiempo real
Negocios Ingeniera/cientfico
Empotrado (Embebido)
PCs
Inteligencia artificial Aplicaciones Web.
Para sistemas
Sistemas tiempo real
Negocios Ingeniera/cientfico
Empotrado (Embebido)
PCs
Inteligencia artificial Aplicaciones Web.
Aplicacin o disciplina
-
8/8/2019 Calidad de Desarrollo de Software
61/68
Stand Alone
Main Frame
Red: LAN, WAN
Internet
Intranet
Extranet
Stand Alone
Main Frame
Red: LAN, WAN
Internet
Intranet
Extranet
Tipo de arquitectura
-
8/8/2019 Calidad de Desarrollo de Software
62/68
Directivo
Administracin
Conocimiento
Operacional
Contabilidad Finanzas Ventas
Mercadotecnia
RecursosHumanos
Manufactura
Niveles o reas funcionales
-
8/8/2019 Calidad de Desarrollo de Software
63/68
Directivo Sistema Soporte Ejecutivo (SSE)
Administracin Sistema Soporte de Decisiones (SSD)
Sistema Informacin Admo. (SIA)
Conocimiento Sistema de Automatizacin de Oficinas. (SAO) /Apoyo Trabajadores del Conocimiento (SATC)
Operacional Sistema de Transaccin de Operaciones(STO)
Niveles o reas funcionales
-
8/8/2019 Calidad de Desarrollo de Software
64/68
Sistema de Transaccin de Operaciones
Sistema de Apoyo a Trabajadores delConocimiento
Sistema para la Automatizacin de Oficinas
Sistema de Informacin Administrativo Sistema para Soporte de Decisiones
Sistema de Soporte Ejecutivo
Sistema de Soporte de Grupo
Sistema de Soporte Inteligente
Sistema de Transaccin de Operaciones
Sistema de Apoyo a Trabajadores delConocimiento
Sistema para la Automatizacin de Oficinas
Sistema de Informacin Administrativo Sistema para Soporte de Decisiones
Sistema de Soporte Ejecutivo
Sistema de Soporte de Grupo
Sistema de Soporte Inteligente
Nivel Jerrquico
-
8/8/2019 Calidad de Desarrollo de Software
65/68
Sistemas Operacionales Orientado hacia transacciones diarias.
Sistemas Tcticos Orientados a apoyar actividades de mandos
intermedios: Estadsticas/ Reportes deexcepcin/Reportes Peridicos/AnlisisComparativos/Proyecciones/DeteccinTemprana de Problemas/DecisionesRutinarias.
Sistemas estratgicos
Sistemas Operacionales Orientado hacia transacciones diarias.
Sistemas Tcticos Orientados a apoyar actividades de mandos
intermedios: Estadsticas/ Reportes deexcepcin/Reportes Peridicos/AnlisisComparativos/Proyecciones/DeteccinTemprana de Problemas/DecisionesRutinarias.
Sistemas estratgicos
Actividad Soportada
-
8/8/2019 Calidad de Desarrollo de Software
66/68
Sistemas de InformacinDepartamentales
Sistemas de InformacinEmpresariales
Sistemas de Informacin
Interorganizacionales
Sistemas de InformacinDepartamentales
Sistemas de InformacinEmpresariales
Sistemas de Informacin
Interorganizacionales
Estructura organizacional
-
8/8/2019 Calidad de Desarrollo de Software
67/68
Tiempo Real
En lnea
Batch
Tiempo Real
En lnea
Batch
Tiempo de Respuesta
-
8/8/2019 Calidad de Desarrollo de Software
68/68
Caractersticas
importantes:
Productividad Calendarizacin
Visibilidad
Caractersticas
importantes:
Productividad Calendarizacin
Visibilidad
PROCESO