Del proyecto realizado a nivel de análisis y diseño estructurado y orientado a objetos, calcule las métricas orientadas al tamaño, punto de función y aplicadas así como las rutinas de calidad.
Diagrama de flujo de datos |
diagrama de contexto o nivel cero |
CASO DE ESTUDIO: HOGAR ZACARIAS GUERRA.
Nivel básico
Modo Semi Libre.
Visual Basic
14 ventanas +5 ventanas de error=19
KLDC= (19*1000)/1000
KLDC=19
a)
personas
Fórmula p=a*(KLDC) ^b.
p=3*(19) ^1.12.
p=81.
b)
Tiempo de desarrollo
Fórmula c*(P) ^ d
Td=2.5*(81) ^0.35
Td=12 meses.
c)
Persona_mes
Formula PT=p/Td.
PT=81/12.
PT=6 hombres_mes.
d)
Costo Total
Salario
promedio=$337.5;
Fórmula
CT=6*337.5.
CT=$2025
Costo
por mes=2025/12=168.75
Pago por
mes=168.75/4=42.18.
factor de ponderación
cuenta simple medio complejo subtotal
numero de
entrada 8 x3 x4 x6 48
numero de
salidas 9 x4 x5 x7 45
numero de
peticiones
17 x3 x4 x6 68
numero de
archivos
9 x7 x10 x15 90
numero de
interfaces
14 x5 x7 x10 98
349
PF=
432.76
AMPLIADAS
DE PUNTO DE FUNCIÓN
bajo medio alto subtotal
estructuras
internas 2*7+ 0*10+ 6*15 35
datos externos 5*5+ 12*7+ 2*10 129
numero de
entradas 3*3+ 4*4+ 1*6 31
numero de
salidas 0*4+ 5*5+ 4*7 53
numero de
peticiones 4*3+ 10*4+ 3*6 70
num de
transformaciones
2*7+ 3*10+ 2*15 74
numero de
transiciones 8*1+ 5*1+ 5*1 18
410
LDC=
pf*32
LDC=13848.32
KLDC= 13848.32/1000
KLDC= 13.84832
PSEUDOCODIGO
Revisarcontraseña
()
{
Si el nombre y
contrase;a ingresadas son iguales a la de un usuario entonces
Mostrar la ventana
principal ZacariasGuerra();
Else
Close();
}
}
ZACARIASGUERRA
{
Zacariasguerra()
{
If(boton
registrarpersonal)
Personal.registrarpersonal();
Else
If(boto registrardonante)
Donante.registrardonante();
Else
If(boto registrar donativos)
Donativos.registrardonativos();
}
}
PERSONAL
{
RegistrarPersonal()
{
If (boton
registrar ni;o) then
Ni;o.
registrarNi;o();
else
If (boton registrar voluntario) then
Voluntario.registrarVoluntario();
else
If (boton
registrar Empleado) then
Empleado.registrarEmpleado();
}
}
NIñO
{
registrarNiño()
{
If(boton ingresasr)
IngresarNiño();
Else
If(boton visualizar)
visualizarNiño();
else
if(botón actualizar)
actualizar
niño();
}
ingresarNiño()
{
Char carnet[4];
Generar numero de carnet;
Almacenar datos del ni;o introducidos por el usuario en
tabla niño (nombre, apellido, causa, fingreso,subir fotoniño())
Almacenar datos del padrino del niño (nombre,tel, direccion)
Almacenar datos del tutor del niño (nombre, tel, direccion)
}
Subirfotoniño()
{
If(foto== null)
Se sube foto
determinada
Else
Se le asigna la
foto al niño
}
actualizarNiño()
{
If(boton buscarid)
{
Se muestran los datos del
niño(nombre, apellido, padrino, causa, etc)
Se actualiza si el niño esta
activo o no,
If(niño tiene padrino) then
Se
agregan datos del padrino;
Actualizar
foto del niño;
}
}
Visualizarniño()
{
Mostrar tabla niño;
}
}
VOLUNTARIOS
{
Registrarvoluntarios()
{
If(boton
ingresasr)
Ingresarvoluntario();
Else
If(boton visualizar)
visualizarvoluntario();
else
if(botón actualizar)
actualizarvolunario();
}
IngresarVoluntario()
{
Ingresar datos del voluntario introducidos por el usuario a
tabla voluntario(nombre, apellido, tipo de usuario, foto);
}
Visualizarvoluntario()
{
Se visualiza tabla voluntario;
}
Actualizarvoluntario()
{
Introduzca el id de voluntario;
Se introduce el id de voluntario;
Se muestran datos del id de voluntario;
Se puede actualzar (dirección, tipo_vol, foto);
}
}
EMPLEADOS
{
RegistrarEmpleado()
{
If(boton
ingresasr)
IngresarEmpleado();
Else
If(boton visualizar)
visualizarEmpleado();
else
if(botón actualizar)
actualizarEmpleado();
}
IngresarEmpleado()
{
Ingresar datos del Empleado introducidos por el usuario a
tabla Empleado(nombre, apellido, cargo, salario, id_emp, foto, direccion);
}
Visualizarempleado()
{
Se visualiza tabla empleado;
}
Actualizarempleado()
{
Introduzca el id de empleado;
Se introduce el id de
empleado;
Se muestran datos del id de empleado;
Se puede actualzar (dirección, cargo,salario, foto);
}
}
DONANTES
{
Registrardonantes()
{
If(boton visualizer donantes)
Visualizardonantes();
Else
If(botón ingresardonacion)
{
Ingresar donantes();
Ingresardonacion();
}
}
Visualizardonantes()
{
Se visualiza los donantes con su id
Si(botón verdonaciones)entonces
Donativos.Mostrardonaciones();
}
Ingresardonantes()
{
Ingrese id donante
Id_donante leido
Seleccione tipo_donante
Tipo_donante leído
Ingrese nombre del donante
Nombre_donante leído
If(botón donar)
Donativos.donar();
}
}
DONATIVOS
{
Registrardonativos()
{
If(boton visualizer donativos)
Visualizardonativos()
}
Visualizar donativo()
{
If(botón mostrar todos los donativos)
Se muestran los articulos donados
de la tabla donativo
Else
If(botón mostrar donativos por donantes)
Mostrardonaciones()
}
Mostrardonaciones()
{
Ingrese id_donante
Id_donante leído
If(id_donante existe)
Mostrar
descripción de artículos donados según
id_donante
}
}
REGISTRO DE LA ACADEMICO
{
Visualizarestudiantes()
{
If(botón porgrado)
Se muestran los estudiantes por grados con sus
promedios
Else
If(visualizar todos los estudiantes)
Se visualizan los estudiantes de la escuela y sus promedios
}
Ingresar estudiantes()
{
Si el estudiantes es del hogar solo se pide el id del ni;o y
se extraen datos de los ni;os del hogar;
Else
Si el estudiantes no es del hogar entonces se piden sus datos(nombre,
apellido, grado,edad,etc);
}
Calcularnotasniño()
{
Id_est
Se muestra la asignatura
Se pide nota 1, nota2, nota3
Se leen las notas,
Se calcula el promedio de las notas
Se guarda el promedio del estudiante por asignatura
}
Visualizarmaterias()
{
Pedir el grado
Visualizar las asignaturas por grado
}
Visualizarestudiants becados()
{
Mostrar (Id_estudiante, Cod_curso, Nombre_curso, notas);
}
Ingresodecurso()
{
Pide el nombre del curso
Usuario teclea el nombre del curso
Visualizarestudiantes()
//se selecciona opción de visualizar todos los estudiantes
While (estudiante!= “ ” )
{
If(promedio >85)
Seleccionado para
el curso__________
}
}
De la tabla de análisis de riesgo (ejemplos )
Preparar material didáctico acerca de la garantía de calidad y garantía de configuración del software para ser expuesto en plenario
proceso de desarrollo de SW |
garantía de calidad |
ISO 9126 |
capas durante el ciclo de vida |
No hay comentarios:
Publicar un comentario