cuestionario-de-sistemas-de-tiempo-real-y-calidad-del-software3.docx
Short Description
Download cuestionario-de-sistemas-de-tiempo-real-y-calidad-del-software3.docx...
Description
CUESTIONARIO DE PROCESAMIENTO DE DATOS PARA EL INTERROGATORIO DEL DIA JUEVES 18/11/2014 A LAS 08:50 pm. UNIDAD 7: SISTEMAS DE TIEMPO REAL Los sistemas en tiempo real están presentes en nuestra vida diaria, prácticamente en todo lo que nos rodea; en los aviones, trenes y automóviles; en el televisor, la lavadora o el horno de microondas, en los teléfonos celulares y en las centrales telefónicas digitales. Son un elemento imprescindible para garantizar la generación, transmisión y distribución de la energía eléctrica y para asegurar la calidad y la seguridad de incontables procesos industriales. La principal característica que distingue a los STR de otros tipos de sistemas es el tiempo de interacción. Sin embargo, es necesario aclarar el significado de las palabras "tiempo" y "real". La palabra "tiempo" significa que el correcto funcionamiento de un sistema depende no sólo del resultado lógico que devuelve la computadora, también depende del tiempo en que se produce ese resultado. La palabra "real" quiere decir que la reacción de un sistema a eventos externos debe ocurrir durante su evolución. Como una consecuencia, el tiempo del sistema (tiempo interno) debe ser medido usando la misma escala con que se mide el tiempo del ambiente controlado (tiempo externo). Definiciones Básicas Los Sistemas de Tiempo Real (STR): Puede definirse como aquel que controla un ambiente recibiendo datos, procesándolos y devolviéndolos con la suficiente rapidez como para influir en dicho ambiente en ese momento. Una de sus características son la velocidad de respuesta y su interacción tanto con personas como con un ambiente generalmente autónomo y hostil un ejemplo sistemas de cajeros automáticos, entre otros. Un sistema de tiempo real es aquel en el que para que las operaciones computacionales sean correctas no solo es necesario que la lógica e implementación de los programas computacionales sea correcto, sino también el tiempo en el que dicha operación entregó su resultado. Si las restricciones de tiempo no son respetadas el sistema se dice que ha fallado. Un STR tiene tres condiciones básicas: Interactúa con el mundo real (proceso físico), Emite respuestas correctas y Cumple restricciones temporales. Características de los STR:
Gran tamaño y complejidad Algunos STR tienen millones de líneas de código, la variedad de funciones aumenta la complejidad incluso en sistemas relativamente pequeños.
Simultaneidad de acciones (Concurrencia) Los dispositivos físicos controlados funcionan al mismo tiempo, las tareas que los controlan actúan concurrentemente.
Dispositivos de entrada y salida especiales Los manejadores de dispositivos forman parte del software de Aplicación.
Seguridad y Confiabilidad El sistema no debe solamente estar libre de fallas pero más aún, la calidad del servicio que presta no debe degradarse más allá de un límite determinado. El sistema debe de seguir en funcionamiento a pesar de catástrofes, o fallas mecánicas. Usualmente una degradación en el servicio en un sistema de tiempo real lleva consecuencias catastróficas, sistemas críticos, fallos con consecuencias graves como pérdida de vidas humanas, pérdidas económicas, daños medioambientales
Determinismo temporal Es la capacidad de determinar con una alta probabilidad, cuanto es el tiempo que se toma una tarea en iniciarse. Esto es importante por que los sistemas de tiempo real necesitan que ciertas tareas se ejecuten antes de que otras puedan iniciar. Esta característica se refiere al tiempo que tarda el sistema antes de responder a una interrupción. Este dato es importante saberlo por que casi todas las peticiones de interrupción se generan por eventos externos al sistema, así que es importante determinar el tiempo que tardara el sistema en aceptar esta petición de servicio.
Responsividad Se enfoca en el tiempo que tarda una tarea en ejecutarse una vez que la interrupción ha sido atendida. Los aspectos a los que se enfoca son: o La cantidad de tiempo que se lleva el iniciar la ejecución de una interrupción o La cantidad de tiempo que se necesita para realizar la tarea que pidió la interrupción. o Los efectos de interrupciones anidadas. Una vez que el resultado del cálculo de determinismo y responsividad es obtenido, se convierte en una característica del sistema y un requerimiento para las aplicaciones que correrán en él.
Usuarios controladores En estos sistemas, el usuario (por ejemplo, los procesos que corren en el sistema) tienen un control mucho más amplio del sistema.
El proceso es capaz de especificar su prioridad El proceso es capaz de especificar el manejo de memoria que requiere (que parte estará en caché y que parte en memoria swap y que algoritmos de memoria swap usar) El proceso especifica que derechos tiene sobre el sistema. Esto aunque parece anárquico no lo es, debido a que los sistemas de tiempo real usan tipos de procesos que ya incluyen estas características, y usualmente estos TIPOS de procesos son mencionados como requerimientos. Operación a prueba de fallas duras El sistema debe de fallar de manera que: cuando ocurra una falla, el sistema preserve la mayor parte de los datos y capacidades del sistema en la mayor medida posible. Que el sistema sea estable, es decir, que si para el sistema es imposible cumplir con todas las tareas sin exceder sus restricciones de tiempo, entonces el sistema cumplirá con las tareas más críticas y de más alta prioridad. Sistemas distribuidos Las tareas de tiempo real se ejecutan en varios computadores comunicados mediante una red, más potencia de cálculo, mayor fiabilidad (redundancia), en los sistemas críticos el tiempo de comunicación debe estar acotado, redes y protocolos específicos, paso de testigo, prioridades (CAN), TDMA, el análisis temporal es más complicado que en los sistemas mono-procesadores. ELEMENTOS QUE COMPONEN UN STR Aspectos de integración y de rendimiento. Manejo de Interrupciones. Bases de Datos de Tiempo Real. Sistemas Operativos de Tiempo Real. Lenguajes de Tiempo Real. Sincronización y comunicación de tareas. RESTRICCIONES EN LOS SISTEMAS DE TIEMPO REAL La mayoría de los sistemas de tiempo real son sistemas empotrados y suelen tener restricciones adicionales en cuanto al uso de recursos computacionales con respecto a otros tipos de sistemas informáticos. De acuerdo a esto un Sistema de Tiempo Real suele tener un conjunto de restricciones temporales marcadas por la dinámica del sistema físico externo. Estas restricciones se asocian a las especificaciones funcionales cuyo cumplimiento es esencial para otorgar validez a la ejecución del sistema. Las restricciones temporales pueden ser de tres tipos diferentes: 1.- Planificación de los instantes de activación de las actividades del sistema. Es típico encontrarse con requisitos del tipo de que una actividad debe iniciarse a una hora dada, o que se ejecute con una determinada periodicidad. Para ello se requiere que las actividades del sistema sean controladas por un reloj con la precisión adecuada. 2.- Plazos de tiempo (máximos o mínimos) en los que debe completarse una actividad. Como ejemplo de este tipo, se puede indicar el tiempo máximo o mínimo de procesamiento de una actividad (por ejemplo, el tiempo de consulta con una base de datos debe ser inferior a X segundos) para que los datos tengan validez. Aunque estos plazos puedan derivarse de un requisito de usuario, durante el desarrollo pueden aparecer otros muchos asociados a las actividades del sistema. 3.- Intervalos de tiempo entre eventos del sistema. Como ejemplo, no se puede encontrar restricciones del tipo de que el tiempo máximo o mínimo entre dos eventos determinados (por ejemplo, dos disparos consecutivos de un sistema de armas) no debe ser superior a X segundos. Este tipo de restricciones temporales implica que todos los eventos del sistema o actividades internas deben tener asociado un valor temporal, sello temporal, con el valor del instante de tiempo en el que se han producido. El código del STR utilizará estos valores junto con el valor del reloj para tomar las decisiones apropiadas. Tecnología de Software para Sistemas de Tiempo Real Los Sistemas de Tiempo Real tienen una importancia creciente utilizándose en muchos campos de la actividad humana y constituyendo uno de los elementos básicos para el control de actividades críticas, esta situación ha hecho que muchos de los desarrollos de nuevas tecnologías de software tengan como objetivo facilitar el desarrollo de Sistemas de Tiempo Real especialmente adecuadas para el desarrollo de sistemas de tiempo real. Existen muchas tecnologías de software para STR. Existen muchas tecnologías de software por lo que no es posible desglosarlas todas en este trabajo por lo que se pueden nombrar dos de ellas SA/RT y Statemate.
El Métodos de Análisis y Diseño Estructurado para Tiempo Real es una extensión de las técnicas estructuradas de análisis y diseño de sistemas a las que se ha incorporado una serie de elementos que parecen necesarios para la descripción del sistema de tiempo real, se basa en la creación de un modelo lógico en el que se incluyen las actividades que debe realizar el sistema y los datos que debe almacenar y un modelo físico que indica como el sistema se desarrolla en una tecnología determinada. El Método Statemate cuyo objetivo primordial es poder describir y razonar sobre el comportamiento del sistema de tiempo real combinado simultáneamente diversas perspectivas, la descripción del STR se basa en el empleo de tres notaciones de forma combinada que son los diagramas de actividad empleados para representar las actividades del sistema y sus interrelaciones, los diagramas de estado extendidos que representan la evolución del control de un diagrama de actividad y diagramas de módulos para indicar los elementos de la arquitectura del sistema. Lo más significativo de Statemate en el uso de diagramas de estados extendidos ya que los diagramas de actividad son similares a los diagramas de flujo de datos, y se utiliza una extensión de los diagramas de estado denominados Statecharts para conseguir resolver parcialmente los problemas derivados de la explosión de estados. La ventaja de este método es que permite describir aspectos concurrentes sin perder modularidad. Las herramientas y la tecnología de software que se usan para construir otros tipos de sistemas no sirven para el software de tiempo real, porque no son suficientemente fiables, sólo contemplan el tiempo de respuesta medio, no garantizan los requisitos temporales, las plataformas de desarrollo y ejecución suelen ser diferentes, es difícil hacer pruebas en la plataforma de ejecución, es difícil medir los tiempos con precisión. Base de Datos en Tiempo Real De forma sencilla se puede indicar que una base de datos no es más que un conjunto de información relacionada que se encuentra agrupada o estructurada. La Base de Datos en tiempo real, usada para almacenar el valor actual de los datos o variables monitoreadas. Es una memoria que guarda datos mientras el programa que la origina está en ejecución por lo cual, no guarda valores históricos una vez que este es detenido. Sistemas Operativos Un sistema operativo de tiempo real, es un sistema operativo que ha sido desarrollado para aplicaciones de tiempo real como tal, se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo, si no las respeta, se dirá que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea predecible (determinista). Los sistemas operativos convencionales no son adecuados para realizar sistemas de tiempo real no tienen un comportamiento determinista, no permiten garantizar los tiempos de respuesta, algunos de ellos son poco fiables. Un sistema operativo de tiempo real (SOTR) debe soportar: – concurrencia: procesos ligeros (threads) con memoria común – temporización: medida de tiempos y ejecución periódica – planificación determinista – dispositivos de E/S: acceso a recursos de hardware e Interrupciones. Los Sistemas Operativos de tiempo real son la plataforma para establecer un sistema de tiempo real ya que en los SOTR no tiene importancia el usuario, sino los procesos, algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS, Spectra. Por lo regular Sistema Operativo de tiempo real suele tener la misma arquitectura que un Sistema Operativo convencional, pero su diferencia radica en que proporciona mayor prioridad a los elementos de control y procesamiento que son utilizados para ejecutar los procesos o tareas. Lenguajes del Sistema de Tiempo Real Un lenguaje de programación de sistemas de tiempo real debe facilitar la realización de sistemas concurrentes, fiables, con un comportamiento temporal analizable. Hay varias clases de lenguajes de interés para STR: – Lenguajes ensambladores: flexibles y eficientes, pero costosos y poco fiables – Lenguajes secuenciales (Fortran, C, C++): necesitan un SO para concurrencia y tiempo real, es un lenguaje muy utilizado para programación de sistemas, es estructurado, con bloques, muy flexible (pero a veces poco seguro), no tiene integrada la concurrencia ni el tiempo real, se consigue invocando servicios del sistema operativo de forma explícita, no facilita la descomposición en módulos ni la programación con objetos, se puede hacer con C++ extensión de C para programar con objetos no se suele usar en STR por problemas de fiabilidad. – Lenguajes concurrentes (Ada, Java,...): concurrencia y tiempo real incluidos en el lenguaje Ada: es un lenguaje diseñado específicamente para sistemas de tiempo real empotrados, concurrencia, tiempo real, acceso al hardware e interrupciones. Este tipo de lenguaje es descendiente de Pascal tiene su estructura en bloques y es fuertemente tipado. Está pensado para construir sistemas grandes y cambiantes paquetes (módulos) y esquemas genéricos, extensión de tipos con herencia, biblioteca jerárquica, interfaces normalizadas con otros lenguajes (C, Fortran) Ada 2005: es la nueva norma en proceso de aprobación esta incluye:
– Mejor soporte para sistemas de tiempo real, perfil de Ravenscar, relojes y temporizadores de tiempo de ejecución, nuevos métodos de planificación del procesador, mejoras en la programación mediante objetos interfaces – Mejoras en la estructura de los programas y en las reglas de visibilidad de las declaraciones. – Mejoras en la biblioteca estándar. Java: es un lenguaje pensado para construir sistemas distribuidos que esta basado en objetos dinámicos con concurrencia integrada en el lenguaje, bibliotecas de clases (APIs) muy útiles pensado para que el código objeto sea portátil interpretado por una máquina virtual (JVM) “write once, run everywhere”. La definición original no es adecuada para tiempo real la planificación de actividades concurrentes no está bien definida los mecanismos de sincronización son inadecuados la gestión dinámica de memoria introduce indeterminismo, la medida del tiempo no es suficientemente precisa otros problemas con excepciones y concurrencia. Java para tiempo real: hay varias propuestas de modificaciones para usar Java en sistemas de tiempo real NIST Requirements for Real-Time Extensions to Java (1999) no modificar la sintaxis, coexistencia con aplicaciones convencionales. Java Real-time Experts Group (Sun & otros),Real-Time Specification for Java (2000-2001) basada en un máquina virtual extendida para STR hay una implementación de referencia, Real-Time Java Working Group (J-Consortium) Real-Time Core Specification (2000) basada en una máquina virtual separada para STR. Los compiladores y las máquinas virtuales para Java de tiempo real no están todavía suficientemente maduros. Sistemas Case para Sistemas de Tiempo Real Las herramientas Case es la mejor base para el proceso de análisis y desarrollo de software, así que las computadoras afectan nuestras vidas nos guste o no, utilizamos las maquinas en nuestra vida diaria, la mayor parte del tiempo sin reconocer conscientemente que estamos haciéndolo, a diario utilizamos aplicaciones domésticas como microondas, televisión, vídeo Casseteras o en la calle los cajeros automáticos, entre otros. Sistema Case: Un conjunto de herramientas CASE integradas que comparten una Interface del usuario común. Los sistemas Case empleados para el desarrollo de sistemas de software cualesquiera poseen un conjunto de herramientas que también son útiles para el desarrollo de un STR, no obstante, los aspectos que debería tener un sistema Case para el de STR y que no se encuentran en los sistemas Case convencionales son los siguientes: Representación de la evolución temporal de un sistema (posiblemente mediante animación de modelos y representación gráfica de su evolución. Análisis de la satisfacción de los requisitos temporales para un diseño o implementación determinado. Soporte a la prueba de STR con conexiones a la plataforma de ejecución real que se utilice. Simulación del entorno con la generación de eventos adecuada al STR para la posible generación (interactiva o no) de casos de prueba. La utilización de las técnicas se ha visto favorecida por la aparición de sistema Case que las soportan, en el caso de SA/RT es muy común encontrarse con sistemas Case que soportan varios métodos del mismo tipo, y en algunos casos, con generación de algún tipo de código. Existe una línea de trabajo en la que se combinan los sistemas de tipo SA/RT con métodos formales para poder disponer de prototipos ejecutables y animar los modelos. Este es el enfoque utilizado en la tecnología IDERS en la que el entorno de soporte posee este tipo de herramientas con los siguientes cuatro componentes: 1.- Subconjunto de herramientas para la construcción de modelos lógicos y físicos incluyendo un núcleo de ejecución de estos con el fin de poder animar los modelos. 2.- Visualizador de código objeto incluyendo el simulador del S.O para poder ver su evolución dinámica. 3.-Gestor del modelo de proceso empleado para que la activación de las herramientas y las actividades del equipo de trabajo sean conformes con ellas. 4.- Mecanismo de Integración de control que asegura el intercambio de información entre los diferentes ejecutores de un prototipo heterogéneo asegurando la consistencia de los valores temporales.
UNIDAD 8: CALIDAD DE SOFTWARE Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario, también puede decirse que es la cualidad de todos los productos, no solamente de equipos sino también de programas. En el desarrollo de software, la calidad de diseño acompaña a la calidad de los requisitos, especificaciones y diseño del sistema. La calidad de concordancia es un aspecto centrado principalmente en la implementación; Si la implementación sigue al diseño, y el sistema resultante cumple con los objetivos de requisitos y de rendimiento, la calidad de concordancia es alta. Adicionalmente se puede seguir los siguientes aspectos para evaluar la calidad del software: Funcionalidad, Confiabilidad, Usabilidad, Eficiencia, Mantenibilidad, Portabilidad. La Calidad del Software tiene características propias del software aquellas que se quieren controlar y asegurar, el software es un producto inmaterial que no se fabrica, tampoco se degradan físicamente, sino que se desarrolla; el software puede tener errores, incidencias pero no son similares a lo que cualquier equipo de carácter físico. La calidad del software se encuentra a la par con la calidad tradicional, pero un paso atrás, debido a que la calidad tradicional tiene varias décadas de historia, mientras que la calidad de software tiene 50 a 60 años Introducción a la Calidad del Software En un mundo globalizado, en donde las organizaciones se ven enfrentadas a competencia de nivel mundial, la calidad se convierte en un importante punto diferenciador, además de aumentar la satisfacción general del cliente, disminuir costos y optimizar los recursos. Los productos o servicios que ostentan certificados de calidad son preferidos por los compradores porque trasmiten seguridad y confianza. Esto también constituye un atributo de valor para las estrategias de comercialización en el exterior. Si bien la industria del software es nueva, ha tenido que madurar rápidamente, tal como lo exigen los avances tecnológicos y su alta participación al interior de las empresas. Esta industria comparte con las demás industrias el interés por la calidad y la competitividad. La obtención de un software con calidad implica la utilización de metodologías o procedimientos estándares para el análisis, diseño, programación y prueba del software que permitan uniformar la filosofía de trabajo, en aras de lograr una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software. Los requisitos del software son la base de las medidas de calidad. La falta de concordancia con los requisitos es una falta de calidad. Los estándares o metodologías definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software. Si no se sigue ninguna metodología siempre habrá falta de calidad. Existen algunos requisitos implícitos o expectativas que a menudo no se mencionan, o se mencionan de forma incompleta (por ejemplo el deseo de un buen mantenimiento) que también pueden implicar una falta de calidad. La política establecida debe estar sustentada sobre tres principios básicos: tecnológico, administrativo y ergonómico.
El principio tecnológico define las técnicas a utilizar en el proceso de desarrollo del software.
El principio administrativo contempla las funciones de planificación y control del desarrollo del software, así como la organización del ambiente o centro de ingeniería de software.
El principio ergonómico define la interfaz entre el usuario y el ambiente automatizado.
La adopción de una buena política contribuye en gran medida a lograr la calidad del software, pero no la asegura. Para el aseguramiento de la calidad es necesario su control o evaluación. Medición del Software En el software lo que se mide son atributos propios del mismo, se descompone un atributo general en otros más simples de medir, a veces se mide bien o mal ya que la descomposición del atributo genérico de calidad en otros sub-atributos se torna irreal, se mide con datos estadísticos no avalados, es imposible decir que la medición se hace en forma correcta. El concepto de medida va de más a menos, va de lo general a lo concreto y lo concreto es asociado a la métrica, cuya combinación te daría el nivel de calidad o seguridad de tu producto. Las ciencias bien estructuradas se basan en medidas bien hechas, se basan en la matemática. Es difícil, y en algunos casos, imposible, desarrollar medidas directas de los factores de calidad del software. Cada factor de calidad Fc se puede obtener como combinación de una o varias métricas: Fc= c1 * m1 + c2 * m2 + … + cn * mn Ci: factor de ponderación de la métrica i, que dependerá de cada aplicación específica. mi: métrica i. (Habitualmente se puntúan de 0 a 10 en las métricas y en los factores de calidad). Métricas para determinar los factores de calidad:
Facilidad de auditoría.
Exactitud. Normalización de las comunicaciones. Completitud. Concisión. Consistencia. Estandarización de los datos. Tolerancia de errores. Eficiencia de la ejecución. Facilidad de expansión. Generalidad. Independencia del hardware. Instrumentación. Modularidad. Facilidad de operación. Seguridad. Auto-documentación. Simplicidad. Independencia del sistema software. Facilidad de traza. Formación.
Métricas ISO 9000 0.2 ISO (Organización Internacional de Normalización) es una federación mundial de organismos nacionales de normalización (organismos miembros de ISO). El trabajo de preparación de las normas internacionales normalmente se realiza a través de los comités técnicos de ISO. Cada organismo miembro interesado en una materia para la cual se haya establecido un comité técnico, tiene el derecho de estar representados en dicho comité. Las organizaciones internacionales, públicas y privadas, en coordinación con ISO, también participan en el trabajo. ISO colabora estrechamente con la Comisión Electrotécnica Internacional (CEI) en todas las materias de normalización electrotécnica. Conceptos relativos a la gestión según ISO 9000:2000 Los términos que se incluyen aquí se han tomado de ISO 9000:2000 Sistemas de Gestión de la Calidad. Sistema de gestión: Sistema para establecer la política y los objetivos, y para la consecución de dichos objetivos. Gestión de la calidad: Conjunto completo de procesos utilizados en un sistema de gestión de la calidad. Política de la calidad: Intenciones y dirección global de una organización relativas a la calidad tal como se expresan formalmente por la alta dirección. Planificación de la calidad: Parte de la gestión de la calidad enfocada al establecimiento e interpretación de la política de la calidad y los requisitos de la calidad y específica cómo se va a alcanzar. Mejora de la calidad: Parte de la gestión de la calidad orientada a mejorar su eficacia y eficiencia. Proceso: Sistema de actividades, que utilizan recursos para transformar entradas en salidas. Control de la calidad del software: Técnicas y actividades de carácter operativo, utilizadas para verificar los requisitos relativos a la calidad, centradas en mantener bajo control el proceso de desarrollo y eliminar las causas de los defectos en las diferentes fases del ciclo de vida. El control de la calidad del software está centrado en dos objetivos fundamentales: Mantener bajo control un proceso. Eliminar las causas de los defectos en las diferentes fases del ciclo de vida. Principios de la gestión de la calidad según ISO 9000: 2000 Los ocho principios de la gestión de la calidad identificados para lograr los objetivos de la calidad, según "ISO 9000:2000 Sistemas de Gestión de la Calidad. Fundamentos y vocabulario." son:
Enfoque al cliente. Las organizaciones dependen de sus clientes y por la tanto deberían comprender las necesidades actuales y futuras de los clientes, satisfacer los requisitos de los clientes y esforzarse en exceder las expectativas de los clientes. Liderazgo. Los líderes establecen la unidad de propósito y la orientación de la organización. Ellos deberían crear y mantener un ambiente interno, en el cual el personal pueda llegar a involucrarse totalmente en el logro de los objetivos de la organización. Participación del personal. El personal, a todos los niveles, es la esencia de una organización y su total compromiso posibilita que sus habilidades sean usadas para el beneficio de la organización. Enfoque basado en procesos. Un resultado deseado se alcanza más eficientemente cuando las actividades y los recursos relacionados se gestionan como un proceso. Enfoque de sistema hacia la gestión. Identificar, entender y gestionar los procesos interrelacionados como un sistema, contribuye a la eficacia y eficiencia de una organización en el logro de sus objetivos. Mejora continua. La mejora continua del desempeño global de la organización debería ser un objetivo permanente de ésta.
Enfoque basado en hechos para la toma de decisiones. Las decisiones eficaces se basan en el análisis de los datos y la información. Relación mutuamente beneficiosa con el proveedor. Una organización y sus proveedores son interdependientes, y una relación mutuamente beneficiosa aumenta la capacidad de ambos para crear valor.
View more...
Comments