You are on page 1of 53

UNIDAD 1 Conceptos bsicos de Calidad El estudiante comprender la importancia de la calidad para el desarrollo de software.

1.1 Definicin 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 mltiples significados. La calidad de un producto o servicio es la percepcin que el cliente tiene del mismo. Es una fijacin 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 implcitas o explcitas. La calidad significa llegar a un estndar ms alto en lugar de estar satisfecho con alguno que se encuentre por debajo de lo que se espera cumpla con las expectativas. Tambin podra definirse como cualidad innata, caracterstica 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 enrgica y comprometida de esfuerzos sinceros de una ejecucin talentosa.

Definicin de calidad Propiedad inherente a una cosa que permite comprarla con la de su especie. Propiedad o conjunto de caractersticas de un elemento que le dotan de una ventaja competitiva. Es la totalidad de los rasgos y caractersticas de un producto o servicio que se sustenta en su habilidad para satisfacer las necesidades implcitas establecidas.

1.2 Definicin 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 sinnimo de eficiencia, flexibilidad, correccin, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad. La calidad del software es medible y vara 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 perodo (10 aos o ms), necesita ser confiable, mantenible y flexible para disminuir los costos de mantenimiento y perfeccionamiento durante el tiempo de explotacin. La calidad del software puede medirse despus de elaborado el producto. Pero esto puede resultar muy costoso si se detectan problemas deriva dos de imperfecciones en el diseo, por lo que es imprescindible tener en cuenta tanto la obtencin de la calidad como su control durante todas las etapas del ciclo de vida del software.

Definicin de calidad de software Concordancia con los requisitos funcionales y de rendimiento explcitamente establecidos con los estndares de desarrollo explcitamente documentados y con las caractersticas implcitas que se espera de todo software desarrollado profesionalmente . R.S. Pressman (1992)

Como obtener un software de calidad? La obtencin de un software con calidad implica la utilizacin de metodologas o procedimientos estndares para el anlisis, diseo, programacin y prueba del software que permitan uniformar la filosofa 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 poltica establecida debe estar sustentada sobre tres principios bsicos: tecnolgico, administrativo y ergonmico. El principio tecnolgico define las tcnicas a utilizar en el proceso de desarrollo del software.

El principio administrativo contempla las funciones de planificacin y control del desarrollo del software, as como la organizacin del ambiente o centro de ingeniera de software. El principio ergonmico define la interfaz entre el usuario y el ambiente automatizado. La adopcin de una buena poltica 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 evaluacin.

Como controlar la calidad del software? Para controlar la calidad del software es necesario, ante todo, definir los parmetros, indicadores o criterios de medicin, 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 mtricas de calidad y criterios, donde cada mtrica se obtiene a partir de combinaciones de los diferentes criterios. La Metodologa para la evaluacin de la calidad de los medios de programas de la CIC, de Rusia, define indicadores de calidad estructurados en cuatro niveles jerrquicos: factor, criterio, mtrica, elemento de evaluacin, 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 categoras de mtricas: de complejidad de programa o cdigo, 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: clasificacin por tipo, esfera de aplicacin, complejidad, etc., de acuerdo con los estndares 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 mtodos de valoracin de los indicadores: mtodos manuales como cuestionarios o encuestas estndares para la medicin de criterios periciales y herramientas automatizadas para medir los criterios de clculo.

Definir las regulaciones organizativas para realizar el control: quines participan en el control de la calidad, cundo se realiza, qu documentos deben ser revisados y elaborados, etc.

A partir del anlisis de todo lo anterior, nuestro Centro se encuentra enfrascado en un proyecto para el Aseguramiento de la Calidad del Software (ACS), vlido para cualquier entidad que se dedique a la investigacin, produccin y comercializacin del software, el cual incluye la elaboracin de un Sistema de Indicadores de la Calidad del Software, la confeccin de una Metodologa para el Aseguramiento de la Calidad del Software y el desarrollo de herramientas manuales y automatizadas de apoyo para la aplicacin de las tcnicas 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 slo con librarlos de sus problemas inmediatos, sino ir ms 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 slo del dominio exclusivo de grupos especiales de una organizacin; 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 estn generando bienes con un mayor valor agregado. Por tales motivos es esencial para las empresas practicar tanto la investigacin de mercado, como la inteligencia competitiva y el benchmarking. Conocidos los deseos y necesidades de los consumidores, estos deben ser traducidas en trminos cuantitativos y tangibles. Este proceso de traduccin no es sencillo y requiere de la integracin de conocimientos de mercadotecnia con ingeniera y administracin, para que las necesidades del consumidor y las expectativas que desarroll durante el proceso de seleccin del producto, puedan ser satisfechas completamente. Entre la tcnica ms importante para tales fines tenemos el Despliegue de la Funcin de Calidad (QFD), el cual sirve para realizar todo este proceso de traduccin, ayudando a que la voz del cliente se despliegue a travs de toda la organizacin. La funcin de despliegue de la calidad tiene como objetivo asegurar que se cumplan las expectativas del cliente desde el diseo del producto, durante su proceso de manufactura, y hasta que es utilizado por el consumidor. En japons se le llama ten kai lo cul significa "despliegue", refirindose a la idea

de llevar las necesidades y expectativas del cliente expresados en su lenguaje (voz del cliente) a todos los involucrados en la organizacin, e ir en cada etapa "traducindolas" al lenguaje apropiado. Quien define la calidad? Los estndares o metodologas definen un conjunto de criterios de desarrollo que guan la forma en que se aplica la ingeniera del software. La calidad del software la define o avala una Gestin de la calidad del software por ejemplo: ISO 9000, esto como poltica de calidad, se entiende como un conjunto de actividades de la funcin general de la direccin que determina la calidad, los objetivos, el control de la calidad.

1.4 La importancia de la calidad El ofrecer atencin de buena calidad siempre ha sido una meta de los programas de planificacin familiar: la buena atencin 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 estn procurando ofrecer mejor atencin a ms personas. Crecientemente, los programas de planificacin familiar estn 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 planificacin familiar. Al mismo tiempo, los programas estn procurando formas en las que puedan atraer a nuevos clientes, quienes suelen ser ms incrdulos y estar ms preocupados con la calidad de atencin que los clientes en el pasado. La calidad de atencin puede ser el factor decisivo para las personas que desean evitar el embarazo, pero que estn indecisos con respecto al uso de la anticoncepcin. Aun ms empuje proviene de los movimientos relacionados con la salud de la mujer y la atencin primaria a la salud, los cuales han defendido los derechos de los clientes y rechazado previas estrategias para los servicios de planificacin familiar que establecieron metas numricas. En el Programa de Accin de la Conferencia internacional sobre la poblacin y el desarrollo (CIPD), celebrada en 1994 en Cairo, se inst a que se prestara mayor atencin a la calidad de atencin. Tambin se promovi un enfoque centrado en el cliente para prestar servicios de planificacin familiar y otros servicios de salud reproductiva. Adems, las teoras de administracin y los mtodos para garantizar una alta calidad que han sido ideados en la industria con el objetivo de prestar mejores servicios al cliente, estn siendo aplicados al campo de la salud. Hoy en da, los programas de salud y planificacin familiar en el mundo entero combinan

las estrategias convencionales para controlar la calidad en el campo de la medicina, tales como requerir licencias, un mbito estndar y acreditacin, con las filosofas industriales para el Proceso de Mejoramiento Continuo de la Calidad (PMC) y la Total Quality Management (TQM) (Administracin Total de la Calidad). El movimiento de calidad en la planificacin familiar es joven, y sus mtodos an estn en las etapas de desarrollo. Las definiciones bsicas an 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. Ms an, es evidente que las mejoras 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 insatisfaccin y desconfianza del cliente, adems de que baja la demanda y utilidades. Qu Determina la Calidad? Cliente o Usuario Empresas Certificadoras.

Caractersticas de un producto de calidad Eficaz Moda Novedoso Innovador Bsico Gusto Costo contenido Presentacin Seguridad.

Importancia de la calidad Satisfaccin Seguridad Prestigios Mejor servicio

Competitividad (nacional, internacional) Eficiencia

Principios de la calidad de software Objetivos Se puede considerar que un software es de calidad si cumple con los siguientes objetivos. 1. Concordancia en el Software de requerimientos el cliente desea que el software satisfaga una seri de requisitos o metas iniciales. En caso de no alcanzarlo el software carecer de calidad. 2. Desarrollo coherente aplicando correctamente los criterios de la ingeniera de SW uno de los objetivos de la ingeniera de software es mejorar la calidad atravs de una metodologa correcta y apropiada al proyecto, si se desea aumentar la calidad de resultado final. 3. Desarrollo de requerimientos implcitos al proyecto siempre existen una serie de requerimientos que el cliente no especifica pero que son deseables. Por ejemplo que el software sea fcil de mantener, que sea fcil 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 nmero 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. Caractersticas 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 globalizacin en el marco universitario El siglo XX se caracteriz por los grandes avances tecnolgicos y cientficos, que dieron paso a nuevas orientaciones mundiales en relacin con la produccin y el consumo, especialmente con el fenmeno de la globalizacin,

el que cada da avanza y abarca a casi todos los pases del planeta. Estos cambios han penetrado hasta la esencia misma de la sociedad y la cultura. Frente a esta nueva realidad mundial, las Universidades como fuente de generacin y transmisin del conocimiento deben de asumir el reto histrico que el fenmeno plantea: Cmo y para qu educar en la sociedad globalizada de hoy? Cmo preparar al futuro profesional para ser competitivo? Qu valores debe inculcarse ante el fenmeno de la globalizacin cultural? Aunque la globalizacin tradicionalmente se ha enfocado a los procesos monetarios y a la economa de mercado, en realidad el fenmeno se extiende a todas las facetas socio culturales de los pueblos, y en ese sentido es que las Universidades estn llamadas a desarrollar el talento humano que pueda insertarse en el campo laboral, hoy da caracterizado por la incorporacin en su seno de la electrnica, la informtica, la robtica y otros avances tecnolgicos. La Universidad por tanto est llamada a brindar una enseanza de calidad que contemple al menos los siguientes elementos: Formacin contina del personal docente. Incorporacin de las nuevas tecnologas en los procesos de enseanza aprendizaje. Actualizacin de software y hardware que satisfagan los intereses de la informtica y el moderno mundo de la informacin. Adquisicin de equipo y herramientas de soporte tcnico. Actualizacin bibliogrfica. Participacin en procesos de evaluacin que fortalezcan la calidad de los servicios educativos de docencia, investigacin y proyeccin social: evaluacin institucional y procesos de acreditacin nacional o internacional. Auto evaluacin permanente. Generacin de conocimientos en base a las nuevas necesidades poblacionales. Elaboracin de planes estratgicos donde se contemple la visin de desarrollo institucional a corto, mediano y largo plazo. Fortalecimiento acadmico por medio de alianzas estratgicas con otras universidades del mundo. Formacin humana complementaria a la formacin acadmica. La formacin de calidad, competencia y eficacia en los nuevos profesionales, son exigencias que la globalizacin plantea hoy a las universidades. Una institucin de enseanza superior que ignore estas realidades simplemente se aislara del mundo y pronto se convertir en una mero espectador del desarrollo. No obstante que la globalizacin 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 fenmeno 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.

Consideramos con relacin al papel de las Universidades y la globalizacin, que la educacin y el mensaje evangelizador no pueden ir separados y por esa razn afirmamos: a) La Universidad de hoy debe promover el desarrollo integral de las personas, anteponindolas a cualquier razn tecnolgica o cientfica que se oponga a su existencia. b) La Universidad debe estar comprometida con la promocin de la dignidad humana, de tal forma que sta sea el lugar donde se ensee los mas altos valores de la persona. c) Es necesario que los avances cientficos y tecnolgicos 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 da los avances biotecnolgicos han querido reducir el embrin humano a la categora de cosa y en ese sentido muchas experimentaciones se orientan a su aniquilamiento o utilizacin para fines atentatorios de la naturaleza humana. d) Las herramientas de la sociedad de la informacin, deben utilizarse para la bsqueda y transmisin de la verdad y la justicia. Muy especialmente se deben hacer esfuerzos porque la informtica ayude al progreso de los pueblos y a su rpida comunicacin y no se preste a generar violencia, pornografa o prostitucin que tanto mal hacen en estos das. e) La Universidad debe promover la preservacin de la cultura de cada pueblo frente al fenmeno de transculturacin globalzate. f) La globalizacin de la cultura no implica la perdida de la identidad personal. Hoy en da se imponen nuevos estilos de tica basados en el hedonismo, el consumismo y la libertad llevada al extremo del libertinaje. Si bien la globalizacin presenta grandes ventajas y oportunidades, stas deben aprovecharse para el bien de nuestros pueblos. Hoy en da es imperioso que desde la academia se forme al nuevo profesional con alta capacidad, pero ante todo con sentido humano, responsabilidad y visin del mundo desde una perspectiva cristiana que permita ver la verdad y anteponer el valor de la persona humana ante cualquier fenmeno cientfico, tecnolgico o comercial. La globalizacin es, con mucha frecuencia, resultado de factores econmicos, que hoy ms que nunca determinan las decisiones polticas, legales y bioticas, 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 investigacin cientfica y en las polticas sociales.

Calidad y el mundo globalizado Es necesario que las empresas elaboren productos de alta calidad y un buen servicio, se habla mucho de la globalizacin y se podra definir como el proceso de integrar mundialmente las actividades, la aplicacin y la evaluacin 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 pases individuales. 1.6 La calidad de vida Se define en trminos generales como el bienestar, felicidad y satisfaccin de un individuo, que le otorga a ste cierta capacidad de actuacin, funcionamiento o sensacin positiva de su vida. Su realizacin es muy subjetiva, ya que se ve directamente influida por la personalidad y el entorno en el que vive y se desarrolla el individuo. Segn la OMS, la calidad de vida es "la percepcin 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 relacin 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 fsica del sujeto, su estado psicolgico, su nivel de independencia, sus relaciones sociales, as como su relacin 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 fsico ante una enfermedad crnica. Este modelo de atencin mdica 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 mdicos 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 pas podra resumiese como el de hacer cumplir el derecho a la salud con independencia del rgimen de adscripcin. El acceso a los servicios mdicos es slo el inicio de una mejor calidad de vida. La sobrevivencia fsica y el alivio al dolor debe ir acompaado del bienestar psicolgico 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, satisfaccin de la persona que le permite una capacidad de actuacin o de funcionar en un momento dado de la vida, es un

10

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. 1.7 Qu es calidad total La calidad total es un concepto, una filosofa, 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 mejora permanente del aspecto organizacional, gerencial; tomando una empresa como una mquina gigantesca, donde cada trabajador, desde el gerente, hasta el funcionario del mas bajo nivel jerrquico estn comprometidos con los objetivos empresariales. Para que la calidad total se logre a plenitud, es necesario que se rescaten los valores morales bsicos de la sociedad y es aqu, donde el empresario juega un papel fundamental, empezando por la educacin previa de sus trabajadores para conseguir una poblacin laboral ms 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 anlisis y observacin 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 decisin del ms alto nivel. Mejora la relacin del recurso humano con la direccin. Reduce los costos aumentando la productividad.

La reingeniera junto con la calidad total pueden llevar a la empresa a vincularse electrnicamente con sus clientes y as convertirse en una empresa ampliada. Una de las estructuras ms interesantes que se estn presentando hoy en da son la formacin 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 gestin 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 ms evolucionado dentro de las sucesivas transformaciones que ha sufrido el trmino calidad a lo largo del tiempo. Hacer las cosas bien desde la primera vez. Actualmente la calidad se ha convertido en el culto al cual se adhieren las mentes ms brillantes del mundo. 1. Origen de la tcnica de la calidad total

11

Como nos tienen acostumbrados, los japoneses fueron los pioneros. La II Guerra Mundial dej la economa nipona en una situacin catastrfica, con unos productos poco competitivos que no tenan cabida en los mercados internacionales. Los japoneses no tardaron en reaccionar: se lanzaron al mercado gracias a la adopcin de los sistemas de calidad. Los resultados fueron que Japn registr un espectacular crecimiento. La iniciativa nipona pronto se transmiti a otras zonas del planeta. Europa tard algo ms, pero tambin fueron los aos 80 los del impulso definitivo. En 1988 nace la European Foundation for Quality Managment (EFQM), organizacin que apuesta por los modelos de gestin 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 implantacin de la calidad total es un proceso largo y complicado, supone cambiar la filosofa de la empresa y los modos de gestin de sus responsables; se debe elegir un problema concreto, y analizar el punto en donde est fallando la empresa. Los principio de gestin de la calidad total son sencillos de entender, pero complicados de asimilar:
El

sistema parte de la bsqueda de la satisfaccin del cliente, en todos sus aspectos. Un primer paso es la bsqueda 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 eslabn 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 transformacin de las empresas y la globalizacin de las economas, han ocasionado un sinnmero de problemas y dificultades en los gobiernos de Amrica Latina. Explicar como analizar el hecho, de que la clave del xito de la fuerza del ao 2000, dentro de la organizacin es la Calidad Total en las empresas, para dar a conocer a la comunidad el porqu s realiza esta transformacin, es una accin complicada.

12

Para el anlisis de la competitividad y la calidad total en las empresas; existen algunas preguntas obvias: Cmo afect a las empresas la incorporacin del concepto de calidad total? Cmo la calidad total impresion en las empresas que intervienen en el proceso de Globalizacin? Se ha definido al Mejoramiento del personal como una forma de lograr la calidad total, y como una conversin en el mecanismo viable y accesible al que las empresas de los pases en vas de desarrollo cierren la brecha tecnolgica que mantienen con respecto al mundo competitivo y desarrollado. Para mejorar un proceso y llegar a la calidad total, y ser en consecuencia ms competitivos, es necesario cambiar dicho proceso, para hacerlo ms efectivo, eficiente y adaptable. Qu cambiar y cmo cambiar depende del enfoque especfico del empresario y del proceso. La clave del xito es la Calidad Total de mantener sistemticamente ventajas que le permitan alcanzar determinada posicin en el entorno socioeconmico. El trmino calidad total es muy utilizado en los medios empresariales, polticos y socioeconmicos en general. A ello se debe la ampliacin del marco de referencia de nuestros agentes econmicos que han pasado de una actitud auto protectora a un planteamiento ms abierto, expansivo y proactivo. La ventaja comparativa de una empresa estara 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 obtencin de unos rendimientos superiores a los de aquellos. El uso de estos conceptos supone una continua orientacin hacia el entorno y una actitud estratgica por parte de las empresas grandes como en las pequeas, en las de reciente creacin o en las maduras y en general en cualquier clase de organizacin. Por otra parte, el concepto de xito nos hace pensar en la idea "excelencia", o sea, con caractersticas de eficiencia y eficacia de la organizacin. Ecuador est sufriendo ya hace algunos aos los cambios de la calidad total; pero an existen algunas empresas en nuestro pas que no mostraban estas nuevas formas de hacer empresa y poco a poco estn 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 distribucin, las relaciones con la comunidad, el desempeo 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 organizacin de una empresa, debe ser el nervio y motor de la misma; si de verdad la empresa desea alcanzar el xito debe cimentarse en estas dos palabras. El mensaje de la calidad total debe ser comunicado a tres audiencias que son complementarias entre s: Los Trabajadores. Los Proveedores; y,
13

Los Clientes.

Los fundamentos de la calidad total son los siguientes: El objetivo bsico: la competitividad El trabajo bien hecho. La Mejora continuada con la colaboracin de todos: responsabilidad y compromiso individual por la calidad. El trabajo en equipo es fundamental para la mejora permanente Comunicacin, informacin, participacin y reconocimiento. Prevencin del error y eliminacin temprana del defecto. Fijacin de objetivos de mejora. Seguimiento de resultados. Indicadores de gestin. Satisfacer las necesidades del cliente: calidad, precio, plazo. Los obstculos que impiden el avance de la calidad pueden ser: El hecho de que la direccin 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 satisfaccin de los clientes externos e internos mediante el desarrollo permanente de la calidad del producto y sus servicios. Es un concepto que involucra la orientacin de la organizacin a la calidad manifestada en sus productos, servicios, desarrollo de su personal y contribucin 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 estn en constante actualizacin; adems, permite que las organizaciones sean ms eficientes y competitivas, fortalezas que le ayudarn a permanecer en el mercado. Para la aplicacin del mejoramiento es necesario que en la organizacin exista una buena comunicacin entre todos los rganos que la conforman, y tambin los empleados deben estar bien compenetrados con la organizacin, porque ellos pueden ofrecer mucha informacin valiosa para llevar a cabo de forma ptima el proceso de mejoramiento continuo.

14

La definicin de una estrategia asegura que la organizacin est haciendo las cosas que debe hacer para lograr sus objetivos. La definicin de su sistema determina si est haciendo estas cosas correctamente. La calidad de los procesos se mide por el grado de adecuacin de estos a lograr la satisfaccin de sus clientes (internos o externos). Es el proceso de alcanzar los objetivos de calidad durante las operaciones. Para el efecto, se debern desarrollar los siguientes pasos: a. Elegir qu controlar. b.Determinar las unidades de medicin. c.Establecer el sistema de medicin. d. Establecer los estndares de performance. e. Medir la performance actual. f. Interpretar la diferencia entre lo real y el estndar. g. Tomar accin sobre la diferencia. El trmino 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 estticas, sino que evolucionan de forma continua. Esto supone la permanente adaptacin de todos nuestros procesos productivos y comerciales a dichas necesidades, si queremos seguir contando con su fidelidad Gestin de la calidad es el conjunto de actividades llevadas a cabo por la empresa para obtener beneficios mediante la utilizacin de la calidad como herramienta estratgica. 1. Tipos de accin 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 conduccin de los proyectos. 4.Prepararse para el diagnstico o descubrimiento de las causas. 5. Diagnosticar las causas. 6.Proveer las soluciones. 7. Probar que la solucin es efectiva bajo condiciones de operacin. 8. Proveer un sistema de control para mantener lo ganado. Adems se habla del Despliegue de la Funcin de Calidad (DFC), concepto complejo que provee los medios para traducir los requerimientos de los clientes en los apropiados requerimientos tcnicos para cada etapa del desarrollo y

15

manufactura del producto. Es decir, las actividades necesarias para traducir la voz del cliente en las caractersticas del producto final. Para lograr esto, existen los siguientes principios: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. La calidad comienza con deleitar a los clientes. Una organizacin de calidad debe aprender como escuchar a sus clientes y ayudarlos a identificar y articular sus necesidades. Una organizacin de calidad conduce a sus clientes al futuro. Productos y servicios sin mcula y que satisfacen al cliente provienen de sistemas bien planificados y que funcionen sin fallas. En una organizacin de calidad, la visin, los valores, sistemas y procesos deben ser consistentes y complementarios entre s. Todos en una organizacin de calidad, administradores, supervisores y operarios, deben trabajar en concierto. El trabajo en equipo en una organizacin de calidad debe estar comprometido con el cliente y el mejoramiento continuo. En una organizacin de calidad cada uno debe conocer su trabajo. La organizacin de la calidad usa el mtodo cientfico para planear el trabajo, resolver problemas, hacer decisiones y lograr el mejoramiento. La organizacin de calidad desarrolla una sociedad con sus proveedores. La cultura de una organizacin 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 atmicos La importancia indica principalmente en que son operadores bsicos y que se utilizan con singularidad en los programas ejecutables.

16

Qu es el Register? Es aquel que permite trabajar en un solo ciclo, con toda la informacin que contiene, se encuentra en el CPU, y es mucho ms rpido que la variable local. Caracteristicas de operadores atomicos Son ms eficientes, ya que mientras se ejecutan espera a que se termine la operacin. Evita interrupciones, es decir, o se ejecuta toda la operacin o nada de ella.

Ciclos Vacos (Nulos) Son utilizados como ciclos retardadores de tiempo. Qu es la globalizacin? Es un trmino moderno usado para describir los cambios en las sociedades y en la economa mundial que resultan en un incremento sustancial del comercio cultural. Es un proceso fundamental econmico mundial que consiste en la creciente integracin de las distintas economas nacionales en un nico mercado capitalista mundial Toni Comin. Ventajas o Beneficios Potenciales Economa y mercado globales, que puede levar a un mejor aprovechamiento de los recursos. Acceso universal a la cultura y la ciencia Mayor desarrollo cientfico-tcnico. Mayor capacidad de maniobra frente a las fluctuaciones de las economas nacionales. Cooperacin internacional Sistema global de proteccin de los derechos humanos.

Diferencia entre Consumismo y Calidad El consumismo es un trmino que se utiliza para describir los efectos de igualar la felicidad personal a la compra de bienes y servicios o al consumo en general. Tambin se refiere al consumo desmedido de bines y servicios en la sociedad contempornea que impacta en los recursos naturales y el equilibrio ecolgico de manera seria.

17

La calidad es tener caractersticas especficas de un producto. Una de las causas y consecuencias del consumismo es la baja calidad de algunos productos que conlleva un periodo de vida relativamente bajo los cuales son atractivos por su bajo costo pero a largo plazo salen ms caros, y son ms dainos para el medio ambiente. Caractersticas de la calidad de Vida Ser amado Hogar digno Ser Bienestar Satisfaccin de las necesidades bsicas: 1. Fsico 2. Psicolgico 3. Social.

18

UNIDAD 2 Aseguramiento de la calidad del software Comprender la relacin entre ingeniera de software y el aseguramiento de la calidad de software.

2.1 Relacin de la ingeniera de software con SQA La Ingeniera de software designa el conjunto de tcnicas destinadas a la produccin de un programa de computadora, ms all de la sola actividad de programacin. Forman parte de esta disciplina las ciencias computacionales y el manejo de proyectos, entre otros campos, propios de la rama ms genrica denominada Ingeniera informtica, mientras que (SQA) El aseguramiento de calidad del software es el conjunto de actividades planificadas y sistemticas necesarias para aportar la confianza en que el producto (software) satisfar los requisitos dados de calidad. Relacin de la ingeniera del software SQA Su propsito es integrar y ejecutar un proceso de ingeniera bien definido y coherente integrando todas las actividades de ingeniera del software para producir productos de software correcto y consistente de manera eficiente y efectiva con SQA. Las actividades de la ingeniera del SW estn 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 sistemticas necesarias para aportar la confianza en que el producto (software) satisfar los requisitos dados de calidad. Propsito del SQA

Descubrir errores de funcionamiento, lgica o de implementacin. Verificar que el software cumpla con los requisitos. Garantizar que se cumplen los estndares establecidos. Conseguir un desarrollo uniforme.

19

Definicin y propsito del SQA Definicin SQA es un set de actividades sistemticas que aseguran que el proceso del SW y productos conformados por requerimientos, estndares y procedimientos. Los procesos incluyen todas las actividades involucradas en el diseo, codificacin pruebas y mantenimiento; los productos incluyen SW, datos asociados, documentacin y toda la documentacin para soporte y reportes. El rol del SQA es brindar a la Administracin la seguridad de los procesos oficialmente establecidos estn siendo implementados. Propsito 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 estn conformes con los procedimientos y estndares aplicables. 3. Proporcionar los resultados de estas revisiones o auditorias informando a la direccin cuando sea necesaria su mediacin. 2.3 Problemas que resuelve la SQA Econmicamente 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 dlares por ao), y 1/6 de todo el crecimiento de productividad durante los ltimos aos de la dcada (alrededor de 33,000 millones de dlares por ao). La ingeniera de software contribuy a $1 billn de crecimiento econmico y productividad en esa dcada. Alrededor del globo, el software contribuye al crecimiento econmico en formas similares, aunque es difcil de encontrar estadsticas fiables.

Socialmente La ingeniera de software cambia la cultura del mundo debido al extendido uso de la computadora. El correo electrnico (E-mail), la WWW y la mensajera instantnea permiten a la gente interactuar en nuevas formas. El software baja el costo y mejora la calidad de los servicios de salud, los departamentos de bomberos, las dependencias gubernamentales y otros servicios sociales. Los proyectos exitosos donde se han usado mtodos de ingeniera de software incluyen a Linux, el software del transbordador espacial, los cajeros automticos y muchos otros.

20

La ingeniera de software se puede considerar como la ingeniera aplicada al software, esto es en base a herramientas preestablecidas, la aplicacin de las mismas de la forma ms eficiente y ptima; objetivos que siempre busca la ingeniera. No es slo de la resolucin de problemas, sino ms bien teniendo en cuenta las diferentes soluciones, elegir la ms apropiada.

Problemas que resuelve la SQA (funciones) Practicas SQA se definen y estn disponibles herramientas, tcnicas, mtodos y estndares de desarrollo adecuados para ser usados como estndares de las revisiones QA. Evaluacin de la planificacin del proyecto de SW si no se planifican practicas de calidad adecuada desde el inicio y sincronizada con el plan del proyecto, luego no sern implementadas. Evaluacin 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. Evaluacin del proceso de Diseo se definen los medio para asegurar que el diseo sigue las metodologas planeadas, que implemento los requerimientos y la calidad del diseo propiamente dicha es revisada independientemente. Evaluacin de las prcticas de codificacin prcticas apropiadas de codificacin deben ser establecidas y usadas. Evaluacin del proceso de integracin 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 planificacin del testing comienza en las primeras etapas del proyecto y se revisa la calidad del testing previamente dicho. Evaluacin de uso del proceso de control y gerenciamiento del proyecto asegurando que los procesos de gerenciamiento estn funcionando, SQA ayuda a garantizar que todo el grupo del proyecto esta orientado a producir resultados de calidad. Adaptacin 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 seleccin La insercin del Aseguramiento de Calidad en el Ciclo de Vida Administracin de la configuracin El proceso de produccin de software El control de versiones La Calidad en la construccin del software El seguimiento de fallas

21

Calidad de software en el ciclo de vida del mismo La calidad del SW es una compleja mezcla de ciertos factores que varan para las diferentes aplicaciones y los clientes que las solicitan. La garanta de calidad es una actividad esencial en cualquier empresa que produce productos que va a hacer usados por otros. Antes del siglo XX la garanta de calidad era responsabilidad nica de la empresa que construya el producto. La primera funcin de control y de garanta de calidad formal fue introducida por los laboratorios Bell en 1916 y se extendi rpidamente por todo el mundo de la manufactura. Hoy en da cada compaa tiene un mecanismo que se asegura de la calidad de sus productos, de hecho durante la pasada dcada se han usado ampliamente como tcticas de mercado de la declaracin explicita de mensajes que ponan en manifiesto la calidad ofrecida por las compaas. 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 elaboracin 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 culminacin 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 estadsticas 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 anlisis. Escuchar las observaciones de los dems miembros relacionadas con el funcionamiento del equipo y manejar no ms de cinco riesgos relacionados con el equipo. Redactar y publicar la agenda de las reuniones del grupo. Concertar y coordinar las reuniones del grupo. Mantener oportunamente informado al profesor/gerente del estado de avance, riesgos que se presentan y retrasos que pudieran surgir. Velar para que se cumplan las metas del producto.

22

Coordinar la elaboracin del anlisis post-hoc del proceso de desarrollo.

Coordinador de la Aplicacin El principal objetivo del Coordinador de la Aplicacin es lograr que el equipo entregue un producto funcional de calidad. Sus responsabilidades son:

Coordinar la elaboracin/mantenimiento de los requerimientos, diseo e implementacin de la capa del dominio de la aplicacin; Coordinar la definicin y elaboracin de las interfaces entre las capas. Custodiar y respaldar los artefactos asociadas a la capa del dominio de la aplicacin. Explicitar las decisiones de diseo para la capa del dominio de la aplicacin y sus justificaciones Coordinar la integracin, custodia y respaldo del software a entregar. Coordinar la medida de las estadsticas de tamao del producto, fallas y defectos del software . Aprovechar plenamente las habilidades y potencialidades de los dems miembros del equipo. Manejar no ms de cinco riesgos asociados al desarrollo de la capa del dominio de la aplicacin y sus interfaces con otras capas.

Docmaster El principal objetivo del Docmaster es lograr calidad y completitud en los documentos del desarrollo. Sus responsabilidades son:

Mantener actualizado y de calidad el sitio web de la empresa; Hacerle el seguimiento a la elaboracin y fechas de entregas de los documentos generados por el equipo; Lleva el registro de las reuniones generales (asistentes, decisiones, justificaciones, acciones a tomar y sus responsables), as como elaborar y publicar oportunamente sus minutas; Elaborar y mantener los manuales asociados al desarrollo. Definir y velar por los estndares que deben cumplir los documentos, en cuanto a organizacin, redaccin, ortografa y consistencia de presentacin. Coordinar la elaboracin del material de apoyo a las presentaciones del equipo y velar por su calidad. Manejar no ms de cinco riesgos asociados con la documentacin.

En el pasado se ha encontrado conveniente separar este rol en dos: Editor Tcnico y Webmaster. Para ello se prev el rol de Asistente al Docmaster. El Docmaster explicitar qu responsabilidades quiere delegar en su asistente.

23

Coordinador de Interfaces con el Usuario El principal objetivo del Coordinador de Interfaces es lograr un producto cuya capa de presentacin (interfaz con el usuario) sea de calidad y en la mayor medida posible independiente de la capa del dominio de la aplicacin. Sus principales responsabilidades son:

Coordinar la elaboracin/mantenimiento de los requerimientos, diseo e implementacin de la capa de presentacin. Custudiar y respaldar los artefactos asociadas a la capa de presentacin. Explicitar las decisiones de diseo para la capa y sus justificaciones. Aprovechar plenamente las habilidades y potencialidades de los dems miembros del equipo. Manejar no ms de cinco riesgos asociados al desarrollo de la capa de la presentacin y el enlace con el cliente. Coordinar la instalacin del producto y cualquier herramienta de instalacin 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 elaboracin/mantenimiento de los requerimientos, diseo e implementacin 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 diseo para la capa y sus justificaciones. Aprovechar plenamente las habilidades y potencialidades de los dems miembros del equipo. Manejar no ms de cinco riesgos asociados al desarrollo de la capa de la base de datos. Coordinar la transcripcin de datos a la base de datos.

Miembro de equipo El principal objetivo de cada miembro del equipo es contribuir a la efectividad de su equipo. Sus responsabilidades incluyen:

Colaborar proactivamente en el logro de las metas del equipo; Entregar oportunamente los artefactos que le fueran encomendados;

24

Cumplir oportuna y disciplinadamente con las tareas que le designen, de diseo, programacin, prueba, documentacin, instalacin, entrenamiento, revisin, administracin de herramientas o sitios web; Participar para lograr un desarrollo exitoso, un ambiente productivo y un clima armonioso donde las diferencias de opinin se aprovechan para enriquecer el trabajo; Llevar y entregar oportunamente las estadsticas y registros correspondientes; Asistir puntualmente a las reuniones convocadas (planifique al menos una reunin semanal hasta el fin del trimestre). Cumplir con los estndares de codificacin, proceso y artefactos asociados al desarrollo. Respetar los estndares de trabajo del equipo.

2.6 Habilidades y capacidades de SQA Aseguramiento de la calidad del software... Es bsico y sera falaz pensar siquiera en que la calidad podra 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 ms 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 continuacin, son los ms 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 trminos de entregas tardas, afluencia constante de defectos de ltima hora algo que aqu en Colombia llaman coloquialmente chicharrones y costos espiralados. Reducida visin 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 nmero 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 sensacin de que nadie est a cargo.

25

2.7 Actividades de SQA Entre los principales objetivos del SQA son la confiabilidad, el desempeo, la funcionalidad y el reuso. Y entre los principales elementos para la aplicacin de pruebas estn la experiencia, guas y estndares, mtricas, revisiones, pruebas y el reuso. Las actividades del aseguramiento de la calidad del software contemplan aquellas tareas del proceso de desarrollo de software que buscan asegurar el diseo, desarrollo y distribucin de una aplicacin exitosa u otra forma de tecnologa de software. Ocurre durante todo el proceso de desarrollo, y cada persona involucrada en este proceso tiene un impacto en la calidad de la aplicacin resultante, es importante concentrarse que el aseguramiento de la calidad no es una actividad separada que puede obtenerse fuera de la organizacin. El SQA, como actividad de proteccin en el proceso de desarrollo, comprende procedimientos para la aplicacin efectiva de mtodos y herramientas, revisiones tcnicas formales, tcnicas y estrategias de prueba, dispositivos paka-yoke, procedimientos de control de cambios, procedimientos de aseguramiento de ajuste a los estndares y mecanismos de medida e informacin. Los principales elementos del SQA son los siguientes: 1. 2. 3. 4. Definicin y experiencia Guas y estndares Mtricas Revisiones 1. Autorevisiones 2. Revisiones informales 3. Revisiones de paso 4. Inspecciones 5. Pruebas 1. Unitarias 2. Mdulo 3. Integracin 4. Sistemas 6. Anlisis y Reporteo

26

Aunque algunas de las actividades de SQA deben ser realizadas por los desarrolladores e ingenieros de software, puede establecerse un grupo SQA en la organizacin. Las principales actividades de este grupo son: establecer un plan de SQA para los proyectos; participar en el desarrollo de la descripcin del proceso de software del proyecto; revisar las actividades de ingeniera de software para verificar su ajuste al proceso definido; auditar los productos de software designados para verificar el ajuste con los definidos como parte del proceso; asegurar que las desviaciones del trabajo y los productos del software se documenten y se manejen de acuerdo con un procedimiento establecido y registrar lo que no se ajuste a los requisitos, e informar a los superiores. Asimismo, coordina el control y administracin de cambios, aunado a recopilar y analizar las mtricas del software. Uno de los elementos importantes del proceso de SQA son las revisiones tcnicas, las cuales se constituyen en reuniones conducidas por personal tcnico para personal tcnico, donde se analizan detalladamente los productos generados, los eventos que surgen en forma imprevista, etc. Para esta etapa el uso de mtricas es esencial. Una rama importante de esta disciplina es el SQA estadstico, donde los datos histricos permiten una mejora continua tanto del producto generado en el proyecto, como de proyectos posteriores. Es importante aseverar que la ingeniera de pruebas es otro factor fundamental para el SQA. Muchas de las actividades a realizar deben estar incorporadas al proceso de desarrollo utilizado por la organizacin; cabe recalcar que primeramente la organizacin deber tener definido su proceso o procesos de desarrollo de software. Aunado a ello, si existen herramientas automatizadas que dan soporte al SQA para probar aplicaciones y componentes de stas, registrando y ejecutando casos de prueba, as como generndolos en forma automtica se logra conseguir una productividad alta.

27

2.8 Mtodos y herramientas El objetivo primario de las revisiones tcnicas formales (inspeccin) es encontrar errores durante el proceso para evitar que se conviertan en defectos despus 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 diseo introducen entre el 50% y 65% de todos los errores(y en ltimo lugar, todos los defectos) durante el proceso de software. Si embargo se ha demostrado que las inspecciones de software son efectivas en un 75% a la hora de detectar errores [JON86]. Con la deteccin y la eliminacin de un gran porcentaje de errores, el proceso de inspeccin reduce substancialmente el costo de los pasos siguientes en las fases de desarrollo y mantenimiento. Una de las principales estrategias que compone el modelo estratgico de ParqueSoft, es la CCACertificacin de Calidad, que se ocupa de la definicin e implementacin de los procesos de calidad necesarios para darle viabilidad al desarrollo de software como actividad de ingeniera aplicada para hacer negocios. La metodologa BaQEM (Bussines Application Quality Evaluation Method) para hacer pruebas funcionales a sistemas de informacin se comenz a desarrollar a finales del 2002, con el propsito de aportar una metodologa cuantitativa, prctica y efectiva para evaluar y analizar la calidad de los sistemas de informacin desarrollados en ParqueSoft, independiente de la metodologa y plataforma tecnolgica utilizada para su desarrollo. En la primera seccin de este documento se ilustra como la metodologa de pruebas parte del conocimiento de la Industria en temas relacionados con la calidad como el modelo CMM [CMM01] o el estndar ISO9000 [Iso9000] y se complementa con las implicaciones de ser el soporte metodolgico de ParqueSoft, que acta como catalizador en la apropiacin de prcticas de ingeniera aplicables a los procesos de negocios, es decir que requiere metodologas con alto contenido, giles, basadas en el sentido comn 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 descomposicin jerrquico, se identifican y especifican requerimientos de prueba que en otras palabras son los atributos de calidad del producto.

28

Igualmente, se dedica la seccin 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 metodologa BaQEM, adems de mostrar un panorama de la misma.

29

UNIDAD III Estndares de calidad aplicados al software Conocer la importancia de la aplicacin de estndares de calidad y productividad en el desarrollo de un software. 3.1 ISO ISO La Organizacin Internacional para la Estandarizacin (ISO) es una organizacin internacional no gubernamental, compuesta por representantes de los organismos de normalizacin (ONs) nacionales, que produce normas internacionales industriales y comerciales. Dichas normas se conocen como normas ISO y su finalidad es la coordinacin de las normas nacionales, en consonancia con el Acta Final de la Organizacin Mundial del Comercio con el propsito de facilitar el comercio, facilitar el intercambio de informacin y contribuir con unos estndares comunes para el desarrollo y transferencia de tecnologas. Estructura de la organizacin La Organizacin ISO est compuesta por tres tipos de miembros: Miembros natos: uno por pas, recayendo la representacin en el Organismo nacional ms representativo. Miembros correspondientes: de los organismos de pases en vas de desarrollo y que todava no poseen un comit nacional de normalizacin. No toman parte activa en el proceso de normalizacin pero estn puntualmente informados acerca de los trabajos que les interesen. Miembros suscritos: pases con reducidas economas a los que les exige el pago de tasas menores que a los correspondientes. ISO es un rgano consultivo de la Organizacin de las naciones unidas Coopera estrechamente con la Comisin Electrotcnica Internacional (Internatinal Electrotechnical Comisin, IEC) que es responsable de la estandarizacin de equipos elctricos. Descripcin general de las normas ISO: La familia de normas ISO 9000 se compone por a aplicaciones fundamentales denominadas: Norma ISO 9001 Norma ISO 9002 Norma ISO 9003 Norma ISO 9004

30

3.2 SPICE (Programa de simulacin con nfasis en circuitos integrados) fue desarrollado por la Universidad de California, Berkeley en 1975 por Donald Pederson. Es un estndar internacional cuyo objetivo es simular circuitos y luego elegir el tipo de simulacin (temporal, en frecuencia, en continua y parametrico) SPICE Software process improvement and capabillity determination. ISO/IEC ISS04 es un emergente estandar internacinal de evaluacin y determinacin de la capacidad y mejora continua de procesos de ingeniera de software con la filosofa de desarrollar un conjunto de medidas de capacidad estructuradas para todos los procesos del ciclo de vida y para todos los participantes. PROPOSITO Evaluacin del proceso de ingeniera Mejora de proceso de Ingeniera Determinacin de capacidades

DIRIGIDA A: Adquisidores Suministradores Evaluadores

3.3 CMM CMM (Capability Maturity Model) Fue diseado por: Software Engineering Institute (SEI) en Noviembre de 1986. Qu es?

31

Es un modelo de calida del software que clasifica las empresas de niveles. Este modelo establece un conjunto de procesos agrupados en reas clave de proceso (KPA). Esta destinada a la evaluacin y mejora de procesos. Propsito Guiar a las organizaciones en la seleccin de estrategias de mejora determinando la madurez del proceso actual. Evolucin Se investiga con marco de mejora y la calidad de las empresas del resultado fue la SW-CMM cuya versin 1.0 se publico en 1991 se reviso la 1.2 y hoy es absoluto. Caractersticas CMM Este trmino se puede referir a: La visin general de los modelos basados en la madurez de las capacidades, modelo de capacidad y madurez. El modelo de calidad especfico de desarrollo del software SW-CMM es un modelo de proceso para el desarrollo y mantenimiento de sistemas de software, diseo sobre los criterios. La calidad de un producto o sistemas. El centro de modelamiento matemtico de la Universidad de Chile. Actividades Compromisos Capacidad Medidas y anlisis Verificacin

3.3.1 Definicin del modelo Es el proyecto o reproduccin a escala reducida o no de un pieza escultrica.

32

El objetivo principal de este proyecto era el diseo 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 organizacin 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 bsica en la gestin de procesos basados en la repeticin de tareas apreciadas previamente, ya que hay una planificacin en trminos de coste, calendario y requisitos. 3.3.4 Nivel definido Definido: adems de una gestin de proyectos, a este nivel las organizaciones disponen de correctos procedimientos de coordinacin entre grupos, formacin del personal, tcnicas de Ingeniera ms detallados y un nivel ms avanzado de mtricas en los procesos. Se implementan tcnicas de revisin por pares. 3.3.5 Nivel administrativo Se caracteriza porque las organizaciones disponen de un conjunto de mtricas significativas de calidad y productividad, que se usan de modo sistemtico para la toma de decisiones y la gestin de riesgos. El software resultante es de alta calidad. La organizacin establece mtricas para productos y procesos estrechando la variacin de estos a as finalmente miden los resultados de calidad. Los proyectos llevan a cabo un control sobre los reductos y procesos estrechando la variacin en el desempeo de su proceso de una manera de caer dentro de los lmites aceptables para esto: Los riesgos involucrados con la tecnologa 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 organizacin predecir tendencias en la calidad del proceso y el producto.

33

3.3.6 Nivel optimizado La organizacin completa esta volcada en la mejora continua de los procesos. Se hace uso intensivo de las mtricas y se gestiona el proceso de innovacin. Existe una evolucin continua en la optimizacin del proceso. ISO 9001 es aplicable a sistemas que comprendan las actitudes de diseo, desarrollo, fabricacin, instalacin y servicio. ISO 9002 es aplicable a sistemas que comprendan las actividades de produccin, instalacin y servicios. ISO 9003 es aplicable a sistemas que comprendan expresin y pruebas fiables. ISO 9004 describe las directrices generales de la gestin de calidad y los elementos de un sistema.

Los procesos de los proyectos y de la organizacin estn orientados a la mejora de las actividades. Mejoras incrementales e innovadoras de los procesos que mediante mtricas son identificados, evaluados y puestos en prctica. Los procesos que hay que implementar para alcanzar estos niveles son: Innovacin organizacional Anlisis Resolucin del as causas

Modelo de cascada La implementacin debe de posponerse hasta que los objetivos se hayan comprendido Prototipacin Estudio de factibilidad Ingeniera de requerimientos Diseo especificacin Codificacin Verificacin Entrega y mantenimiento Propsito El desarrollo o mantenimiento de Software Modelo en espiral
34

Cuatro tareas: 1. Determinar o fijar objetivos Fijar tambin los productos definidos a obtener: requerimientos, especificacin manual de usuario. Fijar las restricciones Identificacin de riesgos del apoyo y estrategias alternativas para evitarlos. Hay una sola cosa que se hace una vez: planificacin inicial previa. 2. Anlisis de riesgo Se estudian los riesgos potenciales y se selecciona una o varias alternativas propuestas para reducir o eliminar los riesgos. 3. Dependiendo del resultado Tareas de la actividad propia y se prueba Anlisis de alternativas e identificacin resolucin de riesgos Dependiendo del resultado de la evolucin de los riesgos, se elige un modelo para el desarrollo. 4. Planificar Revisamos todo el hecho, evaluando y con ello decidimos si continuaremos con las fases siguientes Modelo lineal Etapas: Necesidades Especificaciones Anlisis Diseo Implementacin Validacin Mantenimiento y evaluacin

Son una serie de etapas que comprenden todas las actividades, desde el momento en que surge la idea hacer un nuevo producto de software. El seguimiento de la calidad que aborda principalmente 3 reas o tcnicas: Mtricas del software para el control del proyecto Verificacin y validacin a lo largo del ciclo de vida del software, incluyendo pruebas y procesos de revisin.

35

Mtodos de ordenamiento Mtodo de la burbuja El Ordenamiento de Burbuja (Bubble Sort en ingls) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambindolos de posicin si estn en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten ms intercambios, lo cual significa que la lista est ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeas "burbujas". Tambin es conocido como el mtodo del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparacin, siendo el ms sencillo de implementar. Una manera simple de expresar el ordenamiento de burbuja en pseudocdigo es la siguiente: Para Si hasta entonces: haga lo siguiente:

Repita mientras

Mtodo SHELL

El mtodo Shell pertenece a los mtodos de clasificacin avanzados, nombrado as en honor a su desarrollador, Donald Shell. Este mtodo utiliza una segmentacin entre los datos. Funciona comparando elementos que estn 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 razn se le llama ordenacin por disminucin de incrementos. La ordenacin 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 tamao del arreglo de los datos a ordenar, y que el ltimo valor de dicha secuencia sea 1.

36

Una eleccin muy comn (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 continuacin se muestra un programa que implanta la ordenacin de Shell usando esta secuencia. # include <iostream.h> void main (void) { int a[15]; int n, inc, i, j, tmp; cout <<"De cuantos elementos es el arreglo? "; cin >> n; for (i=1; i<=n; i++) { cout <<"Introduce el elemento " <<i<<" : "; cin >> a[i]; } inc = n/2; while (inc > 0) { for (i = inc +1; i<=n; i++) { tmp = a[i]; j=i; while ( (j-inc) > 0 ) { if (tmp < a[j-inc]) {
37

a[j]=a[j-inc]; j=j-inc; } else break; } // fin del while // a[j]=tmp; } // fin del for // inc = inc/2; } // fin del while // cout <<endl; for (i=1; i<=n; i++) cout << a[i] <<endl; } // fin de shell sort //

Mtodo de insercin directa El mtodo de insercin directa es el que generalmente utilizan los jugadores de cartas cuando ordenan stas, de ah que tambin se conozca con el nombre de mtodo de la baraja. La idea central de este algoritmo consiste en insertar un elemento del arreglo en la parte izquierda del mismo, que ya se encuentra ordenada. Este proceso se repite desde el segundo hasta el n-esimo elemento. Ejemplo: Se desean ordenarse las siguientes clave del arreglo A: 15, 67, 08, 16, 44, 27, 12, 35 Primera pasada A[2] < A[1] 67 < 15 No hay intercambio A: 15, 67, 08, 16, 44, 27, 12, 35 Segunda pasada A[3] < A[2] 08 < 67 Si hay intercambio A[2] < A[1] 08 < 15 Si hay

38

A: 15, 08, 67, 16, 44, 27, 12, 35 Tercera pasada A[4] < A[3] 08 < 15 Si hay intercambio A[3] < A[2] 08 < 15 Si hay intercambio A= 08, 15, 67, 16, 44, 27, 12, 35 Hasta la sptima pasada el arreglo queda ordenado: 08, 12, 15, 16, 27, 35, 44, 67. Mtodo QUICK SORT El mtodo de ordenamiento Quick Sort es actualmente el ms eficiente y veloz de los mtodos de ordenacin interna. Es tambin conocido con el nombre del mtodo rpido y de ordenamiento por particin, en el mundo de habla hispana. Este mtodo es una mejora sustancial del mtodo de intercambio directo Se trata de ubicar a x en la posicin correcta del arreglo, de tal forma que todos los elementos que se encuentran a su izquierda sean menores o iguales a x y todos los elementos que se encuentren a su derecha sean mayores o iguales a x.

39

UNIDAD IV Calidad enfocada al desarrollo del software Conocer y aplicar los estndares 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 sinnimo de eficiencia, flexibilidad, correccin, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad. La calidad del software es medidle y vara 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 perodo (10 aos o ms), necesita ser confiable, mantenible y flexible para disminuir los costos de mantenimiento y perfeccionamiento durante el tiempo de explotacin. La calidad del software puede medirse despus de elaborado el producto. Pero esto puede resultar muy costoso si se detectan problemas deriva dos de imperfecciones en el diseo, por lo que es imprescindible tener en cuenta tanto la obtencin de la calidad como su control durante todas las etapas del ciclo de vida del software.

4.2 Como obtener calidad del software metodologa como estndares La obtencin de un software con calidad implica la utilizacin de metodologas o procedimientos estndares para el anlisis, diseo, programacin y prueba del software que permitan uniformar la filosofa 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 poltica establecida debe estar sustentada sobre tres principios bsicos: tecnolgico, administrativo y ergonmico. El principio tecnolgico define las tcnicas a utilizar en el proceso de desarrollo del software. El principio administrativo contempla las funciones de planificacin y control del desarrollo del software, as como la organizacin del ambiente o centro de ingeniera de software.

40

El principio ergonmico define la interfaz entre el usuario y el ambiente automatizado. La adopcin de una buena poltica 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 evaluacin.

4.3 Como controlar la calidad del software Para controlar la calidad del software es necesario, ante todo, definir los parmetros, indicadores o criterios de medicin, 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 mtricas de calidad y criterios, donde cada mtrica se obtiene a partir de combinaciones de los diferentes criterios. La Metodologa para la evaluacin de la calidad de los medios de programas de la CIC, de Rusia, define indicadores de calidad estructurados en cuatro niveles jerrquicos: factor, criterio, mtrica, elemento de evaluacin, 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 categoras de mtricas: de complejidad de programa o cdigo, 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: clasificacin por tipo, esfera de aplicacin, complejidad, etc., de acuerdo con los estndares 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 mtodos de valoracin de los indicadores: mtodos manuales como cuestionarios o encuestas estndares para la medicin de criterios periciales y herramientas automatizadas para medir los criterios de clculo. Definir las regulaciones organizativas para realizar el control: quines participan en el control de la calidad, cundo se realiza, qu documentos deben ser revisados y elaborados, etc.

A partir del anlisis de todo lo anterior, nuestro Centro se encuentra enfrascado en un proyecto para el Aseguramiento de la Calidad del Software (ACS), vlido

41

para cualquier entidad que se dedique a la investigacin, produccin y comercializacin del software, el cual incluye la elaboracin de un Sistema de Indicadores de la Calidad del Software, la confeccin de una Metodologa para el Aseguramiento de la Calidad del Software y el desarrollo de herramientas manuales y automatizadas de apoyo para la aplicacin de las tcnicas 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 funcin para ayudar a calcular el costo real del software. La mayora 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 clculo real debera ser el valor presente de todos los desarrollos mejoras y costos de mantenimiento esperado durante la vida del proyecto. Este tipo de anlisis demuestra, la recompensa de invertir en un diseo y anlisis de primera. Cuando ms se invierte en un proyecto, ms se va a ahorrar en un futuro costos de mantenimiento y mejoras. El uso de puntos funcin para ayudar a estimar el costo de proyectos, la programacin y es el esfuerzo la estimacin exitosa usando puntos funcin se basa en varias tcnicas de estimacin: Top Down: Analoga y consejo de expertos. Loa estimacin Top Down es una tcnica de estimacin que calcula el programa entero, costo y esfuerzo usando parmetros amplios. Los parmetros amplios y las comparaciones estn basadas en datos histricos usando tcnica de analogas. Lograr la estimacin 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 aplicacin Tipo de sistema operativo: MVS, Windows, Unix

Una vez que los proyectos han sido determinados obtener:

42

Medida histrica de entrega (horas) Diagramas histricos (duracin de programa) Costos histricos

4.5 Nomenclara y certificacion isop 9001 2000 Es un mtodo de trabajo, que se considera tan buena que es el mejor para mejorar la calidad y satisfaccin de cara al consumidor. La versin actual es del ao 2000 ISO 9001:2000; que no ha sido adoptado como modelo a seguir para obtener la certificacin 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 bsicos de la gestin de la calidad son reglas de carcter social encaminadas mejorar la marcha y funcionamiento de una organizacin mediante la mejora de sus relaciones internas. Estas normas han de combinarse con los principios tcnicos para conseguir una mejora de la satisfaccin del consumidor. ISO 9001:2000 especifica los requisitos para los sistemas de gestin aplicables a toda organizacin 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 caractersticas para la calidad interna y externa, que se subdividen posteriormente en dos caractersticas. Estas subcaractersticas se manifiestan externamente cuando el software se usa como parte de un sistema informtico y son el resultado de los atributos externos del software. Esta parte de la ISO/IEC 9126 no elabora el modelo interno y externo ms all del nivel de subcaratersticas. 4.7 Anlisis de factores que determina la calidad de software Los atributos de calidad de un producto de software se divide en interno y externo. Correcta: cuando se desenvuelve de acuerdo con las especificaciones de funcionamiento que provee, es decir, es la equivalencia entre el software y las especificaciones del mismo.

43

Confiable: la confiabilidad de un software se puede determinar en funcin 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 liberacin del producto cuando el cliente lo necesita y con las caractersticas requeridas

4.8 Anlisis del proceso del ciclo de vida del software Proceso. Cuando se construye un producto o se presta un servicio se siguen una serie de pasos para lograr cumplir las tareas necesarias en un cierto orden. Un proceso es una serie de pasos que involucran actividades, restricciones y recursos que producen una salida determinada (producto o servicio) utilizando para ello un conjunto de herramientas y tcnicas. Todos los procesos tienen estas caractersticas: establecen las principales actividades del proceso. utilizan recursos (horas hombre, equipos, dinero). estn 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 dems. tiene un conjunto de principios orientadores que describen las metas de cada actividad.

44

las restricciones pueden aplicarse a una actividad, recurso o producto. Un proceso es ms que un procedimiento. Un procedimiento es una manera estructurada de combinar herramientas y tcnicas 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 estndares 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 construccin de algn producto suele denominarse al proceso ciclo de vida. En particular, el ciclo de vida del software describe la vida de un producto de software desde su concepcin hasta su implementacin, entrega, utilizacin y mantenimiento.

Modelos de procesos en ingeniera de software Es posible concebir diferentes modelos de proceso para arribar a un mismo producto; las diferencias estarn en las actividades priorizadas, su importancia relativa, la secuencia de realizacin, los principios orientadores, las herramientas y tcnicas elegidas. Entre los modelos ms comunes experimentados por la ingeniera 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). programacin extrema (~2000). Nota: las fechas son aproximadas, generalmente de alguna publicacin donde por primera vez se propone el modelo o a partir de la cual cobra vigencia. Una fecha lejana no

45

significa necesariamente inutilidad u obsolescencia; los procesos modernos incorporan muchos principios de modelos ms viejos. Adems, 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 inters las siguientes caractersticas: el proceso debe describirse de manera flexible, que permita a las personas disear y construir el software con algn grado de libertad en la eleccin de las herramientas y tcnicas preferidas o ms 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 dems. cada etapa de un proceso de desarrollo de software es en s misma un proceso o coleccin de procesos capaz de ser descrito como un conjunto de actividades, cada actividad con sus propias entradas, salidas, restricciones y recursos. la descripcin de un proceso puede hacerse de muchas formas, textuales, grficas o combinadas.

Elementos del proceso. El producto logrado a a travs de la realizacin de un proyecto es el resultado de la intervencin de muchas personas. El proceso de desarrollo gua 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 realizacin del proyecto: modelo, cdigo fuente, ejecutables, documentacin. Un sistema de software es el conjunto de todos los artefactos necesarios para representarlo en forma

46

comprensible por mquinas u hombres, destinado a las mquinas, los trabajadores y los 2 de 5 interesados en el proyecto. Las mquinas son las herramientas, compiladores y computadores donde se instalar el software. Los trabajadores son directores, arquitectos de software, diseadores, programadores, personal de gestin, administracin y apoyo. Los interesados son inversores, usuarios, personal de comercializacin, agentes de regulacin, otros. Las personas y mquinas 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 informacin creada, producida, cambiada o utilizada por los trabajadores (hombres o mquinas) durante el desarrollo del sistema. Los artefactos pueden ser tanto de ingeniera como de gestin. Ms formalmente, un artefacto es una pieza de informacin tangible 1) creada, modificada y usada por los trabajadores al realizar actividades 2) donde se representa un rea de responsabilidad 3) candidata a ser tenida en cuenta al realizar el control de configuracin. Un artefacto puede ser un modelo, un elemento de un modelo o un documento. La construccin de un sistema es la construccin de modelos. Diferentes modelos pueden describir diferentes perspectivas del sistema. Un modelo es una abstraccin del sistema, especificando el sistema modelado desde un cierto punto de vista y en determinado nivel de abstraccin. Ms formalmente, un modelo es una abstraccin semnticamente cerrada del sistema. Es una vista autocontenida del sistema: un usuario del modelo no necesita recurrir a informacin 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 gestin; usuarios, clientes, inversores y otros interesados tambin participan en la construccin. Las personas se vern afectadas por diversos aspectos organizativos y de gestin del proyecto: viabilidad del proyecto: el proyecto debe ser posible; una evaluacin temprana de la viabilidad puede detener un proyecto imposible.

47

gestin del riesgo: identificacin de los riesgos mayores, definicin de polticas de aversin 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 divisin en subsistemas con interfaces claras permite trabajar con varios equipos manteniendo su coordinacin. plan de proyecto: una estimacin realista de tiempos y recursos permite armar un plan de trabajo fundamentado y posible, eliminando la desalentadora sensacin de no terminar nunca. facilidad de comprensin del proyecto: la visin global del proyecto provista por la descripcin de la arquitectura permite a todos los implicados conocer qu se est haciendo y para qu; la comprensin de lo que se est haciendo permite a la gente trabajar mejor. cumplimiento: la conclusin exitosa de cada etapa, hecha posible por un plan realista, evita la frustracin del atraso o el incumplimiento. Las tareas y responsabilidades de las personas intervinientes en el proyecto irn cambiando a lo largo del mismo, o an pueden desempearse en diferentes conjuntos de tareas y especialidades al mismo tiempo; el papel de las personas como trabajadores cambiar, o se desempearn como diferentes tipos de trabajadores. El trmino 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 travs del cual se gestiona el desarrollo de software. El resultado de un proyecto es una versin de un producto. Se parte de un proyecto inicial con el cual se evala la viabilidad, se identifican los riesgos y se define el plan de proyecto. La construccin se realizar en una serie de iteraciones; cada iteracin constituye un mini proyecto con requisitos, diseo, implementacin y prueba. 3 de 5.

48

Proceso Un proceso de desarrollo de software es una definicin del conjunto completo de actividades necesarias para transformar los requerimientos del usuario en un producto. Un proceso es un patrn o plantilla sobre la cual se definen los proyectos. Puede decirse que un proyecto es una instancia de un proceso, una aplicacin concreta a un emprendimiento particular de los principios, forma de trabajo y recomendaciones de un proceso. Un proceso de desarrollo de software consiste en la definicin del conjunto completo de actividades necesarias para convertir los requerimientos del usuario en un conjunto consistente de artefactos que conforman el producto de software, as como para convertir los cambios surgidos en los requerimientos en un nuevo conjunto consistente de artefactos de software [Jacobson2000, cap. 2].

Modelo Un modelo es una simplificacin de la realidad. Se construyen modelos para comprender mejor el sistema en desarrollo. El modelado persigue estos objetivos: visualizar cmo ser el sistema deseado; especificar la estructura o el comportamiento del sistema; proveer plantillas descriptivas para usar como gua en la construccin del sistema; documentar las decisiones adoptadas. Se construyen modelos de los sistemas complejos porque resulta muy difcil comprender el sistema en su totalidad. La eleccin de modelos tiene una profunda influencia sobre la forma de enfrentar un problema y como se llega a la solucin. Es preciso elegir bien los modelos. Los mejores modelos reflejan la realidad en todos y slo aquellos aspectos importantes para el sistema en desarrollo. Un modelo puede ser presentado en diferentes niveles de detalle, desde diferentes perspectivas, a travs de un conjunto de modelos casi independientes pero coordinados entre s [Booch1999, cap. 1].

Arquitectura El diseo de arquitectura de un sistema ofrece una visin global del sistema. Ms formalmente, la arquitectura de un sistema de software es un conjunto de decisiones significativas acerca de la organizacin de ese sistema, la seleccin de elementos estructurales e interfaces componentes del sistema junto con su comportamiento, la composicin de esos elementos estructurales en subsistemas, y el estilo que orienta esa organizacin. Incluye no slo la

49

funcionalidad (lo que hace) sino tambin restricciones (limitantes), compromisos sobre uso, rendimiento, comprensin, flexibilidad, reutilizacin, economa, tecnologa y esttica [Jacobson2000, cap. 2]. No es posible comprender la arquitectura de un sistema medianamente complejo si no se la expresa a travs de diversas vistas complementarias: una vista de casos de uso para mostrar los requerimientos del sistema; una vista de diseo para capturar el vocabulario del dominio del problema tal como lo conocen los usuarios y del dominio de la solucin tal como la imaginan los desarrolladores. una visin de procesos, donde se modelan los procesos e hilos de ejecucin mediante los cuales el sistema realizar sus tareas. una vista de implementacin, donde se consigna la relacin entre los distintos componentes de software que colaboran entre s para cumplir los cometidos del sistema. una vista de despliegue donde se muestra la distribucin fsica de los componentes en diferentes equipos y ubicaciones. Cada una de estas vistas comprende aspectos estructurales (estticos, cmo es) y de comportamiento (dinmicos, cmo funciona). En conjunto, estas vistas son los planos del software, anlogos a los planos de un edificio, un puente, una mquina o un diagrama de circuitos [Booch1999, cap. 1]. 4 de 5

Herramientas Las herramientas usadas en la realizacin de un proyecto de desarrollo de software es el software usado para automatizar o facilitar las tareas del personal interviniente en el proyecto. Puede incluir procesadores de palabras, programas de diagramacin, ambientes integrados de desarrollo o software especfico para ingeniera de software (herramientas CASE, Computer Aided Software Engineering, ingeniera de software asistida por computador). El proceso y las herramientas estn estrechamente relacionados; se eligen o construyen las herramientas de acuerdo con el proceso de desarrollo a seguir. Referencias y lecturas recomendadas. El contenido de este documento est basado en las fuentes citadas a continuacin, cuya lectura o consulta no pretenden sustituir. Lecturas recomendadas.

50

[Larman2003] Larman, Craig. UML y patrones. Una introduccin al anlisis y diseo orientado a objetos y al Proceso Unificado, 2a. edicin. 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. Ingeniera de software, teora y prctica, 1a. edicin. Buenos Aires, Pearson educacin, 2002. ISBN: 9879460715.

4.9 FUNCIONES DE EVOLUCION DEL SOFTWARE Durante los primeros aos de la era de la computadora, el software se contemplaba como un aadido. La programacin de computadoras era un "arte de andar por casa" para el que existan pocos mtodos sistemticos. El desarrollo del software se realizaba virtualmente sin ninguna planificacin, hasta que los planes comenzaron a descalabrarse y los costes a correr. Los programadores trataban de hacer las cosas bien, y con un esfuerzo heroico, a menudo salan con xito. El software se diseaba a medida para cada aplicacin y tenia una distribucin relativamente pequea. La mayora del software se desarrollaba y era utilizado por la misma persona u organizacin. La misma persona lo escriba, lo ejecutaba y, si fallaba, lo depuraba. Debido a este entorno personalizado del software, el diseo era un proceso implcito, realizado en la mente de alguien y, la documentacin normalmente no exista. La segunda era en la evolucin de los sistemas de computadora se extienden desde la mitad de la dcada de los sesenta hasta finales de los setenta. La multiprogramacin y los sistemas multiusuario introdujeron nuevos conceptos de interaccin hombre - maquina. Las tcnicas interactivas abrieron un nuevo mundo de aplicaciones y nuevos niveles de sofisticacin del hardware y del software. Los sistemas de tiempo real podan recoger, analizar y transformar datos de mltiples fuentes, controlando as los procesos y produciendo salidas en milisegundos en lugar de minutos. Los avances en los dispositivos de almacenamiento en lnea condujeron a la primera generacin de sistemas de gestin de bases de datos. La segunda era se caracterizo tambin por el establecimiento del software como producto y la llegada de las "casas del software". Los patronos de la industria, del gobierno y de la universidad se aprestaban a "desarrollar el mejor paquete de software" y ganar as mucho dinero.
51

Conforme creca el numero de sistemas informticos, comenzaron a extenderse las bibliotecas de software de computadora. Las casas desarrollaban proyectos en los que se producan programas de decenas de miles de sentencia fuente. Todos esos programas, todas esas sentencias fuente tenan 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 evolucin de los sistemas de computadora comenz a mediados de los aos setenta y continuo mas all de una dcada. El sistema distribuido, mltiples computadoras, cada una ejecutando funciones concurrente y comunicndose con alguna otra, increment notablemente la complejidad de los sistemas informticos. Las redes de rea local y de rea global, las comunicaciones digitales de alto ancho de banda y la creciente demanda de acceso "instantneo" a los datos, supusieron una fuerte presin sobre los desarrolladores del software. La conclusin 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 automviles hasta hornos microondas, desde robots industriales a equipos de diagnsticos de suero sanguneo. La cuarta era de la evolucin de los sistemas informticos se aleja de las computadoras individuales y de los programas de computadoras, dirigindose al impacto colectivo de las computadoras y del software. Potentes maquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompaadas por aplicaciones de software avanzadas se han convertido en la norma. La industria del software ya es la cuna de la economa del mundo. Las tcnicas de la cuarta generacin para el desarrollo del software estn cambiando en la forma en que la comunidad del software construye programas informticos. Las tecnologas orientadas a objetos estn desplazando rpidamente los enfoques de desarrollo de software ms convencionales en muchas reas de aplicaciones. Sin embargo, un conjunto de problemas relacionados con el software ha persistido a travs de la evolucin de los sistemas basados en computadora, y estos problemas continan aumentando. 1. los avances del software continan dejando atrs 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 rpido como para cumplir las necesidades del mercado y de los negocios.

52

3.

El uso extenso de computadoras ha hecho de la sociedad cada vez ms dependiente de la operacin fiable del software. Cuando el software falla, pueden ocurrir daos econmicos enormes y ocasionar sufrimiento humano. 4. Luchamos por construir software informtico que tengan fiabilidad y alta calidad. 5. Nuestra habilidad de soportar y mejorar los programas existentes se ve amenazada por diseos pobres y recursos inadecuados. En respuesta a estos problemas, las practicas de la Ingeniera del Software se estn adoptando en toda la industria.

53