Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Definicin de calidad
Importancia DE LA CALIDAD
Es importante por que producir un software con calidad produce beneficios
tanto para el usuario (clientes) como para los desarrolladores.
Un mala calidad en el producto provoca insatisfaccin y desconfianza del
cliente, adems de que baja la demanda y utilidades.
Qu Determina la Calidad?
Cliente o Usuario
Empresas Certificadoras.
Eficaz
Moda
Novedoso
Innovador
Bsico
Gusto
Costo contenido
Presentacin
Seguridad.
Importancia de la calidad
Satisfaccin
Seguridad
Prestigios
Mejor servicio
Competitividad (nacional, internacional)
Eficiencia
Caractersticas de la calidad
10
Calidad total
Es el estado ms evolucionado dentro de las sucesivas transformaciones
que ha sufrido el trmino calidad a lo largo del tiempo.
Hacer las cosas bien desde la primera vez. Actualmente la calidad se ha
convertido en el culto al cual se adhieren las mentes ms brillantes del mundo.
11
1.
12
Los Trabajadores.
Los Proveedores; y,
Los Clientes.
14
ellos pueden ofrecer mucha informacin valiosa para llevar a cabo de forma
ptima el proceso de mejoramiento continuo.
La definicin de una estrategia asegura que la organizacin est haciendo las
cosas que debe hacer para lograr sus objetivos. La definicin de su sistema
determina si est haciendo estas cosas correctamente.
La calidad de los procesos se mide por el grado de adecuacin de estos a
lograr la satisfaccin de sus clientes (internos o externos).
Es el proceso de alcanzar los objetivos de calidad durante las operaciones.
Para el efecto, se debern desarrollar los siguientes pasos:
a.
b.
c.
d.
e.
f.
g.
Elegir qu controlar.
Determinar las unidades de medicin.
Establecer el sistema de medicin.
Establecer los estndares de performance.
Medir la performance actual.
Interpretar la diferencia entre lo real y el estndar.
Tomar accin sobre la diferencia.
15
Operadores atomicos
++, --, +, -, *, /
& (and), | (xor), << >> (despl.)
Int, double
16
Qu es el Register?
Es aquel que permite trabajar en un solo ciclo, con toda la informacin
que contiene, se encuentra en el CPU, y es mucho ms rpido que la variable
local.
Caracteristicas de operadores atomicos
17
Ser amado
Hogar digno
Ser
Bienestar
Satisfaccin de las necesidades bsicas:
1. Fsico
2. Psicolgico
3. Social.
18
19
Socialmente
La ingeniera de software cambia la cultura del mundo debido al extendido uso
de la computadora. El correo electrnico (E-mail), la WWW y la mensajera
instantnea permiten a la gente interactuar en nuevas formas. El software baja
el costo y mejora la calidad de los servicios de salud, los departamentos de
bomberos, las dependencias gubernamentales y otros servicios sociales. Los
20
Su seleccin
La insercin del Aseguramiento de Calidad en el Ciclo de Vida
Administracin de la configuracin
El proceso de produccin de software
21
El control de versiones
La Calidad en la construccin del software
El seguimiento de fallas
Coordinador de la Aplicacin
El principal objetivo del Coordinador de la Aplicacin es lograr que el equipo
entregue un producto funcional de calidad. Sus responsabilidades son:
Coordinar la elaboracin/mantenimiento de los requerimientos, diseo e
implementacin de la capa del dominio de la aplicacin;
Coordinar la definicin y elaboracin de las interfaces entre las capas.
Custodiar y respaldar los artefactos asociadas a la capa del dominio de
la aplicacin.
Explicitar las decisiones de diseo para la capa del dominio de la
aplicacin y sus justificaciones
Coordinar la integracin, custodia y respaldo del software a entregar.
Coordinar la medida de las estadsticas de tamao del producto, fallas y
defectos del software .
Aprovechar plenamente las habilidades y potencialidades de los dems
miembros del equipo.
Manejar no ms de cinco riesgos asociados al desarrollo de la capa del
dominio de la aplicacin y sus interfaces con otras capas.
Docmaster
El principal objetivo del Docmaster es lograr calidad y completitud en los
documentos del desarrollo. Sus responsabilidades son:
Mantener actualizado y de calidad el sitio web de la empresa;
Hacerle el seguimiento a la elaboracin y fechas de entregas de los
documentos generados por el equipo;
Lleva el registro de las reuniones generales (asistentes, decisiones,
justificaciones, acciones a tomar y sus responsables), as como elaborar
y publicar oportunamente sus minutas;
Elaborar y mantener los manuales asociados al desarrollo.
Definir y velar por los estndares que deben cumplir los documentos, en
cuanto a organizacin, redaccin, ortografa y consistencia de
presentacin.
Coordinar la elaboracin del material de apoyo a las presentaciones del
equipo y velar por su calidad.
Manejar no ms de cinco riesgos asociados con la documentacin.
En el pasado se ha encontrado conveniente separar este rol en dos: Editor
Tcnico y Webmaster. Para ello se prev el rol de Asistente al Docmaster. El
Docmaster explicitar qu responsabilidades quiere delegar en su asistente.
23
Miembro de equipo
El principal objetivo de cada miembro del equipo es contribuir a la efectividad
de su equipo. Sus responsabilidades incluyen:
Colaborar proactivamente en el logro de las metas del equipo;
Entregar oportunamente los artefactos que le fueran encomendados;
Cumplir oportuna y disciplinadamente con las tareas que le designen, de
diseo,
programacin,
prueba,
documentacin,
instalacin,
entrenamiento, revisin, administracin de herramientas o sitios web;
24
25
Definicin y experiencia
Guas y estndares
Mtricas
Revisiones
1. Autorevisiones
2. Revisiones informales
3. Revisiones de paso
4. Inspecciones
5. Pruebas
1. Unitarias
2. Mdulo
3. Integracin
4. Sistemas
6. Anlisis y Reporteo
26
Aunque algunas de las actividades de SQA deben ser realizadas por los
desarrolladores e ingenieros de software, puede establecerse un grupo SQA en
la organizacin. Las principales actividades de este grupo son: establecer un
plan de SQA para los proyectos; participar en el desarrollo de la descripcin del
proceso de software del proyecto; revisar las actividades de ingeniera de
software para verificar su ajuste al proceso definido; auditar los productos de
software designados para verificar el ajuste con los definidos como parte del
proceso; asegurar que las desviaciones del trabajo y los productos del software
se documenten y se manejen de acuerdo con un procedimiento establecido y
registrar lo que no se ajuste a los requisitos, e informar a los superiores.
Asimismo, coordina el control y administracin de cambios, aunado a recopilar
y analizar las mtricas del software.
Uno de los elementos importantes del proceso de SQA son las revisiones
tcnicas, las cuales se constituyen en reuniones conducidas por personal
tcnico para personal tcnico, donde se analizan detalladamente los productos
generados, los eventos que surgen en forma imprevista, etc. Para esta etapa el
uso de mtricas es esencial. Una rama importante de esta disciplina es el SQA
estadstico, donde los datos histricos permiten una mejora continua tanto del
producto generado en el proyecto, como de proyectos posteriores. Es
importante aseverar que la ingeniera de pruebas es otro factor fundamental
para el SQA.
Muchas de las actividades a realizar deben estar incorporadas al proceso de
desarrollo utilizado por la organizacin; cabe recalcar que primeramente la
organizacin deber tener definido su proceso o procesos de desarrollo de
software. Aunado a ello, si existen herramientas automatizadas que dan
soporte al SQA para probar aplicaciones y componentes de stas, registrando y
ejecutando casos de prueba, as como generndolos en forma automtica se
logra conseguir una productividad alta.
27
28
29
30
3.2 SPICE
(Programa de simulacin con nfasis en circuitos integrados) fue desarrollado
por la Universidad de California, Berkeley en 1975 por Donald Pederson.
Es un estndar internacional cuyo objetivo es simular circuitos y luego elegir el
tipo de simulacin (temporal, en frecuencia, en continua y parametrico)
SPICE
Software process improvement and capabillity determination.
ISO/IEC ISS04 es un emergente estandar internacinal de evaluacin y
determinacin de la capacidad y mejora continua de procesos de ingeniera de
software con la filosofa de desarrollar un conjunto de medidas de capacidad
estructuradas para todos los procesos del ciclo de vida y para todos los
participantes.
PROPOSITO
DIRIGIDA A:
Adquisidores
Suministradores
Evaluadores
3.3 CMM
CMM
(Capability Maturity Model)
Fue diseado por: Software Engineering Institute (SEI) en Noviembre de 1986.
Qu es?
31
Es un modelo de calida del software que clasifica las empresas de niveles. Este
modelo establece un conjunto de procesos agrupados en reas clave de
proceso (KPA).
Esta destinada a la evaluacin y mejora de procesos.
Propsito
Guiar a las organizaciones en la seleccin de estrategias de mejora
determinando la madurez del proceso actual.
Evolucin
Se investiga con marco de mejora y la calidad de las empresas del resultado
fue la SW-CMM cuya versin 1.0 se publico en 1991 se reviso la 1.2 y hoy es
absoluto.
Caractersticas
Actividades
Compromisos
Capacidad
Medidas y anlisis
Verificacin
CMM
Este trmino se puede referir a:
32
Innovacin organizacional
Modelo de cascada
La implementacin debe de posponerse hasta que los objetivos se hayan
comprendido
Prototipacin
Estudio de factibilidad
Ingeniera de requerimientos
Diseo especificacin
Codificacin
Verificacin
Entrega y mantenimiento
Propsito
El desarrollo o mantenimiento de Software
34
Modelo en espiral
Cuatro tareas:
1. Determinar o fijar objetivos
2. Anlisis de riesgo
Se estudian los riesgos potenciales y se selecciona una o varias
alternativas propuestas para reducir o eliminar los riesgos.
3. Dependiendo del resultado
Tareas de la actividad propia y se prueba
Anlisis de alternativas e identificacin resolucin de riesgos
Dependiendo del resultado de la evolucin de los riesgos, se elige un
modelo para el desarrollo.
4. Planificar
Revisamos todo el hecho, evaluando y con ello decidimos si
continuaremos con las fases siguientes
Modelo lineal
Etapas:
Necesidades
Especificaciones
Anlisis
Diseo
Implementacin
Validacin
Mantenimiento y evaluacin
Son una serie de etapas que comprenden todas las actividades, desde el
momento en que surge la idea hacer un nuevo producto de software.
El seguimiento de la calidad que aborda principalmente 3 reas o tcnicas:
35
Mtodos de ordenamiento
Mtodo de la burbuja
El Ordenamiento de Burbuja (Bubble Sort en ingls) es un sencillo algoritmo
de ordenamiento. Funciona revisando cada elemento de la lista que va a ser
ordenada con el siguiente, intercambindolos de posicin si estn en el orden
equivocado. Es necesario revisar varias veces toda la lista hasta que no se
necesiten ms intercambios, lo cual significa que la lista est ordenada. Este
algoritmo obtiene su nombre de la forma con la que suben por la lista los
elementos durante los intercambios, como si fueran pequeas "burbujas".
Tambin es conocido como el mtodo del intercambio directo.
Dado que solo usa comparaciones para operar elementos, se lo considera un
algoritmo de comparacin, siendo el ms sencillo de implementar.
Una manera simple de expresar el ordenamiento de burbuja en pseudocdigo
es la siguiente:
Para
Si
hasta
haga lo siguiente:
entonces:
Repita mientras
Mtodo SHELL
a[j]=a[j-inc];
j=j-inc;
}
else
break;
} // fin del while //
a[j]=tmp;
} // fin del for //
inc = inc/2;
} // fin del while //
cout <<endl;
for (i=1; i<=n; i++)
cout << a[i] <<endl;
} // fin de shell sort //
38
39
40
41
42
43
44
45
Producto.
El producto resultante de un proyecto de desarrollo de software incluye todos
los elementos (artefactos) creados durante la realizacin del proyecto: modelo,
cdigo fuente, ejecutables, documentacin. Un sistema de software es el
conjunto de todos los artefactos necesarios para representarlo en forma
46
Personas.
Los constructores del proyecto son arquitectos de software, desarrolladores,
encargados de pruebas, personal de gestin; usuarios, clientes, inversores y
otros interesados tambin participan en la construccin. Las personas se vern
afectadas por diversos aspectos organizativos y de gestin del proyecto:
viabilidad del proyecto: el proyecto debe ser posible; una evaluacin temprana
de la viabilidad puede detener un proyecto imposible.
47
Proyecto.
El proyecto es un elemento organizativo a travs del cual se gestiona el
desarrollo de software. El resultado de un proyecto es una versin de un
producto. Se parte de un proyecto inicial con el cual se evala la viabilidad, se
identifican los riesgos y se define el plan de proyecto. La construccin se
realizar en una serie de iteraciones; cada iteracin constituye un mini proyecto
con requisitos, diseo, implementacin y prueba. 3 de 5.
48
Proceso
Un proceso de desarrollo de software es una definicin del conjunto completo
de actividades necesarias para transformar los requerimientos del usuario en
un producto. Un proceso es un patrn o plantilla sobre la cual se definen los
proyectos. Puede decirse que un proyecto es una instancia de un proceso, una
aplicacin concreta a un emprendimiento particular de los principios, forma de
trabajo y recomendaciones de un proceso. Un proceso de desarrollo de
software consiste en la definicin del conjunto completo de actividades
necesarias para convertir los requerimientos del usuario en un conjunto
consistente de artefactos que conforman el producto de software, as como
para convertir los cambios surgidos en los requerimientos en un nuevo conjunto
consistente de artefactos de software [Jacobson2000, cap. 2].
Modelo
Un modelo es una simplificacin de la realidad. Se construyen modelos para
comprender mejor el sistema en desarrollo. El modelado persigue estos
objetivos: visualizar cmo ser el sistema deseado; especificar la estructura
o el comportamiento del sistema; proveer plantillas descriptivas para usar
como gua en la construccin del sistema; documentar las decisiones
adoptadas. Se construyen modelos de los sistemas complejos porque resulta
muy difcil comprender el sistema en su totalidad. La eleccin de modelos tiene
una profunda influencia sobre la forma de enfrentar un problema y como se
llega a la solucin. Es preciso elegir bien los modelos. Los mejores modelos
reflejan la realidad en todos y slo aquellos aspectos importantes para el
sistema en desarrollo. Un modelo puede ser presentado en diferentes niveles
de detalle, desde diferentes perspectivas, a travs de un conjunto de modelos
casi independientes pero coordinados entre s [Booch1999, cap. 1].
Arquitectura
El diseo de arquitectura de un sistema ofrece una visin global del sistema.
Ms formalmente, la arquitectura de un sistema de software es un conjunto de
decisiones significativas acerca de la organizacin de ese sistema, la seleccin
de elementos estructurales e interfaces componentes del sistema junto con su
comportamiento, la composicin de esos elementos estructurales en
subsistemas, y el estilo que orienta esa organizacin. Incluye no slo la
49
Herramientas
Las herramientas usadas en la realizacin de un proyecto de desarrollo de
software es el software usado para automatizar o facilitar las tareas del
personal interviniente en el proyecto. Puede incluir procesadores de palabras,
programas de diagramacin, ambientes integrados de desarrollo o software
especfico para ingeniera de software (herramientas CASE, Computer Aided
Software Engineering, ingeniera de software asistida por computador). El
proceso y las herramientas estn estrechamente relacionados; se eligen o
construyen las herramientas de acuerdo con el proceso de desarrollo a seguir.
Referencias y lecturas recomendadas. El contenido de este documento est
basado en las fuentes citadas a continuacin, cuya lectura o consulta no
pretenden sustituir. Lecturas recomendadas.
50
52
3.
53