Herramientas Informaticas

Mes: octubre 2012

Ejemplo de validación de formularios con JQuery

 

Código fuente del formulario

Descargar JQuery traducidos Aqui

   1: <html>

   2:     <head>

   3:         

   4:         

   5:         <?php $jjq = base_url()."js/jquery-latest.js";

   6:               $jja = base_url()."js/jquery.validate.js";

   7:     

   8:     echo "&lt;script src='$jjq'></script>
   1: ";

   2:     echo "<script src='$jja'>

   1: ";

   2:     

   3:     ?>

   4:  

   5:         <style type="text/css">

   6:  

   7:             * { font-family: Verdana; font-size: 96%; }

   8:             label { width: 10em; float: left; }

   9:             label.error { float: none; color: red; padding-left: .5em; vertical-align: top; }

  10:             p { clear: both; }

  11:             .submit { margin-left: 12em; }

  12:             em { font-weight: bold; padding-right: 1em; vertical-align: top;                     }

  13:         

  14:               

  15: 

  16:  

  17: function validar(esto){ 

  18: valido=false; 

  19: for(a=0;a<esto.elements.length;a++){ 

  20: if(esto[a].type=="checkbox" && esto[a].checked==true){ 

  21: valido=true; 

  22: break 

  23: } 

  24:  

  25: } 

  26: if(!valido){ 

  27: alert("Chequee una casilla!");return false 

  28: } 

  29:  

  30: }  

  31:  

  32:  

</script>

   1:   

   2:             <script type="text/javascript">

   3:  

   4: $(document).ready(function(){

   5: $("body div:last").remove();

   6: });

</script>

   1:  

   2:  

   3:          

   4:   $(document).ready(function(){

   5:  $("#registro").validate({

   6:   rules: {

   7:     nom_usu: {

   8:       required: true,

   9:       maxlength: 25,

  10:       minlength:    3

  11:     },

  12:     

  13:     login: {

  14:       required: true,

  15:        maxlength: 2,

  16:       minlength:    2,

  17:       number: true

  18:     },

  19:     

  20:     psw: {

  21:       required: true,

  22:        maxlength: 10,

  23:       minlength:    6,

  24:       number: true,

  25:       equalTo: "#psw1"

  26:  

  27:     },

  28:     

  29:     psw1: {

  30:       required: true,

  31:        maxlength: 10,

  32:       minlength:    6,

  33:       number: true

  34:  

  35:     },

  36:     

  37:     acceso: {

  38:       required: true

  39:     },

  40:     

  41:     

  42:     status: {

  43:       required: true

  44:     }

  45:   }

  46: });

  47:  

  48:   });

  49:   

</script>

   9:   

  10:   <style>

  11:       label{

  12:         width:150px;

  13:         display: inline-block;

  14:     }

  15:   </style>

  16:   

  17: </head>

  18: <body>

  19:   <div id="container" align="center">

  20:   

  21:   

  22:   <form id="registro" name="registro" onclick="return validar(this)" action="&lt;?=base_url()?>index.php/users/addUser" method="POST">

  23:     

  24:     

  25:     <b><label for="login">Usuario:</label></b>

  26:     <input type="text" name="login" id="login" onchange=""/> <br />

  27:     

  28:     

  29:     <b><label for="nom_usu">Nombre:</label></b>

  30:     <input type="text" name="nom_usu" id="nom_usu"/><br />

  31:     

  32:     <b><label for="psw">Contraseña</label></b>

  33:     <input type="password" name="psw" id="psw" /><br />

  34:     

  35:     

  36:     <b><label for="psw1">Repite contraseña</label></b>

  37:     <input type="password" name="psw1" id="psw1"/><br />

  38:     

  39:     <b><label>Tipo de usuario</label></b>

  40:     <select name="acceso" id="acceso">

  41:         <option value="0">Registrado</option>

  42:         <option value="1">Administrador</option>

  43:     

  44:     </select>

  45:     <br />

  46:     <br />

  47:     

  48:     <b><label>Estado de usuario</label></b>

  49:     Activado<input type="radio" name="status" id="status" value="1"/>

  50:     Desactivado<input type="radio" name="status" id="status" value="0"/>

  51:     

  52:     <br />

  53:     <br />

  54:     <br />

  55:     

  56:     

  57:     <b><label for="local">Llamadas locales</label></b>

  58:     <input type='checkbox' name="local" id="local" value='1' /> 

  59:     <br />

  60:     <br />

  61:     

  62:     <!--

  63:     Llamadas locales

  64:     Activadas

  65:     Desactivadas

  66:     

  67:     
-->

  68:     

  69:     <b><label for="ld_nacional">Llamadas a larga distancia nacional</label></b>

  70:     <input type='checkbox' name="ld_nacional" id="ld_nacional" value='1' />

  71:     <br />

  72:     <br />

  73:     <br />

  74:     <!--

  75:     Llamadas a larga distancia nacional

  76:     Activadas

  77:     Desactivadas

  78:     

  79:     

  80:     
-->

  81:     

  82:     <b><label for="cel_local">Llamadas a celular <br />local   </label></b>

  83:     <input type='checkbox' name="cel_local" id="cel_local" value='1' />

  84:     <br />

  85:     <br />

  86:     <br />

  87:     

  88:     <!--

  89:     Llamadas a celular 
local

  90:     Activadas

  91:     Desactivadas

  92:     

  93:     

  94:     
-->

  95:     

  96:     

  97:     <b><label for="cel_ld">Llamadas a celular a larga distancia</label></b>

  98:     <input type='checkbox' name="cel_ld" id="cel_ld" value='1' />

  99:     

 100:     <br />

 101:     <br />

 102:     <br />

 103:     

 104:     <!--

 105:     Llamadas a celular a larga distancia

 106:     

 107:     Activadas

 108:     Desactivadas

 109:     

 110:     

 111:     
-->

 112:     

 113:     <b><label for="internacional">Llamadas internacionales</label></b>

 114:     <input type='checkbox' name="internacional" id="internacional" value='1' />

 115:     <br />

 116:     <br />

 117:     <br />

 118:     <!--

 119:     Llamadas internacionales

 120:     Activadas

 121:     Desactivadas

 122:     

 123:     

 124:     

 125:     -->

 126:     

 127:  

 128:     <input type="submit" name="submit" value="Registrar"/><br />

 129:     

 130:     

 131:     

 132:     </form>

 133: </div>

 134: </div>

 135:  

 136:  

 137: </body>

 138: </html>

Vistas MySQL y Funciones en CodeIgniter

Vistas

¿Para que sirven?

Una vista en la base de datos MySQL Sirve para representar o interpretar los datos que se encuentran en las filas de las tablas.

Por ejemplo:

Cuando una columna guarda puros datos booleanos de ceros y unos al momento de realizar la consulta el usuario tiene que saber que significa estos valores, como cuando se guarda el tipo de usuario de un sistema que son “Administrador y Normal”, al administrador en la tabla se guarda como 1 y al usuario con el 0.

Código para crear la vista

 
   1: CREATE VIEW PRUEBA AS (

   2: select 

   3:     `user_control`.`ld_nacional` AS `ld_nacional`,

   4:     `user_control`.`cel_local` AS `cel_local`,

   5:     `user_control`.`internacional` AS `internacional`,

   6:     `user_control`.`cel_ld` AS `cel_ld`,

   7:     `user_control`.`local` AS `local`,

   8:     `user_control`.`nom_usu` AS `nom_usu`,

   9:     `user_control`.`id_usu` AS `id_usu`,

  10:     `user_control`.`login` AS `login`,

  11:     `user_control`.`psw` AS `psw`,

  12:     if((`user_control`.`acceso` = 0),'Normal','Administrador') AS `acceso`,

  13:     if((`user_control`.`status` = 0),'Desactivado','Activado') AS `status` 

  14:   from 

  15:     `user_control` 

  16:     )

Como pueden ver en los campos “acceso y status” hay un IF donde dice que si es igual a 0 mandara el valor de Normal y si es 1 mandara Administrador, en caso de status, si es igual a 0 pintara como Desactivado y si no es igual a 0 pintara como Activado.

Código tabla original

   1: CREATE TABLE `user_control` (

   2:   `id_usu` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,

   3:   `status` int(1) unsigned NOT NULL DEFAULT '1',

   4:   `nom_usu` varchar(25) NOT NULL,

   5:   `login` varchar(4) NOT NULL DEFAULT '0000',

   6:   `psw` varchar(40) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

   7:   `local` tinyint(4) NOT NULL DEFAULT '0',

   8:   `ld_nacional` tinyint(4) NOT NULL DEFAULT '0',

   9:   `cel_local` tinyint(4) NOT NULL DEFAULT '0',

  10:   `cel_ld` tinyint(4) NOT NULL DEFAULT '0',

  11:   `internacional` tinyint(4) NOT NULL DEFAULT '0',

  12:   `acceso` tinyint(4) NOT NULL DEFAULT '0',

  13:   PRIMARY KEY (`id_usu`),

  14:   UNIQUE KEY `login` (`login`)

  15: ) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8;

 

 

Ahora la función en el modelo para cargar los datos, el archivo se llama usersModel.php

   1: public function getUsers(){

   2:         $data=$this->db->get('vista');

   3:         if($data->num_rows() >0){

   4:             return $data;

   5:         }else{

   6:             return false;

   7:             }

   8:     }

 

Ahora se manda llamar la función del modelo con la función getUsers desde el controlador, el archivo se llama Welcome.php

   1: public function getUsers(){

   2:         

   3:         if(isset($_SESSION['usuario'])){

   4:         //GUARDA EN LA VARIABLE $USERS TODOS LOS USUARIOS

   5:         $data['users'] = $this->usersModel->getUsers();

   6:     

   7:         $data['principal']="listusers.php";

   8:         

   9:                 //SE ASIGNA QUE PAGINA SE CARGAR PARA VISUALIZAR LOS DATOS

  10:                 $this->load->vars($data);

  11:                 $this->load->view('plantilla');

  12:         }else{

  13:         echo " alert('Acceso restringido')";

  14:         $data['principal']="acceso.php";

  15:         

  16:                 $this->load->vars($data);

  17:                 $this->load->view('plantilla');

  18:         }

  19:     }

 

Les dejo las vistas de la plantilla y la lista de usuarios por si la necesitan

 

 

listuser.php

   1:  

   2: <?php

   3:  

   4:  

   5: $eliminar = base_url()."imagenes/eliminar.fw.png";

   6: $actualizar = base_url()."imagenes/modificar.png";

   7:     

   8: function estadoImg($edo){

   9:     $palomita = base_url()."imagenes/v.fw.png";

  10:     $x = base_url()."imagenes/eliminar.png";

  11:     if($edo==1){

  12:         return "<img src=".$palomita.">";

  13:     }

  14:     else{

  15:         return "<img src=".$x.">";

  16:     }

  17: }

  18:  

  19:  

  20:  

  21: ?>

  22:         <script type="text/javascript">
   1:  

   2:         <!--

   3:         

   4:         function confirmacion(id) {

   5:         var answer = confirm("Esta seguro que desea eliminar")

   6:         if (answer){

   7:         alert("Ha confirmado eliminar")

   8:         location.href="deleteUserId/"+id

   9:         }

  10:         else{

  11:         alert("Cancelado")

  12:         }

  13:     }

  14:     

  15:     function actualizar(id) {

  16:         

  17:         location.href="updateUserId/"+id

  18:         

  19:     }

  20: //-->

</script>

  23:  

  24: <body>

  25:     

  26: <div id="container">

  27:  

  28:     <div id="body" align="center">

  29:         <h3>Mis Usuarios son</h3>

  30:         <p>hola</P>

  31:         <?php echo $_SESSION['usuario'];?>

  32:         

  33:         <div id="tabla">

  34:          

  35:             <table border="0" align="left">

  36:             

  37:             <form id="b" name="b" action="&lt;?=base_url()?>index.php/welcome/buscarUsuarios" method="POST">

  38:             <td><input type= "text" id="buscar" name="buscar" ></td>

  39:             

  40:             <td><input type="submit" id="arre" name="arre" value="buscar"&lt;/td></tr>

  41:             </form>

  42:             

  43:             

  44:             

  45:             

  46:             </table>

  47:             

  48:             <table border="0" align="center">

  49:             <tr bgcolor="#7362ec" align="center" onfocus="<?php echo "HOLA";?>">

  50:             

  51:             <td><b>Nombre</b></td>

  52:             <td><b>Usuario </b></td> 

  53:             <td><b>Estado de usuario </b></td> 

  54:             <td><b>Nivel de acceso</b></td>

  55:             <td><b>Llamadas locales permitidas</b></td>

  56:             <td><b>Llamadas celular local permitidas</b></td>

  57:             <td><b>Llamadas a celular  permitidas</b></td>

  58:             <td><b>Llamadas nacionales permitidas</b></td>

  59:             <td><b>Llamadas internacionales permitidas</b></td>

  60:             <td><b>Eliminar usuario</b></td>

  61:             <td><b>Modifiacar usuario</b></td>

  62:             </tr>

  63:             <tr>

  64:         

  65:             <?php

  66:             $colorfila=0;

  67:             

  68:             

  69:             if($users!=false){

  70:                foreach($users->result() as $row){

  71:                    if ($colorfila==0){ 

  72:                    $color= "#b5b5b5"; 

  73:                    $colorfila=1; 

  74:                     }else{ 

  75:                    $color="#f7f7f7"; 

  76:                    $colorfila=0; 

  77:                 }    

  78:                 echo "<tr bgcolor='".$color."' align='center'>";

  79:                 echo "<td>";

  80:                 echo "<a href=".base_url()."index.php/welcome/getUserId/".$row->id_usu.">";

  81:                 echo $row->nom_usu."</a> </td> <td>". $row->login."</td>

  82:                 <td> ".$row->status."</td>

  83:                 <td > ".$row->acceso."</td> 

  84:                 

  85:                 <td>". estadoImg($row->local)."</td>

  86:                 <td>". estadoImg($row->cel_local)."</td>

  87:                 <td>". estadoImg($row->cel_ld)."</td>

  88:                 <td>". estadoImg($row->ld_nacional)."</td>

  89:                 <td>". estadoImg($row->internacional)."</td>

  90:                 <td><a href=javascript:confirmacion($row->id_usu)><img src=$eliminar></a></td>

  91:                 <td><a href=javascript:actualizar($row->id_usu)><img src=$actualizar></a></td>";

  92:                 echo "</tr>";

  93:             }

  94:             

  95:         }

  96:         ?>

  97:         

  98:         </table>

  99:         </div>

 100:  

 101:     </div>

 102:  

 103:  

 104: </div>

 105:  

 106: </body>

plantilla.php

   1: <!DOCTYPE html>

   2: <html lang="en">

   3: <head>

   4:     

   5:     

   6:     <meta charset="utf-8">

   7:     <title>Usuarios ITLM</title>

   8:     <?php $estilo = base_url()."css/estilo.css";

   9:           $estiloMenu = base_url()."css/menu.css";

  10:     

  11:     

  12:           $logo = base_url()."/imagenes/logo.jpg";

  13:           $menu= base_url()."/js/menu.js";

  14:           $jjq= base_url()."/js/jquery.js";

  15:           

  16:       

  17:           echo "&lt;link rel='stylesheet' type='text/css' href='$estilo' media='all'>";

  18:           echo "<link rel='stylesheet' type='text/css' href='$estiloMenu' media='all'>";

  19:           echo "<script src='$jjq'></script>
   1: ";

   2:           echo "<script src='$menu'>

</script>";

  20:          

  21:           

  22:          

  23:     ?>

  24:            

  25: </head>

  26:  

  27: <body>

  28: <div align="center">

  29: <?php

  30:  

  31: $this->load->view('encabezado');

  32: $this->load->view($principal);

  33: $this->load->view('pie.php');

  34:  

  35: ?>

  36: </div>

 

Les dejo un video que vi por si se van iniciando al Framework  de CodeIgniter

[youtube http://www.youtube.com/watch?v=jhP6vVc7Yts&hl=en&hd=1]

Mapa mental intercepting filter

intercepting filter

UNIDAD 4. ARQUITECTURA DE PROTOTIPOS EMPRESARIALES

¿QUE ES UN RIESGO PARA UN PROYECTO DE SOFTWARE?

Un riesgo es aquel factor que influye negativamente en el éxito del proyecto. El riesgo en un proyecto de desarrollo de software incluye componentes técnicos y de conocimiento del mismo. Los temas de naturaleza organizacional constituyen los factores dominantes de los riesgos del proyecto, a la vez que son los que se tratan satisfactoriamente en menos de la tercera parte de los proyectos de desarrollo, entre ellos los conflictos entre departamentos, entre usuarios, el cambio del responsable ejecutivo del proyecto, volatilidad del personal, número de unidades de la organización implicadas y proyectos que involucran a múltiples proveedores.

¿CUAL ES LA IMPORTANCIA DE LA GESTION DE RIESGOS?

Para lograr producir aquello que el cliente requiere, en el plazo solicitado y ajustados al presupuesto asignado, se necesita desarrollar un proceso que incluya desde la etapa más temprana la gestión de los riesgos asociados a los requisitos, de forma que se contribuya al mejoramiento gradual del proceso de desarrollo y la gestión de un proyecto de software que logre la satisfacción del cliente.

La identificación y gestión de los riesgos asociados a los requisitos del software, individuales y a grupos de ellos, desde la fase de ingeniería de requisitos puede permitir minimizarlos, evadirlos y controlarlos. El enfrentamiento proactivo de los riesgos que pueden afectar al desarrollo o a la calidad de los requisitos y las acciones para evitarlos, permitirían minimizar problemas que persisten en el desarrollo de software. Son de mayor importancia los riesgos asociados a las principales características de calidad de los requisitos.

¿DEFINE LAS ETAPAS DEL MODELO DE GESTION DE RIESGOS?

· IDENTIFICACION DE RIESGOS

El Tratar de identificar riesgos es un criterio proactivo que busca identificar posibles factores de riesgo y tomar medidas de factores de riesgos y tomar medidas de aseguramiento o planes de contingencia para contrarrestarlos a ellos y a sus efectos.

Al realizar esta identificación podría hablarse de riesgos genéricos y riesgos específicos del producto.

LISTADO DE RIESGOS POTENCIALES

TIPO DE RIESGO

INDICADORES POTENCIALES

Tecnológico

Entrega retrasada del hardware o de la ayuda al software, muchos problemas tecnológicos reportados.

Personal

Baja moral del personal, malas relaciones entre los miembros del equipo, disponibilidad de empleo.

Organizacional

Chismorreo organizacional, falta de acciones por el administrador principal.

Herramientas

Rechazo de los miembros del equipo para utilizar herramientas, quejas acerca de las herramientas CASE, peticiones de estaciones de trabajo mas potentes.

Requerimientos

Peticiones de muchos cambios en los requerimientos, quejas del cliente.

Estimación

Fracaso en el cumplimiento de los tiempos acordados, y en la eliminación de defectos reportados.

ANALISIS DE RIEGOS

Durante este proceso, se considera por separado cada riesgo identificado y se decide acerca de la probabilidad y la seriedad del mismo.

No existe una forma fácil de hacer esto, Recae en la opinión del administrador del proyecto. No se hace una valoración con números precisos sino en intervalos.

RIESGO

PROBABILIDAD

EFECTOS

Los problemas financieros de la organización fuerzan a reducir el presupuesto del proyecto.

Baja

Catastrófico

Es imposible reclutar personal con las habilidades requeridas para el proyecto.

Alta

Catastrófico

El personal clave esta enfermo y no disponible en momentos críticos.

Moderada

Serio

Los componentes de software a reutilizarse contienen defectos que limitan su funcionalidad.

Moderada

Serio

Se proponen cambios en los requerimientos que requieren rehacer el diseño.

Moderada

Serio

La organización se reestructura de tal forma que una administración diferente se responsabiliza del proyecto.

Alta

Serio

La BD que se utiliza en el sistema no puede procesar muchas transacciones por segundo como se esperaba.

Moderada

Serio

El tiempo requerido para desarrollar el software esta subestimado.

Alta

Serio

Las herramientas CASE no se pueden integrar.

Alta

Tolerable

Los clientes no comprenden el impacto de los cambios en los requerimientos.

Moderada

Tolerable

La capacitación solicitada para el personal no esta disponible.

Moderada

Tolerable

La tasa de reparación de defectos esta subestimada.

Moderada

Tolerable

El tamaño del software esta subestimado.

Alta

Tolerable

PLANEACION DE RIESGOS

Se establece un plan de gestión del riesgo para cada uno de los riesgos clave identificados.

Depende del conocimiento y la experiencia del gestor del proyecto.

  • Estrategias de anulación o prevención.
  • Estrategias de disminución o minimización
  • Planes de contingencia.

RIESGO

ESTRATEGIA

Problemas financieros de la organización

Preparar un documento breve para el administrador principal que muestre que el proyecto hace contribuciones muy importantes a las metas del negocio.

Problemas de reclutamiento

Alertar al cliente de las dificultades potenciales y las posibilidades de retraso, investigar los componentes comprados.

Enfermedad del personal

Reorganizar el equipo de tal forma que haya traslape en el trabajo y las personas comprendan en de los demás.

Componentes defectuosos

Reemplazar los componentes defectuosos con los comprados de fiabilidad conocida.

Cambios en los requerimientos

Rastrear la información para valorar el impacto de los requerimientos, maximizar la información oculta en ellos.

Restructuración organizacional

Preparar un documento breve para el administrador principal que muestre que el proyecto hace contribuciones muy importantes a las metas del negocio.

Desempeño de la base de datos

Investigar la posibilidad de comprar una BD con alto desempeño

Tiempo de desarrollo subestimado

Investigar los componentes comprados y la utilización de una generador de programas.

SUPERVICION DEL RIESGO

Valora cada uno de los riesgos identificados para decidir si este es más o menos probable y cuando los efectos del mismo han cambiado.

  • Se hace una valoración después de alcanzar cada hito principal.
  • Encargado de riesgos:
  • Alertar sobre los riesgos del proyecto y evitar que los administradores y desarrolladores los ignoren en la planificación.
  • Buscar todas las razones por las cuales el proyecto puede fallar.
  • Supervisar la efectividad de los planes de reducción de riesgos.

Realizar el clásico análisis costo-beneficio para la prevención o el plan de contingencia del riesgo.

La supervisión del riesgo debe ser un proceso continuo y en cada revisión del progreso de la administración cada uno de los riesgos clave debe ser considerado por separado y discutido.

Creado con WordPress & Tema de Anders Norén