Professional Documents
Culture Documents
Agosto 2010
ndice
Diagramas del proceso .................................................................................................................. 6 Entrevista al director de la Universidad ......................................................................................... 7 Diseo del sistema....................................................................................................................... 12 Diseo de bases de datos ................................................................................................. 12 Codificacion ................................................................................................................................. 18 Conclusiones................................................................................................................................ 33
[Type text]
Pgina 2
Introduccin
El presente documento tiene como propsito detallar el anlisis de requerimientos para el desarrollo del sistema de matrcula de la Universidad A.U.V. Se espera brindar un detalle amplio de cada uno de los componentes y de la solucin propuesta para este sistema. Se toman en cuenta aspectos tales como interfaz grafica, bases de datos, lenguaje de programacin, etc. Este documento a su vez funcionar como gua y documentacin externa del sistema ya que incluye el detalle de los procesos y flujos de datos bsicos para su correcto funcionamiento as como las posibles convenciones utilizadas en la codificacin.
[Type text]
Pgina 3
Objetivos
Objetivo General
Detallar las generalidades del desarrollo del sistema de matrcula para la Universidad A.U.V. Contemplando cada uno de los requisitos establecidos durante el anlisis de las necesidades y procesos crticos del sistema
Objetivos Especficos
Disear los procesos a utilizar para el desarrollo del sistema Disear la base de datos relacional y el modelo de datos a utilizar en el sitema.
[Type text]
Pgina 4
Si la persona es estudiante pero tiene deudas, primero deber liquidar sus deudas o de lo contrario no podr matricular.
Un estudiante puede estar slo en una carrera a la vez, por lo que no puede matricular materias de una carrera que no sea la suya.
Si una materia x tiene como requisito haber ganado otra materia y, entonces el estudiante no podr matricular la materia x al menos que haya ganado la materia y. Si existe una autorizacin del rector o del director de carrera, entonces se le permitir la matricula de la materia x sin haber aprobado la materia y.
Cada estudiante debe de tener un identificador nico que lo identifique dentro de la Universidad para fines administrativos.
[Type text]
Pgina 5
Sistema de Matricula AUV El sistema debe de tener una lista de usuarios autorizados a utilizar el mismo, y cada uno de ellos con un rol especfico (usuario administrativo, supervisor, rector, director de carrera, administrador del sistema).
Cuando el estudiante matricula, deber pagar la sumatoria del monto correspondiente a la matricula y al costo de las materias deseadas. Una vez hecho el pago, el sistema le deber imprimir un comprobante por dicho pago.
El sistema debe de imprimir los siguientes reportes: y y y y y y y y Listado alfabtico de estudiantes. Listado alfabtico de profesores. Listado alfabtico de directores. Programas de estudio por materia. Programas de estudio por carrera. Estudiantes con obligaciones econmicas pendientes. Estudiantes por carrera o curso. Listado general de aranceles.
El sistema debe de contemplar todo tipo de validaciones, de forma que no permita a un usuario hacer algo que infrinja alguno de los puntos anteriores.
Cada uno de los cursos debe de tener una clase asignada. Se utilizara la estructura en cascada para la realizacin del proyecto, debido a que es la forma ms ordenada y rpida para la realizacin de este proyecto.
[Type text]
Pgina 6
[Type text]
Pgina 7
[Type text]
Pgina 8
[Type text]
Pgina 9
[Type text]
Pgina 10
[Type text]
Pgina 11
Definicin de tablas
Tabla: ARANCELES Nombre idArancel descripcion monto Tipo Entero largo Texto Entero largo Tamao 4 30 4
Tamao 4 20 1 2
Tamao 6 70
Tamao 4 50 4
[Type text]
Pgina 12
Tamao 2 20
Tamao 4 6 8 1
Tamao 6 50 50
Tabla: CURSOS_POR_CUATRIMESTRE Nombre idCurso idAula idHorario idCuatrimestre anno estado idProfesor cupo
Tipo Texto Entero largo Entero largo Entero Entero Byte Texto Entero
Tamao 6 4 4 2 2 1 6 2
[Type text]
Pgina 13
Tabla: CURSOS_POR_ESTUDIANTE Nombre idEstudiante idCurso nota anno idcuatrimestre estado idArancel idUsuario idAutoriza
Tipo Texto Texto Decimal Entero Entero Byte Entero largo Texto Texto
Tamao 6 6 16 2 2 1 4 6 6
Tabla: ESTUDIANTE Nombre idEstudiante idCarrera cedula nombre apellido1 apellido2 direccion email telefonoFijo telefonoCelular fechaNacimiento idconvenio
Tipo Texto Texto Texto Texto Texto Texto Texto Texto Texto Texto Fecha/Hora Entero largo
Tamao 6 6 15 20 20 20 120 40 8 8 8 4
Tamao 6 6 1
[Type text]
Pgina 14
Tamao 4 10 8 8
Tabla: PROFESOR Nombre idProfesor cedula nombre apellido1 apellido2 direccion email telefonoFijo telefonoCelular fechaNacimiento
Tipo Texto Texto Texto Texto Texto Texto Texto Texto Texto Fecha/Hora
Tamao 6 15 20 20 20 120 40 8 8 8
Tamao 6 6 4 1
Tamao 6 6
[Type text]
Pgina 15
Tabla: USUARIO Nombre idUsuario puesto tipoUsuario contrasea estado cedula nombre apellido1 apellido2 direccion email telefonoFijo TelefonoCelular fechaNacimiento idCarrera
Tipo Texto Texto Texto Texto Byte Texto Texto Texto Texto Texto Texto Texto Texto Fecha/Hora Texto
Tamao 6 20 20 15 1 15 20 20 20 120 40 8 8 8 6
[Type text]
Pgina 16
[Type text]
Pgina 17
Codificacin
'---------------------------------------------------------------------------------------------------------------------------------------------------------------'Curso: Tcnicas de programacin 'II Cuatrimestre 2010 'Creado por: Eduardo Campos y Alejandro Mesn 'Clase para el manejo de conexiones a la base de datos y manipulacin de informacin '---------------------------------------------------------------------------------------------------------------------------------------------------------------Public Class capa_Logica 'Estructura para el manejode informacin de cursos en la ventana de requisitos Public Structure Curso <VBFixedString(6)> Public idCurso As String <VBFixedString(50)> Public nombre As String End Structure 'Mtodo utilizado para incluir en la BD la informacin de cursos Public Sub insertarCurso(ByVal idCurso, ByVal nombre, ByVal contenido) Try Dim conn As OleDb.OleDbConnection Dim strConnectString = "Provider= Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=C:\Universidad.accdb;Persist Security Info=false" conn = New OleDb.OleDbConnection(strConnectString) Dim st As String Dim cmd As OleDb.OleDbCommand st = "INSERT INTO CURSO(idCurso,nombre,contenido) values('" + idCurso + "','" + nombre + "','" + contenido + "');" cmd = New OleDb.OleDbCommand(st, conn) 'Abrir la conexion conn.Open() 'Ejecutar Dim respuesta As Integer respuesta = cmd.ExecuteNonQuery() 'CERRAR LA CONEXION conn.Close()
[Type text]
Pgina 18
MessageBox.Show("El curso ha sido incluido correctamente", "Inclusin exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub 'Mtodo utilizado para modificar en la BD la informacin de cursos Public Sub modificarCurso(ByVal curso, ByVal nombre, ByVal contenido) Dim conn As OleDb.OleDbConnection Try Dim strConnectString = "Provider= Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=C:\Universidad.accdb;Persist Security Info=false" conn = New OleDb.OleDbConnection(strConnectString) Dim st As String Dim cmd As OleDb.OleDbCommand st = "UPDATE CURSO SET nombre='" + nombre + "',contenido='" + contenido + "' WHERE idCurso ='" + curso + "';" cmd = New OleDb.OleDbCommand(st, conn) 'Abrir la conexion conn.Open() 'Ejecutar Dim respuesta As Integer respuesta = cmd.ExecuteNonQuery() 'CERRAR LA CONEXION conn.Close() MessageBox.Show("El curso ha sido modificado correctamente", "Modificacin exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information) Catch ex As Exception MessageBox.Show(ex.Message) conn.Close() End Try End Sub 'Funcin utilizada para cargar en una lista el codigo y nombre de cada registro en la tabla de CURSOS de la BD Public Function cargarCursos() As List(Of Curso) Dim conn As OleDb.OleDbConnection Dim listaCursos As List(Of Curso) = New List(Of Curso)
[Type text]
Pgina 19
Try Dim strConnectString = "Provider= Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=C:\Universidad.accdb;Persist Security Info=false" conn = New OleDb.OleDbConnection(strConnectString) Dim st As String Dim cmd As OleDb.OleDbCommand st = "SELECT idCurso,nombre FROM CURSO;" cmd = New OleDb.OleDbCommand(st, conn) 'Abrir la conexion conn.Open() 'Ejecutar Dim reader As OleDb.OleDbDataReader reader = cmd.ExecuteReader() While reader.Read() <> False Dim curso As Curso = New Curso() curso.idCurso = reader.GetString(0) curso.nombre = reader.GetString(1) listaCursos.Add(curso) End While 'CERRAR EL READER reader.Close() 'CERRAR LA CONEXION conn.Close() Catch ex As Exception MessageBox.Show(ex.Message) conn.Close() End Try Return listaCursos End Function 'Mtodo utlizado para insertar el requisito de un curso en la BD Public Sub insertarRequisito(ByVal idCurso, ByVal idRequisito) Try Dim conn As OleDb.OleDbConnection Dim strConnectString = "Provider= Microsoft.ACE.OLEDB.12.0;" + _
[Type text]
Pgina 20
[Type text]
Pgina 21
[Type text]
Pgina 22
[Type text]
Pgina 23
Dim st As String Dim cmd As OleDb.OleDbCommand st = "INSERT INTO CONVENIOS(idConvenio,entidad,descuento) values(" + idConvenio + ",'" + entidad + "'," + descuento + ");" cmd = New OleDb.OleDbCommand(st, conn) 'Abrir la conexion conn.Open() 'Ejecutar Dim respuesta As Integer respuesta = cmd.ExecuteNonQuery() 'CERRAR LA CONEXION conn.Close() MessageBox.Show("El convenio ha sido incluido correctamente", "Inclusin exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub 'Mtodo utilizado para modificar informacin de convenios Public Sub modificarConvenio(ByVal idConvenio, ByVal descuento) Dim conn As OleDb.OleDbConnection Try Dim strConnectString = "Provider= Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=C:\Universidad.accdb;Persist Security Info=false" conn = New OleDb.OleDbConnection(strConnectString) Dim st As String Dim cmd As OleDb.OleDbCommand st = "UPDATE CONVENIOS SET descuento=" + descuento + " WHERE idConvenio =" + idConvenio + ";" cmd = New OleDb.OleDbCommand(st, conn) 'Abrir la conexion conn.Open() 'Ejecutar Dim respuesta As Integer respuesta = cmd.ExecuteNonQuery()
[Type text]
Pgina 24
[Type text]
Pgina 25
[Type text]
Pgina 26
Public Class ventanaAcerca 'Evento click del botn aceptar que se encarga de cerrar la ventana Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click Me.Dispose() Me.Close() End Sub End Class
Public Class ventanaCarrera 'Evento click del botn Aceptar que se encarga de insertar los datos de la carrera en la BD Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click 'Instancia lgica para acceso a la BD Dim conexion As capa_Logica = New capa_Logica() conexion.insertarCarrera(txtCodigo.Text, txtNombre.Text) End Sub 'Evento click del botn cancelar para cerrar la ventana Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click Me.Dispose() Me.Close() End Sub End Class
Public Class ventanaConvenio 'Evento click del botn cancelar para cerrar la ventana Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click Me.Dispose() Me.Close() End Sub 'Evento click del botn aceptar para crear o modificar un convenio Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click Dim conexion As capa_Logica = New capa_Logica() If rbtCrearConvenio.Checked Then conexion.insertarConvenio(txtCodigo.Text, txtNombre.Text, txtDescuento.Text) Else conexion.modificarConvenio(txtCodigo.Text, txtDescuento.Text) End If
[Type text]
Pgina 27
Public Class ventanaCuatrimestre 'Mtodo utilizado para limpiar los campos de texto en la ventana Private Sub limpiar() txtCodigo.Text = "" txtNombre.Text = "" End Sub 'Evento click del botn aceptar utilizado para lamacenar la informacin del cuatrimestre en la BD Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click 'Instancia lgica para acceso a la BD Dim conexion As capa_Logica = New capa_Logica() conexion.insertarCuatrimestre(txtCodigo.Text, txtNombre.Text) limpiar() End Sub 'Evento click del botn cancelar para cerrar la ventana Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click Me.Dispose() Me.Close() End Sub End Class
Public Class ventanaCursos 'Mtodo utilizado para limpiar los campos de texto de la ventana Private Sub limpiar() txtCodigo.Text = "" txtNombre.Text = "" txtContenido.Text = "C:\" End Sub 'Evento click del botn aceptar para insertar o modificar un curso en la BD Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click 'Instancia lgica para acceso a la BD Dim conexion As capa_Logica = New capa_Logica() If rbtCrearCurso.Checked Then conexion.insertarCurso(txtCodigo.Text, txtNombre.Text, txtContenido.Text) limpiar() Else If rbtModificarCurso.Checked Then conexion.modificarCurso(txtCodigo.Text, txtNombre.Text, txtContenido.Text) limpiar() Else
[Type text]
Pgina 28
Public Class ventanaEstudiantes 'lista para manejo de informacion de carreras Dim listaCarreras As List(Of String) = New List(Of String) 'lista para manejo de informacion de convenios Dim listaConvenios As List(Of String) = New List(Of String) 'Instancia logica para acceso a la BD Dim conexion As capa_Logica = New capa_Logica() 'Evento click del botn cancelar para cerrar la ventana Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click Me.Dispose() Me.Close() End Sub 'Evento load de la ventana encargado de cargar la informacion de carreras y convenios en los comboboxes Private Sub ventanaEstudiantes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load listaCarreras = conexion.cargarCarreras() listaConvenios = conexion.cargarConvenios() 'cargar combobox de convenios For i As Integer = 0 To listaConvenios.Count - 1 cbConvenio.Items.Add(listaConvenios(i)) Next 'cargar combobox de carreras For i As Integer = 0 To listaCarreras.Count - 1 cbCarrera.Items.Add(listaCarreras(i)) Next End Sub End Class
[Type text]
Pgina 29
[Type text]
Pgina 30
'---------------------------------------------------------------------------------------------------------------------------------------------------------------'Curso: Tcnicas de programacin 'II Cuatrimestre 2010 'Creado por: Eduardo Campos y Alejandro Mesn '---------------------------------------------------------------------------------------------------------------------------------------------------------------Public Class ventanaPrincipal 'Este mdulo se utiliza para acceder a las diferentes pantallas del sistema. 'En cada item del men''u se utiliza una instancia llamada modulo para crear la nueva ventana segn el item seleccionado en el men 'Luego se utiliza la propieda visible para mostrar la nueva ventana Private Sub CrearCarreraToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrearCarreraToolStripMenuItem.Click Dim modulo As ventanaCarrera = New ventanaCarrera() modulo.Visible = True End Sub Private Sub CrearOModificarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrearOModificarToolStripMenuItem.Click Dim modulo As ventanaCursos = New ventanaCursos() modulo.Visible = True End Sub Private Sub CrearOModificarRequisitosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrearOModificarRequisitosToolStripMenuItem.Click Dim modulo As ventanaRequisitos = New ventanaRequisitos() modulo.Visible = True End Sub Private Sub ConveniosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConveniosToolStripMenuItem.Click Dim modulo As ventanaConvenio = New ventanaConvenio() modulo.Visible = True End Sub Private Sub CuatrimestresToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CuatrimestresToolStripMenuItem.Click Dim modulo As ventanaCuatrimestre = New ventanaCuatrimestre() modulo.Visible = True End Sub
[Type text]
Pgina 31
Private Sub SalirToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem1.Click Me.Dispose() Me.Close() End Sub Private Sub lblAcerca_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles lblAcerca.LinkClicked Dim modulo As ventanaAcerca = New ventanaAcerca() modulo.Visible = True End Sub Private Sub CrearOModificarEstudiantesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrearOModificarEstudiantesToolStripMenuItem.Click Dim modulo As ventanaEstudiantes = New ventanaEstudiantes() modulo.Visible = True End Sub Private Sub ModificarEstudiantesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ModificarEstudiantesToolStripMenuItem.Click Dim modulo As ventanaEstudiantes2 = New ventanaEstudiantes2() modulo.Visible = True End Sub Private Sub CrearOModificarProfesoresToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrearOModificarProfesoresToolStripMenuItem.Click Dim modulo As ventanaProfesores = New ventanaProfesores() modulo.Visible = True End Sub Private Sub ModificarProfesoresToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ModificarProfesoresToolStripMenuItem.Click Dim modulo As ventanaProfesores2 = New ventanaProfesores2 modulo.Visible = True End Sub End Class
[Type text]
Pgina 32
Conclusiones
A pesar de que el sistema no es funcional actualmente se posee un diseo con el cual se puede llegar a desarrollar, ya que por factores de tiempo no fue posible su codificacin completa. La experiencia adquirida durante el desarrollo del proyecto ha sido de provecho ya que fue complementada con el curso de Anlisis de Sistemas para lograr desarrollar un modelo de informacin satisfactorio. No obstante el sistema solicitado es un poco extenso por todas las variables que maneja y debe tomar en cuenta, razn por la cual no fue posible su implementacin. Se aplicaron las tcnicas sugeridas en clase para el desarrollo de una buena codificacin que sea entendible y bien estructurada. El lenguaje seleccionado fue Visual Basic .Net ya que es el que mejor se conoce y permite por lo tanto realizar tareas con mayor facilidad, adems de que su apartado grfico de fcil programacin. El motor de base de datos utilizado ha sido Microsoft Access ya que al igual que el lenguaje es la herramienta que ms se conoce y que mejor se puede manejar en relacin a nuestro conocimiento.
[Type text]
Pgina 33