Unidad 1 Conceptos básicos de Calidad

Anuncio
UNIDAD 1 Conceptos básicos de Calidad
El estudiante comprenderá la importancia de la calidad para el desarrollo de
software.
1.1 Definición de calidad
La calidad es una propiedad inherente de cualquier cosa que permite que esta
sea comparada con cualquier otra de su misma especie.
La palabra calidad tiene múltiples significados. La calidad de un producto o
servicio es la percepción que el cliente tiene del mismo. Es una fijación mental
del consumidor que asume conformidad con un producto o servicio
determinado, que solo permanece hasta el punto de necesitar nuevas
especificaciones. La calidad es un conjunto de propiedades inherentes a un
objeto que le confieren capacidad para satisfacer necesidades implícitas o
explícitas.
La calidad significa llegar a un estándar más alto en lugar de estar satisfecho
con alguno que se encuentre por debajo de lo que se espera cumpla con las
expectativas. También podría definirse como cualidad innata, característica
absoluta y universalmente reconocida, aunque, en pocas palabras calidad es
hacer las cosas bien a la primera, es decir, que el producto salga bien al menor
costo posible. Es el resultado de una actitud enérgica y comprometida de
esfuerzos sinceros de una ejecución talentosa.
Definición de calidad



Propiedad inherente a una cosa que permite comprarla con la de su
especie.
Propiedad o conjunto de características de un elemento que le dotan de
una ventaja competitiva.
Es la totalidad de los rasgos y características de un producto o servicio
que se sustenta en su habilidad para satisfacer las necesidades
implícitas establecidas.
1
1.2 Definición de calidad de Software
¿Que es la calidad del software?
La calidad del software es el conjunto de cualidades que lo caracterizan y que
determinan su utilidad y existencia. La calidad es sinónimo de eficiencia,
flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad,
seguridad e integridad.
La calidad del software es medible y varía de un sistema a otro o de un
programa a otro. Un software elaborado para el control de naves espaciales
debe ser confiable al nivel de "cero fallas"; un software hecho para ejecutarse
una sola vez no requiere el mismo nivel de calidad; mientras que un producto
de software para ser explotado durante un largo período (10 años o más),
necesita ser confiable, mantenible y flexible para disminuir los costos de
mantenimiento y perfeccionamiento durante el tiempo de explotación.
La calidad del software puede medirse después de elaborado el producto. Pero
esto puede resultar muy costoso si se detectan problemas deriva dos de
imperfecciones en el diseño, por lo que es imprescindible tener en cuenta tanto
la obtención de la calidad como su control durante todas las etapas del ciclo de
vida del software.
Definición de calidad de software
Concordancia con los requisitos funcionales y de rendimiento explícitamente
establecidos con los estándares de desarrollo explícitamente documentados y
con las características implícitas que se espera de todo software desarrollado
profesionalmente” . R.S. Pressman (1992)
¿Como obtener un software de calidad?
La obtención de un software con calidad implica la utilización de metodologías
o procedimientos estándares para el análisis, diseño, programación y prueba
del software que permitan uniformar la filosofía de trabajo, en aras de lograr
una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que
eleven la productividad, tanto para la labor de desarrollo como para el control
de la calidad del software.
La política establecida debe estar sustentada sobre tres principios básicos:
tecnológico, administrativo y ergonómico.
El principio tecnológico define las técnicas a utilizar en el proceso de desarrollo
del software.
2
El principio administrativo contempla las funciones de planificación y control del
desarrollo del software, así como la organización del ambiente o centro de
ingeniería de software.
El principio ergonómico define la interfaz entre el usuario y el ambiente
automatizado.
La adopción de una buena política contribuye en gran medida a lograr la
calidad del software, pero no la asegura. Para el aseguramiento de la calidad
es necesario su control o evaluación.
¿Como controlar la calidad del software?
Para controlar la calidad del software es necesario, ante todo, definir los
parámetros, indicadores o criterios de medición, ya que, como bien plantea
Tom De Marco, "usted no puede controlar lo que no se puede medir".
Las cualidades para medir la calidad del software son definidas por
innumerables autores, los cuales las denominan y agrupan de formas
diferentes. Por ejemplo, John Wiley define métricas de calidad y criterios,
donde cada métrica se obtiene a partir de combinaciones de los diferentes
criterios. La Metodología para la evaluación de la calidad de los medios de
programas de la CIC, de Rusia, define indicadores de calidad estructurados en
cuatro niveles jerárquicos: factor, criterio, métrica, elemento de evaluación,
donde cada nivel inferior contiene los indicadores que conforman el nivel
precedente. Otros autores identifican la calidad con el nivel de complejidad del
software y definen dos categorías de métricas: de complejidad de programa o
código, y de complejidad de sistema o estructura.
Todos los autores coinciden en que el software posee determinados índices
medibles que son las bases para la calidad, el control y el perfeccionamiento de
la productividad.
Una vez seleccionados los índices de calidad, se debe establecer el proceso de
control, que requiere los siguientes pasos:



Definir el software que va a ser controlado: clasificación por tipo, esfera
de aplicación, complejidad, etc., de acuerdo con los estándares
establecidos para el desarrollo del software.
Seleccionar una medida que pueda ser aplicada al objeto de control.
Para cada clase de software es necesario definir los indicadores y sus
magnitudes.
Crear o determinar los métodos de valoración de los indicadores:
métodos manuales como cuestionarios o encuestas estándares para la
medición de criterios periciales y herramientas automatizadas para medir
los criterios de cálculo.
3

Definir las regulaciones organizativas para realizar el control: quiénes
participan en el control de la calidad, cuándo se realiza, qué documentos
deben ser revisados y elaborados, etc.
A partir del análisis de todo lo anterior, nuestro Centro se encuentra enfrascado
en un proyecto para el Aseguramiento de la Calidad del Software (ACS), válido
para cualquier entidad que se dedique a la investigación, producción y
comercialización del software, el cual incluye la elaboración de un Sistema de
Indicadores de la Calidad del Software, la confección de una Metodología para
el Aseguramiento de la Calidad del Software y el desarrollo de herramientas
manuales y automatizadas de apoyo para la aplicación de las técnicas y
procedimientos del ACS, de forma tal que se conforme un Sistema de
Aseguramiento de la Calidad del Software.
1.3 Quien define la calidad
El usuario define la calidad
Debe entenderse que el usuario es quien define la calidad; debiendo la
empresa complacer a los clientes, y no contentarse sólo con librarlos de sus
problemas inmediatos, sino ir más allá para entender a fondo sus necesidades
presentes y futuras, a fin de sorprenderlos con productos y servicios que ni
siquiera imaginaban. Este conocimiento ya no debe ser sólo del dominio
exclusivo de grupos especiales de una organización; sino que debe ser
compartido y desarrollado por todos los empleados.
Una empresa que define la calidad sin tomar en cuenta a los consumidores
corre con el riesgo de producir bienes y servicios con escasa o nula demanda,
ya sea porque los clientes tienen otras expectativas y necesidades, o bien
porque los competidores están generando bienes con un mayor valor
agregado.
Por tales motivos es esencial para las empresas practicar tanto la investigación
de mercado, como la inteligencia competitiva y el benchmarking.
Conocidos los deseos y necesidades de los consumidores, estos deben ser
traducidas en términos cuantitativos y tangibles. Este proceso de traducción no
es sencillo y requiere de la integración de conocimientos de mercadotecnia con
ingeniería y administración, para que las necesidades del consumidor y las
expectativas que desarrolló durante el proceso de selección del producto,
puedan ser satisfechas completamente. Entre la técnica más importante para
tales fines tenemos el Despliegue de la Función de Calidad (QFD), el cual sirve
para realizar todo este proceso de traducción, ayudando a que la voz del
cliente se despliegue a través de toda la organización.
La función de despliegue de la calidad tiene como objetivo asegurar que se
cumplan las expectativas del cliente desde el diseño del producto, durante su
proceso de manufactura, y hasta que es utilizado por el consumidor. En
japonés se le llama ten kai lo cuál significa "despliegue", refiriéndose a la idea
4
de llevar las necesidades y expectativas del cliente expresados en su lenguaje
(voz del cliente) a todos los involucrados en la organización, e ir en cada etapa
"traduciéndolas" al lenguaje apropiado.
¿Quien define la calidad?
Los estándares o metodologías definen un conjunto de criterios de
desarrollo que guían la forma en que se aplica la ingeniería del software.
La calidad del software la define o avala una Gestión de la calidad del
software por ejemplo: ISO 9000, esto como política de calidad, se entiende
como un conjunto de actividades de la función general de la dirección que
determina la calidad, los objetivos, el control de la calidad.
1.4 La importancia de la calidad
El ofrecer atención de buena calidad siempre ha sido una meta de los
programas de planificación familiar: la buena atención ayuda a los individuos y
a las parejas a cubrir sus necesidades de salud reproductiva en una forma
segura y eficaz. Recientemente, varias tendencias han convergido para asignar
una alta prioridad a la calidad.
Tanto los programas como los profesionales de salud están procurando ofrecer
mejor atención a más personas. Crecientemente, los programas de
planificación familiar están estudiando formas de servir a una mayor cantidad
de clientes continuos y de prestarles mejores servicios, dado que la calidad de
los servicios suele influir en la toma de decisiones de las personas con
respecto al uso de planificación familiar. Al mismo tiempo, los programas están
procurando formas en las que puedan atraer a nuevos clientes, quienes suelen
ser más incrédulos y estar más preocupados con la calidad de atención que los
clientes en el pasado. La calidad de atención puede ser el factor decisivo para
las personas que desean evitar el embarazo, pero que están indecisos con
respecto al uso de la anticoncepción.
Aun más empuje proviene de los movimientos relacionados con la salud de la
mujer y la atención primaria a la salud, los cuales han defendido los derechos
de los clientes y rechazado previas estrategias para los servicios de
planificación familiar que establecieron metas numéricas. En el Programa de
Acción de la Conferencia internacional sobre la población y el desarrollo
(CIPD), celebrada en 1994 en Cairo, se instó a que se prestara mayor atención
a la calidad de atención. También se promovió un enfoque centrado en el
cliente para prestar servicios de planificación familiar y otros servicios de salud
reproductiva.
Además, las teorías de administración y los métodos para garantizar una alta
calidad que han sido ideados en la industria con el objetivo de prestar mejores
servicios al cliente, están siendo aplicados al campo de la salud. Hoy en día,
los programas de salud y planificación familiar en el mundo entero combinan
5
las estrategias convencionales para controlar la calidad en el campo de la
medicina, tales como requerir licencias, un ámbito estándar y acreditación, con
las filosofías industriales para el Proceso de Mejoramiento Continuo de la
Calidad (PMC) y la Total Quality Management (TQM) (Administración Total de
la Calidad).
El movimiento de calidad en la planificación familiar es joven, y sus métodos
aún están en las etapas de desarrollo. Las definiciones básicas aún no han
sido estandarizadas. El movimiento de calidad es amplio, diverso y evolutivo.
Sin embargo, ya se cuenta con suficiente conocimiento y experiencia como
para que los profesionales de salud y gerentes en cada nivel puedan mejorar la
calidad de los servicios. Más aún, es evidente que las mejorías en la calidad no
tienen que costar mucho dinero. Independientemente del nivel de recursos en
los programas, la calidad siempre puede mejorarse. De hecho, el mejorar la
calidad de servicios suele ser un proceso rentable.
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 insatisfacción y desconfianza del
cliente, además de que baja la demanda y utilidades.
¿Qué Determina la Calidad?


Cliente o Usuario
Empresas Certificadoras.
Características de un producto de calidad









Eficaz
Moda
Novedoso
Innovador
Básico
Gusto
Costo contenido
Presentación
Seguridad.
Importancia de la calidad




Satisfacción
Seguridad
Prestigios
Mejor servicio
6


Competitividad (nacional, internacional)
Eficiencia
Principios de la calidad de software
Objetivos
Se puede considerar que un software es de calidad si cumple con los
siguientes objetivos.
1. Concordancia en el Software de requerimientos el cliente desea que
el software satisfaga una seri de requisitos o metas iniciales. En caso de
no alcanzarlo el software carecerá de calidad.
2. Desarrollo coherente aplicando correctamente los criterios de la
ingeniería de SW uno de los objetivos de la ingeniería de software es
mejorar la calidad através de una metodología correcta y apropiada al
proyecto, si se desea aumentar la calidad de resultado final.
3. Desarrollo de requerimientos implícitos al proyecto siempre existen
una serie de requerimientos que el cliente no especifica pero que son
deseables. Por ejemplo que el software sea fácil de mantener, que sea
fácil de usar y en caso de no alcanzar estos requerimientos el software
carecerá de calidad.
Factores que determinan la calidad de software.
Los factores se pueden medir en 2 grupos:
 Factores directos son aquellos que se pueden medir directamente del
software por ejemplo; el estudiar el tiempo que tarda el programa en
hacer una tarea, contar el número de errores que tiene un proyecto.
 Factores Indirectos Son aquellos que no se pueden medir directamente
del software por ejemplo, facilidad de uso y facilidad de mantenimiento.
Características de la calidad




Eficiencia que realice lo que dice que hace.
Eficacia que lo que hace lo haga muy bien.
Robustez capaz de soportar toda clase de pruebas, sin incluir ni errores
ni abortos.
Amigable una buena interfaz con el usuario.
1.5 Calidad y globalización en el marco universitario
El siglo XX se caracterizó por los grandes avances tecnológicos y científicos,
que dieron paso a nuevas orientaciones mundiales en relación con la
producción y el consumo, especialmente con el fenómeno de la globalización,
7
el que cada día avanza y abarca a casi todos los países del planeta. Estos
cambios han penetrado hasta la esencia misma de la sociedad y la cultura.
Frente a esta nueva realidad mundial, las Universidades como fuente de
generación y transmisión del conocimiento deben de asumir el reto histórico
que el fenómeno plantea: ¿Cómo y para qué educar en la sociedad globalizada
de hoy? ¿Cómo preparar al futuro profesional para ser competitivo? ¿Qué
valores debe inculcarse ante el fenómeno de la globalización cultural? Aunque
la globalización tradicionalmente se ha enfocado a los procesos monetarios y a
la economía de mercado, en realidad el fenómeno se extiende a todas las
facetas socio culturales de los pueblos, y en ese sentido es que las
Universidades están llamadas a desarrollar el talento humano que pueda
insertarse en el campo laboral, hoy día caracterizado por la incorporación en su
seno de la electrónica, la informática, la robótica y otros avances tecnológicos.
La Universidad por tanto está llamada a brindar una enseñanza de calidad que
contemple al menos los siguientes elementos:











Formación continúa del personal docente.
Incorporación de las nuevas tecnologías en los procesos de enseñanza
aprendizaje.
Actualización de software y hardware que satisfagan los intereses de la
informática y el moderno mundo de la información.
Adquisición de equipo y herramientas de soporte técnico.
Actualización bibliográfica.
Participación en procesos de evaluación que fortalezcan la calidad de
los servicios educativos de docencia, investigación y proyección social:
evaluación institucional y procesos de acreditación nacional o
internacional.
Auto evaluación permanente.
Generación de conocimientos en base a las nuevas necesidades
poblacionales.
Elaboración de planes estratégicos donde se contemple la visión de
desarrollo institucional a corto, mediano y largo plazo.
Fortalecimiento académico por medio de alianzas estratégicas con otras
universidades del mundo.
Formación humana complementaria a la formación académica.
La formación de calidad, competencia y eficacia en los nuevos profesionales,
son exigencias que la globalización plantea hoy a las universidades. Una
institución de enseñanza superior que ignore estas realidades simplemente se
aislara del mundo y pronto se convertirá en una mero espectador del
desarrollo.
No obstante que la globalización presenta grandes beneficios que se traducen
en desarrollo para los pueblos de la Tierra y genera el espacio para el
encuentro entre las culturas, si no se analiza el fenómeno desde la perspectiva
de fortalezas y debilidades, se puede correr el riesgo de convertir el proceso en
un fin en si mismo y olvidarse de que ante todo proceso de desarrollo material,
debe prevalecer el ser humano, siendo éste el principio y fin del progreso.
8
Consideramos con relación al papel de las Universidades y la globalización,
que la educación y el mensaje evangelizador no pueden ir separados y por esa
razón afirmamos:
a) La Universidad de hoy debe promover el desarrollo integral de las
personas, anteponiéndolas a cualquier razón tecnológica o científica que
se oponga a su existencia.
b) La Universidad debe estar comprometida con la promoción de la
dignidad humana, de tal forma que ésta sea el lugar donde se enseñe
los mas altos valores de la persona.
c) Es necesario que los avances científicos y tecnológicos sean
consecuentes con los valores antes mencionados. No se puede so
pretexto del desarrollo de los pueblos, someter la vida humana a un
“simple experimento”. Hoy en día los avances biotecnológicos han
querido reducir el embrión humano a la categoría de cosa y en ese
sentido muchas experimentaciones se orientan a su aniquilamiento o
utilización para fines atentatorios de la naturaleza humana.
d) Las herramientas de la sociedad de la información, deben utilizarse para
la búsqueda y transmisión de la verdad y la justicia. Muy especialmente
se deben hacer esfuerzos porque la informática ayude al progreso de los
pueblos y a su rápida comunicación y no se preste a generar violencia,
pornografía o prostitución que tanto mal hacen en estos días.
e) La Universidad debe promover la preservación de la cultura de cada
pueblo frente al fenómeno de transculturación globalízate.
f) La globalización de la cultura no implica la perdida de la identidad
personal. Hoy en día se imponen nuevos estilos de ética basados en el
hedonismo, el consumismo y la “libertad” llevada al extremo del
libertinaje.
Si bien la globalización presenta grandes ventajas y oportunidades, éstas
deben aprovecharse para el bien de nuestros pueblos. Hoy en día es imperioso
que desde la academia se forme al nuevo profesional con alta capacidad, pero
ante todo con sentido humano, responsabilidad y visión del mundo desde una
perspectiva cristiana que permita ver la verdad y anteponer el valor de la
persona humana ante cualquier fenómeno científico, tecnológico o comercial.
“La globalización es, con mucha frecuencia, resultado de factores económicos,
que hoy más que nunca determinan las decisiones políticas, legales y
bioéticas, a menudo en detrimento de los intereses humanos y sociales. El
mundo universitario debe esforzarse por analizar los factores que subyacen a
estas decisiones y, a la vez, debe contribuir a convertirlos en actos
verdaderamente morales, actos dignos de la persona humana. Esto implica
destacar con fuerza la centralidad de la dignidad inalienable de la persona
humana en la investigación científica y en las políticas sociales.
9
Calidad y el mundo globalizado
Es necesario que las empresas elaboren productos de alta calidad y un
buen servicio, se habla mucho de la globalización y se podría definir como el
proceso de integrar mundialmente las actividades, la aplicación y la evaluación
de estrategias, se toman con base a consecuencias que tienen la rentabilidad
global de la empresa, y no solo con base a consideraciones nacionales o de
países individuales.
1.6 La calidad de vida
Se define en términos generales como el bienestar, felicidad y satisfacción de
un individuo, que le otorga a éste cierta capacidad de actuación,
funcionamiento o sensación positiva de su vida. Su realización es muy
subjetiva, ya que se ve directamente influida por la personalidad y el entorno en
el que vive y se desarrolla el individuo. Según la OMS, la calidad de vida es "la
percepción que un individuo tiene de su lugar en la existencia, en el contexto
de la cultura y del sistema de valores en los que vive y en relación con sus
objetivos, sus expectativas, sus normas, sus inquietudes. Se trata de un
concepto muy amplio que está influido de modo complejo por la salud física del
sujeto, su estado psicológico, su nivel de independencia, sus relaciones
sociales, así como su relación con los elementos esenciales de su entorno".
Algunos describen calidad de vida como un conjunto de comportamientos y
actitudes individuales que mantienen a la persona sana y libre de un deterioro
físico ante una enfermedad crónica. Este modelo de atención médica delega en
la persona afectada toda la responsabilidad sobre su salud. La persona
enferma deber cambiar su estilo de vida, dejar de fumar, beber alcohol o dejar
de usar sustancias controladas, adherirse a su tratamiento de manera estricta,
mantener una dieta nutritiva, reposar adecuadamente, meditar y desarrollar su
vida espiritual, a fin de poder obtener una buena calidad de vida. La calidad de
vida depender solo del individuo como si la salud fuera un evento voluntario.
Otros describen calidad de vida de manera m s limitada, como el mero acceso
a un subconjunto de cuidados médicos que garanticen la salud del individuo.
Es de consenso que el primer paso hacia una mejor calidad de vida se da al
tener acceso a los servicios de salud, hecho que en nuestro país podría
resumiese como el de hacer cumplir el derecho a la salud con independencia
del régimen de adscripción. El acceso a los servicios médicos es sólo el inicio
de una mejor calidad de vida. La sobrevivencia física y el alivio al dolor debe ir
acompañado del bienestar psicológico y social para poder pasar al
mejoramiento progresivo de la calidad de la vida en todas sus dimensiones.
Calidad de vida
Es el bienestar, felicidad, satisfacción de la persona que le permite una
capacidad de actuación o de funcionar en un momento dado de la vida, es un
concepto subjetivo propio del individuo que esta muy influido por el entorno en
el que vive como la sociedad, la cultura y las escalas de los valores.
10
1.7 Qué es calidad total
La calidad total es un concepto, una filosofía, una estrategia, un modelo de
hacer negocios y está localizado hacia el cliente.
La calidad total no solo se refiere al producto o servicio en sí, sino que es la
mejoría permanente del aspecto organizacional, gerencial; tomando una
empresa como una máquina gigantesca, donde cada trabajador, desde el
gerente, hasta el funcionario del mas bajo nivel jerárquico están comprometidos
con los objetivos empresariales.
Para que la calidad total se logre a plenitud, es necesario que se rescaten los
valores morales básicos de la sociedad y es aquí, donde el empresario juega
un papel fundamental, empezando por la educación previa de sus trabajadores
para conseguir una población laboral más predispuesta, con mejor capacidad
de asimilar los problemas de calidad, con mejor criterio para sugerir cambios en
provecho de la calidad, con mejor capacidad de análisis y observación del
proceso de manufactura en caso de productos y poder enmendar errores.
El uso de la calidad total conlleva ventajas, pudiendo citar como ejemplos las
siguientes:



Potencialmente alcanzable si hay decisión del más alto nivel.
Mejora la relación del recurso humano con la dirección.
Reduce los costos aumentando la productividad.
La reingeniería junto con la calidad total pueden llevar a la empresa a
vincularse electrónicamente con sus clientes y así convertirse en una empresa
ampliada. Una de las estructuras más interesantes que se están presentando
hoy en día son la formación de redes, que es una forma de organizar a una
empresa y que está demostrando su potencial con creces.
La calidad total es un sistema de gestión de calidad que abarca a todas las
actividades y a todas las realizaciones de la empresa, poniendo especial
énfasis en el cliente interno y en la mejora continua.
Calidad total
Es el estado más evolucionado dentro de las sucesivas transformaciones
que ha sufrido el término 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 más brillantes del mundo.
1.
Origen de la técnica de la calidad total
Como nos tienen acostumbrados, los japoneses fueron los pioneros. La II
Guerra Mundial dejó la economía nipona en una situación catastrófica, con
11
unos productos poco competitivos que no tenían cabida en los mercados
internacionales.
Los japoneses no tardaron en reaccionar: se lanzaron al mercado gracias a la
adopción de los sistemas de calidad. Los resultados fueron que Japón registró
un espectacular crecimiento.
La iniciativa nipona pronto se transmitió a otras zonas del planeta. Europa tardó
algo más, pero también fueron los años 80 los del impulso definitivo.
En 1988 nace la European Foundation for Quality Managment (EFQM),
organización que apuesta por los modelos de gestión de calidad total (GTC o
TQM), estrategias encaminadas a optimizar los recursos, reducir costes y
mejorar los resultados, con el objetivo de perfeccionar constantemente el
proceso productivo.
La implantación de la calidad total es un proceso largo y complicado, supone
cambiar la filosofía de la empresa y los modos de gestión de sus responsables;
se debe elegir un problema concreto, y analizar el punto en donde esté fallando
la empresa.
Los principio de gestión de la calidad total son sencillos de entender, pero
complicados de asimilar:



El sistema parte de la búsqueda de la satisfacción del cliente, en
todos sus aspectos.
Un primer paso es la búsqueda de la calidad de los
productos/servicios.
Pero habrá que tener en claro que el producto/servicio ya no será el
punto principal de calidad.
Los principios elementales son los siguientes:



De poco sirve imponer de forma autoritaria la mejora en cada puesto
de trabajo.
La calidad la produce el último eslabón que termina el producto ó que
está en contacto con el cliente pero nunca el director general.
El directivo tiene que estar convencido de la necesidad de la calidad.
1. Progreso del significado de la calidad total
La transformación de las empresas y la globalización de las economías, han
ocasionado un sinnúmero de problemas y dificultades en los gobiernos de
América Latina.
Explicar como analizar el hecho, de que la clave del éxito de la fuerza del año
2000, dentro de la organización es la Calidad Total en las empresas, para dar a
conocer a la comunidad el porqué sé realiza esta transformación, es una acción
complicada.
12
Para el análisis de la competitividad y la calidad total en las empresas; existen
algunas preguntas obvias: ¿Cómo afectó a las empresas la incorporación del
concepto de calidad total? ¿Cómo la calidad total impresionó en las empresas
que intervienen en el proceso de Globalización?
Se ha definido al Mejoramiento del personal como una forma de lograr la
calidad total, y como una conversión en el mecanismo viable y accesible al que
las empresas de los países en vías de desarrollo cierren la brecha tecnológica
que mantienen con respecto al mundo competitivo y desarrollado.
Para mejorar un proceso y llegar a la calidad total, y ser en consecuencia más
competitivos, es necesario cambiar dicho proceso, para hacerlo más efectivo,
eficiente y adaptable. Qué cambiar y cómo cambiar depende del enfoque
específico del empresario y del proceso.
La clave del éxito es la Calidad Total de mantener sistemáticamente ventajas
que le permitan alcanzar determinada posición en el entorno socioeconómico.
El término calidad total es muy utilizado en los medios empresariales, políticos
y socioeconómicos en general. A ello se debe la ampliación del marco de
referencia de nuestros agentes económicos que han pasado de una actitud
auto protectora a un planteamiento más abierto, expansivo y proactivo.
La ventaja comparativa de una empresa estaría en su habilidad, recursos,
conocimientos y atributos, etc., de los que dispone dicha empresa, los mismos
de los que carecen sus competidores o que estos tienen en menor medida, que
hace posible la obtención de unos rendimientos superiores a los de aquellos.
El uso de estos conceptos supone una continua orientación hacia el entorno y
una actitud estratégica por parte de las empresas grandes como en las
pequeñas, en las de reciente creación o en las maduras y en general en
cualquier clase de organización. Por otra parte, el concepto de éxito nos hace
pensar en la idea "excelencia", o sea, con características de eficiencia y
eficacia de la organización.
Ecuador está sufriendo ya hace algunos años los cambios de la calidad total;
pero aún existen algunas empresas en nuestro país que no mostraban estas
nuevas formas de hacer empresa y poco a poco están haciendo los cambios y
otras ya fueron absorbidas por otras para no tener que cerrar sus puertas, la
calidad de los productos, la red de distribución, las relaciones con la
comunidad, el desempeño de los trabajadores, son puntos primordiales en la
lucha para desarrollar empresas en estos tiempos.
2. Importancia de la calidad total
La calidad total en la organización de una empresa, debe ser el nervio y motor
de la misma; si de verdad la empresa desea alcanzar el éxito debe cimentarse
en estas dos palabras.
El mensaje de la calidad total debe ser comunicado a tres audiencias que son
complementarias entre sí:


Los Trabajadores.
Los Proveedores; y,
13

Los Clientes.
Los fundamentos de la calidad total son los siguientes:










El objetivo básico: la competitividad
El trabajo bien hecho.
La Mejora continuada con la colaboración de todos:
responsabilidad y compromiso individual por la calidad.
El trabajo en equipo es fundamental para la mejora permanente
Comunicación, información, participación y reconocimiento.
Prevención del error y eliminación temprana del defecto.
Fijación de objetivos de mejora.
Seguimiento de resultados.
Indicadores de gestión.
Satisfacer las necesidades del cliente: calidad, precio, plazo.

Los obstáculos que impiden el avance de la calidad pueden ser:

El hecho de que la dirección no defina lo que entiende por
calidad.
No se trata de hacer bien las cosas, sino de que el cliente opine
igual y esté satisfecho.
Todos creen en su concepto, pocos en su importancia y son
menos los que la practican.


1. El control de la calidad total
El Control de la Calidad se posesiona como una estrategia para asegurar el
mejoramiento continuo de la calidad. Es un programa para asegurar la continua
satisfacción de los clientes externos e internos mediante el desarrollo
permanente de la calidad del producto y sus servicios.
Es un concepto que involucra la orientación de la organización a la calidad
manifestada en sus productos, servicios, desarrollo de su personal y
contribución al bienestar general.
El mejoramiento continuo es una herramienta que en la actualidad es
fundamental para todas las empresas porque les permite renovar los procesos
administrativos que ellos realizan, lo cual hace que las empresas estén en
constante actualización; además, permite que las organizaciones sean más
eficientes y competitivas, fortalezas que le ayudarán a permanecer en el
mercado.
Para la aplicación del mejoramiento es necesario que en la organización exista
una buena comunicación entre todos los órganos que la conforman, y también
los empleados deben estar bien compenetrados con la organización, porque
ellos pueden ofrecer mucha información valiosa para llevar a cabo de forma
óptima el proceso de mejoramiento continuo.
14
La definición de una estrategia asegura que la organización está haciendo las
cosas que debe hacer para lograr sus objetivos. La definición de su sistema
determina si está haciendo estas cosas correctamente.
La calidad de los procesos se mide por el grado de adecuación de estos a
lograr la satisfacción de sus clientes (internos o externos).
Es el proceso de alcanzar los objetivos de calidad durante las operaciones.
Para el efecto, se deberán desarrollar los siguientes pasos:
a.
b.
c.
d.
e.
f.
g.
Elegir qué controlar.
Determinar las unidades de medición.
Establecer el sistema de medición.
Establecer los estándares de performance.
Medir la performance actual.
Interpretar la diferencia entre lo real y el estándar.
Tomar acción sobre la diferencia.
El término calidad se ha convertido en una de las palabras clave de nuestra
sociedad, alcanzando tal grado de relevancia que iguala e incluso supera en
ocasiones al factor precio, en cuanto a la importancia otorgada por el posible
comprador de un producto o servicio.
Las necesidades de quienes compran nuestros productos o servicios no son
estáticas, sino que evolucionan de forma continua.
Esto supone la permanente adaptación de todos nuestros procesos productivos
y comerciales a dichas necesidades, si queremos seguir contando con su
fidelidad
Gestión de la calidad es el conjunto de actividades llevadas a cabo por la
empresa para obtener beneficios mediante la utilización de la calidad como
herramienta estratégica.
1. Tipos de acción de Calidad Total
Para lograr el mejoramiento de la calidad se debe pasar por un proceso, para
así poder alcanzar niveles de performance sin precedentes.
Los pasos de este proceso pueden resumirse así:
1.
2.
3.
4.
5.
6.
7.
8.
Probar la necesidad de mejoramiento.
Identificar los proyectos concretos de mejoramiento.
Organizarse para la conducción de los proyectos.
Prepararse para el diagnóstico o descubrimiento de las causas.
Diagnosticar las causas.
Proveer las soluciones.
Probar que la solución es efectiva bajo condiciones de operación.
Proveer un sistema de control para mantener lo ganado.
Además se habla del Despliegue de la Función de Calidad (DFC), concepto
complejo que provee los medios para traducir los requerimientos de los clientes
en los apropiados requerimientos técnicos para cada etapa del desarrollo y
15
manufactura del producto. Es decir, las actividades necesarias para traducir la
voz del cliente en las características del producto final.
Para lograr esto, existen los siguientes principios:
1.
2.
La calidad comienza con deleitar a los clientes.
Una organización de calidad debe aprender como escuchar a sus
clientes y ayudarlos a identificar y articular sus necesidades.
3. Una organización de calidad conduce a sus clientes al futuro.
4. Productos y servicios sin mácula y que satisfacen al cliente provienen de
sistemas bien planificados y que funcionen sin fallas.
5. En una organización de calidad, la visión, los valores, sistemas y
procesos deben ser consistentes y complementarios entre sí.
6. Todos en una organización de calidad, administradores, supervisores y
operarios, deben trabajar en concierto.
7. El trabajo en equipo en una organización de calidad debe estar
comprometido con el cliente y el mejoramiento continuo.
8. En una organización de calidad cada uno debe conocer su trabajo.
9. La organización de la calidad usa el método científico para planear el
trabajo, resolver problemas, hacer decisiones y lograr el mejoramiento.
10. La organización de calidad desarrolla una sociedad con sus
proveedores.
11. La cultura de una organización de calidad sostiene y nutre los esfuerzos
de mejoramiento de cada grupo e individuo.
Para que tengan éxito, los productos o servicios de una empresa se debe:






Cubrir una necesidad concreta.
Satisfacer las expectativas de los clientes.
Cumplir especificaciones y normas.
Cumplir los requisitos legales aplicables.
Tener precios competitivos.
Su coste debe proporcionar beneficios
Operadores atomicos
++, --, +, -, *, /
& (and), | (xor), << >> (despl.)
Int, double
Importancia de los operadores atómicos
La importancia indica principalmente en que son operadores básicos y
que se utilizan con singularidad en los programas ejecutables.
16
¿Qué es el Register?
Es aquel que permite trabajar en un solo ciclo, con toda la información
que contiene, se encuentra en el CPU, y es mucho más rápido que la variable
local.
Caracteristicas de operadores atomicos


Son más eficientes, ya que mientras se ejecutan espera a que se
termine la operación.
Evita interrupciones, es decir, o se ejecuta toda la operación o nada de
ella.
Ciclos Vacíos (Nulos) Son utilizados como ciclos retardadores de tiempo.
¿Qué es la globalización?
Es un término moderno usado para describir los cambios en las
sociedades y en la economía mundial que resultan en un incremento sustancial
del comercio cultural.
“Es un proceso fundamental económico mundial que consiste en la
creciente integración de las distintas economías nacionales en un único
mercado capitalista mundial” Toni Comin.
Ventajas o Beneficios Potenciales






Economía y mercado globales, que puede levar a un mejor
aprovechamiento de los recursos.
Acceso universal a la cultura y la ciencia
Mayor desarrollo científico-técnico.
Mayor capacidad de maniobra frente a las fluctuaciones de las
economías nacionales.
Cooperación internacional
Sistema global de protección de los derechos humanos.
Diferencia entre Consumismo y Calidad
El consumismo es un término que se utiliza para describir los efectos de
igualar la felicidad personal a la compra de bienes y servicios o al consumo en
general.
También se refiere al consumo desmedido de bines y servicios en la
sociedad contemporánea que impacta en los recursos naturales y el equilibrio
ecológico de manera seria.
17
La calidad es tener características específicas de un producto.
Una de las causas y consecuencias del consumismo es la baja calidad
de algunos productos que conlleva un periodo de vida relativamente bajo los
cuales son atractivos por su bajo costo pero a largo plazo salen más caros, y
son más dañinos para el medio ambiente.
Características de la calidad de Vida





Ser amado
Hogar digno
Ser
Bienestar
Satisfacción de las necesidades básicas:
1. Físico
2. Psicológico
3. Social.
18
UNIDAD 2 Aseguramiento de la calidad del software
Comprenderá la relación entre ingeniería de software y el aseguramiento de la
calidad de software.
2.1 Relación de la ingeniería de software con SQA
La Ingeniería de software designa el conjunto de técnicas destinadas a la
producción de un programa de computadora, más allá de la sola actividad de
programación. Forman parte de esta disciplina las ciencias computacionales y
el manejo de proyectos, entre otros campos, propios de la rama más genérica
denominada Ingeniería informática, mientras que (SQA) El aseguramiento de
calidad del software es el conjunto de actividades planificadas y sistemáticas
necesarias para aportar la confianza en que el producto (software) satisfará los
requisitos dados de calidad.
Relación de la ingeniería del software SQA
Su propósito es integrar y ejecutar un proceso de ingeniería bien definido
y coherente integrando todas las actividades de ingeniería del software para
producir productos de software correcto y consistente de manera eficiente y
efectiva con SQA.
Las actividades de la ingeniería del SW están definidas, integradas y se
ejecutan de forma consistente para producir el SW. Los entregables se
mantienen consistentes entre ellos.
2.2 Aseguramiento de calidad del software
El aseguramiento de calidad del software es el conjunto de actividades
planificadas y sistemáticas necesarias para aportar la confianza en que el
producto (software) satisfará los requisitos dados de calidad.
Propósito del SQA




Descubrir errores de funcionamiento, lógica o de implementación.
Verificar que el software cumpla con los requisitos.
Garantizar que se cumplen los estándares establecidos.
Conseguir un desarrollo uniforme.
19
Definición y propósito del SQA
Definición SQA es un set de actividades sistemáticas que aseguran que el
proceso del SW y productos conformados por requerimientos, estándares y
procedimientos. Los procesos incluyen todas las actividades involucradas en el
diseño, codificación pruebas y mantenimiento; los productos incluyen SW,
datos asociados, documentación y toda la documentación para soporte y
reportes.
El rol del SQA es brindar a la Administración la seguridad de los procesos
oficialmente establecidos estén siendo implementados.
Propósito proporcionar visibilidad sobre los procesos utilizados por el proyecto
del SW y sobre los productos que genera.
Objetivos
1. Planificar las actividades de aseguramiento de la calidad.
2. Revisar y auditar objetivamente los productos y las actividades para
verificar que están conformes con los procedimientos y estándares
aplicables.
3. Proporcionar los resultados de estas revisiones o auditorias
informando a la dirección cuando sea necesaria su mediación.
2.3 Problemas que resuelve la SQA
Económicamente
En los EEUU, el software contribuyó a 1/4 de todo el incremento del PIB
durante los 90's (alrededor de 90,000 millones de dólares por año), y 1/6 de
todo el crecimiento de productividad durante los últimos años de la década
(alrededor de 33,000 millones de dólares por año). La ingeniería de software
contribuyó a $1 billón de crecimiento económico y productividad en esa
década. Alrededor del globo, el software contribuye al crecimiento económico
en formas similares, aunque es difícil de encontrar estadísticas fiables.
Socialmente
La ingeniería de software cambia la cultura del mundo debido al extendido uso
de la computadora. El correo electrónico (E-mail), la WWW y la mensajería
instantánea 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
proyectos exitosos donde se han usado métodos de ingeniería de software
incluyen a Linux, el software del transbordador espacial, los cajeros
automáticos y muchos otros.
20
La ingeniería de software se puede considerar como la ingeniería aplicada al
software, esto es en base a herramientas preestablecidas, la aplicación de las
mismas de la forma más eficiente y óptima; objetivos que siempre busca la
ingeniería. No es sólo de la resolución de problemas, sino más bien teniendo
en cuenta las diferentes soluciones, elegir la más apropiada.
Problemas que resuelve la SQA (funciones)








Practicas SQA se definen y están disponibles herramientas, técnicas,
métodos y estándares de desarrollo adecuados para ser usados como
estándares de las revisiones QA.
Evaluación de la planificación del proyecto de SW si no se planifican
practicas de calidad adecuada desde el inicio y sincronizada con el plan
del proyecto, luego no serán implementadas.
Evaluación de lo requerimientos como es extremadamente inusual
que se desarrollen productos de alta calidad a partir de requerimientos
de baja calidad, los requerimientos iniciales deben ser supervisados
contra los entandares de calidad establecido.
Evaluación del proceso de Diseño se definen los medio para asegurar
que el diseño sigue las metodologías planeadas, que implemento los
requerimientos y la calidad del diseño propiamente dicha es revisada
independientemente.
Evaluación de las prácticas de codificación prácticas apropiadas de
codificación deben ser establecidas y usadas.
Evaluación del proceso de integración y testeo del SW se establece
un programa de Testing de calidad, el testing es ejecutado por un grupo
independiente que es tanto capaz como motivado para encontrar
problemas, la planificación del testing comienza en las primeras etapas
del proyecto y se revisa la calidad del testing previamente dicho.
Evaluación de uso del proceso de control y gerenciamiento del
proyecto asegurando que los procesos de gerenciamiento están
funcionando, SQA ayuda a garantizar que todo el grupo del proyecto
esta orientado a producir resultados de calidad.
Adaptación de los procedimientos de SQA el plan de SQA debe ser
adaptado a las necesidades especificas del proyecto.
2.4 Calidad del software en el ciclo de vida del mismo







Su selección
La inserción del Aseguramiento de Calidad en el Ciclo de Vida
Administración de la configuración
El proceso de producción de software
El control de versiones
La Calidad en la construcción del software
El seguimiento de fallas
21
Calidad de software en el ciclo de vida del mismo
La calidad del SW es una compleja mezcla de ciertos factores que varían para
las diferentes aplicaciones y los clientes que las solicitan.
La garantía de calidad es una actividad esencial en cualquier empresa que
produce productos que va a hacer usados por otros. Antes del siglo XX la
garantía de calidad era responsabilidad única de la empresa que construya el
producto.
La primera función de control y de garantía de calidad formal fue introducida
por los laboratorios Bell en 1916 y se extendió rápidamente por todo el mundo
de la manufactura.
Hoy en día cada compañía tiene un mecanismo que se asegura de la calidad
de sus productos, de hecho durante la pasada década se han usado
ampliamente como tácticas de mercado de la declaración explicita de mensajes
que ponían en manifiesto la calidad ofrecida por las compañías.
2.5 Roles y responsabilidades de los equipos de desarrollo
Coordinador General
El principal objetivo del Coordinador General es dirigir un equipo efectivo. Sus
principales responsabilidades son:








Estimular a los miembros del equipo a comportarse en forma motivada,
productiva, colaboradora, proactiva, respetuosa y disciplinada en el
proyecto.
Coordinar la elaboración del plan de trabajo. El plan debe determinar de
manera completa y precisa las tareas y actividades a realizar por el
equipo, el responsable de cada tarea y la fecha de inicio y culminación
prevista para cada tarea, así como sus holguras.
Hacerle seguimiento al plan para que se logre la entrega oportuna del
proyecto. Esta actividad involucra recoger las hojas de registro semanal,
determinar el avance logrado, reportar las estadísticas pertinentes al
gerente de desarrollo (es decir, al profesor del curso), analizar las
desviaciones del plan y coordinar las acciones que se deriven de ese
análisis.
Escuchar las observaciones de los demás miembros relacionadas con el
funcionamiento del equipo y manejar no más de cinco riesgos
relacionados con el equipo.
Redactar y publicar la agenda de las reuniones del grupo.
Concertar y coordinar las reuniones del grupo.
Mantener oportunamente informado al profesor/gerente del estado de
avance, riesgos que se presentan y retrasos que pudieran surgir.
Velar para que se cumplan las metas del producto.
22

Coordinar la elaboración del análisis post-hoc del proceso de desarrollo.
Coordinador de la Aplicación
El principal objetivo del Coordinador de la Aplicación es lograr que el equipo
entregue un producto funcional de calidad. Sus responsabilidades son:








Coordinar la elaboración/mantenimiento de los requerimientos, diseño e
implementación de la capa del dominio de la aplicación;
Coordinar la definición y elaboración de las interfaces entre las capas.
Custodiar y respaldar los artefactos asociadas a la capa del dominio de
la aplicación.
Explicitar las decisiones de diseño para la capa del dominio de la
aplicación y sus justificaciones
Coordinar la integración, custodia y respaldo del software a entregar.
Coordinar la medida de las estadísticas de tamaño del producto, fallas y
defectos del software .
Aprovechar plenamente las habilidades y potencialidades de los demás
miembros del equipo.
Manejar no más de cinco riesgos asociados al desarrollo de la capa del
dominio de la aplicación 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 elaboración 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 estándares que deben cumplir los documentos, en
cuanto a organización, redacción, ortografía y consistencia de
presentación.
Coordinar la elaboración del material de apoyo a las presentaciones del
equipo y velar por su calidad.
Manejar no más de cinco riesgos asociados con la documentación.
En el pasado se ha encontrado conveniente separar este rol en dos: Editor
Técnico y Webmaster. Para ello se prevé el rol de Asistente al Docmaster. El
Docmaster explicitará qué responsabilidades quiere delegar en su asistente.
23
Coordinador de Interfaces con el Usuario
El principal objetivo del Coordinador de Interfaces es lograr un producto cuya
capa de presentación (interfaz con el usuario) sea de calidad y en la mayor
medida posible independiente de la capa del dominio de la aplicación. Sus
principales responsabilidades son:







Coordinar la elaboración/mantenimiento de los requerimientos, diseño e
implementación de la capa de presentación.
Custudiar y respaldar los artefactos asociadas a la capa de
presentación.
Explicitar las decisiones de diseño para la capa y sus justificaciones.
Aprovechar plenamente las habilidades y potencialidades de los demás
miembros del equipo.
Manejar no más de cinco riesgos asociados al desarrollo de la capa de
la presentación y el enlace con el cliente.
Coordinar la instalación del producto y cualquier herramienta de
instalación utilizada..
Coordinar las presentaciones del equipo.
Coordinador de Base de Datos
El principal objetivo del Coordinador de Bases de Datos es lograr un producto
cuya capa de base de datos sea de calidad. Sus principales responsabilidades
son:






Coordinar la elaboración/mantenimiento de los requerimientos, diseño e
implementación de la capa de la base de datos.
Custodiar y respaldar los artefactos asociadas a la capa de la base de
datos.
Explicitar las decisiones de diseño para la capa y sus justificaciones.
Aprovechar plenamente las habilidades y potencialidades de los demás
miembros del equipo.
Manejar no más de cinco riesgos asociados al desarrollo de la capa de
la base de datos.
Coordinar la transcripción de datos a la base de datos.
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;
24






Cumplir oportuna y disciplinadamente con las tareas que le designen, de
diseño,
programación,
prueba,
documentación,
instalación,
entrenamiento, revisión, administración de herramientas o sitios web;
Participar para lograr un desarrollo exitoso, un ambiente productivo y un
clima armonioso donde las diferencias de opinión se aprovechan para
enriquecer el trabajo;
Llevar y entregar oportunamente las estadísticas y registros
correspondientes;
Asistir puntualmente a las reuniones convocadas (planifique al menos
una reunión semanal hasta el fin del trimestre).
Cumplir con los estándares de codificación, proceso y artefactos
asociados al desarrollo.
Respetar los estándares de trabajo del equipo.
2.6 Habilidades y capacidades de SQA
Aseguramiento de la calidad del software... Es básico y sería falaz pensar
siquiera en que la calidad podría llegar a «inyectarse» al producto software
finalizando el proceso de desarrollo —el viejo enfoque del control de la calidad.
El simple control no puede asegurarnos más que que estaremos muy
concientes de los dolores de cabeza que tendremos y la cantidad de dinero que
perderemos. La calidad del producto software depende de tareas realizadas
durante todo el proceso: detectar errores en forma temprana ahorra esfuerzos,
tiempo y recursos.
No hacer las cosas bien se manifiesta en muchas formas. Estos problemas,
que listo a continuación, son los más generalizados en las empresas del sector
cuyos procesos no tienen calidad y no tienen forma de asegurar la calidad del
producto software.
Compromisos consistentemente incumplidos, expresados en términos de
entregas tardías, afluencia constante de defectos de última hora —algo que
aquí en Colombia llaman coloquialmente «chicharrones»— y costos
espiralados.
Reducida visión gerencial en el progreso, con la ocurrencia de sorpresas
constantes.
Problemas propios de la calidad, como demasiado «reproceso» o «retrabajo»,
que las funciones no operen correctamente y un elevado número de quejas de
los clientes luego de la entrega —lo cual no es menor si pensamos en el
impacto que esto puede tener sobre la imagen marca de la empresa al estar
dejando gran parte de las detecciones de defectos en manos de los clientes.
Moral pobre, que se percibe en forma de gente frustrada y la sensación de que
nadie está a cargo.
25
2.7 Actividades de SQA
Entre los principales objetivos del SQA son la confiabilidad, el desempeño, la
funcionalidad y el reuso. Y entre los principales elementos para la aplicación de
pruebas están la experiencia, guías y estándares, métricas, revisiones, pruebas
y el reuso.
Las actividades del aseguramiento de la calidad del software contemplan
aquellas tareas del proceso de desarrollo de software que buscan asegurar el
diseño, desarrollo y distribución de una aplicación exitosa u otra forma de
tecnología de software. Ocurre durante todo el proceso de desarrollo, y cada
persona involucrada en este proceso tiene un impacto en la calidad de la
aplicación resultante, es importante concentrarse que el aseguramiento de la
calidad no es una actividad separada que puede obtenerse fuera de la
organización.
El SQA, como actividad de protección en el proceso de desarrollo, comprende
procedimientos para la aplicación efectiva de métodos y herramientas,
revisiones técnicas formales, técnicas y estrategias de prueba, dispositivos
paka-yoke, procedimientos de control de cambios, procedimientos de
aseguramiento de ajuste a los estándares y mecanismos de medida e
información.
Los principales elementos del SQA son los siguientes:
1.
2.
3.
4.
Definición y experiencia
Guías y estándares
Métricas
Revisiones
1. Autorevisiones
2. Revisiones informales
3. Revisiones de paso
4. Inspecciones
5. Pruebas
1. Unitarias
2. Módulo
3. Integración
4. Sistemas
6. Análisis 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 organización. Las principales actividades de este grupo son: establecer un
plan de SQA para los proyectos; participar en el desarrollo de la descripción del
proceso de software del proyecto; revisar las actividades de ingeniería 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 administración de cambios, aunado a recopilar
y analizar las métricas del software.
Uno de los elementos importantes del proceso de SQA son las revisiones
técnicas, las cuales se constituyen en reuniones conducidas por personal
técnico para personal técnico, donde se analizan detalladamente los productos
generados, los eventos que surgen en forma imprevista, etc. Para esta etapa el
uso de métricas es esencial. Una rama importante de esta disciplina es el SQA
estadístico, donde los datos históricos permiten una mejora continua tanto del
producto generado en el proyecto, como de proyectos posteriores. Es
importante aseverar que la ingeniería 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 organización; cabe recalcar que primeramente la
organización 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 generándolos en forma automática se
logra conseguir una productividad alta.
27
2.8 Métodos y herramientas
El objetivo primario de las revisiones técnicas formales (inspección) es
encontrar errores durante el proceso para evitar que se conviertan en defectos
después de la entrega del software. El beneficio obvio de estas inspecciones es
el descubrimiento de errores al principio para que no se propaguen al paso
siguiente del proceso de desarrollo del software (catarata de errores de
Mizuno).
Una serie de estudios (TRW, Nippon Electric y Mitre Corp., entre otros) indican
que las actividades del diseño introducen entre el 50% y 65% de todos los
errores(y en último lugar, todos los defectos) durante el proceso de software. Si
embargo se ha demostrado que las inspecciones de software son efectivas en
un 75% a la hora de detectar errores [JON86].
Con la detección y la eliminación de un gran porcentaje de errores, el proceso
de inspección reduce substancialmente el costo de los pasos siguientes en las
fases de desarrollo y mantenimiento.
Una de las principales estrategias que compone el modelo estratégico de
ParqueSoft, es la CCACertificación de Calidad, que se ocupa de la definición e implementación de
los procesos de calidad necesarios para darle viabilidad al desarrollo de
software como actividad de ingeniería aplicada para hacer negocios.
La metodología BaQEM (Bussines Application Quality Evaluation Method) para
hacer pruebas funcionales a sistemas de información se comenzó a desarrollar
a finales del 2002, con el propósito de aportar una metodología cuantitativa,
práctica y efectiva para evaluar y analizar la calidad de los sistemas de
información desarrollados en ParqueSoft, independiente de la metodología y
plataforma tecnológica utilizada para su desarrollo.
En la primera sección de este documento se ilustra como la metodología de
pruebas parte del conocimiento de la Industria en temas relacionados con la
calidad como el modelo CMM
[CMM01] o el estándar ISO9000 [Iso9000] y se complementa con las
implicaciones de ser el soporte metodológico de ParqueSoft, que actúa como
catalizador en la apropiación de prácticas de ingeniería aplicables a los
procesos de negocios, es decir que requiere metodologías con alto contenido,
ágiles, basadas en el sentido común y orientadas al resultado.
De modo que, a partir de esas funcionalidades se derivan procesos,
subprocesos, y, a partir de éstos, siguiendo un proceso de descomposición
jerárquico, se identifican y especifican requerimientos de prueba que en otras
palabras son los atributos de calidad del producto.
28
Igualmente, se dedica la sección 3 del documento para presentar el nivel de
soporte que brinda la herramienta de software GreenVolution al proceso de
aseguramiento de calidad definido en la metodología BaQEM, además de
mostrar un panorama de la misma.
29
UNIDAD III Estándares de calidad aplicados al software
Conocerá la importancia de la aplicación de estándares de calidad y
productividad en el desarrollo de un software.
3.1 ISO
ISO
La Organización Internacional para la Estandarización (ISO) es una
organización internacional no gubernamental, compuesta por representantes
de los organismos de normalización (ONs) nacionales, que produce normas
internacionales industriales y comerciales. Dichas normas se conocen como
normas ISO y su finalidad es la coordinación de las normas nacionales, en
consonancia con el Acta Final de la Organización Mundial del Comercio con el
propósito de facilitar el comercio, facilitar el intercambio de información y
contribuir con unos estándares comunes para el desarrollo y transferencia de
tecnologías.
Estructura de la organización
La Organización ISO está compuesta por tres tipos de miembros:
Miembros natos: uno por país, recayendo la representación en el Organismo
nacional más representativo.
Miembros correspondientes: de los organismos de países en vías de desarrollo
y que todavía no poseen un comité nacional de normalización. No toman parte
activa en el proceso de normalización pero están puntualmente informados
acerca de los trabajos que les interesen.
Miembros suscritos: países con reducidas economías a los que les exige el
pago de tasas menores que a los correspondientes.
ISO es un órgano consultivo de la Organización de las naciones unidas
Coopera estrechamente con la Comisión Electrotécnica Internacional
(Internatinal Electrotechnical Comisión, IEC) que es responsable de la
estandarización de equipos eléctricos.
Descripción general de las normas ISO:
La familia de normas ISO 9000 se compone por a aplicaciones fundamentales
denominadas:
Norma ISO 9001
Norma ISO 9002
Norma ISO 9003
Norma ISO 9004
30
3.2 SPICE
(Programa de simulación con énfasis en circuitos integrados) fue desarrollado
por la Universidad de California, Berkeley en 1975 por Donald Pederson.
Es un estándar internacional cuyo objetivo es simular circuitos y luego elegir el
tipo de simulación (temporal, en frecuencia, en continua y parametrico)
SPICE
Software process improvement and capabillity determination.
ISO/IEC ISS04 es un emergente estandar internacinal de evaluación y
determinación de la capacidad y mejora continua de procesos de ingeniería de
software con la filosofía de desarrollar un conjunto de medidas de capacidad
estructuradas para todos los procesos del ciclo de vida y para todos los
participantes.
PROPOSITO



Evaluación del proceso de ingeniería
Mejora de proceso de Ingeniería
Determinación de capacidades
DIRIGIDA A:



Adquisidores
Suministradores
Evaluadores
3.3 CMM
CMM
(Capability Maturity Model)
Fue diseñado 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 evaluación y mejora de procesos.
Propósito
Guiar a las organizaciones en la selección de estrategias de mejora
determinando la madurez del proceso actual.
Evolución
Se investiga con marco de mejora y la calidad de las empresas del resultado
fue la SW-CMM cuya versión 1.0 se publico en 1991 se reviso la 1.2 y hoy es
absoluto.
Características

Actividades

Compromisos

Capacidad

Medidas y análisis

Verificación
CMM
Este término se puede referir a:




La visión general de los modelos basados en la madurez de las
capacidades, modelo de capacidad y madurez.
El modelo de calidad específico de desarrollo del software SW-CMM es
un modelo de proceso para el desarrollo y mantenimiento de sistemas
de software, diseño sobre los criterios.
La calidad de un producto o sistemas.
El centro de modelamiento matemático de la Universidad de Chile.
3.3.1 Definición del modelo
Es el proyecto o reproducción a escala reducida o no de un pieza escultórica.
32
El objetivo principal de este proyecto era el diseño de un producto que mejora
la calidad del producto.
3.3.2 Nivel inicial
El proceso de software es impredecible y poco controlado; pero esto no
significa que una organización no produzca bien un software, sino que el coste
(financiamiento) humano, temporal es demasiado alto tanto como para los
usuarios.
3.3.3 Nivel repetido
En este nivel existe una disciplina básica en la gestión de procesos basados en
la repetición de tareas apreciadas previamente, ya que hay una planificación en
términos de coste, calendario y requisitos.
3.3.4 Nivel definido
Definido: además de una gestión de proyectos, a este nivel las organizaciones
disponen de correctos procedimientos de coordinación entre grupos, formación
del personal, técnicas de Ingeniería más detallados y un nivel más avanzado
de métricas en los procesos. Se implementan técnicas de revisión por pares.
3.3.5 Nivel administrativo
Se caracteriza porque las organizaciones disponen de un conjunto de métricas
significativas de calidad y productividad, que se usan de modo sistemático para
la toma de decisiones y la gestión de riesgos. El software resultante es de alta
calidad.
La organización establece métricas para productos y procesos estrechando la
variación de estos a así finalmente miden los resultados de calidad.
Los proyectos llevan a cabo un control sobre los reductos y procesos
estrechando la variación en el desempeño de su proceso de una manera de
caer dentro de los límites aceptables para esto:



Los riesgos involucrados con la tecnología de nuevos productos,
procesos y mercados son analizados cuidadosamente.
Existen mediciones detallados del proceso y calidad del producto.
El proceso y el producto deben ser perfectamente conocidos y
controlados.
Este nivel permite a una organización predecir tendencias en la calidad del
proceso y el producto.
33
3.3.6 Nivel optimizado
La organización completa esta volcada en la mejora continua de los procesos.
Se hace uso intensivo de las métricas y se gestiona el proceso de innovación.
Existe una evolución continua en la optimización del proceso.




ISO 9001 es aplicable a sistemas que comprendan las actitudes de
diseño, desarrollo, fabricación, instalación y servicio.
ISO 9002 es aplicable a sistemas que comprendan las actividades de
producción, instalación y servicios.
ISO 9003 es aplicable a sistemas que comprendan expresión y pruebas
fiables.
ISO 9004 describe las directrices generales de la gestión de calidad y
los elementos de un sistema.
Los procesos de los proyectos y de la organización están orientados a la
mejora de las actividades.
Mejoras incrementales e innovadoras de los procesos que mediante métricas
son identificados, evaluados y puestos en práctica.
Los procesos que hay que implementar para alcanzar estos niveles son:

Innovación organizacional

Análisis Resolución del as causas
Modelo de cascada
La implementación debe de posponerse hasta que los objetivos se hayan
comprendido
Prototipación
Estudio de factibilidad
Ingeniería de requerimientos
Diseño especificación
Codificación
Verificación
Entrega y mantenimiento
Propósito
El desarrollo o mantenimiento de Software
Modelo en espiral
34
Cuatro tareas:
1. Determinar o fijar objetivos




Fijar también los productos definidos a obtener: requerimientos,
especificación manual de usuario.
Fijar las restricciones
Identificación de riesgos del apoyo y estrategias alternativas para
evitarlos.
Hay una sola cosa que se hace una vez: planificación inicial ó previa.
2. Análisis 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
 Análisis de alternativas e identificación resolución de riesgos
 Dependiendo del resultado de la evolución 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
Análisis
Diseño
Implementación
Validación
Mantenimiento y evaluación
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 técnicas:


Métricas del software para el control del proyecto
Verificación y validación a lo largo del ciclo de vida del software,
incluyendo pruebas y procesos de revisión.
35
Métodos de ordenamiento
Método de la burbuja
El Ordenamiento de Burbuja (Bubble Sort en inglés) es un sencillo algoritmo
de ordenamiento. Funciona revisando cada elemento de la lista que va a ser
ordenada con el siguiente, intercambiándolos de posición si están en el orden
equivocado. Es necesario revisar varias veces toda la lista hasta que no se
necesiten más 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 pequeñas "burbujas".
También es conocido como el método del intercambio directo.
Dado que solo usa comparaciones para operar elementos, se lo considera un
algoritmo de comparación, siendo el más sencillo de implementar.
Una manera simple de expresar el ordenamiento de burbuja en pseudocódigo
es la siguiente:
Para
Si
hasta
haga lo siguiente:
entonces:
Repita mientras
Método SHELL
El método Shell pertenece a los métodos de clasificación avanzados,
nombrado así en honor a su desarrollador, Donald Shell.
Este método utiliza una segmentación entre los datos. Funciona comparando
elementos que estén distantes; la distancia entre comparaciones decrece
conforme el algoritmo se ejecuta hasta la ultima fase, en la cual se comparan
los elementos adyacentes, por esta razón se le llama ordenación por
disminución de incrementos.
La ordenación de Shell usa una secuencia, h1, h2, . . ., ht, conocida como la
secuencia de incrementos. Al principio de todo proceso, se fija una secuencia
decreciente de incrementos. Cualquier secuencia funcionará en tanto que
empiece con un incremento grande, pero menor al tamaño del arreglo de los
datos a ordenar, y que el último valor de dicha secuencia sea 1.
36
Una elección muy común (pero no tan eficiente) para la secuencia de
incrementos es adoptar la secuencia sugerida por Shell: ht = [n / 2], y hk =
[hk+1 / 2]. A continuación se muestra un programa que implanta la ordenación
de Shell usando esta secuencia.
# include <iostream.h>
void main (void)
{
int a[15];
int n, inc, i, j, tmp;
cout <<"De cuantos elementos es el arreglo? ";
cin >> n;
for (i=1; i<=n; i++)
{
cout <<"Introduce el elemento " <<i<<" : ";
cin >> a[i];
}
inc = n/2;
while (inc > 0)
{
for (i = inc +1; i<=n; i++)
{
tmp = a[i];
j=i;
while ( (j-inc) > 0 )
{
if (tmp < a[j-inc])
{
37
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 //
Método de inserción directa
El método de inserción directa es el que generalmente utilizan los jugadores de
cartas cuando ordenan éstas, de ahí que también se conozca con el nombre de
método
de
la
baraja.
La idea central de este algoritmo consiste en insertar un elemento del arreglo
en la parte izquierda del mismo, que ya se encuentra ordenada. Este proceso
se repite desde el segundo hasta el n-esimo elemento.
Ejemplo:
Se desean ordenarse las siguientes clave del arreglo A: 15, 67, 08, 16, 44, 27,
12, 35
Primera pasada
A[2] < A[1] 67 < 15 No hay intercambio
A: 15, 67, 08, 16, 44, 27, 12, 35
Segunda pasada
A[3] < A[2] 08 < 67 Si hay intercambio
A[2] < A[1] 08 < 15 Si hay
38
A: 15, 08, 67, 16, 44, 27, 12, 35
Tercera pasada
A[4] < A[3] 08 < 15 Si hay intercambio
A[3] < A[2] 08 < 15 Si hay intercambio
A= 08, 15, 67, 16, 44, 27, 12, 35
Hasta la séptima pasada el arreglo queda ordenado: 08, 12, 15, 16, 27, 35, 44,
67.
Método QUICK SORT
El método de ordenamiento Quick Sort es actualmente el más eficiente y veloz
de los métodos de ordenación interna. Es también conocido con el nombre del
método rápido y de ordenamiento por partición, en el mundo de habla hispana.
Este método es una mejora sustancial del método de intercambio directo
Se trata de ubicar a x en la posición correcta del arreglo, de tal forma que todos
los elementos que se encuentran a su izquierda sean menores o iguales a x y
todos los elementos que se encuentren a su derecha sean mayores o iguales a
x.
39
UNIDAD IV Calidad enfocada al desarrollo del software
Conocerá y aplicará los estándares de calidad para el desarrollo de software.
4.1 Que es la calidad del Software.
La calidad del software es el conjunto de cualidades que lo caracterizan y que
determinan su utilidad y existencia. La calidad es sinónimo de eficiencia,
flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad,
seguridad e integridad.
La calidad del software es medidle y varía de un sistema a otro o de un
programa a otro. Un software elaborado para el control de naves espaciales
debe ser confiable al nivel de "cero fallas"; un software hecho para ejecutarse
una sola vez no requiere el mismo nivel de calidad; mientras que un producto
de software para ser explotado durante un largo período (10 años o más),
necesita ser confiable, mantenible y flexible para disminuir los costos de
mantenimiento y perfeccionamiento durante el tiempo de explotación.
La calidad del software puede medirse después de elaborado el producto. Pero
esto puede resultar muy costoso si se detectan problemas deriva dos de
imperfecciones en el diseño, por lo que es imprescindible tener en cuenta tanto
la obtención de la calidad como su control durante todas las etapas del ciclo de
vida del software.
4.2 Como obtener calidad del software metodología como estándares
La obtención de un software con calidad implica la utilización de metodologías
o procedimientos estándares para el análisis, diseño, programación y prueba
del software que permitan uniformar la filosofía de trabajo, en aras de lograr
una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que
eleven la productividad, tanto para la labor de desarrollo como para el control
de la calidad del software.
La política establecida debe estar sustentada sobre tres principios básicos:
tecnológico, administrativo y ergonómico.
El principio tecnológico define las técnicas a utilizar en el proceso de desarrollo
del software.
El principio administrativo contempla las funciones de planificación y control del
desarrollo del software, así como la organización del ambiente o centro de
ingeniería de software.
40
El principio ergonómico define la interfaz entre el usuario y el ambiente
automatizado.
La adopción de una buena política contribuye en gran medida a lograr la
calidad del software, pero no la asegura. Para el aseguramiento de la calidad
es necesario su control o evaluación.
4.3 Como controlar la calidad del software
Para controlar la calidad del software es necesario, ante todo, definir los
parámetros, indicadores o criterios de medición, ya que, como bien plantea
Tom De Marco, "usted no puede controlar lo que no se puede medir".
Las cualidades para medir la calidad del software son definidas por
innumerables autores, los cuales las denominan y agrupan de formas
diferentes. Por ejemplo, John, Wiley define métricas de calidad y criterios,
donde cada métrica se obtiene a partir de combinaciones de los diferentes
criterios. La Metodología para la evaluación de la calidad de los medios de
programas de la CIC, de Rusia, define indicadores de calidad estructurados en
cuatro niveles jerárquicos: factor, criterio, métrica, elemento de evaluación,
donde cada nivel inferior contiene los indicadores que conforman el nivel
precedente. Otros autores identifican la calidad con el nivel de complejidad del
software y definen dos categorías de métricas: de complejidad de programa o
código, y de complejidad de sistema o estructura.
Todos los autores coinciden en que el software posee determinados índices
medibles que son las bases para la calidad, el control y el perfeccionamiento de
la productividad.
Una vez seleccionados los índices de calidad, se debe establecer el proceso de
control, que requiere los siguientes pasos:




Definir el software que va a ser controlado: clasificación por tipo, esfera
de aplicación, complejidad, etc., de acuerdo con los estándares
establecidos para el desarrollo del software.
Seleccionar una medida que pueda ser aplicada al objeto de control.
Para cada clase de software es necesario definir los indicadores y sus
magnitudes.
Crear o determinar los métodos de valoración de los indicadores:
métodos manuales como cuestionarios o encuestas estándares para la
medición de criterios periciales y herramientas automatizadas para medir
los criterios de cálculo.
Definir las regulaciones organizativas para realizar el control: quiénes
participan en el control de la calidad, cuándo se realiza, qué documentos
deben ser revisados y elaborados, etc.
A partir del análisis de todo lo anterior, nuestro Centro se encuentra enfrascado
en un proyecto para el Aseguramiento de la Calidad del Software (ACS), válido
41
para cualquier entidad que se dedique a la investigación, producción y
comercialización del software, el cual incluye la elaboración de un Sistema de
Indicadores de la Calidad del Software, la confección de una Metodología para
el Aseguramiento de la Calidad del Software y el desarrollo de herramientas
manuales y automatizadas de apoyo para la aplicación de las técnicas y
procedimientos del ACS, de forma tal que se conforme un Sistema de
Aseguramiento de la Calidad del Software.
4.4 Costo de la calidad del Software.
Es el uso de puntos función para ayudar a calcular el costo real del software.
La mayoría de las organizaciones subestima en gran medida el costo del
software.
El costo real del software es la suma de todos los costos durante la vida de un
proyecto, incluyendo los mejoramientos esperados y los costos de
mantenimiento, de hecho, el cálculo real debería ser el valor presente de todos
los desarrollos mejoras y costos de mantenimiento esperado durante la vida del
proyecto.
Este tipo de análisis demuestra, la recompensa de invertir en un diseño y
análisis de primera.
Cuando más se invierte en un proyecto, más se va a ahorrar en un futuro
costos de mantenimiento y mejoras.
El uso de puntos función para ayudar a estimar el costo de proyectos, la
programación y es el esfuerzo la estimación exitosa usando puntos función se
basa en varias técnicas de estimación: Top Down: Analogía y consejo de
expertos.
Loa estimación Top Down es una técnica de estimación que calcula el
programa entero, costo y esfuerzo usando parámetros amplios.
Los parámetros amplios y las comparaciones están basadas en datos
históricos usando técnica de analogías.
Lograr la estimación exitosa, se debe considerar lo siguiente:




Tipo de plataforma de Hardware mainframe, cliente, servidor, PC
Tipo de lenguaje; cobol, C, C++
Tipo de proyecto: software del sistema, software intermedio, software de
aplicación
Tipo de sistema operativo: MVS, Windows, Unix
Una vez que los proyectos han sido determinados obtener:
42



Medida histórica de entrega (horas)
Diagramas históricos (duración de programa)
Costos históricos
4.5 Nomenclara y certificacion isop 9001 2000
Es un método de trabajo, que se considera tan buena que es el mejor para
mejorar la calidad y satisfacción de cara al consumidor. La versión actual es del
año 2000 ISO 9001:2000; que no ha sido adoptado como modelo a seguir para
obtener la certificación de calidad y es a lo que tienden y debe aspirar toda
empresa competitiva, que quiera permanecer y sobrevivir en el exigente
mercado actual.
Estos principios básicos de la gestión de la calidad son reglas de carácter
social encaminadas mejorar la marcha y funcionamiento de una organización
mediante la mejora de sus relaciones internas.
Estas normas han de combinarse con los principios técnicos para conseguir
una mejora de la satisfacción del consumidor.
ISO 9001:2000 especifica los requisitos para los sistemas de gestión aplicables
a toda organización que necesita demostrar su capacidad para proporcionar
productos que cumplan los requisitos de sus clientes los reglamentos.
4.6 Norma ISO/IEC 9126
Describe un modelo en 2 partes para la calidad del producto del software, a la
calidad interna y externa, y a la calidad en uso, la primera parte del modelo
especifica 6 características para la calidad interna y externa, que se subdividen
posteriormente en dos características.
Estas subcaracterísticas se manifiestan externamente cuando el software se
usa como parte de un sistema informático y son el resultado de los atributos
externos del software.
Esta parte de la ISO/IEC 9126 no elabora el modelo interno y externo más allá
del nivel de subcaraterísticas.
4.7 Análisis de factores que determina la calidad de software
Los atributos de calidad de un producto de software se divide en interno y
externo.

Correcta: cuando se desenvuelve de acuerdo con las especificaciones
de funcionamiento que provee, es decir, es la equivalencia entre el
software y las especificaciones del mismo.
43







Confiable: la confiabilidad de un software se puede determinar en
función de la confiabilidad de otro del mismo tipo.
Robusto: capacidad del programa de responder a la entrada de datos
Amigable: se refiere a que existe consistencia en las interfaces
Verificable: un software es verificable si las propiedades del mismo
pueden ser llevados totalmente.
Portable: es cuando un sistema puede ser transferido a otro
Productividad: es la eficiencia en sus procesos, es decir, rendimientos
de los mismos.
Oportunidad: se refiere a la liberación del producto cuando el cliente lo
necesita y con las características requeridas
4.8 Análisis del proceso del ciclo de vida del software
Proceso.
Cuando se construye un producto o se presta un servicio se siguen una serie
de pasos para lograr cumplir las tareas necesarias en un cierto orden. Un
proceso es una serie de pasos que involucran actividades, restricciones y
recursos que producen una salida determinada (producto o servicio) utilizando
para ello un conjunto de herramientas y técnicas.
Todos los procesos tienen estas características:
• establecen las principales actividades del proceso.
• utilizan recursos (horas hombre, equipos, dinero).
• están sujetos a restricciones (calendario, presupuesto, …).
• genera productos intermedios y finales.
• puede constituirse como una cadena de subprocesos, cada uno con su
propio modelo.
• cada actividad tiene criterios de entradas y salidas; puede saberse
cuando comienza y cuando termina una actividad.
• las actividades se organizan en secuencia; resulta claro el orden
relativo de una actividad respecto a las demás.
• tiene un conjunto de principios orientadores que describen las metas de
cada actividad.
44
• las restricciones pueden aplicarse a una actividad, recurso o producto.
Un proceso es más que un procedimiento. Un procedimiento es una
manera estructurada de combinar herramientas y técnicas para generar
un producto. Un proceso es un conjunto de procedimientos organizados
de tal modo que los productos construidos satisfagan un conjunto de
metas o estándares 1 de 5.
Proceso de desarrollo o ciclo de vida del software
El proceso que nos interesa es el proceso de desarrollo del software. Cuando
un proceso implica construcción de algún producto suele denominarse al
proceso ciclo de vida. En particular, el ciclo de vida del software describe la
vida de un producto de software desde su concepción hasta su
implementación, entrega, utilización y mantenimiento.
Modelos de procesos en ingeniería de software
Es posible concebir diferentes modelos de proceso para arribar a un mismo
producto; las diferencias estarán en las actividades priorizadas, su importancia
relativa, la secuencia de realización, los principios orientadores, las
herramientas y técnicas elegidas. Entre los modelos más comunes
experimentados por la ingeniería de software se cuentan:
• modelo en cascada (~1970).
• modelo de prototipos (~1975).
• modelo de transformaciones (~1981)
• modelo en espiral (~1988).
• desarrollo por fases: incrementos e iteraciones (~1996).
• proceso unificado (~1999).
• programación extrema (~2000). Nota: las fechas son aproximadas,
generalmente de alguna publicación donde por primera vez se propone
el modelo o a partir de la cual cobra vigencia. Una fecha lejana no
45
significa necesariamente inutilidad u obsolescencia; los procesos
modernos incorporan muchos principios de modelos más viejos.
Además, cada proyecto puede responder mejor a un modelo que a otro,
independientemente de la edad del modelo. Para un proceso de desarrollo de
software son de interés las siguientes características:
• el proceso debe describirse de manera flexible, que permita a las
personas diseñar y construir el software con algún grado de libertad en
la elección de las herramientas y técnicas preferidas o más adecuadas.
• el proceso debe guiar las acciones permitiendo examinar, comprender,
controlar y mejorar las actividades que abarca.
• los procesos deben permitir capturar la experiencia y transferirla a los
demás.
• cada etapa de un proceso de desarrollo de software es en sí misma un
proceso o colección de procesos capaz de ser descrito como un
conjunto de actividades, cada actividad con sus propias entradas,
salidas, restricciones y recursos.
• la descripción de un proceso puede hacerse de muchas formas,
textuales, gráficas o combinadas.
Elementos del proceso.
El producto logrado a a través de la realización de un proyecto es el resultado
de la intervención de muchas personas. El proceso de desarrollo guía los
esfuerzos de esas personas, marcando los pasos necesarios para lograr
culminar el proyecto. El proceso puede ayudarse de herramientas con las
cuales se busca facilitar o automatizar algunas tareas.
Producto.
El producto resultante de un proyecto de desarrollo de software incluye todos
los elementos (artefactos) creados durante la realización del proyecto: modelo,
código fuente, ejecutables, documentación. Un sistema de software es el
conjunto de todos los artefactos necesarios para representarlo en forma
46
comprensible por máquinas u hombres, destinado a las máquinas, los
trabajadores y los 2 de 5 interesados en el proyecto. Las máquinas son las
herramientas, compiladores y computadores donde se instalará el software.
Los trabajadores son directores, arquitectos de software, diseñadores,
programadores, personal de gestión, administración y apoyo. Los interesados
son inversores, usuarios, personal de comercialización, agentes de regulación,
otros. Las personas y máquinas involucradas en el desarrollo de un sistema de
software son llamados a veces trabajadores del proyecto [Jacobson2000, cap.
2].
Un artefacto designa cualquier tipo de información creada, producida,
cambiada o utilizada por los trabajadores (hombres o máquinas) durante el
desarrollo del sistema. Los artefactos pueden ser tanto de ingeniería como de
gestión. Más formalmente, un artefacto es una pieza de información tangible
1) creada, modificada y usada por los trabajadores al realizar actividades
2) donde se representa un área de responsabilidad
3) candidata a ser tenida en cuenta al realizar el control de configuración. Un
artefacto puede ser un modelo, un elemento de un modelo o un documento. La
construcción de un sistema es la construcción de modelos. Diferentes modelos
pueden describir diferentes perspectivas del sistema. Un modelo es una
abstracción del sistema, especificando el sistema modelado desde un cierto
punto de vista y en determinado nivel de abstracción. Más formalmente, un
modelo es una abstracción semánticamente cerrada del sistema. Es una vista
autocontenida del sistema: un usuario del modelo no necesita recurrir a
información fuera del propio modelo, ni a otros modelos [Jacobson2000, cap.
2].
Personas.
Los constructores del proyecto son arquitectos de software, desarrolladores,
encargados de pruebas, personal de gestión; usuarios, clientes, inversores y
otros interesados también participan en la construcción. Las personas se verán
afectadas por diversos aspectos organizativos y de gestión del proyecto:
• viabilidad del proyecto: el proyecto debe ser posible; una evaluación temprana
de la viabilidad puede detener un proyecto imposible.
47
• gestión del riesgo: identificación de los riesgos mayores, definición de
políticas de aversión al riesgo (como evitar o manejar el riesgo) contribuyen a la
confianza y tranquilidad de todos los involucrados.
• estructura de los equipos: las personas trabajan mejor en grupos reducidos,
de seis a ocho personas. La división en subsistemas con interfaces claras
permite trabajar con varios equipos manteniendo su coordinación.
• plan de proyecto: una estimación realista de tiempos y recursos permite armar
un plan de trabajo fundamentado y posible, eliminando la desalentadora
sensación de no terminar nunca.
• facilidad de comprensión del proyecto: la visión global del proyecto provista
por la descripción de la arquitectura permite a todos los implicados conocer qué
se está haciendo y para qué; la comprensión de lo que se está haciendo
permite a la gente trabajar mejor.
• cumplimiento: la conclusión exitosa de cada etapa, hecha posible por un plan
realista, evita la frustración del atraso o el incumplimiento. Las tareas y
responsabilidades de las personas intervinientes en el proyecto irán cambiando
a lo largo del mismo, o aún pueden desempeñarse en diferentes conjuntos de
tareas y especialidades al mismo tiempo; el papel de las personas como
trabajadores cambiará, o se desempeñarán como diferentes tipos de
trabajadores. El término trabajador designa un conjunto de tareas y
responsabilidades asumidas por una persona o un grupo [Jacobson2000, cap.
2].
Proyecto.
El proyecto es un elemento organizativo a través del cual se gestiona el
desarrollo de software. El resultado de un proyecto es una versión de un
producto. Se parte de un proyecto inicial con el cual se evalúa la viabilidad, se
identifican los riesgos y se define el plan de proyecto. La construcción se
realizará en una serie de iteraciones; cada iteración constituye un mini proyecto
con requisitos, diseño, implementación y prueba. 3 de 5.
48
Proceso
Un proceso de desarrollo de software es una definición del conjunto completo
de actividades necesarias para transformar los requerimientos del usuario en
un producto. Un proceso es un patrón o plantilla sobre la cual se definen los
proyectos. Puede decirse que un proyecto es una instancia de un proceso, una
aplicación 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 definición 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 simplificación de la realidad. Se construyen modelos para
comprender mejor el sistema en desarrollo. El modelado persigue estos
objetivos: • visualizar cómo será el sistema deseado; • especificar la estructura
o el comportamiento del sistema; • proveer plantillas descriptivas para usar
como guía en la construcción del sistema; • documentar las decisiones
adoptadas. Se construyen modelos de los sistemas complejos porque resulta
muy difícil comprender el sistema en su totalidad. La elección de modelos tiene
una profunda influencia sobre la forma de enfrentar un problema y como se
llega a la solución. Es preciso elegir bien los modelos. Los mejores modelos
reflejan la realidad en todos y sólo aquellos aspectos importantes para el
sistema en desarrollo. Un modelo puede ser presentado en diferentes niveles
de detalle, desde diferentes perspectivas, a través de un conjunto de modelos
casi independientes pero coordinados entre sí [Booch1999, cap. 1].
Arquitectura
El diseño de arquitectura de un sistema ofrece una visión global del sistema.
Más formalmente, la arquitectura de un sistema de software es un conjunto de
decisiones significativas acerca de la organización de ese sistema, la selección
de elementos estructurales e interfaces componentes del sistema junto con su
comportamiento, la composición de esos elementos estructurales en
subsistemas, y el estilo que orienta esa organización. Incluye no sólo la
49
funcionalidad (lo que hace) sino también restricciones (limitantes),
compromisos sobre uso, rendimiento, comprensión, flexibilidad, reutilización,
economía, tecnología y estética [Jacobson2000, cap. 2]. No es posible
comprender la arquitectura de un sistema medianamente complejo si no se la
expresa a través de diversas vistas complementarias:
• una vista de casos de uso para mostrar los requerimientos del sistema;
• una vista de diseño para capturar el vocabulario del dominio del problema tal
como lo conocen los usuarios y del dominio de la solución tal como la imaginan
los desarrolladores.
• una visión de procesos, donde se modelan los procesos e hilos de ejecución
mediante los cuales el sistema realizará sus tareas.
• una vista de implementación, donde se consigna la relación entre los distintos
componentes de software que colaboran entre sí para cumplir los cometidos
del sistema.
• una vista de despliegue donde se muestra la distribución física de los
componentes en diferentes equipos y ubicaciones. Cada una de estas vistas
comprende aspectos estructurales (estáticos, cómo es) y de comportamiento
(dinámicos, cómo funciona). En conjunto, estas vistas son los “planos del
software”, análogos a los planos de un edificio, un puente, una máquina o un
diagrama de circuitos [Booch1999, cap. 1]. 4 de 5
Herramientas
Las herramientas usadas en la realización 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 diagramación, ambientes integrados de desarrollo o software
específico para ingeniería de software (herramientas CASE, “Computer Aided
Software Engineering”, ingeniería de software asistida por computador). El
proceso y las herramientas están 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 continuación, cuya lectura o consulta no
pretenden sustituir. Lecturas recomendadas.
50
• [Larman2003] Larman, Craig. UML y patrones. Una introducción al análisis y
diseño orientado a objetos y al Proceso Unificado, 2a. edición. Madrid, 2003.
ISBN 8420534382.
• [Fowler1997] Fowler, Martin y Scott, Kendall. UML distilled. Applying the
Standard Object Modelling Language. Addison Wesley Longman, Inc., 1997.
ISBN 0201325632.
• [Pfleeger2002] PFLEEGER, SHARI LAWRENCE. Ingeniería de software,
teoría y práctica, 1a. edición. Buenos Aires, Pearson educación, 2002. ISBN:
9879460715.
4.9 FUNCIONES DE EVOLUCION DEL SOFTWARE
Durante los primeros años de la era de la computadora, el software se
contemplaba como un añadido. La programación de computadoras era un "arte
de andar por casa" para el que existían pocos métodos sistemáticos. El
desarrollo del software se realizaba virtualmente sin ninguna planificación,
hasta que los planes comenzaron a descalabrarse y los costes a correr. Los
programadores trataban de hacer las cosas bien, y con un esfuerzo heroico, a
menudo salían con éxito. El software se diseñaba a medida para cada
aplicación y tenia una distribución relativamente pequeña.
La mayoría del software se desarrollaba y era utilizado por la misma persona u
organización. La misma persona lo escribía, lo ejecutaba y, si fallaba, lo
depuraba. Debido a este entorno personalizado del software, el diseño era un
proceso implícito, realizado en la mente de alguien y, la documentación
normalmente no existía.
La segunda era en la evolución de los sistemas de computadora se extienden
desde la mitad de la década de los sesenta hasta finales de los setenta. La
multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos
de interacción hombre - maquina. Las técnicas interactivas abrieron un nuevo
mundo de aplicaciones y nuevos niveles de sofisticación del hardware y del
software. Los sistemas de tiempo real podían recoger, analizar y transformar
datos de múltiples fuentes, controlando así los procesos y produciendo salidas
en milisegundos en lugar de minutos. Los avances en los dispositivos de
almacenamiento en línea condujeron a la primera generación de sistemas de
gestión de bases de datos.
La segunda era se caracterizo también por el establecimiento del software
como producto y la llegada de las "casas del software". Los patronos de la
industria, del gobierno y de la universidad se aprestaban a "desarrollar el mejor
paquete de software" y ganar así mucho dinero.
51
Conforme crecía el numero de sistemas informáticos, comenzaron a
extenderse las bibliotecas de software de computadora. Las casas
desarrollaban proyectos en los que se producían programas de decenas de
miles de sentencia fuente. Todos esos programas, todas esas sentencias
fuente tenían que ser corregidos cuando se detectaban fallos, modificados
cuando cambiaban los requisitos de los usuarios o adaptados a nuevos
dispositivos hardware que se hubieran adquirido. Estas actividades se
llamaron colectivamente mantenimiento del software.
La tercera era en la evolución de los sistemas de computadora comenzó a
mediados de los años setenta y continuo mas allá de una década. El sistema
distribuido, múltiples computadoras, cada una ejecutando funciones
concurrente y comunicándose con alguna otra, incrementó notablemente la
complejidad de los sistemas informáticos. Las redes de área local y de área
global, las comunicaciones digitales de alto ancho de banda y la creciente
demanda de acceso "instantáneo" a los datos, supusieron una fuerte presión
sobre los desarrolladores del software.
La conclusión de la tercera era se caracterizo por la llegada y amplio uso de los
microprocesadores. El microprocesador ha producido un extenso grupo de
productos inteligentes, desde automóviles hasta hornos microondas, desde
robots industriales a equipos de diagnósticos de suero sanguíneo.
La cuarta era de la evolución de los sistemas informáticos se aleja de las
computadoras individuales y de los programas de computadoras, dirigiéndose
al impacto colectivo de las computadoras y del software. Potentes maquinas
personales controladas por sistemas operativos sofisticados, en redes globales
y locales, acompañadas por aplicaciones de software avanzadas se han
convertido en la norma.
La industria del software ya es la cuna de la economía del mundo. Las técnicas
de la cuarta generación para el desarrollo del software están cambiando en la
forma en que la comunidad del software construye programas informáticos. Las
tecnologías orientadas a objetos están desplazando rápidamente los enfoques
de desarrollo de software más convencionales en muchas áreas de
aplicaciones.
Sin embargo, un conjunto de problemas relacionados con el software ha
persistido a través de la evolución de los sistemas basados en computadora, y
estos problemas continúan aumentando.
1.
los avances del software continúan dejando atrás nuestra
habilidad de construir software para alcanzar el potencial del
hardware.
2.
Nuestra habilidad de construir nuevos programas no pueden ir al
mismo ritmo de la demanda de nuevos programas, ni podemos
construir programas lo suficientemente rápido como para cumplir las
necesidades del mercado y de los negocios.
52
3.
El uso extenso de computadoras ha hecho de la sociedad cada
vez más dependiente de la operación fiable del software. Cuando el
software falla, pueden ocurrir daños económicos enormes y
ocasionar sufrimiento humano.
4.
Luchamos por construir software informático que tengan
fiabilidad y alta calidad.
5.
Nuestra habilidad de soportar y mejorar los programas existentes
se ve amenazada por diseños pobres y recursos inadecuados.
En respuesta a estos problemas, las practicas de la Ingeniería del Software se
están adoptando en toda la industria.
53
Descargar