Manuel Dávila Sguerra mdavila@uniminuto Bogotá
description
Transcript of Manuel Dávila Sguerra mdavila@uniminuto Bogotá
Manuel Dávila Sguerra
Bogotá
Estrategia del software para el 2015 en los EEUU y aprendizaje para el software Colombiano
Origen del estudio
SOFTWARE 2015: A NATIONAL SOFTWARE STRATEGY TO ENSURE U.S. SECURITY AND
COMPETITIVENESS
Report of the 2nd National Software Summit Center for National Software Studies
XXVII Salón de Informática - Septiembre'2007
3
Contenido
• Introducción
• Riesgos por software defectuoso
• Oportunidades
• La estrategia nacional de software
• Mejorar el mecanismo de producir software “digno de confianza” Trustworthy
• Educación y enfoque de la fuerza de trabajo del software
• Re energización de la investigación y el desarrollo de software
• Enfrentar la Innovación dentro de la Industria del Software
XXVII Salón de Informática - Septiembre'2007
4
Introducción
• Las naciones son altamente dependientes de las tecnologías de la información
• El punto central es el software
• Se encuentra en todos los elementos de la vida cotidiana
• EEUU es una nación bajo riesgo de consecuencias inaceptables por las fallas del software
Importancia
XXVII Salón de Informática - Septiembre'2007
5
Riesgos
Fallas en la Infraestructura
Perdidas económicas inesperadas
Pérdida de vidas
Pérdida de la confianza pública
Pérdida de identidad y de liderazgo
XXVII Salón de Informática - Septiembre'2007
6
Oportunidades (1)
• Direccionar esfuerzos pertinentes a lograr un software seguro y de calidad que sea Digno de confianza “trustworthiness.”
• “Trustworthiness” significa: Digno de confianza para cumplir con los requerimientos necesarios en cualquiera de los componentes de software, aplicación, sistema o red. Tiene atributos de seguridad, garantía, confianza, fiabilidad, rendimiento, supervivencia con un amplio espectro de adversidades y compromisos. Se requiere en el hardware, el software, las comunicaciones, componentes de potencia asi como de los desarrolladores y los que hacen el mantenimiento
XXVII Salón de Informática - Septiembre'2007
7
Oportunidades (2)
– Las características del software como una industria intensiva en trabajo requiere que su fuerza de trabajo sea educada y que exista una estructura salarial competitiva
– Una investigación y desarrollo bien orientada ofrece la oportunidad de mejorar el desarrollo del estado del arte en software entre la industria y la academia
– La industria orientada hacia la aplicación y la academia hacia objetivos de largo plazo.
– Contribución del gobierno a traves de laboratorios y soporte como el de National Science Foundation.
– Hay un reto para sostenerse en un liderazgo relacionado con la innovación
XXVII Salón de Informática - Septiembre'2007
8
La estrategia nacional de software
Para convertir esas oportunidades a soluciones reales es hora de elevar el software a un asunto de política nacional en compañía del estado, la industria y la academia.La visión se orienta a dos logros: adquirir la habilidad de desarrollar y liberar productos y sistemas de software Digno de confianza (trustworthy) de manera rutinaria y asegurar la continuidad de la competitividad de los EEUU en la industria del software
Los 4 programas de la estrategia son:
A. Mejorar el mecanismo de producir software Digno de confianza (trustworthy)B. Educar y caracterizar la fuerza de trabajo en el softwareC. Re energizar la investigación y el desarrolloD. Enfrentar la innovación dentro de la industria del software
XXVII Salón de Informática - Septiembre'2007
9
A. Mejorar el mecanismo de producir software Digno de confianza (1)
Como sociedad basada en la información los EEUU es ireversiblemente dependiente de los sistemas de softwareEl software controla:
La infraestructura energética Las comunicaciones La manufactura, Las finanzas El gobierno y la Defensa nacional entre otras
El Software es un elemento dominante Sus fallas trae enormes riesgos que provienen de hacer software no Digno de confianza (trustworthiness)
XXVII Salón de Informática - Septiembre'2007
10
A. Mejorar el mecanismo de producir software trustworthy (2)Seguridad:
Muchos productos están expuestos a problemas de seguridadno intencionada por mala Ingeniería de software y malas prácticas en la programación
O codigo malicioso y malintencionado como virus, Troyanos, puertas traseras
Hay demasiada pérdida de tiempo en el control de virus, spam que podría utilizarse en tareas productivas
Confianza: El software no debe hacer daño a las personas ni a la propiedad:
aviación, medicina, exploración espacial, banca, transporte Fiabilidad:
No debe afectar a los actores por fallas a gran escala en defensa, telecomunicaciones, energía, espacio y sistemas financieros
Supervivencia: Debe mantener un continuo funcionamiento aun en situaciones
adversas y no solo en ambientes benignos.
XXVII Salón de Informática - Septiembre'2007
11
A. Mejorar el mecanismo de producir software trustworthy (3)
Logros
El software Digno de confianza en las sociedade basadas en la información no es una opción sino una necesidadLa Ingeniería de software ha alcanzado sus límites de los primeros 50 años No son las buenas intenciones ni el cuidado lo que permitirá desarrollar los complejos sistemas del futuro
Para que las nuevas tecnologías sean Dignas de confianza requieren:Identificar y analizar las propiedadesDesarrollar software bajo el contexto Expandir la consciencia y la educación en estos aspectos Incentivar a los desarrolladores de software para producir software bajo estas característicasIncrementar la investigación y el desarrollo en software Digno de confianza
IniciativasAnálisis de software Digno de ConfianzaDesarrollar métodos de medidas para una métrica de calidad para un indice de calidad nacional de softwareInvestigar la factibilidad de crear organizaciones independientes para evaluar software Digno de ConfianzaDesarrolar métodos para alcanzar los objetivos en productos de software, familias de productos, sistemas y sistemas de sistemas
XXVII Salón de Informática - Septiembre'2007
12
A. Mejorar el mecanismo de producir software trustworthy (4)
TareasDesarrollo de software Digno de confianzaCrear evidencias empíricas para determnar cómo los procesos de la ingeniería de software están relacionados con Software Digano de Confianza Desarrollar nuevas tecnologías y procesos para la siguiente Ingeniería de software
Educación y conscientización de TSMejorar y extender el tratamiento de los conceptos de SDC y de los métodos en Ingeniería de software y programas de Computer Science Mejorar la habilidad para comunicar los conceptos a los involucrados
Investigación y desarrollo en SDCIncrementar las inversiones en investigación y desarrolloPromover transferencia de tecnologías de SDC
XXVII Salón de Informática - Septiembre'2007
13
Proceso tradicional en el desarrollo de software
Complejidad del software = N*I*(O elevado a la potencia p)
N = Tipo de programa
I = Nro de entradas
O = Nro de salidas
p = una potencia
XXVII Salón de Informática - Septiembre'2007
14
Modelo Construir y mejorar
1950 – 1960Utilizado por la Volskwagen en la producción y venta de sus vehículos
Úselo, informe fallas que nosotros lo mejoramos !
El más usado en el desarrollo de software aunque de pena admitirlo !
XXVII Salón de Informática - Septiembre'2007
15
Método en cascada1970
La época en que Edsger Dijkstra prohibó el “go to” al margen de la creación de la programación estructuradaFunciona si cada fase está perfectamente desarrollada lo cual nunca es verdad !
XXVII Salón de Informática - Septiembre'2007
16
Modelo Prototipo Rápido
Basado en el modelo de las plantas piloto de los
Ingenieros Químicos.
Produce un programa que realiza funciones
esenciales que se mejora en el transcurso del
desarrollo en la medida en que el usuario lo acepta
XXVII Salón de Informática - Septiembre'2007
17
Modelo Incremental
Mezcla del modelo en cascada y del prototipo Rápido
Reconoce que los pasos en el desarrollo no son discretos y
va creando construcciones paulatinas
Tiene el peligro que el proceso de aprendizaje exceda al de
la productividad y se de el “síndrome de la investigación
XXVII Salón de Informática - Septiembre'2007
18
Modelo Extreme Programming1996
Basado en el desarrollo del sistema de nómina de Chrysler
El cliente se se coloca en el asiento del chofer....
Basado en su discurso él es parte del desarrollo el cual se hace de manera incremental
XXVII Salón de Informática - Septiembre'2007
19
Modelo Round Tripping
Se soporta en generadores de código basado en diseño de patrones
Muy orientado a Programación orientada a objetos
XXVII Salón de Informática - Septiembre'2007
20
Modelo IterativoRUP
El más realista de los modelo tradicionalesHace seguimiento entre cada estado y el anterior
XXVII Salón de Informática - Septiembre'2007
21
Modelo de software seguro
XXVII Salón de Informática - Septiembre'2007
22
7 Puntos de análisis1. Revisión de código con herramientasArtefacto: códigoEjemplo de riesgo encontrado: Buffer overflow en la linea 10Comentario: Es el análisis estático del código que ayuda en parte, no en todo, a descubrir instruccones no seguras
2. Análisis de riesgo de la arquitecturaArtefacto: Diseño y especificaciónEjemplo de riesgo encontrado: pobre protección de datos críticos, fallas en web services al auntenticar código Comentario: los diseñadores, asquitectos y analistas deben documentar las asunciones e identificar los posibles ataques
3. Pruebas de penetraciónArtefacto: Sistema y ambienteEjemplo de riesgo encontrado: manejo pobre del interfaz de webComentario: las pruebas de penetración en la red no son suficientes mecanismosde seguridad. El software debe pasar pruebas de “cajas negras” fabricadas por otrasaplicaciones
XXVII Salón de Informática - Septiembre'2007
23
7 Puntos de análisis
4. Operacion de seguridad o pruebas de seguridad basadas en riesgosArtefacto: Ejemplo de riesgo encontrado: Comentario:
XXVII Salón de Informática - Septiembre'2007
24
Aspectos a tener en cuenta (1)
•Los problemas de la seguridad: defectos como buffer overflow, mal manejo de
detección de errores
•Conectividad, ubicuidad, web services y Soa saben que muchas aplicaciones no
diseñadas para trabjar en red se han publicado como servicios web
•Plataformas antiguas que no soportan ssl
•Integración middleware en que la autenticación y los protocolos del nivel
de aplicación no están alineados.
•Sistemas que tienen código móvil a través de APIS como los plugins de los
navegadores y los Web services y SOA
•Complejidad en software de grandes extensiones en donde no es posible abolir
los bugs
XXVII Salón de Informática - Septiembre'2007
25
Aspectos a tener en cuenta (2)
•La seguridad hoy en día se trabaja más al nivel de la red con firewalls, ssl, ids's etc
•Está en manos de expertos operativos en la red más no en los desarrolladores
de software
•La noción de defender el perímetro no es suficiente ya que si bien los firewalls
intentan proteger el “sistema” del “exterior” no sirve cuando hay tunneling y
el software del exterior entra inpunemente
•3 Pilares: administración del riesgo, touchpoints o mejores prácticas que deben
ir en todo el ciclo de desarrollo y Conocimiento
•Memo de Bill Gates Enero 15 del 2002:
“En los años anteriores hemos aclarado que asegurar que la plataforma .NET sea
Digna de confianza es más importante que cualquier parte de nuestro trabajo”
“La computación Digna de confianza es aquella que está disponible, es fiable
y segura como los servicios de agua, energía electrica teléfono”
“DIgno de confianza va más allá que seguridad”
“Entre añadir funcionalidades al software y hacerlo sguro, preferimos hacerlo seguro”
XXVII Salón de Informática - Septiembre'2007
26
B. Educando y enfocando la fuerza de trabajo del software
Nueve de las diez firmas multinacionales de software en utilidades son de EEUUSon el 90% de las ventas a nivel mundialEl software y su innovación son de una importancia imcremental en las industrias automotriz, manufactura, telecomunicaciones entre otrasDesde la perspectiva de la defensa nacional sistemas militares como jets de combate, tanques, inteligencia militar y tácticas de guerraLa seguridad de la infraestructura como represas, puentes, potencia electrica, sistema de transporte, suministro de agua son dependientes del softwareEl énfasis de paises como India, China, Malasia, Filipinas y Rusia para covertirse en economías del conocimiento que atrae fuerzas de trabajo externo es un tema abierto de debateEducación continua para mantener a los trabajadores en tecnología al dia de los avancesEl outsourcing con el exterior ofrece ventajas de corto plzo pero decrece el número de profesionales propios, lo cual debe ser balanceado que al menos sean buenos compradores de desarrollos externos.
XXVII Salón de Informática - Septiembre'2007
27
Colombia - Estadística de nuevos estudantes en Ingeniería de sistemas
Número de Graduados por Año (Pregrado y Postgrado - TI)
3,000
4,000
5,000
6,000
7,000
8,000
9,000
10,000
11,000
2001 2002 2003 2004 2005 2006 2007
Postgrado
Pregrado
XXVII Salón de Informática - Septiembre'2007
28
El dominio de la Ingeniería de sistemas
XXVII Salón de Informática - Septiembre'2007
29
XXVII Salón de Informática - Septiembre'2007
30
B. Educando y enfocando la fuerza de trabajo del software
Iniciativa educativa en Ingeniería de software•Ensanchar la habilidad de universidades y otros proveedores de
educación y entrenamiento para cumplir con las necesidades de los
estudiantes incitando a estudiar carreras de software así como para
actualizar a los profesionales para que se mantengan al día en las nuevas
tecnologías. •Certificaciones•Entender el impacto real del outsorcing•Entender lo que significa a largo plazo la demanda de la fuerza de trabajo
de los EEUU por el incremento de los niveles de tecnología de la India
y China
XXVII Salón de Informática - Septiembre'2007
31
Colombia - Actividad de ACIS en formación en Tecnologías de punta
Acis Informe de los cursos Asamblea 2009 – IArea Excelente BuenoBases de datos 1 16 25,40% 74,60% 25,40%Ingeniería de software 12 222 39,44% 60,56% 75,00%Lenguajes 6 81 36,66% 63,34% 44,40%Mejores prácticas 12 212 32,22% 67,78% 72,73%Plataformas 4 67 9,32% 90,68% 27,28%Seguridad 1 16 18,75% 81,25% 18,75%
36 614Deloitte 20
Nro cursos
Nro asistentes
Máxima excelente
Nro de cursos por área temática
Bases de datosIngeniería de softwareLenguajes
Mejores prácticasPlataformas
Seguridad
XXVII Salón de Informática - Septiembre'2007
32
C. Re energizar la investigación y el desarrollo de software
El Software es una construcción de Ingeniería con materiales simbólicos y conceptuales cuyas manifestaciones físicas son relativamente intrascendentesLa habilidad de moldearlo está limitada por la capacidad intelectual de los humanosCada vez tiene más influencia en el trabajo de los demásYa es usual hablar de software con 50 millones de lineas de códigoEs dificil de producir software industrialmente y a veces es dificil entender el software hecho por nosotros mismos.La Ingeniería de software sigue siendo una disciplina inmadura acompañada de un incremento en la complejidad de los sistemas que bajo las nuevas tecnologías que aparecen en el mercado
XXVII Salón de Informática - Septiembre'2007
33
C. Re energizar la investigación y el desarrollo de software
Por eso:La investigación y la innovación el desarrollo de software tiene una especial significanciaEl estado debe tener un rol más fuerte para apoyar la investigación y el desarrolloLa investigación más importante debe permear a la sociedad y no solo a los ámbitos de las empresas particularesLa tecnología influencia a las comunidades y a la sociedad en general, casos como TCP/IP, HTTP, HTML fueron diseñados bajo el patrocinio del estado a través de la IETFMuchos estados del arte para mejorar la calidad en el desarrollo de software fueron patrocinados por la National Science Foundation (NSF), Defense Advanced Research Projects Agency (DARPA) en conjunto con Universidades y empresas del sectorLa investigación universitaria patrocinada por el estado da dividendos adicionales por el apoyo a la labor académica de las Universidades
XXVII Salón de Informática - Septiembre'2007
34
El Banco de Innovación Tecnológica - BIT
Diseñar, desarrollar y dar mantenimiento a un sistema de información, que permita administrar, impulsar y dar seguimiento a todos los proyectos de investigación que puedan ser conjuntamente ejecutados entre el sector empresarial de base tecnológica y el sector académico, a través de procesos de investigación aplicada, prácticas profesionales, pasantías u otras modalidades por parte de las universidades y los requerimientos y necesidades del sector productivo del software nacional.
XXVII Salón de Informática - Septiembre'2007
35
C. Re energizar la investigación y el desarrollo de software
El 90 % de cyber incidentes significativos se deben a software defectuoso según CERT - Computer Emergency Response Team (CERT) por lo cual no se debe admitir la tolerancia en la calidad del softwareNo se debe confiar de las mejores prácticas adoptadas tan solo por estadísticas de resultados porque se debe producir software seguro y digno de confianzaNo solo es un proceso de capacitación sino de crear tecnologías anexas para ese propósito.
XXVII Salón de Informática - Septiembre'2007
36
D. Enfrentar la Innovación dentro de la Industria del Software delos EEUU
Innovación tiene que ver con nuevas ideas para mejorar el nivel de vida de las personasLa medida de la productividad debe ser tenida en cuenta:
?Lineas de código por persona/mes? ¿Funcionalidades en lugar de número de instrucciones?
Creación de patentes: IBM: 3415 en el 2003, 3248 en el 2004, 29019 en los últimos 12 años
Triplicando al siguiente competidor La United States Patent and Trademark Office (USPTO) recibe 1000
Aplicaciones de patentes por día para 18 meses de revisión por patente
5% del Producto interno Bruto de los EEUU sale de licencias de propiedad intelectual liderando a otros Paises como Japón y Alemania
40-60 o ciento en el número de patentes por millón de habitantesAcelerar la innovaciónEstudio de descripción de trabajos calificados por el potencial de innovación
Fortalecer la industria del
software
Aumentar la demanda en
tecnologías de información
Cerrar brechas en talento humano,
administrativas y técnicas
Sector Público
Gobierno en línea
Tercerización funciones
de TI Territorios Digitales
SECOP Comercio Electrónic
o
Sector Privado
Mipyme
Digital
Fomento Comercio Electrónic
o
Líneas Crédito
Fomentar la inversión de empresas de base en
TI
Crear entorno que favorezca el desarrollo de la industria en TI, incluyendo desarrollo de
parques tecnológicos
Desarrollo sistema de información: Identificar actores y roles (definir claramente quien hace que), sistema de inteligencia competitiva y de vigilancia tecnológica (oficina de
aviso temprano de nuevas tecnologías - Gartner,Forrester), sistema de talento humano (demanda y oferta) y capacitación
Fomentar desarrollo
de soluciones
para sectores
económicos estratégicos
Gerencia en
proyectos, estándares de calidad
y gerenciales
Identificar / desarrollar soluciones y empresas
de talla mundial
Fomentar la asociativida
d y consolidació
n
Líneas Crédito
Fomento I&D
Incentivo tributario
Colciencias
Fondo capital riesgo
Levantar línea base (empresas, soluciones, herramientas desarrollo)
Apoyar la exportación de soluciones y
servicios
Programa
Proexport
Fortalecer relación
industria, universidad y centros de Investigació
n (CDTs)
Expertos en calidad, arquitectur
a etc.Formació
n formadore
s
Número egresados con competencias requeridas por
la industria
Fortalecer relación
industria, universidad, centros de
Investigación y
asociacionesLíneas
créditos
ICETEX
Formación formadores
Fortalecer la asociación de empresarios
Desarrollo proyecto de Ley para el Software
Dónde pode-mos
Jugar
Fomento capacitación no formal y
certificaciones