miércoles, abril 05, 2006

 

Proyecto de Clase: TBD1/1SEM-2PER-2006

Definición General del Proyecto de Clase


El objetivo del presente proyecto es diseñar y construir una base de datos en el SGBD SQL Anywhere 9 de Sybase así como construir un aplicativo en el lenguaje visual de su elección que interactúe con dicha base de datos por medio de un driver ODBC, JDBC u OLEDB.

Se desea una base de datos relacional y una aplicación que controle la asignación de proyectos de software en una unidad de desarrollo de software de una empresa hondureña dedicada a la manufactura y venta de software. La unidad cuenta con un staff de Ingenieros de Software que se clasifican en: Desarrolladores Junior, Desarrolladores Senior y Jefes de Desarrolladores.

De cada Ingeniero de Software se almacenan los siguientes datos: nombres, apellidos, número de identidad, número de RTN (si tiene), e-mail, teléfono fijo, teléfono móvil (si tiene), pager (si tiene), dirección del domicilio, teléfono del domicilio, fecha de nacimiento, edad, sexo, fecha de ingreso a la empresa y antigüedad del mismo. Un ingeniero de software puede contar con uno o varios grados académicos superiores (secundaria técnico, técnico universitario, licenciatura, maestría, doctorado) y para cada grado, se deberá almacenar la universidad o centro técnico donde se formó, año en que se tituló y título obtenido (i.e. Ingeniero en Sistemas Computacionales, Licenciado en Informática Administrativa, Ingeniero en Ciencias de la Computación, Técnico en Computación, entre otros tantos títulos que pueden considerarse). Un ingeniero de software puede contar también con una serie de seminarios o cursos a los cuales ha asistido. Se requiere guardar esta información, preservando el nombre del seminario o curso, lugar donde se recibió y periodo de tiempo en el que se recibió (fecha inicio, fecha finalización). Adicionalmente, de los Desarrolladores Junior se almacena: cantidad de horas de trabajo por día; de los Desarrolladores Senior: cantidad de proyectos de desarrollo que lidera y de los Jefes de Desarrolladores se almacena: presupuesto en dólares asignado a su línea de desarrollo.

Todo Ingeniero de Software programa en al menos un lenguaje de programación, un sistema operativo y un SGBD (DBMS). Por medio del aplicativo deberá ser posible obtener qué lenguajes de programación, sistemas operativos y sistemas de gestión de bases de datos conoce cada uno de los Ingenieros de Software (sin importar la clase del Ingeniero de Software).

Un Desarrollador Senior puede ser asignado por un Jefe de Desarrollo para que lidere el desarrollo de más de un proyecto de software al mismo tiempo; sin embargo, un proyecto de software sólo es liderado por un Desarrollador Senior. Un Desarrollador Senior puede solicitar la colaboración de uno o más Desarrolladores Junior en un proyecto de software determinado. Se deberá guardar el periodo de tiempo en el que el Desarrollador Junior estará colaborando en el proyecto de software (fecha inicio, fecha finalización).

De los proyectos de software se deberá registrar lo siguiente: código del proyecto, nombre del programa, area de aplicación(manufactura/finanzas/recursos humanos/logística/ventas), fecha de ingreso del proyecto (al sistema), fecha de asignación del proyecto (al Desarrollador Senior), fecha prevista de liberación (release) del software, fase en la que se encuentra el proyecto (en análisis/en diseño/en codificación/en pruebas ALPHA/en pruebas BETA/listo para liberación), fecha de inicio de cada fase, versión del programa, EBF (si aplica), lenguaje de programación en que se desarrolla (un proyecto de software podría ser desarrollado en más de un lenguaje de programación), sistema operativo con el que es compatible (un proyecto de software podría ser compatible con más de un sistema operativo), DBMS con el que funciona (un proyecto de software podría ser compatible con más de un DBMS) y costo total del proyecto de software.

Se requiere que el aplicativo que se desarrolle cuente con un sub-sistema de control de accesos. Lo anterior se requiere porque existen distintos tipos de usuarios en el sistema con distintos niveles de acceso. Muchos de los tipos de usuarios coinciden con las clases de Ingenieros de Software.


Existen usuarios que mantienen actualizada la información de los distintos Ingenieros de Software. Se trata de usuarios tipo ADMINISTRADOR y básicamente deberán tener acceso a TODA la sección de Mantenimientos del aplicativo: Alta/Baja/Cambio de Ingenieros de Software; Alta/Baja/Cambio de Grados Académicos; Alta/Baja/Cambio de Seminarios; Alta/Baja/Cambio de lenguajes de programación, sistemas operativos y DBMS.

Existen usuarios del tipo JEFES DE DESARROLLO que ingresan los distintos proyectos de desarrollo incluídos en su línea de desarrollo y asocian cada uno de los proyectos a los Desarrolladores Senior. Los JEFES DE DESARROLLO son los tipos de usuarios que tienen el acceso para generar todos los reportes y/o consultas asociadas al rendimiento y carga de trabajo de los Desarrolladores Senior y Junior. Un JEFE DE DESARROLLO podrá ver todos los proyectos de desarrollo asignados a cada Desarrollador Senior así como los Desarrolladores Junior que colaboran en cada proyecto de desarrollo.

Finalmente, existen usuarios del tipo DESARROLLADORES SENIOR que sólo tienen acceso a ver los proyectos de desarrollo que él o ella lideran y a solicitar la colaboración de Desarrolladores Junior. Los DESARROLLADORES SENIOR son los tipos de usuarios que asocian a cada proyecto de desarrollo los colaboradores (Desarrolladores Junior), estipulan el periodo de la colaboración y actualizan el estado en el que se encuentra cada proyecto de desarrollo.



Descripción del Proyecto


A. Elaborar un documento impreso que contenga el Diseño Conceptual de la base de datos relacional que resuelva los requerimientos expuestos. El documento en cuestión usará los lineamientos generales contenidos en el Ejemplo de Diseño de una Base de Datos Relacional colocado en el blog de la clase (flamelas.blogspot.com) (5 puntos).

Los apartados del documento deberán ser estos (además de contar con una portada y tabla de contenido):

a. Identificación de Entidades y criterios usados para su selección.
b. Identificación de atributos por Entidad.
c. Identificación de Relaciones o Vínculos existentes y criterios usados para su selección.
d. Identificación de Restricciones de Clave Primaria para las Entidades.
e. Identificación de Restricciones de Cardinalidad de las Relaciones identificadas.
f. Diagrama Entidad-Relación (E-R) construído con el software DIA.

B. Elaborar un documento impreso que contenga el Diseño Lógico y Físico de la base de datos relacional que resuelva los requerimientos expuestos. El documento en cuestión usará los lineamientos generales contenidos en el Ejemplo de Diseño de una Base de Datos Relacional colocado en el blog de la clase (flamelas.blogspot.com). Adicionalmente, el documento contendrá las sentencias DDL del Modelo Relacional. Dichas sentencias se construirán usando la sintaxis SQL del SGBD Sybase Adaptive Server Anywhere 9 tomando en cuenta TODAS las restricciones de integridad necesarias (llaves primarias, llaves foráneas, referencias relacionales, checks). (10 puntos)

Los apartados del documento deberán ser estos (además de contar con una portada y tabla de contenido):

a. Esquema Relacional (2 puntos)
b. Sentencias DDL del SQL de Sybase (1 punto)

Ejecutar en el aula de clases en la base de datos Sybase SQL Anywhere del proyecto, las sentencias DDL (que incluyen las tablas, vistas y demás objetos identificados) así como las sentencias de llenado de las tablas antes creadas con datos muestra (básicamente se deberán llenar TODAS las tablas MAESTRAS). (2 puntos)

Presentar TODAS las pantallas con las que se satisfarán los requerimientos estipulados en el punto C de esta misma sección (en esta entrega se evaluará sólo presentación o diseño de las pantallas). (5 puntos)

C. Construir un aplicativo en un lenguaje de programación visual que interactúe con el SGBD Sybase Adaptive Server Anywhere 9. (10 puntos)

Por medio del aplicativo visual se deben poder realizar las siguientes operaciones de mantenimiento en la base de datos:

a) Crear, borrar y modificar los datos de un Desarrollador Senior y un Desarrollador Junior. (2 puntos)

b) Crear, borrar y modificar los datos de: lenguajes de programación, sistemas operativos y DBMS. (2 puntos)


Por medio del aplicativo visual se deben poder realizar las siguientes transacciones sobre la base de datos:

c) Ingresar proyectos de desarrollo de software (utilizando un usuario tipo JEFE DE DESARROLLO). (2 puntos)

d) Realizar asignaciones de proyectos de software a Desarrolladores Senior (utilizando un usuario tipo JEFE DE DESARROLLO). (2 puntos)

e) Asociar colaboradores (Desarrolladores Junior) a los proyectos de software, indicando periodo de colaboración. Actualizar el estado del proyecto de software así como la fecha de inicio de cada estado. (utilizando un usuario tipo DESARROLLADOR SENIOR). (2 puntos)

D. Por medio del aplicativo visual se debe poder satisfacer los siguientes requerimientos de información por medio de consultas a pantalla o de reportes: (5 puntos)

a) Mostrar a una fecha determinada, todos los proyectos de desarrollo de software asignados a Desarrolladores Senior (se deberá presentar: código del proyecto, nombre del proyecto, fecha de ingreso del proyecto al sistema, fecha de asignación del proyecto y fase en la que se encuentra el proyecto a la fecha determinada). (1 punto)

b) Mostrar a una fecha determinada, todos los proyectos de desarrollo de software NO asignados a Desarrollador Senior alguno (se deberá presentar: código del proyecto, nombre del proyecto, fecha de ingreso del proyecto al sistema, fecha prevista de liberación del programa). (1 punto)

c) Mostrar todos los proyectos de desarrollo de software en los que están colaborando más de un Desarrollador Junior (se entiende que si una solicitud cuenta con colaboradores, es porque la misma se encuentra ya asignada a un Desarrollador Senior). Se deberá presentar: código del proyecto, nombre del proyecto, nombre del Desarrollador Senior, nombres de los Desarrolladores Junior. El objetivo de esta consulta: encontrar aquellos proyectos que requieren múltiples recursos humanos. (1 punto)

d) Mostrar el nombre completo, lenguajes de programación, sistemas operativos y DBMS conocidos por aquellos Desarrolladores Senior NO asignados a proyecto de desarrollo alguno. El objetivo de esta consulta: encontrar el recurso humano ocioso. (1 punto)

e) Mostrar todos los proyectos de desarrollo de software en donde la fecha de la fase: listo para liberación sea superior a la fecha prevista de liberación. Se deberá presentar: código del proyecto, nombre del proyecto, fecha prevista de liberación, fecha real de liberación (fecha de la fase: listo para liberación). El objetivo de esta consulta: encontrar aquellos proyectos donde no se está cumpliendo con las fechas de liberación (release). (1 punto)


Condiciones Generales del Proyecto

• El proyecto tiene un valor total de 30 puntos ORO y deberá ser presentado por ambos integrantes del equipo en el AULA DE CLASES el día que les corresponda.

• Si uno de los miembros del equipo NO se presenta el día de la presentación del proyecto y la causa de su ausencia NO ES JUSTIFICADA, perderá los puntos correspondientes a esa revisión.

• Si un grupo NO se presenta el día que le corresponda, perderá 2.5 puntos ORO por cada día de atraso en la primera entrega, 5 puntos ORO por cada día de atraso en la segunda entrega y 7.5 puntos ORO por cada día de atraso en la tercera entrega.

• A partir de la segunda entrega de la presentación del proyecto, cada equipo deberá traer un computador desde donde le mostrará al profesor distintos aspectos del proyecto desarrollado.

• El proyecto será presentado en tres (3) entregas (La primera con un valor de 5 puntos ORO, la segunda con un valor de 10 puntos ORO y la tercera con un valor de 15 puntos ORO. La primera entrega se efectuará el día: 20 de abril y comprende el punto A de la descripción del proyecto. La segunda entrega se realizará los días: 18 y 19 de mayo y comprende el punto B de la descripción del proyecto. La tercera y última entrega se llevará a cabo los días: 7 y 8 de junio y comprende los puntos C y D de la descripción del proyecto.

• En la primera entrega, cada grupo sólo deberá entregar su documento. Durante la segunda y tercera entrega, además de la entrega de documentos se harán revisiones en el aula de clases (segunda entrega, revisión de scripts DDLs/carga de datos y de pantallas del aplicativo; tercera entrega, revisión de interacción del aplicativo visual desarrollado con la base de datos creada en las fases anteriores).

• Los documentos de la primera y segunda entrega serán revisados por el profesor y serán entregados hasta el día lunes de la siguiente semana con las correcciones sugeridas para cada caso. Cada grupo deberá aplicar dichas correcciones antes de proceder con las siguientes etapas del proyecto.

• En la última entrega, cada grupo deberá presentar la versión final impresa del documento del diseño de la base de datos relacional, un manual de usuario donde se muestre el uso del aplicativo desarrollado y un CD que contenga el aplicativo desarrollado y la base de datos Sybase SQL Anywhere creada.

El documento impreso deberá contener:

o Portada
o Tabla de contenido
o Introducción
o Objetivos
o Versión corregida del Diseño Conceptual
o Versión corregida del Diseño Lógico y Conceptual
o Conclusiones
o Bibliografía
o Anexos (Manual de Usuario)



El CD deberá contener los códigos fuente y objeto del software de aplicación desarrollado. Se deberán incluir los scripts DDLs de creación de la base de datos y los scripts de llenado de tablas. Se deberá incluir la base de datos final con los datos de muestra. Igualmente, se deberá incluir el manual de usuario.

• Toda consideración que se haga en el proyecto, deberá estar debidamente documentada y justificada en los distintos documentos donde se aplique.

• Cada grupo deberá construir y darle mantenimiento a un blog site (por medio del blogger.com). En este blog site, se deberán colocar avances semanales en el desarrollo de su proyecto así como problemas con los cuales se hayan encontrado. En el blog site: flamelas.blogspot.com se encuentra una nota que contiene el directorio de los blog sites de todos los grupos de proyecto.

• La descripción del proyecto representa los productos mínimos esperados en este proyecto y se podrán otorgar puntos adicionales sólo si el proyecto excede las expectativas de todos los productos mínimos esperados en el mismo.

• El calendario de entregas por grupo se muestra al final de este documento.


Calendario de Entregas por Grupo


Grupo Primera Revisión Segunda Revisión Tercera Revisión
1 David Moradel y Raúl Zepeda
20/04 19/05 07/06
2 Francisco Pérez y Ernesto Vásquez
20/04 18/05 08/06
3 Emilio José Kafie y Mario Padilla
20/04 19/05 07/06
4 Héctor Pagoaga y Dennis Jirón
20/04 18/05 08/06
5 Antonio Escoto y Mario Henríquez
20/04 19/05 07/06
6 Ricardo Palma y Douglas Velásquez
20/04 18/05 08/06
7 Tommy Ponce

20/04 19/05 07/06

martes, abril 04, 2006

 

Invitación a WEBCAST sobre SQL Anywhere Developer Edition

Dear Developer,

Thank you for selecting the SQL Anywhere Studio Developer Edition. Let me get you started with the industry-leading data management and enterprise data synchronization solution.

Join me for a one-hour Webcast that will answer the most common questions of first time SQL Anywhere users. I will give you a guided tour of the technologies, tools and resources that make SQL Anywhere so popular among developers. The Webcast will conclude with a question and answer session, and technical staff will be on hand to answer online chat questions throughout the presentation.

The Webcast will include detailed information about:

* SQL Anywhere Studio components and usage scenarios
* Installation, connecting to the database, creating a database
* Database tools, samples and documentation
* Where to go from here?

There is no cost to attend this Webcast, but registration is required. To register, visit http://www.ianywhere.com/getstarted0406 or call 1-800-801-2069.

When: April 11, 2 pm ET

Chris Gruber
Senior Product Manager
iAnywhere

lunes, abril 03, 2006

 

Sitio web con recursos bibliográficos importantes

Estimados,

Tal como se los expuse esta mañana, existe un repositorio de libros electrónicos que contienen información asociada a la Carrera de Ingeniería en Sistemas Computacionales. Ustedes pueden accesar a la siguiente dirección para descargar los mismos a su computador:

www.ingenieriauai.com.ar/eBooks

En el repositorio anterior, existen literatura que puede ser de mucha utilidad para el desarrollo de la exposición.

Sin otro particular,


Ing. Lamelas

 

Directorio de Ciberdiarios (BLOG SITES) de Grupos Proyecto Clase TBD 1:

Estimados,

A continuación las bitácoras de los distintos grupos del proyecto de clase del curso de: Teoría de Base de Datos I corrrespondiente al segundo periodo académico del primer semestre:

David Moradel y Cía: http://moradel.blogspot.com
Mario Padilla y Cía: http://mariopadillaz.blogspot.com/
Douglas Velásquez y Ricardo Palma:http//velasquezpalma.blogspot.com/
Tommy Ponce: http://ktommy00.blogspot.com
Francisco Pérez y Ernesto Vásquez: http:// fevp.blogspot.com/
Antonio Escoto y Mario Henríquez: http://www.tbbddi.blogspot.com/
Dennis Jirón y Cía: http://bokutokimi.blogspot.com


Saludos,

Ing. Lamelas

 

Invitación: Campaña Microsoft sobre Desarrollo de Software

Estimados,

Como parte de la campaña de seguridad Net Protector, MSDN Latinoamérica está organizando un Tour MSDN para desarrolladores de software en toda la región, donde se estarán
discutiendo temas de cómo desarrollar software con técnicas de programación robustas, utilizando mejores prácticas de la industria y consejos de expertos.

Considero que las charlas en cuestión sí pueden ser de su interés, particularmente por el proyecto de desarrollo de software que deberán llevar a cabo en su curso de Teoría Bases de Datos I/Sistemas Bases de Datos. Los invito a inscribirse cuanto antes (el cupo es limitado), como las charlas inician hasta las 8:00 AM, perfectamente pueden presentarse a clases, firman su asistencia y luego se movilizan al hotel. Me confirman el día miércoles temprano quiénes sí lograron inscribirse.

Las charlas se darán en el Hotel Marriott (Salón la fuente) este miércoles 5 de abril con los siguientes contenidos y horarios:

Charla 1
Dilemas de la Seguridad Actual Desarrollando Software.
8.00am - 10.00am
- La Necesidad de Sistemas Seguros
- El Proceso Proactivo de Desarrollo Seguro
- Principios de Seguridad
- Threat Modeling

Charla 2
Técnicas de Programación Segura
10.30am - 12.30 am
- El Buffer Overrun: Enemigo Público #1
- Determinando el Control de Acceso Apropiado
- Ejecutando con Privilegios Mínimos
- Manías Criptográficas
- Protegiendo Datos Secretos
- Todo Input es Maligno!
- Problemas en Representaciones Canónicas
- Problemas Internacionalizando Software

Charla 3
Técnicas de Programación Segura en Aplicaciones Distribuidas
1.30pm - 3.30pm
- Problemas de Input en las Bases de Datos
- Problemas de Input específicos al Web
- Asegurando RPC, Controles ActiveX y DCOM
- Protegiéndose contra Ataques de Denial of Service
- Escribiendo Código .NET Seguro

Charla 4
Mejores Prácticas Desarrollando Código Seguro
4.00pm - 6.00pm
- Probando la Seguridad
- Realizando una revisión de Código Seguro
- Instalación segura de Software
- Construyendo Privacidad en su Aplicación
- Mejores Prácticas Generales
- Escribiendo Documentación de Seguridad y Mensajes de Error

Cada charla es independiente y tiene cupo limitado, para más información pueden llamar al 800-0122 pin # 5009.


Saludos,


Ing. Lamelas

sábado, abril 01, 2006

 

Vínculo para descarga de herramienta de diagramación E-R

Estimados,

Otra de las herramientas que ustedes requerirán en el desarrollo de su proyecto de clase, es el software de diagramación: DIA. Este programa les servirá para crear el diagrama Entidad-Relación (E-R) del proyecto de clase.

Pueden descargar la versión para Windows en la siguiente dirección: dia-installer.sourceforge.net


Descarguen cuanto antes este programa, instálenlo en su computadora y comiencen a familiarizarse con el software.

Saludos,


Ing. Lamelas

This page is powered by Blogger. Isn't yours?