teoría de los lenguajes proyecto sigu equipo nº3 universidad argentina j. f. kennedy sede: don...
TRANSCRIPT
Teoría de los lenguajes
Proyecto SIGU
Equipo Nº3Universidad Argentina J. F. KennedySede: Don BoscoIntegrantes: Irene Arias
Fernández Mariana Pacheco LucianoToyos JavierPablo CantorePablo Armanini
Profesoras: Isabel MarkoMaría Angélica Peñaloza
• Introducción• Planificación• Análisis• Diseño• Arquitectura• Desarrollo
Proyecto SIGUAgendaAgenda
Se desarrollaron cuatro MódulosSe desarrollaron cuatro Módulos
• Administración de Perfiles y Usuarios
• Inscripción a materias
• Carga de notas
• Correlatividades
Proyecto SIGUIntroducciónIntroducción
Agenda
Proyecto SIGUPlanificaciónPlanificación
Agenda
Proyecto SIGUAnálisisAnálisis
• Diagramas de CUuc SIGU - Funciones
SIGU
Realizando Inscripcion a Finales
Login
Realizando Inscripcion a Materias
Administracion
(from SIGU - Actores)
Seguridad
(from SIGU - Actores)
Gestionando Usuarios
Logout
Alumno
(from SIGU - Actores)
Consulta Correlativ idades
Gestionando Notas
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»
Agenda
Proyecto SIGUAnálisisAnálisis
uc SIGU - Gestionando Usuarios
SIGU - Gestionando Usuarios
Alta de Perfiles
Modificacion de Perfiles
Seguridad
(from SIGU - Actores)
Consulta de Perfiles
Baja de Perfiles
Asignacion de Perfiles
Agenda
Proyecto SIGUArquitecturaArquitectura
• Arquitectura
BASEDE DATOS
Hibernate
DAODTO
IDAO
2
43
5
SERVICES
ISERVICES
6
7APPLICATTION
CONTEXT
9
FLEX8
Agenda
Proyecto SIGUArquitecturaArquitectura• Hibernate
• En el tag “class” se especifica en el atribute name el nombre de la clase y en el atributo table el nombre de la tabla donde se persisten los datos.• En el tag “id” se especifica la clave primaria de la tabla • En el tag “property” especifica la relación entre alguna propiedad de la tabla, con su correspondiente propiedad de la clase de negocio• Las relaciones entre tablas se especifican con el tag
-one-to-one-many-to-one-one-to-many-many-to-many
<hibernate-mapping package="ar.edu.kennedy.dominio"> <class name="Perfil" table="PERFILES"> <id name="id" column="ID_PERFIL" > <generator class="native"/> </id> <property name="descripcion" column="DESCRIPCION_PERFIL"/> <property name="estado" column="ESTADO"/> </class></hibernate-mapping>
AgendaArquitectura
AgendaArquitectura
Proyecto SIGUArquitecturaArquitectura
• DTOArchivo que tiene como atributos/variables los nombres y tipos de datos de las columnas de la tabla de la BD que deseo consultar/actualizar y los getters y setters de los atributos. A la clave primaria siempre la tenemos que declararla aquí con el nombre “id”.
public class Perfil { private Integer id; private String descripcion; private String estado; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getDescripcion() { return descripcion; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; }}
Proyecto SIGUArquitecturaArquitectura
AgendaArquitectura
• DAOSe utiliza para abstraer y encapsular todos los accesos a las fuentes de datos. Administran la conexión Base de Datos para obtener y almacenar los mismos.Permiten crear componentes simples que nos proveen acceso a nuestros datos sin revelar los detalles de la implementación al resto de la aplicación. El uso de los DAOs permite a nuestra aplicación ser dinámicamente configurada para utilizar diferentes mecanismos de persistencia.
package ar.edu.kennedy.dao;
import java.util.List;
import ar.edu.kennedy.dominio.Perfil;;
public interface PerfilDAO {
List <Perfil> findAll();
}
Proyecto SIGUArquitecturaArquitectura
AgendaArquitectura
• IDAOEs la interfase donde se declaran los métodos que se implementaron en el DAO
public class PerfilDAOImpl implements PerfilDAO{
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public List<Perfil> findAll() {
String hql = "FROM Perfil as P";
List<Perfil> perfiles = hibernateTemplate.find(hql);
return perfiles;
}
}
Proyecto SIGUArquitecturaArquitectura
AgendaArquitectura
• ServicesDeben estar definidos los métodos de los DAOs que se utilizan
public interface PerfilService {
List <Perfil>findAll();
@SuppressWarnings("unchecked")
List <Perfil>findByFieldLikeValue(String value);
void save(Perfil perfil);
void update(Perfil perfil);
}
Proyecto SIGUArquitecturaArquitectura
AgendaArquitectura
• IServicesEs la capa que agrega un nivel de abstracción más a la capa DAO. Esta capa
se comunica con la vista.Aquí se declaran los servicios que se implementaron en la capa Services
public class PerfilServiceImpl implements PerfilService{
private IGenericDAO genericDAO;
public PerfilServiceImpl() { super(); }
public List<Perfil> findAll(){
return genericDAO.findAll(Perfil.class);
}
public void save(Perfil perfil){
genericDAO.save(perfil);
}
public void update(Perfil perfil){
genericDAO.update(perfil);
}
}
Proyecto SIGUArquitecturaArquitectura
AgendaArquitectura
• FlexEs la capa del lado del cliente donde se crea un VO (Value Object) que se va a
corresponder con el DTO
public class PerfilVO{
public var id:int;
public var descripcion:String;
public var estado:String;
public function PerfilVO() {}
public function getDescripcion():String{
return descripcion;
}
public function getEstado():String{
return estado;
}
public function getId():int{
return id;
}
}
Proyecto SIGUArquitecturaArquitectura
AgendaArquitectura
• Application ContextEs un archivo en el cual se definen
• Configuraciones del sistema• Configuraciones base de datos• Configuraciones hibernate (transacciones, hbms, sesiones)• Data Access Object (DAO)• Clases de Validaciones• Servicios
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations"><value>classpath:SIGU-Server.properties</value></property>
</bean>
<property name="mappingResources"><list><value>ar/edu/kennedy/mapping/hbm/Perfil.hbm.xml</value></list></property>
<bean id="transactionManager“ class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory"><ref bean="sessionFactory" /></property>
</bean>
<bean id="hibernateTemplate“ class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
• Especificación de Casos de Uso• DER• Diagrama de clases
Proyecto SIGUDiseñoDiseño
Agenda
Proyecto SIGUDiseñoDiseño• Especificación de CU
Se valida que el nombre de usuario exista en el sistema.Se valida que la password ingresada sea la correcta para el nombre de usuario ingresado.
Validaciones:
N/AReglas de negocio:
N/A.Requerimientos Especiales:
N/A.Extensiones:
N/AFlujo Alternativo:
1.El usuario ingresa su nombre de usuario.2.El usuario ingresa su password.3.El usuario hace un click en el botón de ingreso.4.Fin del caso de uso.
Flujo Normal:
N/ASalidas:
Usuario.Password.
Entradas:
Se inicia sesión en el sistema.Post condición:
N/APrecondición:
Administrador, Alumno, Docente.Actor:
DESCRIPCIÓN:Permite el ingreso del usuario al sistema.
ID: CU01
AgendaDiseño
Proyecto SIGUDiseñoDiseño
AgendaDiseño
• DER
Proyecto SIGUDiseñoDiseño• Diagrama de clases
Agenda
Proyecto SIGUDesarrolloDesarrollo
Agenda
Preguntas?Preguntas?
Proyecto SIGUComentariosComentarios
Agenda
MUCHAS MUCHAS GRACIAS!!GRACIAS!!
Proyecto SIGUFin de PresentaciónFin de Presentación
Agenda