Unidad 1 Conceptos básicos de Calidad€¦  · Web viewEl estudiante comprenderá la importancia...

71
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 1

Transcript of Unidad 1 Conceptos básicos de Calidad€¦  · Web viewEl estudiante comprenderá la importancia...

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 Competitividad (nacional, internacional)

6

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, 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.

7

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.

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

12

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, Los Clientes.

13

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.

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.

14

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. Elegir qué controlar. b. Determinar las unidades de medición. c. Establecer el sistema de medición. d. Establecer los estándares de performance. e. Medir la performance actual. f. Interpretar la diferencia entre lo real y el estándar. g. 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. Probar la necesidad de mejoramiento. 2. Identificar los proyectos concretos de mejoramiento. 3. Organizarse para la conducción de los proyectos. 4. Prepararse para el diagnóstico o descubrimiento de las causas. 5. Diagnosticar las causas. 6. Proveer las soluciones. 7. Probar que la solución es efectiva bajo condiciones de operación. 8. 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 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:

15

1. La calidad comienza con deleitar a los clientes. 2. 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.

¿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.

16

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.

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

17

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ísico2. Psicológico3. Social.

UNIDAD 2 Aseguramiento de la calidad del software

18

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.

Definición y propósito del SQA

19

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.

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

20

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

Calidad de software en el ciclo de vida del mismo

21

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. Coordinar la elaboración del análisis post-hoc del proceso de desarrollo.

Coordinador de la Aplicación

22

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.

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:

23

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; 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).

24

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.

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

25

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. Definición y experiencia 2. Guías y estándares 3. Métricas 4. 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.

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].

27

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 CCA-

Certificació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.

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.

28

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

29

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 9001Norma ISO 9002Norma ISO 9003Norma ISO 9004

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.

30

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?

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.

31

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.

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.

32

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.

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.

33

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ónEstudio de factibilidadIngeniería de requerimientosDiseño especificaciónCodificaciónVerificaciónEntrega y mantenimiento

Propósito

El desarrollo o mantenimiento de Software

Modelo en espiral

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

34

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.

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:

35

Para hasta haga lo siguiente: Si 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.

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++)

36

{

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])

{

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 //

37

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 pasadaA[2] < A[1] 67 < 15 No hay intercambio

A: 15, 67, 08, 16, 44, 27, 12, 35

Segunda pasadaA[3] < A[2] 08 < 67 Si hay intercambioA[2] < A[1] 08 < 15 Si hay

A: 15, 08, 67, 16, 44, 27, 12, 35

Tercera pasada A[4] < A[3] 08 < 15 Si hay intercambioA[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

38

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.

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),

39

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.

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

40

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 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

41

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:

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.

42

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.

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

43

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.

• 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

44

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 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.

45

• 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 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

46

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.

• 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.

47

• 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.

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

48

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 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

49

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.

• [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

50

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.

  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.

 

51

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.

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.

52