Clasificación automática

Un problema de clasificación busca encontrar un sistema que permita identificar automáticamente para cada objeto la clase a la cual pertenece.

  • Un algoritmo usado para enfrentar estos problemas es de los vecinos cercanos (K-NN). El algoritmo usa la distancia para calcular la cercania de un objeto a una clase dada.
  • Árbol de clasificacion:  Algoritmo que toma un atributo , usa este atributo como un nodo raíz, divide el set de entrenamiento de acuerdo al atributo seleccionado y para cada rama resultante este proceso de construcción se realiza recursivamente.
    • El proceso recursivo tiene dos criterios de detención.
    • Entropia y Ganancia se ocupan para seleccionar las mejores variables.

ATRIBUTOS DE CALIDAD

¿Que es un atributo de calidad ?

“Los atributos de calidad son la expectativas de usuario, en general implícitas, de cuán bien funcionará un producto.”
Software Requirements: 3rd Edition (Wiegers, Betty, 2013)

  • Idoneidad Funcional:
    • Completitud Funcional : requerimientos Funcionales vs Funcionalidades implementadas
    • Exactitud Funcional : Resultado esperado vs obtenido
    • Pertinencia Funcional: objetivos cumplidos vs objetivos esperados
  • Eficiencia de Ejecución:
    • Tiempo de comportamiento:Cuanto tarda el sistema y tiempo esperado
    • Uso de Recursos: Consumo de recursos vs consumo esperado
    • Capacidad:limite de tolerancia detectado vs limite de tolerancia esperado(stress test-metricas)
  • Compatibilidad
    • Interoperabilidad: Implementacion de estandares Json SCHEMA, hatedas, SOAP, OPEN API
    • Coexistencia
  • Usabilidad:
    Grado en el cual un producto o sistema puede ser utilizado por usuarios específicos para alcanzar objetivos específicos con efectividad, eficiencia y satisfacción en un contexto de uso específico. Esta característica se compone de las siguientes subcaracterísticas:• Reconocimiento de idoneidad. Grado en el cual los usuarios pueden reconocer si un producto o sistema es apropiado para sus necesidades.
    Ej: Appro. recog: WordPress usado para cualquier cosa que no sea blog.

    • Curva de aprendizaje. Grado en que un producto o sistema puede ser utilizado por usuarios específicos para lograr objetivos específicos de aprender a utilizar el producto o sistema con efectividad, eficiencia, ausencia de riesgo y satisfacción en un contexto de uso específico.
    Ej: Lenguaje de gestos en aplicaciones móviles.

    • Operabilidad. Grado en el cual un producto o sistema tiene atributos que hacen que sea fácil de operar y controlar.
    Ej: Formularios largos o de múltiples pasos. Sistemas gubernamentales.

    • Protección de errores. de usuario Grado en el que un sistema protege a los usuarios contra errores.
    EJ: Sistemas de pago, incertidumbre en el estado del pago.

    • Estética de la interfaz de usuario. Grado en el cual una interfaz de usuario permite una interacción agradable y satisfactoria para el usuario.
    Ej: UI vs UX.

    • Accesibilidad. Grado al cual un producto o sistema puede ser utilizado por personas con la más amplia gama de características y capacidades para alcanzar un objetivo específico en un contexto de uso específico.
    Ej: imágenes con texto, sin alt. Contenido redundante o mal marku

  • Confiabilidad
    Atributos que tienen que tienen que ver con el uso normal del sistema a través del tiempo:
    • Madurez, El grado en que un sistema, producto o componente satisface necesidades de confiabilidad bajo operación normal.
    Ej: Sistemas de compras. Sistemas bancarios.
    • Disponibilidad, Grado en el cual un sistema, producto o componente es operacional y accesible cuando se requiere su uso.
    Ej: SLAs, contratos de servicio. Sistemas con eventos de carga pico puntuales.
    • Tolerancia a fallos, Grado en el que un sistema, producto o componente funciona según lo previsto a pesar de la presencia de fallas de hardware o software.
    Ej Aplicaciones móviles.
    • Capacidad de recuperación, Grado en el que, en caso de interrupción o falla, un producto o sistema puede recuperar los datos directamente afectados y restablecer el estado deseado del sistema.
    Ej Sistemas distribuidos, configuraciones auto-escalables en la nube. Puede estar conectado a la mantenibilidad.

Seguridad:
Es grado en que un producto o sistema protege la información y los datos para que las personas u otros productos o sistemas tengan el grado de acceso a los datos apropiado para sus tipos y niveles de autorización. Esta característica se compone de las siguientes subcaracterísticas:

• Confidencialidad, Grado en el cual un producto o sistema asegura que los datos solo sean accesibles para aquellos autorizados a tener acceso.
Ej: Redes sociales.

• Integridad, Grado en el que un sistema, producto o componente impide el acceso no autorizado o la modificación de programas o datos de computadora.
Ej: Sistemas bancarios.

• Comprobación de hecho, Grado en que se puede demostrar que las acciones o eventos tuvieron lugar, para que los eventos o acciones no puedan ser repudiados más tarde.
Ej: Firmas digitales. Logs de auditoría.

• Traza de responsabilidad, Grado en el que las acciones de una entidad se pueden rastrear de manera única a la entidad.
Ej: Logs de auditoría.

• Autenticidad, Grado en el cual se puede probar que la identidad de un sujeto o recurso es la reclamada.
Ej: Autenticación de 2 factores. Correo electrónico, número de teléfono. Datos biométricos.

  • Mantenibilidad
    Esta característica representa el grado de efectividad y eficiencia con la que un producto o sistema puede ser modificado para mejorarlo, corregirlo o adaptarlo a los cambios en el entorno y en los requisitos. Esta característica se compone de las siguientes subcaracterísticas:

• Modularidad, Grado en el cual un sistema o programa de computadora se compone de componentes discretos tales que un cambio en un componente tiene un impacto mínimo en otros componentes.
Ej: Patrones de arquitectura. Sistemas distribuídos.

• Reusabilidad, Grado en el cual un activo puede ser utilizado en más de un sistema, o en la construcción de otros activos.
Ej: Código de código abierto.

• Analizabilidad, Grado de efectividad y eficiencia con el cual es posible evaluar el impacto en un producto o sistema de un cambio intencional a una o más de sus partes, o diagnosticar un producto por deficiencias o causas de fallas, o identificar partes a ser modificadas .
Ej: Conexión entre código y requerimiento (pepinillo)

• Modificabilidad, Grado en que un producto o sistema puede ser modificado de manera efectiva y eficiente sin introducir defectos o degradar la calidad del producto existente.
Ej: Cobertura de código en tests.

• Testabilidad, Grado de eficacia y eficiencia con el que se pueden establecer los criterios de prueba para un sistema, producto o componente y se pueden realizar pruebas para determinar si se han cumplido esos criterios.
Ej: Funciones puras: ayuda efectos secundarios. Principio de responsabilidad única. Buenas prácticas de diseño.

Portabilidad:
Grado de eficacia y eficiencia con el que un sistema, producto o componente puede transferirse de un hardware, software u otro entorno operacional o de uso a otro. Esta característica se compone de las siguientes subcaracterísticas:

• Adaptabilidad, Grado en el cual un producto o sistema puede ser adaptado efectiva y eficientemente para hardware, software u otros entornos operacionales o de uso diferentes o en evolución.
Ej: Arquitecturas específicas de dominio. Abstracción y separación.

• Instalabilidad, Grado de eficacia y eficiencia con el que un producto o sistema puede instalarse y / o desinstalarse con éxito en un entorno específico.
Ej: Tiendas de aplicaciones.

• Reemplazabilidad, Grado en el cual un producto puede reemplazar otro producto de software especificado para el mismo propósito en el mismo entorno.
Ej: Sistemas distribuidos. Microservicios.

 

DisponibilidadUso de recursosCapacidad de instalaciónIntegridadInteroperabilidadCapacidad de modificaciónEficiencia de ejecuciónPortabilidadMadurezReusabilidadRobustezaProtección de erroresEscalabilidadSeguridadUsabilidadCapacidad de prueba
Disponibilidad++
Uso de recursos+++
Capacidad de instalación+++
Integridad++
Interoperabilidad++++
Capacidad de modificación+++++
Eficiencia de ejecución+
Portabilidad+++
Madurez++++++++
Reusabilidad++++
Robusteza+++++++++
Protección de errores++++
Escalabilidad+++++++
Seguridad++++++
Usabilidad++++
Capacidad de prueba++++++++++