sqa versión 2: la calidad en el proceso y el producto
TRANSCRIPT
SQAPRESENTATION
2
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
Intuitively, when thinking about software, we imagine
an accumulation of programming language instructions
and statements or development tool instructions, that
together form a program or software package. This
program or software package is usually referred to as
the “code”.
SoftwareDefiniciones y acepciones
¿Is it enough to take care of the code in
order to assure the quality of the services
provided by the software program? Are
additional elements necessary to assure
their quality and thus assure the operational
success of the software system?
3
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
SOFTWARE SISTEMAS DE INFORMACIÓN
PROGRAMACIÓN, DESARROLLO, PRODUCCIÓN
Como anglicismo
Voz ingl.
1. m. Inform. Conjunto de programas, instruccion
es y reglas informáticas para
ejecutar ciertas tareas en una computadora.
Origen
Préstamo del inglés software, compuesto
por soft ‘blando’ y ware ‘utensilios, objetos’. Término
creado por los ingenieros informáticos americanos
por analogía a hardware (V.).
Se considera que el software
es el equipamiento lógico e
intangible de un ordenador.
En otras palabras, el concepto
de software abarca a todas
las aplicaciones
informáticas, como los
procesadores de textos, las
planillas de cálculo y los
editores de imágenes.
4
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
¿Qué nos
diferencia de los
que van
adelante?
Mientras ellos prueban para
que falle, nosotros probamos
para que funcione
5
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
6
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
Ingeniería de SoftwarePensando la diferencia entre disciplina y metodología
La concepción y aplicación
I+D+i al proceso de
producción de software.
La formulación y aplicación de buenas prácticas al proceso de
Desarrollo validadas en la
calidad y funcionamiento del
producto
SEI, 2000
establecimiento de los
principios y métodos de la
ingeniería a fin de obtener
software de modo
rentable.
que sea funcional y
trabaje en máquinas
reales
Bauer, 1972
es el estudio de los
principios y metodologías
para desarrollo y
mantenimiento de sistemas
de software.
Su resultado es el
comportamiento no el
producto software
Zelkovitz, 1978
La aplicación de un enfoque
sistemático, disciplinado y
cuantificable al desarrollo,
funcionamiento y
mantenimiento del software.
Es decir, la aplicación de
ingeniería al software.
IEEE, 1993
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.
Se conoce también como
desarrollo de software o
producción de software
Bohem, 1976
The engineering field has taken on many new disciplines as our scientific knowledge has grown. The latest discipline is software engineering. According to the Institute of Electrical and Electronics Engineers
(IEEE), software engineering means applying the principles of engineering to the software development field. Software engineering differs from other branches of engineering in that professionals are building
an intangible structure and not a tangible one. Since software is embedded in the machines used in various industries, though, malfunctioning software can actually have tangible effects. With software used
in everything from medical equipment to airplanes, the end result of faulty software can indeed be loss of life.
The Software Engineering Process
When software projects require engineering, the process begins long before the product is designed – and it continues long afterward. It begins with a thorough study of the software
requirements. Some requirements involve the functions the program needs to carry out. The program may, for example, need to verify that a user is authorized to access it. Other
requirements involve constraints, for example, systems already in place.
“As a discipline, software
engineering is a way to do, not
do…”
¿What is Software
Quality?In the User’s eyesight quality software
The degree to which a system, component or process meets the
requirements and expectations of the team in charge of its
development
Software quality is the degree of conformance to explicit or implicit
requirements and expectations.
Conformance to explicitly stated functional and performance requirements
explicitly documented development standards, and implicit characteristics
that are expected of all professionally developed software. Pressman’s
definition
The degree to which a system, component, or process meets specified
requirements. The degree to which a system, component, or process
meets customer or user needs or expectations. IEEE definition
The totality of functionality and features of a software product that bear on its ability to satisfy stated or implied
needs. As with any definition, the definition of ‘software quality’ is also varied and debatable. Some even say that
‘quality’ cannot be defined and some say that it can be defined but only in a particular context. Some even state
confidently that ‘quality is lack of bugs’. Whatever the definition, it is true that quality is something we all aspire to.
Software quality has many dimensions.
Explanation:
•Explicit: clearly defined and documented
•Implicit: not clearly defined and
documented but indirectly suggested
•Requirements: business/product/software
requirements
•Expectations: mainly end-user expectations
Note: Some people tend to accept quality as
compliance to only explicit requirements and
not implicit requirements. We tend to think
of such people as lazy.
www.companyname.com© 2016 Motagua PowerPoint Multipurpose Theme. All Rights Reserved.
La totalidad de funcionalidades y características
de un producto de software que soportan su
capacidad para satisfacer necesidades
declaradas o implícitas. Como con cualquier
definición, la definición de "calidad del software"
también es variada y discutible. Algunos incluso
dicen que la "calidad" no se puede definir y
algunos dicen que se puede definir, pero sólo en
un contexto particular. Algunos incluso estado
con confianza que "la calidad es la falta de
errores". Sea cual sea la definición, es cierto que
la calidad es algo a lo que todos aspiramos. La
calidad del software tiene muchas dimensiones
¿What is Software Quality?
En la industria del software se pueden evidenciar necesidades de satisfacción del cliente de productos o servicios de
software, de reducción de recursos invertidos en proyectos de software y de la efectiva asignación de recursos
humanos. Si hablamos de la calidad del software, una de las primeras definiciones aseguraba que “la calidad de un
programa o sistema se evaluaba de acuerdo al número de defectos por cada mil líneas de código.
(KLOC: Kilo Lines Of Code)”. 5
10
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
IdeaEs una buena
oportunidad hacer que
mi proceso sea validado
por expertos
TiempoSe prefiere entregar el
software a tiempo antes
de revisar cada fase
para reducer errores
El buen usuario, mi tranquilidad
Esta entre el que acepta haber cometido
imprudencias para provocar fallos y el que
propone.
MitoPorque muchos hablan
de SQA, pero pocos
quieren tener tiempo
para ello
El aseguramiento de calidad del
software es el conjunto de
actividades planificadas y
sistemáticas necesarias para generar
un patrón de comportamiento en el
proceso de tal manera que se logre
aportar la confianza necesaria para
evidenciar que el producto logrará
satisfacer los requisitos y
requerimientos
SQA
12
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
SQA puede diseñarse para un proceso, para un proyecto, para un
producto o para una organización.
14
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
SE
SQA
ANÁLISIS
DESARROLLODISEÑO PRUEBA
S
ENTREGA Y
MANTENIMIENTO
END
SQA como
subdisciplina¿Qué es una subdiscipline?
Algunos prefieren decir garantía de calidad en
vez de aseguramiento. En estos casos,
Garantía, puede confundir con garantía de
productos y entonces no sería una
subdisciplina; mientras que Aseguramiento
pretende dar confianza en que el producto
tiene calidad por la manera como sus
creadores se comportaron en su elaboración.
SQA se presenta formalmente como una subdisciplina
de la Ingeniería del software. La Ingeniería del
software ocurre desde antes del inicio del desarrollo
de software, por esto, SQA también se diseña antes.
SQA puede diseñarse para un proceso, para un
proyecto, para un producto o para una organización.
15
La presencia SQA en el proyectoComo subdisciplina está presente en
Herramienta
sY métodos de análisis, diseño,
programación, pruebas, etc.
Mecanismos de medida
(métricas, fórmulas)
InspeccionesTécnicas formales en todos los
pasos del proceso de
desarrollo.
Registros de auditorías y
realización de informes
Documentació
nControl de la documentación
del software y de los cambios
realizados
EstándaresProcedimientos para ajustarse
a los estándares (y dejar claro
cuando se está fuera de ellos)
16
Principios, procesos y estándaresQue comprenden o acompañan el aseguramiento de la calidad del software
Estándar Norma GuíaEvaluación
Metodología Librería de
buenas prácticas
La calidad del producto, junto con la calidad del proceso, es uno de los aspectos más importantes actualmente en el desarrollo de Software. Relacionada con la
calidad del producto, recientemente ha aparecido la familia de normas ISO/IEC 25000, que proporciona una guía para el uso de la nueva serie de estándares
internacionales llamada Requisitos y Evaluación de Calidad de Productos de Software (SQuaRE - System and Software Quality Requirements and Evaluation).
ISO/IEC 25000 constituye una serie de normas basadas en ISO/IEC 9126 y en ISO/IEC 14598 cuyo objetivo principal es guiar el desarrollo de los productos de
software mediante la especificación de requisitos y evaluación de características de calidad.
MV3
17
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
SQAP. Software Quality Assurance Plan
Es la estructura documental sobre la que se refleja el SQA
que se quiere llevar a cabo sobre un proyecto o proceso. Se
incluyen los estándares que se aplicaran, los productos
entregables a revisar, los procedimientos a seguir en la
elaboración de cada fase del proyecto y los hitos para
informar sobre los defectos detectados en el proceso hasta su
corrección.
La o las personas encargadas del SQA se conocen
como Responsables del SQA. Normalmente,
dependiendo del tamaño de la organización, son
personas ajenas al proceso de gestión y desarrollo del
software.
MÉTRICA
V3En el plan “se determina qué actividades debe
realizar el grupo de aseguramiento de calidad
a lo largo de todo el proceso de desarrollo de
software, para asegurar que se están teniendo
en cuenta las propiedades de calidad
especificadas para el sistema en la actividad
identificar las propiedades de calidad.”
19
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
Estándare
s
Propósito
Gestión
Documentació
n
Revisiones
y auditorias
Otros
Elementos del SQAPDe manera genérica, un Plan de Aseguramiento de la Calidad del Software contempla los siguientes elementos
• Organización
• Alcance
• Responsables
• Papel de la
organización
• Actividades
• CVS cubierto
• Actividades de
calidad
• Responsables
• Mínima requerida
• Plan de gestión de la
configuración
• Convenciones
• Métricas
• Glosario
• Requerimientos mínimos
• Otras revisiones
• Reporte de problemas
• Herramientas
• Anexos
20
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
21
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
Calidad en el profesionalLa formación profesional de las personas que actuan
en cada momento del proyecto y sus competencias
para resolver las situaciones previstas e imprevistas
Calidad en el equipoLa manera como las personas logran simbiosis para
sumar a la propuesta de valor de la organización
promoviendo a la vez los intereses profesionales de los
individuos.
Calidad en la organizaciónLa propuesta de valor permite desarrollar la misión,
cumpliendo las expectativas del cliente según
demandas del usuario sin afectar el desarrollo de
las personas que hacen parte de ella.
Calidad en el proceso de
desarrolloRepresentada en la manera como se mide la aplicación de
metodologías, modelos, guías, etc. En el proceso de
desarrollo para considerarlo de calidad
Calidad en el productoMediante la valoración de variables y categorías del
orden cuantitativo y cualitativo que conducen a
caracterizar la calidad del producto
Calidad en el proceso de gestiónRepresentada en la manera como se mide la
aplicación de metodologías, modelos, guías, etc. En el
proceso de gestión para considerarlo de calidad
Sujeto y Objeto en el
SQANo siempre empieza desde los requerimientos
Como el software, al igual que el capital, es el conocimiento incorporado, y puesto que el conocimiento
está inicialmente disperso, el desarrollo del software implícito, latente e incompleto en gran medida, es un
proceso social de aprendizaje. El proceso es un diálogo en el que se reúne el conocimiento y se incluye
en el software para convertirse en software. El proceso proporciona una interacción entre los usuarios y
los diseñadores, entre los usuarios y las herramientas de desarrollo, y entre los diseñadores y las
herramientas de desarrollo [tecnología]. Es un proceso interactivo donde la herramienta de desarrollo se
usa como medio de comunicación, con cada iteración del diálogo se obtiene mayor conocimiento de las
personas involucradas.
Calidad en el proceso
23
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
La Universidad: la teoría y la investigación
Se identifican y abordan los problemas sociales y regionales. Sobre cada
problema detectado, se lanza una acción planificada de atención mediante
la conjunción de tres funciones sustantivas: formación, investigación y
proyección social.
La Industria: la práctica y la realidad
Se identifican las necesidades de productos y servicios. Sobre cada necesidad
se identifica una ruta de atención a través de un proyecto o de la producción del
producto o servicio. Se vincula el personal necesario y su suple temporalmente la
necesidad
SQA en visionesEl tratamiento en la Industria y en la Educación
Calidad en el proceso
25
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
26
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
Calidad en el profesionalLa formación profesional de las personas que actuan
en cada momento del proyecto y sus competencias
para resolver las situaciones previstas e imprevistas
Calidad en el equipoLa manera como las personas logran simbiosis para
sumar a la propuesta de valor de la organización
promoviendo a la vez los intereses profesionales de los
individuos.
Calidad en la organizaciónLa propuesta de valor permite desarrollar la misión,
cumpliendo las expectativas del cliente según
demandas del usuario sin afectar el desarrollo de
las personas que hacen parte de ella.
Calidad en el proceso de
desarrolloRepresentada en la manera como se mide la aplicación de
metodologías, modelos, guías, etc. En el proceso de
desarrollo para considerarlo de calidad
Calidad en el productoMediante la valoración de variables y categorías del
orden cuantitativo y cualitativo que conducen a
caracterizar la calidad del producto
Calidad en el proceso de gestiónRepresentada en la manera como se mide la
aplicación de metodologías, modelos, guías, etc. En el
proceso de gestión para considerarlo de calidad
Sujeto y Objeto en el
SQANo siempre empieza desde los requerimientos
Calidad en el producto
El software de computadora se ha convertido en el
alma mater. Es la máquina que conduce a la toma de
decisiones comerciales. Sirve de base para la
investigación científica moderna y de resolución de
problemas de ingeniería. Es el factor clave que
diferencia los productos y servicios modernos. Está
inmerso en sistemas de todo tipo: de transportes,
médicos, de telecomunicaciones, militares, procesos
industriales, entretenimientos, productos de oficina ..., la
lista es casi interminable. El software es casi ineludible
en un mundo moderno. A medida que nos adentremos
en el siglo XXI, será el que nos conduzca a nuevos avances
en todo, desde la educación elemental a la ingeniería
genética.
-(Pressman 1999, citado por Pressman 2005)
El Software es un producto intangible
compuesto de programas, datos y
documentos que, en conjunto, funcionan
en una computadora real (dispositivo
electrónico que permite su funcionamiento)
después de haber cerrado el proceso de
desarrollo mediante un trabajo sistemático.
No se deteriora, no se
gasta, no se agota, no
se fabrica en sentido
tradicional
Se trasciende el
concepto de programa,
de aplicativo, de
algoritmo
computacional
Deberá ser probado y
alojado en un
dispositivo electrónico
que permita su
funcionamiento
Debió pasar por un
proceso de diseño y
desarrollo sistemático y
estructurado
Calidad en el producto
29
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
30
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
Calidad en el profesionalLa formación profesional de las personas que actuan
en cada momento del proyecto y sus competencias
para resolver las situaciones previstas e imprevistas
Calidad en el equipoLa manera como las personas logran simbiosis para
sumar a la propuesta de valor de la organización
promoviendo a la vez los intereses profesionales de los
individuos.
Calidad en la organizaciónLa propuesta de valor permite desarrollar la misión,
cumpliendo las expectativas del cliente según
demandas del usuario sin afectar el desarrollo de
las personas que hacen parte de ella.
Calidad en el proceso de
desarrolloRepresentada en la manera como se mide la aplicación de
metodologías, modelos, guías, etc. En el proceso de
desarrollo para considerarlo de calidad
Calidad en el productoMediante la valoración de variables y categorías del
orden cuantitativo y cualitativo que conducen a
caracterizar la calidad del producto
Calidad en el proceso de gestiónRepresentada en la manera como se mide la
aplicación de metodologías, modelos, guías, etc. En el
proceso de gestión para considerarlo de calidad
Sujeto y Objeto en el
SQANo siempre empieza desde los requerimientos
¿Qué es un proyecto?
Un proyecto es un esfuerzo temporal que se lleva a
cabo para crear un producto, servicio o resultado
único. La naturaleza temporal de los proyectos indica
un principio y un final definidos. El final se alcanza
cuando se logran los objetivos del proyecto o cuando
se termina el proyecto porque sus objetivos no se
cumplirán o no pueden ser cumplidos, o cuando ya
no existe la necesidad que dio origen al proyecto.
Temporal no necesariamente significa de corta
duración.
-(PMBOK 4th, 2009)
Calidad en la gestión del proyecto
¿Qué es la gestión/dirección de proyectos?
La gestión de proyectos es la aplicación de
conocimientos, habilidades, herramientas y
técnicas a las actividades del proyecto para
cumplir con los requisitos del mismo. Se logra
mediante la aplicación e integración de estos 5
grupos de procesos: iniciación, planificación,
ejecución, seguimiento y control y cierre.
Dirigir o gestionar un proyecto por lo general
implica: identificar requisitos, abordar las
diversas necesidades, inquietudes y
expectativas de los interesados, equilibrar las
restricciones contrapuestas del proyecto
(alcance, calidad, cronograma, presupuesto,
recursos y riesgo)
-(PMBOK 4th, 2009)
Necesidades
1
Proyecto
Realización
2
3
4
5
6
7
Calidad en la gestión del proyecto
Calidad en la gestión del proyecto
34
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
Diferencias
Modelo Metodología Guía Norma EstándarDocumento
normativoAutor o teoría
Seguir
buenas
prácticas.La ingeniería
como disciplina
Hacerlo de
manera
sistemática
cuasi-
secuencial.El proceso como
proceso
Orienta
desde el
conocimiento
y las fases.
Podría…
De estricto
cumplimiento
para el
reconocimiento y
la certificación.
Tendría…
Se evalúa el
nivel de
cumplimiento
para la
acreditación.
Debería…
Explicación de
elementos que
no logran
desarrollarse en
una norma
De soporte
académico e
investigativo
al proceso
36
[email protected]© 2017 UCP. Presentación preparada para la Facultad de Ciencias Básicas e Ingeniería, Especialización en Desarrollo de
Software.
Proceso Producto GestiónProfesiona
lEquipo Organización Servicio
La manera de SQA en cada dimensión
MetodologíasModelos
GuíasBuenas prácticas
Cuerpo de conocimiento
Certificaciones
NormasEstándares
Documentos normativos
CertificacionesEvaluaciones
MetodologíasModelos
GuíasBuenas prácticas
Cuerpo de conocimiento
Certificaciones
Programas de formación
CertificacionesEstímulos
Plan de capacitación
Roles y perfiles
Programas decapacitación
Especializar los equipos por roles
Metas por proyecto
EvaluaciónCertificación
NormalizaciónAcreditación
MetasIndicadores
Nivel de satisfacción del
usuario
¿Tiene más preguntas sobre SQA?
Haga clic en el botón Información y escriba lo que desea saber.
Vaya al curso virtual de SQA