viernes, 15 de abril de 2011

(C) 3.- Herencia

La herencia de clases es uno de los conceptos básicos de la programación orientada a objeto. Decir que una clase hereda de otra quiere decir que esa clase obtiene los mismos métodos y propiedades de la otra clase. Permitiendo de esta forma añadir a las características heredadas las suyas propias.

Se dice que Poliformismo es la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente. Por ejemplo: Si creamos dos clases distintas: Pez y Ave que heredan de la superclase Animal, la clase Animal tiene el método abstracto mover que se implementa de forma distinta en cada una de las subclases, que los peces y las aves se mueven de forma distinta.

En el proyecto El codigo de la aplicacion cuenta con herencia en las clases Guardar:ya que hereda los atributos de la clase
formulario para poderlos almacenar asi como tambein la clase inscribir manda llamar alos atributos de la clase
formulario para poderlos mostrar en la aplicacion asi como tambien la clase buscar ya que cuando realiza la
busqueda se realiza en formulario buscando coincidencias

(C)1.- Nociones basicas

NOCIONES BASICAS
INTRODUCCION DEL PROYECTO
SEFINDER 

es una aplicación web que proporciona un registro muestra mensajes para
los sobrevivientes, familiares y seres queridos afectados por un desastre natural o siestan desaparecidos esta realizadapara publicar y buscar informaci ón sobre cada unode su condición y su paradero. Muestra su estatus de busqueda asi como aportar informacion que pueda ser de utilidad.

DESARROLLO DE LA APLICACION
Desarrollado para la infraestructura de google apps que es una plataforma para
desarrollar y hospedar aplicaciones web de gestión de centros de datos de
Google. La aplicacion esta desarrollada mediante el lenguaje python

(C) 2.- Diseño con clases

clase Menu :La clase es para integrar el archivo html la  clase
llamada Menu que extiende de webapp.RequestHandler que se encargará
de mostrarla en el servidor y cuenta con atributo para las clases
django que es el framwork que utilizo para la pagina web  que se
encargará de mostrarla en el servidor
class Menu(webapp.RequestHandler):

class Formulario:En la clase Formulario lo que hace es cuando el
usuario ingrese datos en los campos los captura los datos que
almacenara son de tipo string cada atributo lo almacenara los objetos
con propiedades del tipo db  hay un atributo DateTime con el cual
inserta la fecha y hora en que se crea el registro Al momento de
confirmar los datos el formulario envía un post el cual lo
interpretará la clase guardar.
nombre = db.StringProperty()

class index:La clase es para integrar el archivo html la  clase
llamada Menu que extiende de webapp.RequestHandler, que se encargará
de mostrarla en el servidor la clase integra la pagina registro que
es el formulario

class Guardar:La clase es para guardar en la base de datos etambien
llama al método put(). permite guardar el contenido de la petición en el
servidor bajo la URI de la petición.

class confirmacion :En esta clase se utiliza el metodo post que envia
lo que esta almacenados en la clase guardar lo muestra en la pagina
web cuenta

class buscar :En esta clase se realiza la busqueda en la base de
datos cuenta con el parametro txtFullText que busca en toda la BD
busca en los datos que se coincidencias en la clase formulario
se creo un  objeto application del tipo WSGIApplication en el cual en
su contructor se le pasa una lista con  que consta la url a la cual
responde determinado clase del tipo RequestHandler en este caso para
la raiz asignaremos la clase Menu que a su vez apunta al archivo
index.html un metodo main() el cual con la funcion run_wsgi_app crea
una instancia de la aplicación finalmente si el archivo codigo.py no
se lo llama como modulo se ejecuta la aplicación

(T) 6.- Documentacion tecnica

La Herramienta que se utilizo para generar codigo apartir del diagrama de clases fue Umbrello que es una
herramienta para crear diagramas UML que ayudan en la creación de un software, se pueden hacer los
diagramas manualmente o importarlos de códigos como Java, Python, C++ entre otros y al reves es decir ya

creado el diagrama pasarlo al código correspondiente

(T) 5.- Documentacion tecnica

la herramienta que utilize para crear la documentaciontecnica fue SPE que trae integrado PyDoc que es un
generador de documentacion pero no me puede generar automaticamente porque no me reconoce los
modulos de google apps me marca un error intentando independiente pydoc es lo mismo me marca error
anexo una captura de pantalla de la IDE

(T) 4.- Herencia

En esta clase hereda la clase formulario que hay es donde busca
class buscar(webapp.RequestHandler):
def get(self):
txtFullText = self.request.get('txtFullText').upper()
if txtFullText <> '':
formularios = Formulario.all().search(txtFullText)
template_values = {
'formularios': formularios
}
else:
template_values = {}
path = os.path.join(os.path.dirname(__file__), 'busqueda.html')
self.response.out.write(template.render(path, template_values))
En esta clase hereda la clase formulario que hay es donde se guarda
class guardar(webapp.RequestHandler):
def post(self):
formulario = Formulario()
template_values = {
'txtApellidos': self.request.get('txtApellidos').upper(),
'txtNombres': self.request.get('txtNombres').upper(),
'txtCorreo': self.request.get('txtCorreo').lower(),
'tieneCorreo': (formulario.correo != '')
}
path = os.path.join(os.path.dirname(__file__), 'mensaje.html')
self.response.out.write(template.render(path, template_values))

(T) 3.- Codificacion Inicial de las clases

*clase Menu interconecta la pagina html index es la principal de la aplicacion
class Menu(webapp.RequestHandler):
def get(self):
template_values = {}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))
*clase Formulario almacena los valores que se le den a cada uno de los modelos
class Formulario(search.SearchableModel):
nombre= db.StringProperty()
apellido = db.StringProperty()
*clase Index interconecta la pagina html de registro que posteriormente se almacena en la clase
formulario
class Index(webapp.RequestHandler):
def get(self):
template_values = {}
path = os.path.join(os.path.dirname(__file__), 'registro.html')
self.response.out.write(template.render(path, template_values))
*clase datosprincipales muestra los datos de la clase formulario
class datosprincipales(webapp.RequestHandler):
def post(self):
template_values = {
'txtedad': self.request.get('txtedad'),
'txtApellidos': self.request.get('txtApellidos').upper(),
*Faltan mas por agregar
}
path = os.path.join(os.path.dirname(__file__), 'datos.html')
self.response.out.write(template.render(path, template_values))
*clase guardar se almacenan en la base de datos de google los datos de la clase formulario
class guardar(webapp.RequestHandler):
def post(self):
formulario = Formulario()
template_values = {
'txtApellidos': self.request.get('txtApellidos').upper(),
'txtNombres': self.request.get('txtNombres').upper(),
'txtCorreo': self.request.get('txtCorreo').lower(),
'tieneCorreo': (formulario.correo != '')
}
path = os.path.join(os.path.dirname(__file__), 'mensaje.html')
self.response.out.write(template.render(path, template_values))
*clase buscar ya almacenado los datos lo que hace esta clase es buscar en la clase formulario
cualquier parecido del texto que se busque mediante un If
class buscar(webapp.RequestHandler):
def get(self):
txtFullText = self.request.get('txtFullText').upper()
if txtFullText <> '':
formularios = Formulario.all().search(txtFullText)
template_values = {
'formularios': formularios
}
else:
template_values = {}
path = os.path.join(os.path.dirname(__file__), 'busqueda.html')
self.response.out.write(template.render(path, template_values))