Los productos comerciales listos para usar o comercialmente disponibles listos para usar ( COTS ) son hardware o software empaquetados o enlatados (listos para usar), que se adaptan después de su comercialización a las necesidades de la organización compradora, en lugar de encargar soluciones personalizadas o a medida . Un término relacionado, Mil-COTS , se refiere a los productos COTS para uso militar de los EE. UU.
En el contexto del gobierno de los EE. UU. , la Regulación Federal de Adquisiciones (FAR) ha definido "COTS" como un término formal para los artículos comerciales, incluidos los servicios, disponibles en el mercado comercial que se pueden comprar y usar bajo contrato gubernamental. [1] Por ejemplo, Microsoft es un proveedor de software COTS. Los bienes y materiales de construcción pueden calificar como COTS, pero la carga a granel no. Los servicios asociados con los artículos comerciales también pueden calificar como COTS, incluidos los servicios de instalación, los servicios de capacitación y los servicios en la nube. [2]
Las compras COTS son alternativas al software personalizado o a los desarrollos únicos, ya sean financiados por el gobierno o de otro tipo.
Aunque los productos COTS se pueden utilizar tal como están, en la práctica el producto COTS debe configurarse para satisfacer las necesidades de la empresa e integrarse a los sistemas organizativos existentes. Extender la funcionalidad de los productos COTS a través de un desarrollo personalizado también es una opción, sin embargo, esta decisión debe considerarse cuidadosamente debido a las implicancias de soporte y mantenimiento a largo plazo. Dicha funcionalidad personalizada no cuenta con soporte del proveedor de COTS, por lo que trae consigo sus propios problemas al actualizar el producto COTS.
El uso de COTS se ha impuesto en muchos programas gubernamentales y comerciales, ya que dichos productos pueden ofrecer ahorros significativos en adquisición, desarrollo y mantenimiento.
Las motivaciones para utilizar componentes COTS incluyen la esperanza de reducir los costos del sistema durante toda su vida útil.
En la década de 1990, muchos consideraban que el COTS era extremadamente eficaz para reducir el tiempo y el costo del desarrollo de software . [ cita requerida ] El software COTS venía con muchas desventajas no tan obvias: una reducción en el costo inicial y el tiempo de desarrollo frente a un aumento en el trabajo de integración de componentes de software, dependencia del proveedor , problemas de seguridad e incompatibilidades por cambios futuros. [3]
El software y los servicios COTS suelen ser creados y distribuidos por un proveedor externo. Los COTS se pueden comprar, alquilar o incluso ceder bajo licencia al público en general.
Los COTS se pueden obtener y operar a un costo menor que el desarrollo interno, [ cita requerida ] y brindan mayor confiabilidad y calidad que el software personalizado, ya que estos son desarrollados por especialistas dentro de la industria y son validados por varias organizaciones independientes, a menudo durante un período prolongado de tiempo. [ cita requerida ]
Según el Departamento de Seguridad Nacional de los Estados Unidos , la seguridad del software es un riesgo grave del uso de software COTS. Si el software COTS contiene vulnerabilidades de seguridad graves, puede introducir un riesgo significativo en la cadena de suministro de software de una organización . Los riesgos se agravan cuando el software COTS se integra o se conecta en red con otros productos de software para crear una nueva aplicación compuesta o un sistema de sistemas. La aplicación compuesta puede heredar los riesgos de sus componentes COTS. [4]
El Departamento de Seguridad Nacional de los Estados Unidos ha patrocinado iniciativas para gestionar los problemas de ciberseguridad de la cadena de suministro relacionados con el uso de COTS. Sin embargo, los observadores de la industria del software como Gartner y el SANS Institute indican que la interrupción de la cadena de suministro plantea una gran amenaza. Gartner predice que "las cadenas de suministro de TI de las empresas serán atacadas y comprometidas, lo que obligará a cambios en la estructura del mercado de TI y en la forma en que se gestionará la TI en el futuro". [5] Además, el SANS Institute publicó una encuesta a 700 profesionales de TI y seguridad en diciembre de 2012 que descubrió que solo el 14% de las empresas realizan revisiones de seguridad en cada aplicación comercial que traen a casa, y más de la mitad de las demás empresas no realizan evaluaciones de seguridad. En cambio, las empresas confían en la reputación del proveedor (25%) y en los acuerdos de responsabilidad legal (14%) o no tienen políticas para tratar con COTS en absoluto y, por lo tanto, tienen una visibilidad limitada de los riesgos introducidos en su cadena de suministro de software por COTS. [6]
En la industria de los dispositivos médicos , el software COTS a veces se puede identificar como SOUP ( software de pedigrí desconocido o software de procedencia desconocida), es decir, software que no se ha desarrollado con un proceso o metodología de desarrollo de software conocidos, lo que impide su uso en dispositivos médicos. [7] En esta industria, las fallas en los componentes del software podrían convertirse en fallas del sistema en el propio dispositivo si no se toman las medidas para garantizar que se cumplan estándares justos y seguros. La norma IEC 62304:2006 "Software de dispositivos médicos - Procesos del ciclo de vida del software" describe prácticas específicas para garantizar que los componentes SOUP respalden los requisitos de seguridad para el dispositivo que se está desarrollando. En el caso de que los componentes del software sean COTS, se pueden aplicar las mejores prácticas del DHS para la revisión de riesgos del software COTS. [4] El simple hecho de ser software COTS no implica necesariamente la falta de un historial de fallas o un proceso de desarrollo de software transparente. Para el software COTS bien documentado se hace una distinción como SOUP claro , lo que significa que se puede utilizar en dispositivos médicos. [8] [9]
Un ejemplo llamativo de obsolescencia de productos son los clústers de PlayStation 3 , que utilizaban Linux para funcionar. Sony deshabilitó el uso de Linux en la PS3 en abril de 2010, [10] lo que dejó sin medios para adquirir unidades de reemplazo Linux que funcionen . [11] En general, la obsolescencia de productos COTS puede requerir soporte personalizado o el desarrollo de un sistema de reemplazo. Estos problemas de obsolescencia han llevado a asociaciones entre el gobierno y la industria, donde varias empresas acuerdan estabilizar algunas versiones de productos para uso gubernamental y planificar algunas características futuras, en esas líneas de productos, como un esfuerzo conjunto. Por lo tanto, algunas asociaciones han llevado a quejas de favoritismo, a evitar prácticas de adquisición competitivas y a reclamos de uso de acuerdos de fuente única cuando en realidad no son necesarios.
También existe el peligro de comprar por adelantado un suministro de piezas de repuesto (y materiales) para varias décadas que se volverían obsoletas en 10 años. Todas estas consideraciones llevan a comparar una solución simple (como "papel y lápiz") para evitar soluciones demasiado complejas que creen un sistema " Rube Goldberg " de caracterismo progresivo , cuando una solución simple hubiera bastado en su lugar. [ Aclaración necesaria ] Estas comparaciones también tienen en cuenta si un grupo está creando un sistema de creación de puestos de trabajo para justificar una financiación adicional, en lugar de proporcionar un sistema de bajo costo que satisfaga las necesidades básicas, independientemente del uso de productos COTS.
Aplicando las lecciones de obsolescencia de procesadores aprendidas durante el Lockheed Martin F-22 Raptor , el Lockheed Martin F-35 Lightning II planeó actualizaciones de procesadores durante el desarrollo y cambió al lenguaje de programación C++, que tiene mayor soporte. También han pasado de los ASIC a los FPGA . Esto traslada una mayor parte del diseño aviónico de circuitos fijos a software que se puede aplicar a futuras generaciones de hardware. [12]
Los componentes COTS son parte de las actualizaciones del sonar de los submarinos de la Armada de los Estados Unidos. [13]