Educación y la industria de software costarricense
Ignacio Trejos Zelaya Cenfotec e Instituto Tecnológico de Costa Rica Mes de la Ciencia y la Tecnología – 13 de agosto del 2001, CENAT
Temas
Costa Rica tiene ingenieros y técnicos de primer orden. En Costa Rica se hace software de clase mundial. La competitividad y sostenibilidad de la industria dependen de la gente. La actividad informática puede potenciar la prosperidad nacional. Hay mucho por hacer.
Objetivos
Analizar el entorno. Ilustrar las demandas impuestas sobre la formación de recursos humanos. Presentar algunos retos y oportunidades que se ofrecen para los profesionales costarricenses. Exponer requerimientos para que la capacidad pueda perfeccionarse y hacerse sostenible.
El software
El software consiste de programas, datos, documentación y procedimientos operativos mediante los cuales los sistemas computacionales son útiles al ser humano.
Algunas características
Innovación constante Retos intelectuales Creatividad es apreciada y estimulada Programación disciplina el pensamiento riguroso Se faculta el estudio de la naturaleza... por ejemplo: la inteligencia humana, la biodiversidad, los genomas
Una profesión
Personas y organizaciones dependen del correcto funcionamiento de la tecnología de información. El cambio constante del entorno y del conocimiento exige una actualización profesional continua. Hay responsabilidades ante la sociedad, las organizaciones y la profesión.
Status actual
Las sociedades dependen crecientemente de la tecnología de información Internet ha provocado una enorme demanda de nuevas aplicaciones innovadoras y urgentes Hay aplicaciones de seguridad crítica gobernadas por software Se produce software de variada calidad: metódica o heurísticamente Hay madurez relativa en buenas prácticas de ingeniería de software, minoritariamente asimiladas en CR
Ingeniería del software
La aplicación de la ingeniería al software: la aplicación de enfoques sistemáticos, disciplinados y cuantificables al desarrollo, operación y matenimiento del software. Aquella rama de la ingeniería que se ocupa del desarrollo, operación y mantenimiento de software.
IEEE Computer Society
Evolución desarrollo de software
1965..1970: algoritmos y estructuras de datos
ciencia ingeniería profesional
producción comercial
artesanía
ejemplos aislados: algoritmos, estructuras de datos, métodos y herramientas (compilación), diseño de bases de datos 1980: métodos de desarrollo de software
Mary Shaw
Status - números
Por cada 6 proyectos nuevos de gran tamaño, otros 2 se cancelan Re-trabajo afecta presupuesto total: 40% a 50% presupuesto real 31% se cancelan antes de terminar 52.7% completados exceden 89% presupuesto
Standish Group
Aplicaciones de negocios
Negocio a consumidor Negocio a negocio Consumidor a consumidor Mercados Subastas Agentes Servicios distribuidos Clientes móviles
Los desafíos
Nuevos patrones de uso Nuevas expectativas de los usuarios Competencia creciente Tiempo: ciclo de vida acortado Innovación Especificaciones cambiantes Desarrollo basado en componentes Integración e interoperabilidad Exposición => seguridad Ajuste del proceso
¿Cómo era?
Los dinosaurios: tarjetas perforadas, AutoCoder, COBOL, PL/I. El oligopolio IBM, Burroughs. Las minis: el fenómeno MAI/BasicFour. Las otras minis: Data General, Honeywell, etc. El surgimiento de las carreras universitarias.
Algunos hitos
Buena calidad de la educación universitaria (estatal) en informática. Eliminación de impuestos a las microcomputadoras. Surgimiento de actividad empresarial nacional en desarrollo de software. Programa de informática educativa FOD-MEP. Se inician los programas de postgrado en informática.
¿Cómo estamos hoy?
Exportamos software a Latinoamérica y otras regiones del mundo. Conformación de un sector empresarial que se organiza en una Cámara. El gobierno impulsa la atracción de inversiones en “alta tecnología”. Comienzan iniciativas estratégicas (proyecto BID-Caprosoft, ICCI). Hay dificultades para crecer y perfeccionarse: madurez industrial, capital, recurso humano, otros.
¿Qué hacemos bien?
Sistemas de gestión
Sistemas administrativos, financiero-bancarios, manufactura, oficinas, gestión agrícola, cooperativas, hospitales, distribución, automatización de manufactura, hotelería y turismo. Originados en necesidades del mercado nacional. Ahora enfocados en necesidades de mercados internacionales.
¿Qué hacemos bien?
Software “no tradicional”
Texto y lenguaje Reingeniería automática de software Sistemas colaborativos Herramientas de desarrollo Inteligencia de negocios y sistemas de apoyo a la toma de decisiones Internet Informática educativa Redes y sistemas distribuidos Sistemas digitales
Demanda de tecnología
Mundialmente, la demanda por TI crece muy rápidamente Las aplicaciones de TI son variadas:
• Computadoras en empresas e instituciones • Computadoras en oficinas y hogares • Microprocesadores incrustados en aparatos domésticos • Internet, comercio digital, servicios públicos • Dispositivos móviles
La TI está cambiando a las sociedades modernas
Demanda de personal
La tecnología la hace la gente:
• Invención (concepto, diseño, construcción de prototipos) • Construcción y fabricación • Comercialización • Soporte técnico, soporte a usuarios • Educación, capacitación, entrenamiento • Documentación (manuales, guías, etc.) • Administración
¡La industria de TI exige más que informáticos!
Oferta insuficiente
Crecimiento de demanda RH, en varias empresas del 20% al 100% anual ArtInSoft prevé contratar, en promedio, 10 especialistas en TI por mes para el 2001 Las universidades públicas gradúan a los mejores, pero son insuficientes (entre 150 y 250 al año) Hasta ahora (2001) se están estudiando la oferta y la demanda de profesionales en TI en Costa Rica (Caprosoft-BID) La demanda por parte de colegiales ha crecido y está en primer lugar (> 4,000 aspirantes, > 12%)
Educación informática en CR
Matriculados (aprox.): > 5,000 Graduados al año (est.): 550 22 instituciones de educación superior ofrecen estudios en informática:
• 4 universidades públicas • 13 universidades privadas • 6 colegios universitarios y centros postsecundarios
Pronóstico
Linear Estimate of Totals for Selected Careers
1200 Total Systems/Computer
University Graduates in Engineering
R2 = 0.8807
1000
Industrial Electric/Electronic Mechanical
800
600
400
200
0 1990 1991 1992 1993 1994 1995 1996 Years 1997 1998 1999 2000 2001 2002
Source: CINDE
Los mejores
1. ¿Cuáles son, a su juicio, las 4 mejores universidades costarricenses para la formación de profesionales en informática? OPCIÓN 1 ITCR UCR UNA ULATIN ULACIT UIA ITCR UCR UNA ULATIN ULACIT UIA 10 5 0 0 0 0 4 9 0 2 0 0 OPCIÓN 3 ITCR UCR UNA ULATIN ULACIT UIA ITCR UCR UNA ULATIN ULACIT UIA 1 1 6 0 1 2 0 0 1 1 3 4
OPCIÓN 2
OPCIÓN 4
Fuente: encuesta a empresas del Club de Investigación Tecnológica. 12/1999
Ingreso a Us públicas
UCR - demanda: 1000, aceptados: 230 ITCR - demanda: 2500, aceptados: 180 UNA - demanda: 2200, aceptados: 200
Fuente: universidades
Demanda instatisfecha
7. ¿Consideran ustedes que logran reclutar suficientes profesionales con la calidad educ adec? SÍ NO 4 6 N/A 2
Necesidades - 1
8. ¿Consideran ustedes necesario el contar con personal con preparación técnica de alta calidad, pero con un grado académico inferior al de bachiller universitario? SÍ NO 11 1 N/A 1
Necesidades - 2
Aplicaciones WEB Bases de datos relacionales Bases de datos orientados a objetos Lenguajes orientados a objetos Lenguajes visuales para desarr rápid de aplicac Modelaje de sistemas Redes y Telemática Aseguramiento de la calidad Sistemas Distribuidos Habilidades matemáticas Diseño de interfaces de usuario Redacción técnica Capacidad de trabajo en equipo Habilidades comunicativas Muy Nec 8 11 6 6 9 7 7 6 3 2 7 4 13 12 Nec 3 2 4 7 4 6 5 7 9 8 6 8 0 1 Poco Nec 2 0 1 0 0 0 0 0 1 3 0 1 0 0 No nec 0 0 2 0 0 0 1 0 0 0 0 0 0 0
Retos
Crecer y mejorar
Expandir sustancialmente la actividad de producción de software. Aumentar sensiblemente la capacidad de producir software innovador y de calidad. Fomentar creación, crecimiento y expansión de empresas nacionales. Atraer inversión y sub-contratación. Enfocarse globalmente.
Algunas estrategias - 1
Subir los estándares nacionales en disciplina de ingeniería de software. Promover la consolidación y creación de empresas productoras de software. Darles financiamiento y asesoría para salir a competir. Estimular la formación de emprendedores en los centros de educación superior. Coordinar nacionalmente la formación de recursos humanos en TI: técnica, pregrado, grado, postgrado.
Algunas estrategias - 2
Atraer más mujeres a las ingenierías informáticas. Experiencias de práctica durante estudios. Estimular la educación continua. Establecer sistemas de becas y financiamiento educativo. Definir estrategia de formación de postgrado: “conversión”, especialización, investigación. Ofrecer oportunidades de postgrado en CR y becas al exterior.
Algunas estrategias - 3
Promover la formación de recursos humanos en otras áreas de apoyo. Promover cambios en sistema educativo, desde la primaria: ciencias, idioma, matemática, razonamiento lógico, creatividad, valores Favorecer la “alfabetización informática”.
Algunas estrategias - 4
Fomentar cooperación empresas-universidades. Estimular grupos y programas de investigación. Financiar proyectos de investigación y prototipaje pre-comercial. Estimular: cooperación pre-competitiva entre empresas, incubación de empresas. Estimular la competencia leal. Alianzas: co-desarrollo, inversión, cocomercialización, co-mercadeo, subcontratación, licenciamiento, financiamiento de I&D.
Optimizante Mejorando continuamente
Madurar
Prevención de defectos Administración cambio tecnológico Administración cambio proceso
Administrado Cuantificable y predecible
Administración de la calidad Administración cuantitativa proceso
Definido Estándar y consistente
Revisiones Coordinación intergrupos Ingeniería de producto Administración integrada Programa capacitación Definición proceso
Repetible Disciplinado, controles básicos
Administración de configuraciones Aseguramiento de calidad Manejo de subcontratos Seguimiento de proyectos Planificación de proyectos Manejo de requerimientos
Inicial Capacidad depende de los individuos
¿Por qué importa el proceso?
Experiencia de proyectos con poca atención en el proceso durante las etapas tempranas
Trabajo no productivo
Porcentaje de esfuerzo
Trabajo productivo
Proceso
Tiempo
Mc Connell
Atención al proceso
Experiencia de proyectos que ponen atención al proceso en etapas tempranas de desarrollo.
Trabajo no productivo
Porcentaje de esfuerzo
Trabajo productivo
Proceso Tiempo
Mc Connell
Calidad Calidad
Disciplinarse
Especificación de requerimientos
Casos de prueba Revisión Especificación de requerimientos Casos de prueba Pruebas de integración Pruebas de aceptación
Software probado
Revisión
Diseño arquitectónico
Eficiencia en V&V
Revisiones informales de diseño: 25% a 40% Inspecciones formales de diseño: 45% a 65% Revisiones informales de código: 20% a 35% Inspecciones formales de código: 45% a 70% Pruebas unitarias: 15% a 50% Pruebas de nueva funcionalidad: 20% a 35% Pruebas de regresión: 15% a 30% Pruebas de integración: 25% a 40% Pruebas del sistema: 25% a 55% Inspección formal de código y diseño+pruebas sistemáticas: 97%
Proceso iterativo + V&V
R D
PA PI
R D C
PA PI PU
R D C
PA PI PU
C
PU
iteración
Reutilizar
Hacer, reutilizar
Ing. Dominios vs Ing. Aplicaciones
Reutilizar Localizar, adaptar
Requerimientos
Mercado abierto Conceptos Sistemas existentes
Adquirir-adaptar Desarrollar Re-ingeniería
Inventario de componentes
Proceso de desarrollo
Generalizar Aplicación [Wooding 95]
Modelos
Diagrama de objetos Diagrama de clases Diagramas de Transición Casos de uso Diagramas de Colaboración Diagramas de Secuencia
Vista estática. (estructura) Relaciones entre objetos ej. diagrama de clases.
Vista dinámica. (comportamiento)
Orden de acciones, ej. diagrama de secuencias.
El software El mundo Modelos intermedios
Vista arquitectónica. Dividir un sistema en subsistemas ej. Paquetes
Modus operandi
Requerimientos
Requerimientos
Arquitectura de software Método 1 Método 2
Implementaciones Implementaciones
Objetos
Componentes y plataformas
Aplicaciones interoperables
Web, flujos, colaboración
Ética y profesionalismo
La bola de cristal
Ingresos por salarios
600.00 500.00 400.00 300.00 200.00 100.00 0.00 1 2 3 4 5 6 7 8 9 10
Millones US$
Producción anual
año
Personal en formación
9,000 8,000 7,000 6,000 5,000 4,000 3,000 2,000 1,000 0 1 2 3 4 5 6 7 8 9 10
Total educándose
Año
Graduados por año
Total graduados 4,000 3,000 2,000 1,000 0 1 2 3 4 5 año 6 7 8 9 10
Costo
Costo formación 16.00 14.00 12.00 10.00 8.00 6.00 4.00 2.00 0.00 1 2 3 4 5 año 6 7 8 9 10
Millones US$