3 3 UNIVERSIDAD DE COSTA RICA OFICINA DE SUMINISTROS UNIDAD DE COMPRAS LOCALES CONTRATACIÓN DIRECTA NO.2007CD-000067-CDS “CONTRATACIÓN DE SERVICIOS PROFESIONALES PARA CAPACITAR AL PERSONAL DE RECTORÍA DE LA UNIVERSIDAD DE COSTA RICA EN EL USO DE APLICACIONES Y BASES DE DATOS DE ORACLE” La Oficina de Suministros recibirá ofertas por escrito, el día _28 de setiembre del 2007 a las 10:00 horas, tendientes a la contratación indicada. Los interesados deberán retirar el cartel, las Condiciones Generales y las Especificaciones Técnicas en la Oficina de Suministros de la Universidad de Costa Rica, ubicada en Sabanilla de Montes de Oca, de las instalaciones deportivas, 250 metros este y 400 metros norte. El cartel estará disponible en la siguiente página de internet http://www.vra.ucr.ac.cr, cejilla OSUM, publicación de documentos. Los interesados en participar que adquieran el cartel por este medio, deberán enviar al fax: 207-5975 los datos de la empresa, número telefónico, fax y el nombre de la persona a quien contactar en caso necesario, el incumplimiento de este requisito exonera a la Unidad de Licitaciones la no comunicación de prórrogas, modificaciones o aclaraciones al concurso. La administración considerará las ofertas de las compañías o de personas físicas que no fueron invitados siempre y cuando se hayan inscritos en el Registro de Proveedores antes de la apertura o que presenten toda la documentación legal con su oferta. Se estima esta contratación la suma de ¢ 7.000.000.00 Ciudad Universitaria Rodrigo Facio, 24 días del mes de setiembre de 2007 Lgr. 1 UNIVERSIDAD DE COSTA RICA OFICINA DE SUMINISTROS UNIDAD DE COMPRAS LOCALES CONTRATACIÓN DIRECTA NO.2007CD-000067-CDS “CONTRATACIÓN DE SERVICIOS PROFESIONALES PARA CAPACITAR AL PERSONAL DE RECTORÍA DE LA UNIVESIDAD DE COSTA RICA EN EL USO DE APLICACIONES Y BASES DE DATOS DE ORACLE” La Oficina de Suministros de la Universidad de Costa Rica, recibirá ofertas por escrito, el día 28 de setiembre del 2007 a las 10:00 horas para la contratación citada. Renglón 1. Cuarenta (40) horas de capacitación en desarrollo de aplicaciones JAVA utilizando ORACLE JDEVELOPER, para 12 personas. Contenidos solicitados: 1. Introducción a las plataformas Java y Oracle 1.1. Java y sus principales beneficios 1.2. Uso de Java en aplicaciones empresariales 1.3. Java Virtual Machine y aspectos de seguridad Aplicaciones Java para Oracle 1.4. JDeveloper como herramienta de desarrollo de aplicaciones Java 1.5. Estructura de proyectos y archivos de aplicaciones 1.6. Configuración del ambiente Java 1.7. Laboratorio: Exploración del IDE de desarrollo, definición y configuración de la estructura de una aplicación básica. 2. Principios de Programación Orientada a Objetos 2.1. Conceptos de clases y objetos 2.2. Atributos y métodos de los objetos 2.3. Composición de objetos 2.4. Colaboración entre objetos 2.5. Estructura de clases 2.6. Encapsulamiento 2.7. Herencia 2.8. Polimorfismo 2.9. Introducción al Modelaje mediante UML 2 2.10. Laboratorio: Modelado de una aplicación básica utilizando UML en el IDE de desarrollo. 3. Sintaxis y Convenciones de Programación 3.1. Revisión de los paquetes del J2SE/J2EE 3.2. Estructura de código de clases 3.3. Convenciones de nombres de clases, variables y métodos 3.4. Declaración de variables y constantes 3.5. Declaración y estructura de métodos 3.6. Variables locales y de métodos 3.7. Creación de sentencias de código 3.8. Documentación interna 3.9. Documentación técnica usando JavaDoc 3.10. Laboratorio: Creación de clases de la aplicación modelada anteriormente, entendiendo su estructura y mantenimiento. 4. Tipos de Datos Primitivos y Operadores 4.1. Palabras reservados 4.2. Tipos de datos primitivos 4.3. Declaración y alcance de variables de tipos de datos primitivos 4.4. Literales de tipos de datos primitivos 4.5. Categorías de operadores 4.6. Operador de asignación 4.7. Operadores aritméticos 4.8. Conversión de tipos de datos 4.9. Operadores unarios (incremento / decremento) 4.10. Operadores relacionales 4.11. Operador ternario condicional 4.12. Operadores lógicos 4.13. Asignación combinada 4.14. Precedencia de operadores 4.15. Concatenación de strings 4.16. Laboratorio: Construcción detallada de las clases creadas anteriormente, incorporando el uso de tipos de datos primitivos y los diferentes tipos de operadores. 5. Control de Flujo de Programas 5.1. Categorías y usos de flujos de control 5.2. Bifurcación (if) simple y anidada 5.3. N-furcación mediante switch 5.4. Ciclos en Java 5.5. Ciclo While 5.6. Ciclo Do While 5.7. Ciclo For simple y elaborado 5.8. Uso de break y continue 5.9. Laboratorio: Inclusión de control de flujo a las clases creadas. 3 6. Creación de Clases y Objetos 6.1. Diferencia entre clases y objetos 6.2. Instanciación de objetos 6.3. Diferencia entre primitivas y objetos 6.4. Referencia null y asignación de referencias 6.5. Variables de instancia 6.6. Modificadores de acceso 6.7. Definición e invocación de métodos 6.8. Especificación de parámetros de métodos 6.9. Parámetros por valor o por referencia 6.10. Aplicar el concepto de encapsulamiento 6.11. Declaración e inicialización de variables de clase 6.12. Métodos de clase 6.13. Concepto de paquetes 6.14. Agrupación de clases en paquetes 6.15. Modificadores de acceso a nivel de clases y paquetes 6.16. Laboratorio: Creación e instanciación de clases en diferentes escenarios. 7. Ciclo de Vida de Objetos y Clases Inner 7.1. Sobrecarga de métodos Referencia this Inicialización de variables 7.2. Concepto de contructor 7.3. Definición y sobrecarga de constructores 7.4. Laboratorio: Creación de clases con constructores y métodos sobrecargados. 8. Clases Strings y String Buffer. Clases contenedoras y para formato 8.1. Declaración y creación de strings estáticos 8.2. Operaciones con strings 8.3. Comparación de strings 8.4. Generación de strings desde otros objetos y viceversa 8.5. Generación de strings desde primitivas y viceversa 8.6. Declaración y creación de strings dinámicos 8.7. Clases contenedoras para primitivas y sus métodos 8.8. Clases para formato de fechas y números 8.9. Concepto y uso de serialización de objetos 8.10. Laboratorio: Inclusión de lógica en las clases creadas previamente para el manejo de strings y otras clases importantes. 9. Reutilización de Código mediante Herencia y Polimorfismo 9.1. Especificación y uso de herencia en Java 9.2. Generación de código para subclases 9.3. Inicialización por defecto 9.4. Referencia super 9.5. Uso de constructores de las clases base 9.6. Creación e invocación de métodos sobreescritos 9.7. Especificación y uso del polimorfismo en Java 9.8. Operador instanceof 9.9. Restricción de herencia a nivel de clases y métodos 4 9.10. Laboratorio: Aplicación de herencia y polimorfismo en una aplicación conformada por las clases creadas previamente. 10. Uso de Arreglos y Colecciones 10.1. Conceptos de arreglos estáticos 10.2. Declaración, creación e inicialización de arreglos de primitivas 10.3. Declaración, creación e inicialización de arreglos de referencias de objetos 10.4. Arreglos multidimensionales 10.5. Manejo de excepciones en los arreglos 10.6. Conceptos de estructuras de datos dinámicas 10.7. Declaración, creación e inicialización de vectores 10.8. Marco de trabajo de Colecciones en Java 10.9. Uso de las clases ArrayList y Hashtable 10.10. Uso de iteradores en las colecciones 10.11. Laboratorio: Creación de estructuras complejas en una aplicación conformada por las clases creadas previamente. 11. Clases Abstractas e Interfases 11.1. Definición y creación de clases abstractas 11.2. Definición y creación de métodos abstractos 11.3. Especificación y uso de interfases en Java 11.4. Implementación de un caso mediante el uso de interfases 11.5. Operador instanceof a nivel de interfases 11.6. Laboratorio: Implementación de una aplicación de mediana complejidad utilizando interfases. 12. Manejo de Excepciones en Java 12.1. Conceptos sobre manejo de excepciones 12.2. Ventajas del manejo de excepciones en Java 12.3. Categorías y jerarquía de excepciones 12.4. Atrapar y manejar una o múltiples excepciones 12.5. Uso del bloque finally 12.6. Pasar excepciones a los métodos invocadores 12.7. Lanzar excepciones directamente 12.8. Creación de excepciones de usuario 12.9. Lanzar excepciones diferentes 12.10. Laboratorio: Creación de una aplicación con manejo complejo de excepciones en diferentes escenarios. 13. Uso de JDBC para Acceder la Base de Datos 13.1. Java, J2EE y Oracle10g Conceptos y configuración del JDBC 13.2. Manejo de conexiones en JDeveloper 13.3. Registro del driver de conexión a la base de datos Selección de drivers según la aplicación: Thin / OCI Creación del URL de conexión a la base de datos 13.4. Creación y uso de la interfase Statement 13.5. Ejecución de consultas 13.6. El objeto ResultSet: creación y procesamiento Consultas tipo DML 5 13.7. Consultas tipo DD Administración de conexiones Mapeo de los tipos de datos de la BD a tipos en Java Manejo de excepciones en SQL 13.8. Manejo de transacciones Creación y uso del objeto PreparedStatement 13.9. Laboratorio: Integración de la interfase gráfica de usuario, clases lógicas y clases de datos contra la base de datos usando JDBC. 14. Revisión de la Arquitectura J2EE 14.1. La plataforma J2EE 14.2. Componentes web y de negocios 14.3. Contenedor Oracle Application Server para J2EE (OC4J) 14.4. Estructura de aplicaciones J2EE 14.5. Empaquetamiento de componentes J2EE 14.6. Paquetes JAR 14.7. Paquetes WAR 14.8. Paquetes EJB JAR 14.9. Paquetes EAR 14.10. Organización de paquetes de una aplicación J2EE 14.11. Wizards J2EE en JDeveloper 14.12. Diseño de una aplicación J2EE 14.13. Laboratorio: Exploración del IDE de desarrollo, definición y configuración de la estructura de una aplicación J2EE. 15. HTML y Javascript 15.1. Definición de html 15.2. Estructura básica de un documento html. 15.3. Estilos básicos de html. 15.4. Tablas. 15.5. Listas. 15.6. Formularios. 15.7. Enlaces. 15.8. Carácteres especiales. 15.9. Definición de javascripts 15.10. Ejemplos prácticos de javascripts. 15.11. Laboratorio: Creación de páginas html que utilicen javascripts. 16. Revisión del Estándar XML 16.1. Revisión de sintaxis de HTML 16.2. Conceptos de aplicaciones XML 16.3. Reglas y sintaxis en XML 16.4. Hojas de estilo CSS y XLS 16.5. Laboratorio: Desarrollar una aplicación que consulte a la base de datos y obtenga el resultado en formato XML canónico y con transformaciones. 6 17. Capa Web: Servlets 17.1. Conceptos de Servlets 17.2. Ciclo de vida de los servlets 17.3. Características y estructura 17.4. Métodos doGet, doPost 17.5. Objetos HttpServletRequest, HttpServletResponse 17.6. Manejo de entrada de datos, inicialización, destrucción, errores y depuración 17.7. Mapeo de servlets Invocación de un servlet 17.8. Creación de una conexión desde JDeveloper al Oracle Application Server 17.9. Instalación automática en el OC4J Instalación manual en el OC4J 17.10. Laboratorio: Crear un formulario HTML que mediante el método POST envíe los datos a un servlet que los valida y procesa, para luego mostrar una página resumen con los datos ingresados. 18. Capa Web: Java Server Pages 18.1. Conceptos de Java Server Pages 18.2. Comparación entre Java Server Pages y Servlets 18.3. Invocación de JSP’s 18.4. Características automáticas de JSP’s 18.5. Ciclo de vida de un JSP 18.6. Elementos básicos de un JSP 18.7. Declaraciones, expresiones y scriptlets 18.8. Objetos implícitos 18.9. Wizards en JDeveloper para JSP’s 18.10. Páginas de manejo de errores Documentos JSP (XML) 18.11. Laboratorio: Crear un JSP que consulte directamente información a la base de datos. Así mismo hacer que el JSP utilice un componente intermedio para obtener los datos. 19. Accediendo a la base de datos con Servlets 19.1. Revisión de JDBC 19.2. Creación y configuración de orígenes de datos 19.3. Uso de JDBC desde los servlets 19.4. Laboratorio: Crear una conexión a la base de datos desde JDeveloper y un origen de datos en el Oracle Application Server. Luego, modificar el servlet creado antes para que consulte en la base de datos la información y la despliegue. 20. Técnicas Avanzadas en Servlets 20.1. Encabezados HTTP 20.2. Encabezados de solicitud y respuesta 20.3. Códigos de estatus 20.4. Uso de cookies 20.5. Preservación de estado Servlets tipo filtro 20.6. Eventos de ciclo de vida Mantenimiento de estado en aplicaciones J2EE 20.7. Laboratorio: Crear un servlet que haga uso de cookies y atributos de sesión en diferentes escenarios. Crear un servlet tipo filtro que valide una cadena de componentes web. 7 21. Struts 21.1. Revisión del MVC 21.2. Definición del action form 21.3. Definición del action class 21.4. Definición del DynaActionForm 21.5. Definición del StrutsValidator Plugin 21.6. Archivo de configuración de XML de struts Redireccionamiento de páginas 21.7. Definición del archivo de propiedades 21.8. Manejo de mensajes de error 21.9. Identificación de las clases que componen el paquete de struts Wizards en JDeveloper para struts 21.10. Laboratorio: Crear un JSP y manipular los mensajes de error, usando la clase interna de struts de manejo de mensajes para implementar mensajes de ayuda. Además, se debe modificar el servlet creado anteriormente para que la lógica sea manejada por formularios de struts, utilizando los archivos de propiedades para definir las etiquetas y campos requeridos. 22. Taller Práctico 22.1. Desarrollo de una pequeña aplicación que utilice JSPs, Sevlets, Struts, acceso a base de datos. Renglón 2. Cuarenta (40) horas de capacitación en Bases de Datos Oracle 10g, para 8 personas. Contenidos solicitados: 23. Introducción 23.1. Generalidades del RDBMS Oracle 23.2. Tareas del Administrador de la base de datos 24. Componentes de la arquitectura de ORACLE 24.1. Tipos de conexiones 24.2. Procesos de usuarios 24.3. Procesos del servidor 24.4. Concepto de instancia 24.5. Componentes de una instancia 24.6. Ejecución de sentencias 24.7. Proceso de commit 25. Utilización de herramientas para administración 25.1. SQL PLUS 26. Oracle Enterprise Manager 26.1. Administración de una instancia ORACLE 26.2. Creación y modificación del archivo de parámetros 26.3. Arrancando y Bajando una instancia 26.4. Procesos en el arranque y bajado de una instancia 26.5. Administración de sesiones de usuario 8 26.6. Bitácoras de la base de datos 27. Laboratorio creación de base de datos 27.1. Tareas de PRE-creación de una instancia 27.2. Utilización del Asistente de creación de instancias de ORACLE 28. Laboratorio de Mantenimiento de Control Files y Redo Logs 28.1. Conceptos 28.2. Administración 28.3. Modificación de ubicación y tamaño de archivos 29. Laboratorio de Administración de Tablespaces 29.1. Creación de tablespaces 29.2. Cambio de tamaño 29.3. Configuración de parámetros de almacenamiento 29.4. Borrado de tablespaces 29.5. Consideraciones generales. 30. Administración de usuarios 30.1. Creación de usuarios 30.2. Actualización y borrado de usuarios 30.3. Asignación de permisos 31. Laboratorio proceso de respaldos de una base de datos ORACLE 31.1. Consideraciones 31.2. Utilitario “Export” 31.3. Respaldos en Caliente Condiciones Especiales: 1. El adjudicatario de la capacitación deberá proveer a los participantes del material didáctico en idioma español para cada estudiante en cada uno de los cursos. 2. El adjudicatario deberá proporcionar el instructor o instructores necesarios para cada curso, dichos instructores deberán estar certificados por Oracle. 3. El adjudicatario en la capacitación deberá incluirr las prácticas necesarias para los estudiantes. 4. El adjudicatario deberá dotar a los participantes los certificados de participación, dichos títulos deben ser avalados por Oracle. 5. El adjudicatario deberá facilitar de las instalaciones y equipos necesarios para llevar a cabo las capacitaciones. 9 6. El adjudicatario debe garantizar que los cursos serán exclusivamente para el personal de la Universidad por lo que no se aceptarán estudiantes ajenos a la misma en el salón de clases. 7. El personal que impartirá la capacitación debe tener demostrada su experiencia en las tecnologías expresadas, por lo que los oferentes deben de aportar documentación que demuestre su trayectoria y solidez, adjuntando cartas de recomendación de las Instituciones, empresas u organismos a las cuales se les ha prestado dicho servicio o de aspectos relacionados. 10 UNIVERSIDAD DE COSTA RICA OFICINA DE SUMINISTROS UNIDAD DE COMPRAS LOCALES CONTRATACIÓN DIRECTA NO.2007-CD-000067-CDS “CONTRATACIÒN DE SERVICIOS PROFESIONALES PARA CAPACITAR AL PERSONAL DE RECTORÍA DE LA UNIVESIDAD DE COSTA RICA EN EL USO DE APLICACIONES Y BASES DE DATOS DE ORACLE I- CONDICIONES ESPECIALES 1. Vigencia de las Ofertas: Las ofertas deberán tener una vigencia de 30 días hábiles a partir de la fecha de apertura de las mismas. 2. Monto y Plazo de la Garantía de Participación: No se requiere para esta contratación. 3. Monto y Plazo de la Garantía de Cumplimiento: No se requiere para esta contratación. 4. Plazo de Adjudicación: La Administración podrá tomar hasta 10 días hábiles para realizar la adjudicación, contados a partir de la fecha de apertura de las ofertas. 5. Forma de Adjudicación: La Administración se reserva el derecho de adjudicar o declarar desierto el concurso. 6. Inicio de la Capacitación: Inmediatamente, a partir de la orden de inicio por parte de Rectoría, previo envío de la orden de servicios vía fax 7.Forma de Pago: Se pagará 30 días naturales siguientes a la presentación de la factura. Las facturas deberán ser aprobadas previamente por la Rectoría hasta el monto máximo que establezca la Orden de Servicios. Cuando la oferta se presente en dólares, la factura se cancelará en colones costarricenses, al Tipo de Cambio promedio o valor comercial efectivo a la fecha en que se emita el cheque. 11 Evaluación de Ofertas 100% Precio CONDICIONES GENERALES: 1. Entrega y Presentación de la Oferta: La Oferta deberá presentarse en la fecha y antes de la hora y fecha indicada para el vencimiento en el Cartel, en la Oficina de Suministros , Unidad de Licitaciones de la Universidad de Costa Rica, ubicada en Sabanilla de Montes de Oca, de las Instalaciones Deportivas 250 metros al Este y 400 metros al Norte. La oferta deberá presentarse por escrito, en sobre cerrado, correctamente identificada, rotulado con el número y objeto de la contratación, nombre del oferente y su cedula (Física o Jurídica). Toda oferta deberá presentarse en papel corriente, en original y una copia idéntica, firmada por el oferente o representante legal, sin tachaduras ni borrones. Cualquier corrección debe ser hecha mediante nota. Debe indicar claramente: Nombre y dirección de la casa oferente y según sea el caso, del exportador, del apoderado, del representante o distribuidor en Costa Rica, con indicación del nombre, cédula, dirección y la posición del firmante dentro de la empresa, número de cédula jurídica, número de fax, para recibir notificaciones, caso contrario, se tendrá por notificado en el transcurso de 24 horas, precio total cotizado deberá presentarse en números y letras coincidentes. En caso de divergencia entre ambas formas prevalecerá la consignada en letras. (Art.52.5 del RGCA). Toda oferta debe ser cotizada libre de todos los impuestos, indicando el monto y el tipo de impuestos por separado. La Universidad de Costa Rica está exenta de los mismos, según Ley No. 7293, artículo 6, publicada en la “LA Gaceta “No. 63 del 31 de marzo de 1992. No se exonerarán materiales o servicios adquiridos por subcontratistas. 2. Documentos que deben aportar: Los Proveedores interesados en participar que no se encuentran activos en el Registro de Proveedores de la Institución deben aportar los documentos legales y declaraciones juradas que establece la Ley de Contratación Administrativa y su reglamento (Certificación sobre la personería jurídica y propiedad de las acciones , copia certificada de la cédula jurídica, por el contrario si es de una Persona Física adjuntar fotocopia de la Cédula de Identidad, Declaración Jurada de que no le alcanzan las prohibiciones del artículo 22 de la Ley de Contratación Administrativa, los artículos 24.4 y 53.2 del Reglamento General de la Contratación Administrativa y que se encuentra al día con las obligaciones Obrero-Patronal de la Caja Costarricense del Seguro Social). LGR 12