1 / 37

Manuel Dávila Sguerra mdavila@uniminuto Bogotá

Estrategia del software para el 2015 en los EEUU y aprendizaje para el software Colombiano. Manuel Dávila Sguerra mdavila@uniminuto.edu Bogotá. Origen del estudio. SOFTWARE 2015: A NATIONAL SOFTWARE STRATEGY TO ENSURE U.S. SECURITY AND COMPETITIVENESS

raziya
Download Presentation

Manuel Dávila Sguerra mdavila@uniminuto Bogotá

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Estrategia del software para el 2015 en los EEUU y aprendizaje para el software Colombiano Manuel Dávila Sguerra mdavila@uniminuto.edu Bogotá

  2. 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

  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

  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

  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

  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

  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

  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 software • C. Re energizar la investigación y el desarrollo • D. Enfrentar la innovación dentro de la industria del software

  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 software • El 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)

  10. A. Mejorar el mecanismo de producir software trustworthy (2)‏ • Seguridad: • Muchos productos están expuestos a problemas de seguridad no 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.

  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 necesidad • La 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 propiedades • Desarrollar 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ísticas • Incrementar la investigación y el desarrollo en software Digno de confianza Iniciativas Análisis de software Digno de Confianza • Desarrollar métodos de medidas para una métrica de calidad para un indice de calidad nacional de software • Investigar la factibilidad de crear organizaciones independientes para evaluar software Digno de Confianza • Desarrolar métodos para alcanzar los objetivos en productos de software, familias de productos, sistemas y sistemas de sistemas

  12. A. Mejorar el mecanismo de producir software trustworthy (4)‏ Tareas • Desarrollo de software Digno de confianza • Crear 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 TS • Mejorar 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 SDC • Incrementar las inversiones en investigación y desarrollo • Promover transferencia de tecnologías de SDC

  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

  14. Modelo Construir y mejorar 1950 – 1960 Utilizado 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 !

  15. Método en cascada 1970 La época en que Edsger Dijkstra prohibó el “go to” al margen de la creación de la programación estructurada Funciona si cada fase está perfectamente desarrollada lo cual nunca es verdad !

  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

  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

  18. Modelo Extreme Programming 1996 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

  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

  20. Modelo IterativoRUP El más realista de los modelo tradicionales Hace seguimiento entre cada estado y el anterior

  21. Modelo de software seguro

  22. 7 Puntos de análisis 1. Revisión de código con herramientas Artefacto: código Ejemplo de riesgo encontrado: Buffer overflow en la linea 10 Comentario: 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 arquitectura Artefacto: Diseño y especificación Ejemplo 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ón Artefacto: Sistema y ambiente Ejemplo de riesgo encontrado: manejo pobre del interfaz de web Comentario: las pruebas de penetración en la red no son suficientes mecanismos de seguridad. El software debe pasar pruebas de “cajas negras” fabricadas por otras aplicaciones

  23. 7 Puntos de análisis 4. Operacion de seguridad o pruebas de seguridad basadas en riesgos Artefacto: Ejemplo de riesgo encontrado: Comentario:

  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

  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”

  26. B. Educando y enfocando la fuerza de trabajo del software • Nueve de las diez firmas multinacionales de software en utilidades son de EEUU • Son el 90% de las ventas a nivel mundial • El software y su innovación son de una importancia imcremental en las industrias automotriz, manufactura, telecomunicaciones entre otras • Desde la perspectiva de la defensa nacional sistemas militares como jets de combate, tanques, inteligencia militar y tácticas de guerra • La seguridad de la infraestructura como represas, puentes, potencia electrica, sistema de transporte, suministro de agua son dependientes del software • El é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 debate • Educación continua para mantener a los trabajadores en tecnología al dia de los avances • El 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.

  27. Colombia - Estadística de nuevos estudantes en Ingeniería de sistemas

  28. El dominio de la Ingeniería de sistemas

  29. 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

  30. Colombia - Actividad de ACIS en formación en Tecnologías de punta

  31. 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 intrascendentes • La habilidad de moldearlo está limitada por la capacidad intelectual de los humanos • Cada vez tiene más influencia en el trabajo de los demás • Ya es usual hablar de software con 50 millones de lineas de código • Es 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

  32. 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 significancia • El estado debe tener un rol más fuerte para apoyar la investigación y el desarrollo • La investigación más importante debe permear a la sociedad y no solo a los ámbitos de las empresas particulares • La 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 IETF • Muchos 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 sector • La investigación universitaria patrocinada por el estado da dividendos adicionales • por el apoyo a la labor académica de las Universidades

  33. 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.

  34. 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 software • No 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 confianza • No solo es un proceso de capacitación sino de crear tecnologías anexas para ese propósito.

  35. 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 personas • La 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 habitantes • Acelerar la innovación • Estudio de descripción de trabajos calificados por el potencial de innovación

  36. Fortalecer la industria del software Fortalecer la asociación de empresarios Dónde pode-mos Jugar Identificar / desarrollar soluciones y empresas de talla mundial Apoyar la exportación de soluciones y servicios Cerrar brechas en talento humano, administrativas y técnicas Programa Proexport Fondo capital riesgo Aumentar la demanda en tecnologías de información Fomentar desarrollo de soluciones para sectores económicos estratégicos Gerencia en proyectos, estándares de calidad y gerenciales Fomentar la inversión de empresas de base en TI Líneas Crédito Número egresados con competencias requeridas por la industria Fomento I&D Fomentar la asociatividad y consolidación Crear entorno que favorezca el desarrollo de la industria en TI, incluyendo desarrollo de parques tecnológicos Sector Privado Sector Público Fomento capacitación no formal y certificaciones Líneas Crédito Mipyme Digital Incentivo tributario Colciencias Fortalecer relación industria, universidad, centros de Investigación y asociaciones SECOP Comercio Electrónico Gobierno en línea Levantar línea base (empresas, soluciones, herramientas desarrollo) Fortalecer relación industria, universidad y centros de Investigación (CDTs)‏ Fomento Comercio Electrónico Tercerización funciones de TI Territorios Digitales Líneas créditos ICETEX Expertos en calidad, arquitectura etc. Formación formadores Formación formadores 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 Desarrollo proyecto de Ley para el Software

More Related