Documentos de Académico
Documentos de Profesional
Documentos de Cultura
JULIO 2008
Tabla de contenido
1
Introduccin ........................................................................................................................ 4
5.2
5.3
5.4
8.2
8.3
8.3.1
8.3.2
8.3.3
8.3.4
8.3.5
8.3.6
Pgina 2
8.3.7
8.3.8
8.3.9
Diseo ............................................................................................................................... 37
9.1
9.2
Diseo de Clases........................................................................................................ 43
9.3
9.3.1
9.3.2
9.3.3
9.3.4
9.3.5
9.3.6
9.3.7
9.3.8
Aadir Cliente...................................................................................................... 56
9.3.9
9.4
10
11
10.2.1
10.2.2
10.2.3
Conclusiones ..................................................................................................................... 64
Pgina 3
1 Introduccin
Este aplicativo es un caso real. Se crea para cubrir una necesidad de gestin de la empresa Mixta
frica que es la filial de una de las grandes promotoras inmobiliarias catalanas, Renta
Corporacin.
Mixta frica enfoca su negocio a la construccin y venta de promociones inmobiliarias de
carcter social en pases africanos con economas poco desarrolladas.
Mi relacin con la empresa cliente empez a mediados de 2007 y desde entonces colaboro con
ellos realizando software a medida para cubrir su proceso de negocio.
Pgina 4
Pgina 5
Este proyecto es una Aplicacin de escritorio implementada en visual Basic 5.0 usando como
almacn de datos Access 97.
Se trata de un programa para gestionar la comercializacin de pisos de una pequea
inmobiliaria. Existe una diferenciacin entre clientes Vendedores que son los clientes que
acuden a la agencia para vender o alquilar un piso de su propiedad y clientes Compradores que
son los que acuden a la agencia para consultar los pisos y comprar alguno que les interese.
Las diferencias que encontramos entre este PFC y el que presento es tanto la tecnologa aplicada
como el objeto de negocio que se cubre.
Tecnolgicamente InmoComp es una aplicacin de escritorio, como repositorio de datos utiliza
Access 97 que no es propiamente un servidor de bases de datos (No admite conexiones remotas
nativas, sino que siempre se tiene que acceder mediante el acceso al sistema de ficheros), el
cdigo no est implementado usando la metodologa orientada a objetos.
Por otra parte la presente aplicacin se divide en tres capas lgicas (igual que fsicas) ya que la
capa de presentacin se encarga de la interfaz de usuario y se construye como una aplicacin
Web ASP .NET 2.0 que se procesa mediante llamadas http a un servidor IIS y se presenta la
respuesta en el navegador del cliente. La capa lgica de negocio est programada en C# 2.0 y se
compila en una librera aparte.
Por ltimo el repositorio de datos es SQL Server 2005 que s es un servidor de base de datos
propiamente dicho. Aloja las reglas que garantizan la integridad de los datos as como algn
proceso de negocio implementado como disparador que realiza volcados a histricos como la
actualizacin del histrico de tarifas cada vez que stas cambian, con objetivo de su posterior
seguimiento.
Pgina 6
En referencia al enfoque del sector de negocio que cubren tiene en comn que los dos
pertenecen a la comercializacin de productos del sector inmobiliario.
Como diferencias mientras InmoCorp est orientada a la gestin del stock de viviendas de una
inmobiliaria intermediaria (Agencia inmobiliaria), GesPromo est orientada a cubrir la gestin
comercial de una empresa inmobiliaria promotora. Diferencindose en que en GesPromo
maneja una o varias promociones completas, pueden participar en el proceso de
comercializacin ms de una Agencia Inmobiliaria, pudiendo reservarse pisos a vender
exclusivamente por alguna de las agencias, la posibilidad de realizar la venta de varios pisos al
mismo tiempo (Muy til, por ejemplo para compras de inversores).
Como diferencia tambin podemos sealar la cuestin de que el interfaz est desarrollado para
soportar varios idiomas y culturas (formatos de moneda, fechas, etc.)
As como la restriccin de las operaciones que puede realizar un usuario en base al rol que tome
en la aplicacin, siendo estos roles totalmente parametrizables en base a dar acceso o restringir
las diferentes funcionalidades para cada uno de los roles, pudiendo crear nuevos roles
directamente desde la aplicacin en caso de ser necesarios ms perfiles que los aportados por
defecto.
Pgina 7
5 Toma de Requisitos
5.1 Proceso de Toma de Requisitos
La toma de requisitos se realiz en dos reuniones donde participaron por parte del cliente: el
responsable del rea comercial, el departamento legal, el del departamento de construccin y el
responsable de TIC.
El proceso de toma de requisitos se basa en recoger los objetivos e intenciones que tienen los
usuarios. No hay ningn diagrama que pueda substituir la redaccin de estos objetivos. Con ello
el proceso de toma de requisitos se basa en escribir los requisitos.
En la toma de requisitos es importante centrarnos en el objetivo del usuario y la intencin con la
que se usa el sistema. Es comn cometer el error de contemplar la interfaz de usuario en la toma
de requisitos.
Como ejemplo simple podemos abordar la funcionalidad de validarse en la aplicacin.
Podramos pensar en:
Se presenta al usuario la pantalla de validacin donde introduce su nombre de usuario y su
contrasea para identificarse en la aplicacin.
En el caso anterior se hace referencia a la interfaz de usuario como Pantalla de validacin. Es
mejor describir la intencin del usuario;
El usuario se identifica en la aplicacin.
Podra ser que una vez analizada la funcionalidad necesaria se propusiese un sistema de lector
de huellas dactilares como interfaz de validacin de identidad y no una pantalla.
Es importante centrarse en los objetivos del usuario para entender las motivaciones y los
resultados que espera.
Pgina 8
Pgina 9
7.3. Ventas
7.3.1. Realizar Ventas
7.3.1.1.
Ventas Nuevas
7.3.1.2.
Ventas de Reservas
7.3.2. Cambio Tarifa Venta
7.3.3. Gestin Pagos
7.3.3.1.
Alta Pagos
7.3.3.2.
Modificacin Pagos
7.3.4. Confirmar Venta
7.3.5. Anular Venta
7.3.6. Cambiar Cliente Venta
7.3.7. Gestin de Contratos Arras
7.3.7.1.
Asignar Tipo Contrato Arras
7.3.7.2.
Impresin Contrato Arras
8. Listados e Informes
8.1. Resumen Estado Comercial Promocin
8.2. Listado Ventas
8.3. Listado Pagos por Fecha
8.4. Listado Reservas
Pgina 10
6 Tecnologa Aplicada
Plataforma Tecnolgica: MICROSOFT .NET FRAMEWORK 2.0
Lenguaje de programacin: Se usa ASP .NET 2.0 para la interfaz web y C# 2.0 para
el desarrollo de la capa de lgica de negocio y de comunicacin con la base de datos.
Base de datos: SQL SERVER 2005 en su versin Express (Gratuita) para desarrollo y
SQL SERVER 2005 ENTERPRISE en el entorno de produccin.
Integracin de todas estas tecnologas bajo una herramienta comn para el diseo,
Visual Studio .NET 2005, lo que permite reducir el tiempo de codificacin.
Experiencia previa del equipo de desarrollo en esta tecnologa con lo que la curva de
aprendizaje es muy suave.
Pgina 11
7 Metodologa utilizada
7.1 El Proceso Unificado
Para el desarrollo de este proyecto se ha seguido la metodologa conocida como Proceso
Unificado que es un ejemplo de proceso iterativo.
Este es un proceso de desarrollo de software; describe un enfoque para la construccin,
desarrollo y mantenimiento del software.
El Proceso Unificado es un ejemplo que utiliza un proceso iterativo para proyectos que utilizan
el Anlisis y Diseo Orientado a Objetos (A/DOO). Este se ha convertido en un proceso de
desarrollo de software de gran xito en la construccin de sistemas orientados a objetos.
El UP combina las prcticas comnmente aceptadas como buenas prcticas, tales como el
ciclo de vida iterativo y desarrollo dirigido por el riesgo, en una descripcin consistente y bien
documentada.
El UP fomenta muchas buenas prcticas, pero una destaca sobre las dems: el desarrollo
iterativo. En este enfoque el desarrollo se organiza en una serie de mini-proyectos cortos, de
duracin fija (por ejemplo 4 semanas) llamados iteraciones. Cada iteracin incluye sus propias
actividades de anlisis de requisitos, diseo, implementacin y pruebas. Dando como resultado
un sistema ejecutable, pero incompleto; no est preparado para ser puesto en produccin. El
sistema no podra estar listo para su puesta en produccin hasta despus de muchas iteraciones;
dependiendo de la complejidad del mismo.
El ciclo de vida iterativo se basa en la ampliacin y refinamiento sucesivos del sistema mediante
mltiples iteraciones, con retroalimentacin cclica y adaptacin como elementos primordiales
que dirigen para converger hacia un sistema adecuado al problema que se est tratando. El
sistema crece incrementalmente a lo largo del tiempo, iteracin tras iteracin, y por ello este
enfoque tambin se conoce como desarrollo iterativo e incremental.
Aunque en general cada iteracin aborda nuevos requisitos y ampla el sistema
incrementalmente, una iteracin podra, ocasionalmente, volver sobre el software que ya existe
y mejorarlo; por ejemplo mejorando el rendimiento de un subsistema en lugar de extenderlo con
nuevas caractersticas.
Las primeras ideas sobre procesos iterativos se conocieron como desarrollo en espiral y
desarrollo evolutivo [Boehm88, Gilb88].
En este proceso iterativo la idea clave es fijar la duracin de las iteraciones, generalmente
cortas (entre 2 y 6 semanas). El sistema parcial en desarrollo durante la iteracin debera
integrarse, probarse y estabilizarse en la fecha planificada. Si parece que ser difcil cumplir con
el plazo fijado, la respuesta recomendada es eliminar tareas o requisitos de la iteracin, en
incluirlos en una iteracin posterior, ms que retrasar la fecha de terminacin prevista.
Los beneficios del desarrollo iterativo incluyen:
PFC Ingeniera Informtica de Gestin
Pgina 12
Mitigacin tan pronto como sea posible de riesgos altos (tcnicos, requisitos, objetivos,
usabilidad y dems)
Construir en las primeras iteraciones una arquitectura que constituya un ncleo central
consistente
Pgina 13
Un proyecto que utiliza la metodologa UP organiza el trabajo y las iteraciones en cuatro fases
fundamentales.
1. Inicio: Visin aproximada, anlisis de negocio, alcance, estimaciones imprecisas.
2. Elaboracin: visin refinada, implementacin iterativa del ncleo central de la
arquitectura, resolucin de los riesgos altos, identificacin de ms requisitos y alcance,
estimaciones ms realistas.
3. Construccin: implementacin iterativa del resto de requisitos de menor riesgo y
elementos ms fciles, preparacin para el despliegue.
4. Transicin: pruebas beta, despliegue.
Esto no corresponde con el antiguo ciclo de vida en cascada o secuencial, en el que primero se
definan todos los requisitos y, despus, se realizaba todo, o la mayora del diseo.
La fase de Inicio no es una fase de requisitos; sino una especie de fase de viabilidad, donde se
lleva a cabo slo el estudio suficiente para decidir si continuar o no.
De igual modo, la fase de Elaboracin no es la fase de requisitos o de diseo; sino que es una
fase donde se implementa, de manera iterativa, la arquitectura que constituye el ncleo central y
se mitigan las cuestiones de alto riesgo.
Pgina 14
8 Anlisis y Especificacin
8.1 Modelo Conceptual
Tarifa
Bloque
Planta
Categora
1
1
Se aplica
Contiene
Contiene
Pertenece
Contiene
Piso
Estado
Se aplica
Promocion
1
Registra Reserva De
0..1
Registra
Venta De
1
1
DetalleReserva
DetalleVenta
1
Moneda
1..*
Agencias_Promocion
1..*
Cliente
Contenida En
1
A nombre
Se realiza
A nombre
0..1
Contenida En
*
Reserva
Venta
Pagada Mediante
1
Pago
*
Realiza
Realiza
1
Agencia
Contiene
1
Usuario
Rol
*
Pgina 15
Pgina 16
Actor Principal: Tiene objetivos de usuario que se satisfacen mediante el uso de los
servios del Sistema en Discusin (SeD).
Actor de Apoyo: Proporciona un servicio al SeD como por ejemplo informacin (Podra
ser un servicio de informacin en tiempo real de las cotizaciones de las divisas, para
calcular los importes en diferentes monedas). Normalmente se trata de un sistema
informtico, pero podra ser una organizacin o una persona.
Actor Pasivo: est interesado en el comportamiento del caso de uso pero no participa
activamente. No es principal ni de apoyo, por ejemplo podra ser la Agencia Tributaria
del Estado.
Los actores que correspondan con usuarios los indicaremos con el dibujo de un mueco,
mientras que los Sistemas Externos los identificaremos situando el nombre del sistema dentro
de un rectngulo indicando el estereotipo <<actor>>.
En el sistema en desarrollo no existe ningn actor que sea un sistema externo. Pero si
diferenciaremos entre dos tipos de usuarios.
Actor Usuario: El actor usuario es el que usa la aplicacin como herramienta para
desarrollar su actividad comercial.
Realizando la extraccin desde el texto buscamos los verbos que denotan uso, o interaccin con
el sistema. As tenemos la siguiente lista de casos de uso.
PFC Ingeniera Informtica de Gestin
Pgina 17
Usuario Comercial
Aadir Clientes
Realizar Encuesta
Seleccionar Pisos
Generar Reserva
Anular Reserva
Asignar Contrato
Actor Administrador
Gestionar Promociones
Gestionar Usuarios
Gestionar Agencias
Gestionar Roles
Pgina 18
Encuesta
uses
Generar Operacin
de Venta
uses
Seleccionar Pisos
uses
Generar Reserva
Anular Reserva
Usuario
Confirmar
Operacin Venta
Anular Operacion
Venta
Asignar Contrato
Piso
Gestionar Usuarios
Gestionar Agencias
Administrador
Gestionar Roles
Gestionar
Promociones
Pgina 19
Pgina 20
Sistema
Usuario
crearCliente()
IntroducirDatosCliente(datosCliente)
presentar Encuesta
RellenarEncuesta()
Lista de clientes
Pgina 21
Pgina 22
Extensiones:
8a. Creacin del cliente en el momento de la eleccin de los pisos.
1. El cliente no est introducido en el sistema y el usuario le pide al sistema crear un nuevo
cliente.
2. El sistema le muestra al usuario el formulario para introducir un nuevo cliente.
3. El Usuario rellena el formulario con los datos del cliente y acepta los datos.
4. El sistema registra el nuevo cliente y le muestra al usuario el listado de clientes en el
que aparecer el nuevo cliente.
5. El usuario selecciona el cliente recin creado al que se le van a reservar o pre-vender los
pisos.
11a. Introduccin del Comercial que realiza la venta.
1. El Sistema muestra un resumen de los datos del cliente validado y pide que se indique el
comercial que ha realizado la operacin.
2. El usuario escoge la agencia y el usuario al que se le atribuir la operacin de Reserva o
Pre-venta que se va a realizar.
Pgina 23
Sistema
Usuario
NuevaCesta()
aadirPisoCesta()
descripcion, totales
aceptarCesta()
Resumen Cesta
seleccionarClienteCesta()
formulario datos cliente
validarDatosCliente()
escoge Operacion
Pgina 24
Escenario Alternativo:
2a. Se produce un error por el cambio de estado de uno de los pisos seleccionados.
1. El sistema detecta que uno de los pisos de la cesta han cambiado.
2. El sistema muestra un mensaje de error en la operacin de reserva y cancela la seleccin
de los pisos.
3. Vuelve a la pantalla del listado de pisos de la promocin
Pgina 25
Sistema
Usuario
generarReserva(Cesta,Cliente)
mostrar reserva
Pgina 26
Escenario Alternativo:
2a. Se produce un error por el cambio de estado de uno de los pisos seleccionados.
4. El sistema detecta que uno de los pisos de la cesta ha cambiado.
5. El sistema muestra un mensaje de error en la operacin de pre-venta y cancela la
seleccin de los pisos.
6. Vuelve a la pantalla del listado de pisos de la promocin.
Diagrama de Secuencia del Sistema
Pgina 27
Sistema
Usuario
OperacionVenta()
introducirPago()
generarOperacinVenta(Cesta,Cliente,Pago)
Pgina 28
Pgina 29
Pgina 30
Pgina 31
Sistema
Usuario
seleccionarVenta(Venta)
confirmarVenta(Venta)
Pgina 32
Pgina 33
Sistema
Usuario
seleccionarVenta(Venta)
anualarVenta(Venta)
Pgina 34
Pgina 35
Sistema
Usuario
seleccionarVenta(Venta)
seleccionarContrato(DetalleVenta)
asignarContrato(DetalleVenta,Contrato)
imprimirContrato(DetalleVenta)
Pgina 36
9 Diseo
La fase de diseo se encarga de trasladar desde el enfoque centrado en los requisitos del
Anlisis a un enfoque centrado en el diseo de una solucin que satisfaga estos requisitos.
Para llegar a obtener un diseo que hace lo correcto se desarrolla una solucin lgica basada en
el paradigma orientado a objetos. Lo esencial de esta solucin es la creacin de los diagramas de
interaccin que representan el modo en que los objetos colaboran para satisfacer los requisitos.
La asignacin de responsabilidades nos indica que clases se tienen que encargar de realizar que
acciones y no otras. As como los patrones de diseo nos aportan soluciones bien conocidas a
problemas recurrentes durante el diseo de aplicaciones software.
Diagramas de colaboracin: Ilustran las relaciones entre objetos en una forma de grafo o
red, en el cual los objetos se pueden colocar en cualquier lugar del diagrama.
Pgina 37
Cada uno de estos dos tipos de diagramas tienen sus puntos fuertes y sus puntos dbiles:
Tipo
Secuencia
Puntos fuertes
Puntos dbiles
Notacin simple.
Colaboracin Economiza espacio, flexibilidad al aadir
nuevos objetos en dos dimensiones.
Es mejor para ilustrar bifurcaciones
complejas, iteraciones y comportamiento
concurrente.
Dado que en este proyecto no se dan bifurcaciones complejas ni demasiadas iteraciones se opta
por usar los diagramas de secuencia.
Pgina 38
CULTURAS_VO
Entiende
0..*
-agencia
-rol
-nombre
-telefono
-email
-fax
-persona_contacto
-telefono2
-fechaalta
AGENCIAS_VO
1..*
Pertenece
-cod_idioma
-nombre
-usuario
-agencia
-rol
-cod_idioma
-nombre
-email
-apellido
-login
-password
-telefono1
-telefono2
-fax
-fecha_alta
-fecha_baja
-activo
+permisos
USUARIOS_VO
0..*
Accede Como
1
Pgina 40
-permiso
-nombre
-descripcion
PERMISOS_VO
1..*
Se configura
-permisos_rol
-rol
-permiso
-concedido
PERMISOS_ROL_VO
1..*
Tiene Acceso
-rol
-nombre
-descripcion
ROLES_VO
Pgina 41
Pgina 42
Culturas
-_culturasAdapter : CULTURASTableAdapter = null
#Adapter() : CULTURASTableAdapter
+GetCulturas() : CULTURASDataTable
Pgina 44
Pisos
Usuarios
-_usuariosAdapter : USUARIOSTableAdapter = null
#Adapter() : USUARIOSTableAdapter
+GetUsuarios() : USUARIOSDataTable
+GetUsuarioByLogin(entrada Login : string, entrada Pass : string) : USUARIOSRow
+GetUsuarioByPrimaryKey(entrada Usuario : long) : USUARIOSRow
+GetUsuarioByUsuario(entrada Usuario : long) : USUARIOSDataTable
+GetUsuario_ViewByPrimaryKey(entrada Usuario : long) : USUARIOS_VIEWRow
+GetUsuarioViewByPrimaryKey(entrada Usuario : long) : USUARIOS_VIEWDataTable
+GetUsuarios_ViewByAgencia(entrada Agencia : long) : USUARIOS_VIEWDataTable
-traspasarUsuarioAUsuarioRow(entrada usuario : USUARIOS_VO, entrada usuarioRow : USUARIOSRow)
-traspasarUsuarioRowAUsuario(entrada usuarioRow : USUARIOSRow, entrada usuario : USUARIOS_VO)
+UpdateUsuario(entrada Original_Usuario : USUARIOS_VO, entrada Usuario : USUARIOS_VO) : bool
+InsertUsuario(entrada Usuario : USUARIOS_VO) : long
+ChangeUsuarioActivo(entrada Usuario : USUARIOS_VO) : bool
+validarLogin(entrada login : string, entrada password : string) : USUARIOS_VO
Promocion
-_bloquesAdapter : BLOQUESTableAdapter = null
-_promocionesAdapter : PROMOCIONESTableAdapter = null
-_promocionesViewAdapter : PROMOCIONES_VIEWTableAdapter = null
-_totalPisosPromocionViewAdapter : TOTAL_PISOS_PROMOCION_VIEWTableAdapter = null
#bloquesAdapter() : BLOQUESTableAdapter
#promocionesAdapter() : PROMOCIONESTableAdapter
#promocionesViewAdapter() : PROMOCIONES_VIEWTableAdapter
#totalPisosPromocionViewAdapter() : TOTAL_PISOS_PROMOCION_VIEWTableAdapter
+GetBloquesByPromocion(entrada Promocion : long) : BLOQUESDataTable
+GetPromociones() : PROMOCIONESDataTable
+GetPromocionesPermitidasByAgenciaAsignada(entrada Agencia : long) : PROMOCIONESDataTable
+GetPromocionesByAgenciaAsignadaActiva(entrada Agencia : long) : PROMOCIONESDataTable
+GetPromocionesByAgenciaAsignada(entrada Agencia : long) : PROMOCIONESDataTable
+NumeroDePromocionesParaAgencia(entrada Agencia : long) : int
+GetPromocion(entrada Promocion : long) : PROMOCIONESDataTable
+GetPromocionesView(entrada Idioma : string) : PROMOCIONES_VIEWDataTable
+GetPromocionView(entrada Idioma : string, entrada Promocion : long) : PROMOCIONES_VIEWDataTable
-RellenarFila(entrada Promocion : PROMOCIONES_VO, entrada PromocionRow : PROMOCIONESRow) : PROMOCIONESRow
+ActualizarPromocion(entrada Promocion : PROMOCIONES_VO) : bool
+InsertarPromocion(entrada Promocion : PROMOCIONES_VO) : bool
+TotalPisosPromocion(entrada Promocion : long) : long
Reservas
-_reservasAdapter : RESERVASTableAdapter
-_reservasViewAdapter : RESERVAS_VIEWTableAdapter
-_detalleReservaViewAdapter : DETALLE_RESERVA_VIEWTableAdapter
#reservasAdapter() : RESERVASTableAdapter
#reservasViewAdapter() : RESERVAS_VIEWTableAdapter
#detalleReservaViewAdapter() : DETALLE_RESERVA_VIEWTableAdapter
+CalcularCaducidad(entrada hoy : DateTime, entrada dias : double) : DateTime
+GetReservasViewByPrimaryKey(entrada Reserva : long) : RESERVAS_VIEWDataTable
+GetReservasViewByAgenciaPromocion(entrada Agencia : long, entrada Promocion : long) : RESERVAS_VIEWDataTable
+GetReservasViewByPromocion(entrada Promocion : long) : RESERVAS_VIEWDataTable
+anularReserva(entrada Reserva : long)
+GetDetalleReservaViewByPisoActiva(entrada Piso : long) : DETALLE_RESERVA_VIEWDataTable
: Cesta
: Usuario
: Pisos
: Clientes
Cesta
AddPiso
GetPisosViewByPiso
Seleccionar Cliente
ObtenerClientes
Cliente
Mostrar Detalle Cesta
Pgina 49
Pgina 50
Pgina 51
: Cesta
: Usuario
: Pisos
: Clientes
: Pagos
: Ventas
Cesta
AddPiso
GetPisosViewByPiso:=GetPisosViewByPiso(Piso, Idioma)
ObtenerClientes:=ObtenerClientes()
ObtenerClienteByPrimaryKey:=ObtenerClienteByPrimaryKey(Cliente)
NuevoPagoVenta:=NuevoPagoVenta(pago)
CrearVenta:=CrearVenta(venta, movVenta, pisos, pago)
Mostrar Detalle Venta
Pgina 52
: Ventas
: Pisos
: Usuario
GetVentasViewByPrimaryKey:=GetVentasViewByPrimaryKey(Idioma, Venta)
GetMovimientosVentasView:=GetMovimientosVentasView(Idioma)
Venta Confirmada
Pgina 53
Pgina 54
Pgina 55
: Clientes
: Usuario
NuevoCliente()
InsertarCliente:=InsertarCliente(Cliente)
traspasarClienteAClienteRow:=traspasarClienteAClienteRow(Cliente, ClienteRow)
Pgina 56
Pgina 57
Pgina 58
Como alternativas a esta implementacin existen otros frameworks de acceso a datos integrados
con la tecnologa .Net que si que cumplen el paradigma de orientacin a objetos y se conocen
como OR/M (Object Relational Mapping), como muestra podemos encontrar una amplia
comparativa realizada sobre distintos OR/M disponibles para la plataforma .NET de Microsoft
en http://c2.com/cgi/wiki?ObjectRelationalToolComparisonDotNet .
Como ejemplo citaremos dos de ellos:
NHibernate (http://nhibernate.sourceforge.net): Es Open Source y es una portabilidad a
.Net del conocido OR/M de Java Hibernate.
LLBLGen Pro (http://www.llblgen.com). Es un OR/M de cdigo cerrado y de pago en
su versin Professional. Existe una versin recortada gratuita.
LINQ to SQL (http://msdn.microsoft.com/en-us/library/bb425822.aspx): Este OR/M
est disponible con la versin 3.5 del Framework .NET y completamente integrado
con las herramientas de diseo de aplicaciones Visual Studio 2005 (mediante un
plugin) y de forma nativa en el reciente Visual Studio 2008.
Pgina 59
En el grfico podemos apreciar el nivel de uso que se suele tener de media en los proyectos que
usan la metodologa Proceso Unificado.
Vemos que el mayor esfuerzo en las tareas de Modelado y Anlisis se sitan en las primeras
fases del proyecto, as como las tareas de implementacin se mantienen bastente estables
durante toda la duracin del proyecto.
Para este proyecto, que no es demasiado complejo, se han utilidado los siguientes recursos
humanos: un Jefe de proyecto, un Analista Funcional, un Analista Orgnico y un programador;
junto con un tcnico de sistemas que realizar la implantacin y configuracin de los sistemas
en el entorno de produccin.
La duracin del proyecto se planifica para un total de 57 das laborables.
(Ver Anexo: Planificacin Temporal Fases y Recursos)
PFC Ingeniera Informtica de Gestin
Pgina 60
10.1.1
Este informe se ha realizado considerando una disponibilidad de 8 horas diarias por recurso y
teniendo en cuenta toda la duracin del proyecto.
10.2.1
Se han estimado los costos por recurso en relacin al precio ofertado a los clientes por empresas
consultoras. El coste sera menor en caso de que el proyecto lo realizase un equipo FreeLancer
o una pequea empresa.
10.2.2
Tipo Recurso
Coste Hora
Jefe de Proyecto
100,00 /hora
120,00 /hora
Analista Funcional
90,00 /hora
105,00 /hora
Analista Orgnico
80,00 /hora
95,00 /hora
Programador
60,00 /hora
70,00 /hora
Admin. Sistemas
80,00 /hora
95,00 /hora
10.2.3
11 Conclusiones
Una vez finalizado el desarrollo y puesto en produccin se detectan reas del proceso de
comercializacin que claramente que se pueden incluir en las funcionalidades de la misma.
Como ampliaciones se proponen:
Gestin de las reclamaciones que puedan surgir por parte de los clientes o de la propia
promotora en cuanto a los acabados o defectos detectados en los apartamentos.