S2 Paul C Bentz CAST SOFTWARE · 2015-11-05 · La calidad del software y la gestión del riesgo....

17
Paul C Bentz Executive Advisor CAST Software La calidad del software y la gestión del riesgo

Transcript of S2 Paul C Bentz CAST SOFTWARE · 2015-11-05 · La calidad del software y la gestión del riesgo....

Paul C Bentz

Executive Advisor

CAST Software

La calidad del software y la gestión del riesgo

Estas cosas pasan …….

Computer Failure Delays United Flights Nationwide.

June 17, 2011

Passengers were stranded at airports across the country

Friday night after a failure in United Airlines’ computer

system, the airline said.

El Riesgo del SI

� El Sistema de Información es la maquinaria de lasempresas financieras y arranca elementos críticos de la cadena de valor de la empresa.

� Las cadenas de valor modernas son cada día másdifíciles de gestionar y crean grandes riesgos de negocio.

� Las infraestructuras son fiables y el riesgo se sitúa en los aplicactivos.

Tres tipos de riesgos con el software aplicativo

�� RiesgoRiesgo de Deliveryde Delivery – riesgo que añade costes de TI o impide ingresos de negocio por retrasos o cancelación de proyectos.

�� RiesgoRiesgo de de PerfomancePerfomance (Business Case Risk) – riesgoque afecta a la calidad del aplicativo entregado. Este estátrabajando, pero no como debería. La consecuencia es por ejemplo, que el ROI no funciona.

�� RiesgoRiesgo de de OportunidadOportunidad (Business Opportunity Risk) –riesgo que hace que un aplicativo sea difícil de cambiar y/omantener. La pérdida de reactividad supone pérdidas para el negocio.

Gestionar los riesgos del software

� Manejar el RiesgoRiesgo de Deliveryde Delivery no sirve si el aplicativose comporta de forma imprevisible, falla o funcionafuera de lo esperado. Este riesgo se gestiona con procesos.

�� RiesgoRiesgo de de PerfomancePerfomance y y RiesgoRiesgo de de OportunidadOportunidadtienen que ver con el propio software (el producto -activo de la empresa) y necesitan una disciplina de gestión, herramientas y métodos adecuados.

Definir la calidad del software (1)

�� Functional QualityFunctional Quality – Mide lo que hace el software con respecto a lo que se ha definido.

�� NonNon--Functional QualityFunctional Quality – Mide cómo de bien lo hacecon respecto a lo previsto.

�� Structural QualityStructural Quality – Mide cómo de bien lo seguiráhaciendo a lo largo del tiempo.

Definir la calidad del software (2)

� Estas tres definiciones tienen que ver con el propiosoftware (el producto) y no con el método con el cúal se ha definido y construido.

� Las dos primeras se centran en el comportamientovisible del software, sin poder explicar esecomportamiento .

� La calidad estructural (Structural Quality) mide cómo el producto se ha diseñado y codificado utilizando prácticasreconocidas en industria. Estas prácticas promocionan la seguridad, la fiabilidad y la mantenibilidad del software.

El reto de la calidad estructural del software

� Los aplicativos modernos son multi-capa, multi-lenguaje y multi-plataforma. Su análisis tiene que ser global (holística), por lo queno se trata sólamente de revisar código.

� Además de poder analizar muchas tecnologías y lenguajes, se debe de poder determinar las raíces de los problemas y reportarriesgos por tipos y niveles.

� El reto fundamental de la calidad del software es que sea contextual. La calidad de un solo componente depende de suentorno local y global.

� Analizar la calidad de un aplicativo moderno en el contexto de multiple conexiones con otros códigos, base de datos, middleware y APIs es muy complejo y solo puede realizarse de forma automatizada.

Teniendo en cuenta el sistema entero

Database

Capa de Gestión de datos� EJB – Hibernate - Ibatis

DatabasesDatabasesFilesFiles

WebServices

CICS Connector

Aplicaciones empresariales

Herencia de las aplicaciones

Middleware

Capa de Presentación

Capa de Lógica de negocio

Capa de Datos

CAST analiza segCAST analiza seg úún este modelon este modelo

Aplicaciones Web / Cliente Servidor� ASP/JSP/VB/.NET

Lógica de aplicación� Java, C++, …� Frameworks Struts MVC, Spring

COBOLCOBOL

CICS Monitor (Cobol) Tuxedo Monitor (C)

BatchShell Scripts

Análisis de la calidad de software (ISO 9126 - 3)

Transferencia

Cambio

Robustez

Rendimiento

Tamaño

Nomenclatura

Documentación

Arquitectura

Complejidad

Nomenclatura de los paquetesNomenclatura de las clasesNomenclatura de la interfaz

Paquete de comentarios Clases de comentarios

Métodos de comentarios

Tamaño del paqueteTamaño de las clases (métodos)

Tamaño de la interfaz

Clase de complejidad (Inh. depth)Clase de complejidad (Inh. width)

Artefactos con llamadas recursivasControl de Flujos

Mantenimiento

Seguridad

Prácticas de programación

Archivo de conformidadCódigo muerto

Acceso a los datos controladoDesestructurado

ModularidadEncapsulación de la conformidad

Código vacío

Herencia

Elementos de riesgo

Elementos de coste

Ana

liza

más

de

800

espe

cific

acio

nes

de a

rqui

tect

ura

y le

ngua

jes

de c

ódig

o

Factores de SaludCriteriosSubconjunto de métricas Calidad de la aplicación

Varios artefactos actualizando la misma tabla SQL

Acoplamiento de distribución

SQL de Compleja distribución

CISQ (Consortium for IT Software Quality)

� Creado conjuntamente por SEI & OMG.

� CISQ objectivos clave :

� Desarrollar un estandard computable para usar en la evaluación del software aplicativo por organizaciones IT.

� Desarrollar un sistema de scoring utilizable en la negociación y la gestión de la venta,la adquisición y el mantenimiento de software aplicativo.

� Miembros: Organizaciones con grandes departamentos IT, Integradores de Sistemas, Outsourcers, ISVs y vended ores de soluciones aplicativas.

Para resumir

� El Riesgo de fallo del SI puede dañar seriamente la reputación y/o la rentabilidad de une empresa. Sin medir la calidad interna de los aplicativos, estos riegospueden quedarse escondidos detrás de un reporting que no revela el peligro.

� Una calidad aplicativa pobre puede crear problemas en el futuro que afectarán al negocio. En general estosproblemas no se detectan durante la fase de pruebas.

Los aplicativos de negocio deben mejorar su calidad

BajoAlto

Alto

Calidad deSoftware

Riesgo operacional

Defense and

Aerospace

Software

Business

Applications

Embedded

Software

1980’s 1990’s 2000’s

Ejemplo de impacto sobre el riesgo operacional

0

4,000

8,000

12,000

16,000

20,000

R4 R5 R6 R7

0

100

200

300

400

500

600

700

800

900

New code levelViolations Added

AT&T Code Defects

CA

ST

Vio

latio

ns

Add

ed

Defects A

dded

Releases

Strong correlation Analysis between CAST violation and client’s defects

Referencias

Integradores de Sistemas usan y recomiendan CAST

CSC AIC Services for Client value Creation

Como un agente de industrialización

Certificación de Calidad basada en la plataforma de CAST

Para el Desarrollo de Nuevo Negocio

Auditoría de Aplicaciones basada en la plataforma d e CAST

¡¡MUCHAS GRACIAS!MUCHAS GRACIAS!