METRICAS DEL SISTEMA Versi贸n 1.0 3 de junio del 2011 Soluciones Inform谩ticas S.A. Luis Godinez (Jefe de proyecto)
HISTORIAL DE REVISIONES Fecha
Versi贸n
Descripci贸n
03/06/2011
1.0
Versi贸n general sistema.
Autor de
m茅tricas
del
Luis Godinez (Jefe de proyecto).
TABLA DE CONTENIDOS INTRODUCCION ............................................................................................................................................ 5 PROPOSITO .................................................................................................................................................. 5 ALCANCE ...................................................................................................................................................... 5 OBJETIVOS.................................................................................................................................................... 5 METRICA DE PUNTO DE FUNCION ........................................................................ ¡Error! Marcador no definido. METRICA PARA LA CALIDAD DE ESPECIFICACIÓN ............................................................................................. 6 REQUISITOS FUNCIONALES ............................................................................................................................. 8 REQUERIMIENTOS NO FUNCIONALES ............................................................................................................ 8 PARA EL MODELO DEL DISEÑO ........................................................................................................................ 10 DE MORFOLOGIA ............................................................................................................................................. 10 TAMAÑO DEL PROYECTO .............................................................................................................................. 10 BASADOS EN CLASES........................................................................................................................................ 11 PARA EL CODIGO FUENTE ................................................................................................................................ 13
1.
VALIDACION DE USUARIOS (VALUSUARIOS) ..................................................................... 13
2.
INFORME DE EMPRESAS REGISTRADAS (PERFIL) .............................................................. 14
3.
INFORME SOLICITANTES DE EMPLEO (SOLICITANTES) ..................................................... 14
4.
INSERTA UNA OFERTA EN EL SISTEMA (FORMOFERTA).................................................... 15
5.
INSERTA UNA OFERTA EN EL SISTEMA (MODOF)................. ¡Error! Marcador no definido.
6.
REGISTRAR UNA EMPRESA (REGISTRAR) ............................. ¡Error! Marcador no definido.
7. VALIDAR LA INSERCION DE LA EMPRESA (REGISTRAREMPRESA) ........ ¡Error! Marcador no definido. 8. MUESTRA USUARIOS REGISTRADOS POR EL USUARIO (PERFILSOL) .... ¡Error! Marcador no definido. 9.
CONSULTA DE EMPLEOS (CONSULTA) ................................. ¡Error! Marcador no definido.
10.
CONVERTIR USUARIO EN PREMIUM (REALIZAR PAGO) ... ¡Error! Marcador no definido.
11.
MODIFICAR USUARIO (MODOSOL) .................................. ¡Error! Marcador no definido.
12.
CER CURRICULUM (SUBIRCV) ........................................... ¡Error! Marcador no definido.
13.
SUBE CURRICULUM A LA BD (INSERTARCUR) .................. ¡Error! Marcador no definido.
14. DEVUELVE EMPLEADOS MASCULINOS Y FEMENINOS (CONSULTARGENERO) ...... ¡Error! Marcador no definido.
15.
DEVUELVE EDAD DE EMPLEADOS (CONSULEDAD) .......... ¡Error! Marcador no definido.
16. DEVUELVE EDAD DE EMPLEADOS SOLO PROFESION (CONSULTPROFESION)........ ¡Error! Marcador no definido. 17.
USUARIOS PAGADOS A GRATUITOS (CONSULTIPO) ........ ¡Error! Marcador no definido.
18.
CERRAR SESION (SALIR) .................................................... ¡Error! Marcador no definido.
19.
CERRAR SESION (SALIR) .................................................... ¡Error! Marcador no definido.
20.
CREAR CONEXION (CONEXION) ........................................ ¡Error! Marcador no definido.
21.
COMPROVAR CORREO (COMPROBAR CORREO) .............. ¡Error! Marcador no definido.
PARA EL MANTENIMIENTO ............................................................................................................................. 18 DOMINIOS DEL PROCESO Y EL PROYECTO ...................................................................................................... 18
METRICAS DEL SISTEMA
INTRODUCCION En un sistema de información en el que se desea obtener calidad, es necesario contar con una forma de evaluar esta calidad y existen muchas formas pero dentro de una de las formas efectivas de evaluar dicha calidad nos encontramos las métricas que nos proporcionar diferentes herramientas y se detallan en este documento basado en un previo documento denominado plan de desarrollo de software. PROPOSITO El propósito del esté documento es proporcionar una herramienta que contribuya con el desarrollo y evaluación del sistema y conocer el nivel de calidad en donde nos encontramos para obtener una mejora continua. ALCANCE Las métricas evaluadas en este sistema se dan a lo largo de todo el proyecto ya que es necesario evaluar todos los puntos importantes desde el inicio hasta el fin e instalación del programa. OBJETIVOS
1- Obtener software de calidad. 2- Proporcionar a los lideres del proyecto una visión y desarrollo general del sistema. 3- Satisfacción del cliente. 4- Competitividad en el mercado.
SISTEMA #1 METRICA DE PUNTO DE FUNCION
ENTRADAS EXTERNAS (EE) SALIDAS EXTERNAS (SE) CONSULTAS EXTERNAS (CE) NUMERO DE ARCHIVOS LOGICOS INTERNOS (ALI) NUMERO DE ARCHIVOS DE INTERFAZ EXTERNOS (AIE)
CONTEO 3
SIMPLE 3
PROMEDIO 4
COMPLEJO 6
TOTAL 9
2 1 3
4 3 7
5 4 10
7 10 15
8 3 21
0
5
7
10
0
TOTAL
41
1- 驴El sistema requiere respaldo y recuperaci贸n confiable? 5 2- Se requieren comunicaciones de datos especializados para transferir informaci贸n a la aplicaci贸n, u obtenerla de ella? 3
3- ¿hay funciones distribuidas de procesamiento? 0 4- ¿El desempeño es crítico? 1 5- ¿el sistema se ejecutara en un entorno existente que tiene un uso pesado de operaciones? 3 6- ¿El sistema requiere entrada de datos en línea? 5 7- ¿La entrada de datos en línea requiere que la transacción de entrada se construya en varias pantallas u operaciones? 3 8- ¿Los ALI se ejecutan en línea? 5 9- ¿Las entradas, las salidas, los archivos o las consultas son complejos? 2 10- ¿Es complejo el procesamiento interno? 2 11- ¿El código utilizado será reutilizable? 3 12- ¿Se incluye la conversión e instalación el diseño? 5 13- ¿Está diseñado el sistema para instalaciones múltiples en diferentes organizaciones? 0 14- ¿La aplicación está diseñada para facilitar el cambio y para que el usuario lo use fácilmente? 4 Fi= (i= 1-14) valorado en las siguientes preguntas = 41
PF = 41 X [0.65 + 0.01 X 41] PF = 41 X [1.06] PF = 43.46
COSTO POR PUNTO DE FUNCION Precio por punto de función Q161.00 Costo del software actual Q6, 982.00
METRICA PARA LA CALIDAD DE ESPECIFICACIÓN REQUISITOS FUNCIONALES a. Actualización de Datos i. Mantenimiento de datos de equipos ii. Mantenimiento de datos de salones iii. Mantenimiento de datos de clientes iv. Mantenimientos de datos de reservas y devoluciones b. Consultas i. Equipos y salones ii. Reservas iii. Estado de Usuarios c. Informes i. Equipos y salones ii. Reservas iii. Estado de Usuarios d. Datos Manejados i. Equipos y salones (Datos Característicos) ii. Usuarios (Datos Personales) iii. Reservas (Fecha y hora de reserva, préstamo y entrega)
REQUERIMIENTOS NO FUNCIONALES a. Rendimiento i. No se especifican detalles ii. Volumen de 400 usuarios b. Frecuencia de Tratamiento i. 250 reservas mensual con picos de hasta 3000 c. Requisitos de Seguridad i. Control de accesos: Una palabra clave para el usuario ii. Copias de respaldo: No Especificado iii. Integridad de la información: No especificado d. Requisitos especiales de Comunicaciones i. Ninguno: Todas las aplicaciones funcionan en la misma computadora
REQUISITOS DEL SISTEMA NO FUNCIONALES nr = nf + nnf nr = 5 + 4 = 9
CALIDAD DE ESPECIFICACION Qt = nui /nr Según el criterio de 25
Qt = 7/9 = 0.77
PARA EL MODELO DEL DISEテ前 DE MORFOLOGIA
TAMAテ前 DEL PROYECTO NODOS = 10 ARISTAS = 10 TAMAテ前 = N + A
TAMAテ前 = 10 + 10 = 20
PROFUNDIDAD 5 DE ARRIBA HACIA ABAJO
ANCHURA 3 DE IZQUIERDA A DERECHA
DENSIDAD DE LAS CONEXIONES R = A/N R = 10/10 = 1
BASADOS EN CLASES
Ma1 = 3 Md1= 3 Mi1=0
Ma2 = 6 Md2= 3 Mi2=3
Ma3= 4 Md3= 1 Mi3=3
Ma4 = 4 Md4= 1 Mi4= 3
Ma5 = 9 Md5= 3 Mi5= 6
Ma6 = 5 Md6= 1 Mi6= 4
Ma7 = 7 Md7= 3 Mi7= 4
Ma8 = 8 Md8= 3 Mi8= 5
Ma9 = 14 Md9= 1 Mi9= 11
Ma1 = 15 Md1= 3 Mi1= 12
SUMATORIAS Ma1 = 75 Mi= 51
MFH= 51/75 = 0.68
PARA EL CODIGO FUENTE Estas métricas fueron realizadas sobre el código PHP que hace que esta página sea dinámica y todo el código que fue realizado . 1.
n1 1. fuction 2. require 3. Header 4. = 5. $_POST 6. Else 7. If
8. {} 9. Echo 10. <?php. 11. ?>
(Reserva controlador)
n2 1. Bienvenido 2. verreserva 3. $criterio 4. items1 5. listarreservas 6. $db a. 8) detallar reserva 7. sala 8. items2 9. Producto 10. borrarreserva 11. Borrar 12. modificarreserv a 13. $fechareserva 14. $horareserva 15. $Fechaentrega 16. $horaentrega 17. $reserva 18. modificar 19. Reservar 20. $contrasena 21. $nombre 22. $apellido 23. $dirección 24. $telefono 25. $cargo 26. $correo
N1
N2
fuction require Header =
6 11 1 16
$_POST If
17 3 3
{} Echo <?php. ?>
12 4 1 1
Else
12. 13.
14. 15.
16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Bienvenido verreserva $criterio items1 listarreservas $db 8) detallarreserva
6 1 3 1 1 6 1
sala items2 Producto borrarreserva Borrar modificarreserva
1 1 1 1 1
$fechareserva $horareserva $Fechaentrega $horaentrega $reserva modificar Reservar $contrasena $nombre $apellido $dirección $telefono $cargo $correo
3 2 2 2 2 1 1 2 2 2 2 2 2 2
26.
27. Insertaru
11
27 Total líneas código
Insertaru
85
52
81
2. (usuario controlador)
n1
n2
1. 2. 3. 4.
fuction else If Echo
5.
6)
1. bienvenido 2. ingresar 3. insertar 4. $name 5. $pasword 6. $bandera 7. $db 8. $contraseña
{}
6. $_POST 7.
require
8.
==
9.
21) =
N1 1. fuction 2. else 3. 3) If 4. 4) Echo 5.
11. 25) ?>
11
15
Total líneas código
47
6)
{}
7. 8. 9.
3 2 4 3 8
6. $_POST
9. $nombre 10. $apellido 11. $direccion 12. $correo 13. $telefono 14. $cargo 15. insertaru
10. <?php.
N2
11
require
5
==
2
21) =
10
10. 24) <?php.
1
11. 25) ?>
1
bienvenido ingresar insertar $name $pasword $bandera $db $contraseña
1 1 1 2 2 3 2
$nombre $apellido $direccion $correo $telefono $cargo insertaru
2
50
27
3. (Valcontra)
n1 1. 2. 3. 4. 5. 6. 7. 8.
fuction return true If return false {} strlen !preg_match <
n2 1. 2. 3. 4.
6 16 $error_clave $clave
N1 fuction return true If return false {} strlen !preg_match <
N2 1 1 5 5 6 2 3 1
6 16 $error_clave $clave
1 1 7 6
2
2 2 2 2 2 1
1
9. = 10. <?php. 11. ?>
= ?>
6 1 1
12. >
>
1
<?php.
12
4
Total l铆neas c贸digo
27
33
15
4. (Usuario modelo)
n1 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
fuction prepare If else header {} rowCount echo execute fetch return = <?php.
?> ->
16. == 17. global
n2 1. 2. 3. 4. 5.
$nombre $bd $apellido revisar $servidor
6. $usuario 7. $contrasenia 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
$val $val2 $val3 0 insertaru $contrasena $direccion $valor2 $correo $telefono $cargo
17
18
Total l铆neas c贸digo
40
N1 fuction prepare If else header {} rowCount echo execute fetch return = <?php.
?> -> == global
45
N2 2 3 4 4 1 5 1 4 3 1 2 3 1 1 8
$nombre $bd $apellido revisar $servidor
1 6 1 1
$usuario $contrasenia
4 2
$val $val2 $val3 0 insertaru $contrasena $direccion $valor2 1 $correo 1 $telefono $cargo
3 3 2 1
35
2
1 2 1 2 1 1 1
5. (Listadosmodelo)
n1 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
New PDO Function Prepare {} Execute Return = <?php.
?>
11. ->
n2 1. 2. 3. 4. 5.
$nombre $bd $val cargos $servidor
6. $usuario 7. $contrasenia 8. reservas 9. 10. 11.
11
8
Total l铆neas c贸digo
17
N1 new PDO function prepare {} execute return = <?php.
?> ->
N2 1 1 2 2 2 2 2 3 1 1 4
21
$nombre $bd $val cargos $servidor
7 6 1
$usuario $contrasenia
2 2
reservas
1
2
21
6. (reservasmodelo)
n1 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
new PDO function prepare {} execute return = <?php.
n2 1. 2. 3. 4.
$nombre $bd $servidor $contrasenia
5. 6. 7. 8. 9.
listarreservas $valor borrar sala producto
?> global -> fetchAll
N1 new PDO function prepare {} execute return = <?php.
?> global -> fetchAll
13
9
Total l铆neas c贸digo
39
52
N2 1 1 5 5 5 5 5 6 1 1 1 13 3
$nombre $bd $servidor $contrasenia listarreservas $valor borrar sala producto
32
11 2
2 1 13 1 1 1
7. (reservasmodelo)
n1 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
printf echo do fetch {} if $myrow =
n2
N1
1. $valor 2. $db
printf echo do fetch {} if $myrow =
<?php.
<?php.
?> while
?> while
11
2
Total líneas código
13
N2 1 $valor 2 $db 1 2 2 1 4 3 1 1 2
20
3 1
4
TABLA PARA ESTABLECER METRICAS DEL CODIGO: A continuación se presentan las métricas en esta tabla en donde por medio de formulas se calculo el nivel del programa, longuitud, volumen, el esfuerzo y las líneas de código. L n 1 n 2 N 1 N 2 NOMBRE N V NP e COD NO 1 2 3 4 5 6 7
reservacontrolador.php usuariocontrolador.php valcontra.php usuariomodelo.php listadosmodelo.php reservasmodelo.php eliminarvista.php
11 27 85 11 15 50 12 4 33 17 18 45 11 8 21 13 9 52 11 2 20
52 27 15 35 21 32 4
166.4357104 96.65710674 51.01955001 144.5455183 62.05374781 76.63504135 40.05374781
280.3952056 171.4649015 90.76765231 251.1383024 113.1534824 137.7185108 69.21024937
0.094 0.101 0.044 0.061 0.069 0.043 0.091
2970.112178 1697.502525 2042.272177 4150.758053 1633.653402 3182.827805 761.312743
RESULTADO FINAL Longuitud
Volumen
637.40042
1113.8483
Nivel de programa Esfuerzo Total líneas de código 0.504
16438
264
81 47 27 40 17 39 13
PARA EL MANTENIMIENTO MODULOS DE VERSION ACTUAL 7
MODULOS CAMBIADOS 1
MODULOS AÑADIDOS 2
MODULOS ELIMINADOS 3
DOMINIOS DEL PROCESO Y EL PROYECTO PROYECTO
LINEAS DE CODIGO
ESFUERZO
INVERSION Q
Sistema Empleo Seguro S.A.
264
16438
6,982
DEFECTOS POR LINEAS DE CODIGO = 25/264 *100 9.47 ERRORES POR LINEAS DE CODIGO= 30/264 * 100 11.36 INVERSION POR LINEAS DE CODIGO = 6,982/264 26.45 PERSONAL POR LINEAS DE CODIGO = 264/5 52.8
PAGINAS DE DOC
278
ERRORES
DEFECTOS
25
30
PERSONAL
5