Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS
CICLO : VIII
DOCENTE : Ing. Leónidas Asto Huamán
TEMA : Desarrollo de un software utilizando metodología XP
ASIGNATURA : Ingeniería De Software II
ESTUDIANTE :
ANDAHUAYLAS - PERÚ
2017-II
DESARROLLO DE UN SISTEMA DE ADMINISTRACIÓN
Y GESTIÓN DEL GRIFO MUNICIPAL DE PACUCHA
2017-2022
OBJETIVOS GENERALES
OBJETIVOS ESPECÍFICOS
El sistema de control del grifo municipal del distrito de Pacucha permite obtener una
mayor eficiencia en el almacenamiento, seguridad, integridad, fiabilidad de la
información y de control que el ente maneja en cada una de las dependencias
encargadas de los procesos de provisionar y comercializar combustible
El sistema no se limita a obtener datos de un único proceso y dar información resultado
del mismo. Por el contrario, posibilita que los datos sean reutilizados por todos los
procesos, obteniendo al final de cada uno, la información que permite la revisión del
mismo y los reportes necesarios para la iniciación del siguiente o del proceso que lo
requiera. Lo anterior, por cuanto, actualmente dicha información no está disponible de
manera sistematizada y relacionada, por lo que el cruce de información debe hacerse
en forma manual.
La información de la gestión presupuestal requiere de un sistema que permita
automatizar todos los procesos que se llevan a cabo, puesto que los resultados de estos
procesos arrojan información que es requerida para la elaboración de informes que se
deben presentar a los entes de control fiscal, quienes a través de esta información
realizan un seguimiento y calificación de la administración de los recursos públicos. Si
los informes presentan inconsistencias, las cuales se pueden generar por la ineficiente
e inadecuada manipulación de la información, el Municipio acarrearía con graves
sanciones que perjudicarían el desarrollo económico y social del mismo.
El desarrollo de software para la administración de bases de datos elimina los problemas
existentes con la gestión de datos mediante archivos y estandariza un modo de gestión
de datos más eficaz, universal e independiente de las máquinas y sistemas operativos
sobre los que se implementen, generando un sistema de almacenamiento de datos, con
una interfaz de usuario de fácil manejo y sencilla de consultar.
El diseño de bases de datos representa dos ventajas. La primera es la independencia
lógica de datos, lo cual quiere decir que los cambios realizados en un objeto de la misma
no obligan a modificar otros elementos de la base de datos. La segunda es la
independencia física de los datos, es decir, la base de datos no depende del tipo de
dispositivo de almacenamiento en que se guarde.
El proyecto sistema de control del grifo municipal del distrito de Pacucha. Esta
desarrollado utilizando la herramienta PHP XAMPP la cual cuenta con un gestor de base
de datos que se encarga de administrar de manera eficiente la información almacenada
en las tablas que conforman la base de datos. PHP cuenta con herramientas de fácil
manejo para la creación de las tablas y de las interfaces gráficas para el ingreso de la
información, así mismo brinda facilidad y rapidez en la elaboración de consultas e
informes.
El manejo de la información de adquirir, provisionar y comercializar combustible que rige
la presentación de informes cambia frecuentemente; por lo cual se requirió utilizar una
herramienta de fácil manejo y rápido desarrollo para adaptar el sistema a los nuevos
cambios, sin que el Municipio incurra en elevados costos de actualización del sistema
que exige las variaciones en la normatividad.
RESUMEN
RESUMEN
Las metodologías ágiles han ganado bastante popularidad desde hace algunos años.
Si bien son una muy buena solución para proyectos a corto plazo, en especial, aquellos
proyectos en donde los requerimientos están cambiando constantemente, en proyecto
a largo plazo, el aplicar metodologías ágiles no dan tan buenos resultados. El diseño de
la arquitectura de software es una práctica muy importante para el desarrollo de
software. Tener una buena arquitectura implica que nuestro sistema tiene atributos de
calidad que nos van a dar un valor muy importante en el software. Si se definen
actividades que fomenten el uso de métodos para el desarrollo de la arquitectura, en un
proceso de desarrollo de software, se puede obtener muchos beneficios con respecto al
producto que se desarrolló. Sin embargo, para las metodologías ágiles esas actividades
no se consideran en forma importante.
Esta es la filosofía de las metodologías ágiles, las cuales dan mayor valor al individuo,
a la colaboración con el cliente y al desarrollo incremental del software con iteraciones
muy cortas. Este enfoque está mostrando su efectividad en proyectos con requisitos
muy cambiantes y cuando se exige reducir drásticamente los tiempos de desarrollo,
pero manteniendo una alta calidad.
Las metodologías ágiles están revolucionando la manera de producir software, y a la
vez generando un amplio debate entre sus seguidores y quienes por escepticismo o
convencimiento no las ven como alternativa para las metodologías tradicionales.
La razón de ser de este trabajo se basa en el análisis de algunos tipos de metodologías
existentes, viendo sus principales características, conceptos y conclusiones.
JUSTIFICACION
La metodología ágil XP surge con el propósito de transformar la esencia del desarrollo
de los procesos que se ejecutan al momento de llevar acabo la planificación y ejecución
de un proyecto de creación de software esta metodología se enfoca en integrar en una
mejora continua al usuario y al grupo de individuo que se encargaran de resolver la
problemática percibida.
XP en comparación de las metodologías tradicionales es más rápida, ya que conlleva
menos protocolo, lo que evita que existan jerarquías dentro del grupo, lo cual permite
que cada integrante del grupo pueda aportar en cualquier motivo, por la cual se
implementará o hará uso de esta metodología es, que la misma se enfoca en resultados
a corto plazos es decir los resultados que se van obteniendo a lo largo de la modulación
serán verificados al instante y de existir alguna anomalía o falta se hará las correcciones
correspondientes. De esta forma rápida es posible obtener los resultados esperados a
corto plazo y de manera eficiente el sistema tomará robustez en la utilización de los
módulos se logrará de manera instantánea.
Los resultados son verificados por el usuario de manera que apruebe el producto y así
obtener una seguridad y solidez en el desarrollo del sistema, de esta manera el resultado
final lograra satisfacer en un gran porcentaje la expectativa y las necesidades del
usuario.
1.1. INTRODUCCIÓN
La programación extrema o XP es una metodología de desarrollo que se englobaría
dentro de las denominadas metodologías Ágiles en la que se da máxima prioridad a la
obtención de resultados y reduce la burocracia que utiliza las metodologías
tradicionales.
Generalmente el proceso de desarrollo llevaba asociado un marcado énfasis en el
control del proceso mediante una rigurosa definición de roles, actividades y artefactos,
incluyendo modelado y documentación detallada. Este esquema "tradicional" para
abordar el desarrollo de software ha demostrado ser efectivo y necesario en proyectos
de gran tamaño (respecto a tiempo y recursos), donde por lo general se exige un alto
grado de ceremonia en el proceso. Sin embargo, este enfoque no resulta ser el más
adecuado para muchos de los proyectos actuales donde el entorno del sistema es muy
cambiante, y en donde se exige reducir drásticamente los tiempos de desarrollo, pero
manteniendo una alta calidad.
Ante las dificultades para utilizar metodologías tradicionales con estas restricciones de
tiempo y flexibilidad, muchos equipos de desarrollo se resignan a prescindir de las
buenas prácticas de la Ingeniería del Software, asumiendo el riesgo que ello conlleva.
En este contexto las metodologías ágiles emergen como una posible respuesta para
llenar ese vacío metodológico. Por estar especialmente orientadas para proyectos
pequeños, las Metodologías Ágiles constituyen una solución a medida para ese entorno,
aportando una elevada simplificación que a pesar de ello no renuncia a las prácticas
esenciales para asegurar la calidad del producto.
1.2. QUE ES XP
XP es una metodología ágil para el desarrollo de software y consiste básicamente en
ajustarse estrictamente a una serie de reglas que se centran en las necesidades del
cliente para lograr un producto de buena calidad en poco tiempo, centrada en potenciar
las relaciones interpersonales como clave para el éxito del desarrollo de software.
La filosofía de XP es satisfacer al completo las necesidades del cliente, por eso lo integra
como una parte más del equipo de desarrollo.
Promueve el trabajo en equipo, preocupándose en todo momento del aprendizaje de los
desarrolladores y estableciendo un buen clima de trabajo.
Este tipo de programación es la adecuada para los proyectos con requisitos imprecisos,
muy cambiantes y donde existe un alto riesgo técnico.
XP está diseñada para el desarrollo de aplicaciones que requieran un grupo de
programadores pequeño, dónde la comunicación sea más factible que en grupos de
desarrollo grandes. La comunicación es un punto importante y debe realizarse entre los
programadores, los jefes de proyecto y los clientes.
1.3. MODELO XP
1.3.1. COMUNICACIÓN:
Prevalece en todas las prácticas de Extreme Programming. Comunicación cara a
cara es la mejor forma de comunicación, entre los desarrolladores y el cliente.
Método muy ágil. Gracias a esto el equipo esta pude realizar cambios que al cliente
no le gustaron.
1.3.2. SIMPLICIDAD:
La simplicidad ayuda a que los desarrolladores de software encuentren soluciones
más simples a problemas, según el cliente lo estipula. Los desarrolladores también
crean características en el diseño que pudieran ayudar a resolver problemas en un
futuro.
1.3.3. RETROALIMENTACIÓN:
La retroalimentación continua del cliente permite a los desarrolladores llevar y dirigir
el proyecto en una dirección correcta hacia donde el cliente quiera.
1.3.4. VALENTÍA:
Requiere que los desarrolladores vayan a la par con el cambio, porque sabemos que
este cambio es inevitable, pero el estar preparado con una metodología ayuda a ese
cambio. Programa para hoy y no para mañana.
1.3.5. RESPETO:
El equipo debe trabajar como uno, sin hacer decisiones repentinas. Extreme
Programming promueve el trabajo del equipo. Cada integrante del proyecto (cliente,
desarrolladores, etc.) forman parte integral del equipo encargado de desarrollar
software de calidad. El equipo debe trabajar como uno, sin hacer decisiones
repentinas.
1.4. ROLES XP
Aunque en otras fuentes de información aparecen algunas variaciones y extensiones de
roles XP, en este apartado describiremos los roles de acuerdo con la propuesta original
de Beck.
1.4.1. PROGRAMADOR
El programador escribe las pruebas unitarias y produce el código del sistema. Debe
existir una comunicación y coordinación adecuada entre los programadores y otros
miembros del equipo.
1.4.2. CLIENTE
El cliente escribe las historias de usuario y las pruebas funcionales para validar su
implementación. Además, asigna la prioridad a las historias de usuario y decide
cuáles se implementan en cada iteración centrándose en aportar mayor valor al
negocio. El cliente es sólo uno dentro del proyecto, pero puede corresponder a un
interlocutor que está representando a varias personas que se verán afectadas por
el sistema.
1.6. PROCESO XP
Un proyecto XP tiene éxito cuando el cliente selecciona el valor de negocio a
implementar basado en la habilidad del equipo para medir la funcionalidad que puede
entregar a través del tiempo. El ciclo de desarrollo consiste (a grandes rasgos) en los
siguientes pasos:
El cliente define el valor de negocio a implementar. El programador estima el esfuerzo
necesario para su implementación. El cliente selecciona qué construir, de acuerdo con
sus prioridades y las restricciones de tiempo. El programador construye ese valor de
negocio. Vuelve al paso 1.
En todas las iteraciones de este ciclo tanto el cliente como el programador aprenden.
No se debe presionar al programador a realizar más trabajo que el estimado, ya que se
perderá calidad en el software o no se cumplirán los plazos. De la misma forma el cliente
tiene la obligación de manejar el ámbito de entrega del producto, para asegurarse que
el sistema tenga el mayor valor de negocio posible con cada iteración.
Si bien el ciclo de vida de un proyecto XP es muy dinámico, se puede separar en las
siguientes Fases:
Exploración,
Planificación de la Entrega (Release),
Iteraciones,
Producción,
Mantenimiento y
Muerte del Proyecto.
Fig. 2 iteración
1.7.1. PLANIFICACIÓN
La metodología XP plantea la planificación como un dialogo continuo entre las partes
involucradas en el proyecto, incluyendo al cliente, a los programadores y a los
coordinadores o gerentes. El proyecto comienza recopilando “Historias de usuarios”,
las que sustituyen a los tradicionales “casos de uso”. Una vez obtenidas las “historias
de usuarios”, los programadores evalúan rápidamente el tiempo de desarrollo de
cada una.
Si alguna de ellas tiene “riesgos” que no permiten establecer con certeza la
complejidad del desarrollo, se realizan pequeños programas de prueba (“spikes”),
para reducir estos riesgos. Una vez realizadas estas estimaciones, se organiza una
reunión de planificación, con los diversos actores del proyecto (cliente,
desarrolladores, gerentes), a los efectos de establecer un plan o cronograma de
entregas (“Release Plan”) en los
que todos estén de acuerdo. Una vez acordado este cronograma, comienza una
fase de iteraciones, en dónde en cada una de ellas se desarrolla, prueba e instala
unas pocas “historias de usuarios”.
Según Martín Fowler (uno de los firmantes del “Agile Manifesto”), los planes en XP
se diferencian de las metodologías tradicionales en tres aspectos:
Simplicidad del plan. No se espera que un plan requiera de un “gurú” con
complicados sistemas de gerenciamiento de proyectos.
Los planes son realizados por las mismas personas que realizarán el trabajo.
Los planes no son predicciones del futuro, sino simplemente la mejor estimación de
cómo saldrán las cosas. Los planes son útiles, pero necesitan ser cambiados cuando
las circunstancias lo requieren. De otra manera, se termina en situaciones en las
que el plan y la realidad no coinciden, y en estos casos, el plan es totalmente inútil.
Los conceptos básicos de esta planificación son los siguientes:
Fecha,
tipo de actividad (nueva, corrección, mejora),
prueba funcional, número de historia,
prioridad técnica y del cliente,
referencia a otra historia previa,
riesgo,
estimación técnica,
descripción,
notas y una lista de seguimiento con la fecha, estado cosas por terminar
y comentarios.
1.7.2. DISEÑO
La metodología XP hace especial énfasis en los diseños simples y claros. Los
conceptos más importantes de diseño en esta metodología son los siguientes:
1.7.2.1. SIMPLICIDAD
Un diseño simple se implementa más rápidamente que uno complejo. Por ello
XP propone implementar el diseño más simple posible que funcione. Se sugiere
nunca adelantar la implementación de funcionalidades que no correspondan a
la iteración en la que se esté trabajando.
1.7.2.2. SOLUCIONES “SPIKE”
Cuando aparecen problemas técnicos, o cuando es difícil de estimar el tiempo
para implementar una historia de usuario, pueden utilizarse pequeños
programas de prueba (llamados “spike”), para explorar diferentes soluciones.
Estos programas son únicamente para probar o evaluar una solución, y suelen
ser desechados luego de su evaluación.
1.7.2.3. RECODIFICACIÓN:
La recodificación (“refactoring”) consiste en escribir nuevamente parte del
código de un programa, sin cambiar su funcionalidad, a los efectos de hacerlo
más simple, conciso y/o entendible. Muchas veces, al terminar de escribir un
código de programa, pensamos que, si lo comenzáramos de nuevo, lo
hubiéramos hecho en forma diferente, más clara y eficientemente. Sin
embargo, como ya está pronto y “funciona”, rara vez es rescrito.
Las metodologías de XP sugieren recodificar cada vez que sea necesario. Si
bien, puede parecer una pérdida de tiempo innecesaria en el plazo inmediato,
los resultados de ésta práctica tienen sus frutos en las siguientes iteraciones,
cuando sea necesario ampliar o cambiar la funcionalidad. La filosofía que se
persigue es, como ya se mencionó, tratar de mantener el código más simple
posible que implemente la funcionalidad deseada.
1.7.2.4. METÁFORAS
Una “metáfora” es algo que todos entienden, sin necesidad de mayores
explicaciones. La metodología XP sugiere utilizar este concepto como una
manera sencilla de explicar el propósito del proyecto, y guiar la estructura y
arquitectura del mismo. Por ejemplo, puede ser una guía para la nomenclatura
de los métodos y las clases utilizadas en el diseño del código. Tener nombres
claros, que no requieran de mayores explicaciones, redunda en un ahorro de
tiempo.
Es muy importante que el cliente y el grupo de desarrolladores estén de
acuerdo y compartan esta “metáfora”, para que puedan dialogar en un “mismo
idioma”. Una buena metáfora debe ser fácil de comprender para el cliente y a
su vez debe tener suficiente contenido como para que sirva de guía a la
arquitectura del proyecto. Sin embargo, ésta práctica resulta, muchas veces,
difícil de realizar.
1.7.3. DESARROLLO
Fig. 3 Desarrollo
1.7.4. PRUEBAS
1.7.4.1. PRUEBAS UNITARIAS
Las pruebas unitarias son una de las piedras angulares de XP. Todos los
módulos deben de pasar las pruebas unitarias antes de ser liberados o
publicados. Las pruebas deben ser definidas antes de realizar el código (“Test-
driven programming”).
Que todo código liberado pase correctamente las pruebas unitarias es lo que
habilita que funcione la propiedad colectiva del código. En este sentido, el
sistema y el conjunto de pruebas debe ser guardado junto con el código, para
que pueda ser utilizado por otros desarrolladores, en caso de tener que
corregir, cambiar o recodificar parte del mismo.
1.7.4.2. DETECCIÓN Y CORRECCIÓN DE ERRORES
Cuando se encuentra un error (“bug”), éste debe ser corregido inmediatamente,
y se deben tener precauciones para que errores similares no vuelvan a ocurrir.
Asimismo, se generan nuevas pruebas para verificar que el error haya sido
resuelto.
1.8.2. DESVENTAJAS
Resulta muy complicado planear el proyecto y establecer el costo y la
duración del mismo.
No se puede aplicar a proyectos de gran escala, que requieran mucho
personal, a menos que se las subdivida en proyectos más pequeños.
Es más complicado medir los avances del proyecto, pues es muy complicado
el uso de una medida estándar.
Altas comisiones en caso de fallar.
1.9. CONCLUSIONES Y RECOMENACIONES
1.9.1. CONCLUSIONES
Es difícil estimar el costo y duración del proyecto por no existir una definición
desde inicio.
El cliente le da un valor agregado al proyecto ya que ayuda a que los
requerimientos sean más compresibles y de fácil aprobación.
Organiza a los integrantes del equipo para trabajar a un mismo ritmo divertido
y con horario adecuado.
Los desarrolladores deben estar involucrados en todas las funcionalidades
del proyecto
La programación en parejas ayuda a reducir costo y tiempos y mejorar la
calidad del proyecto.
Los métodos en cascada o espiral son los más adecuados para proyectos.
Que requieran decenas de desarrolladores y en los que las especificaciones
estén claramente determinadas desde el comienzo.
1.9.2. RECOMENDACIONES.
Para proyectos medianos, y en los que las especificaciones no se puedan
obtener hasta luego de comenzado el proyecto, XP es la metodología
recomendada.
Usar XP en equipos pequeños de desarrollo que no superen a 20
Se debe involucrar al cliente en el desarrollo del proyecto desde el inicio
hasta el final ya que es indispensable que conozca y apruebe la metodología.
Los desarrolladores deben compartan el código y ser responsables del
código de todo el proyecto.
2. PRESENTACIÓN
En este capítulo se hace una introducción a las condiciones del entorno que rodearon
al proyecto entre las cuales se resaltan aspectos relacionados con el cliente y el negocio
para el cual se desarrolló el proyecto. Además, se hace una descripción de las
herramientas que se emplearon en el desarrollo del proyecto y el motivo por el que
fueron elegidas.
2.1. HERRAMIENTAS A EMPLEAR
2.1.1. UML
El Lenguaje Unificado de Modelado (UML) fue creado para forjar un lenguaje de
modelado visual común y semántica y sintácticamente rico para la arquitectura, el
diseño y la implementación de sistemas de software complejos, tanto en estructura
como en comportamiento. UML tiene aplicaciones más allá del desarrollo de
software, p. ej., en el flujo de procesos en la fabricación.
Es comparable a los planos usados en otros campos y consiste en diferentes tipos
de diagramas. En general, los diagramas UML describen los límites, la estructura y
el comportamiento del sistema y los objetos que contiene.
UML no es un lenguaje de programación, pero existen herramientas que se pueden
usar para generar código en diversos lenguajes usando los diagramas UML. UML
guarda una relación directa con el análisis y el diseño orientados a objetos.
2.1.2. PHP
Es un Lenguaje de Programación para trabajar páginas WEB ofreciendo la ventaja
de mezclarse con HTML. Las ejecuciones son realizadas en el Servidor y el cliente
es el encargado de recibir los resultados de la ejecución. Si el cliente realiza una
petición, se ejecuta el intérprete de PHP y se genera el contenido de manera
dinámica. Permite conexión con varios tipos de Bases de Datos como: MySql,
Oracle, Postgress, SQL Server, etc. permitiendo aplicaciones robustas sobre la
WEB. Este lenguaje de programación puede ser ejecutado en la gran mayoría de
sistemas operacionales y puede interactuar con Servidores WEB populares
2.1.3. MYSQL
Es un manejador de Bases de Datos, el cual permite múltiples hilos y múltiples
usuarios, fue desarrollado como software libre. Aunque se puede usar sobre varias
plataformas es muy utilizado sobre LINUX. Es libre para uso en Servidores WEB.
Ofrece ventajas tales como fácil adaptación a diferentes entornos de desarrollo,
Interacción con Lenguajes de Programación como PHP, Java Script y fácil
Integración con distintos sistemas operativos.
2.1.4. APACHE
Es un Servidor WEB desarrollado por el grupo Apache. Su código fuente se puede
distribuir y utilizar de forma libre. Está disponible para diferentes plataformas de
Sistemas Operativos entre otros Windows, Linux, Mac y NetWare. Ofrece ventajas
tales como independencia de plataforma, haciendo posible el cambio de plataforma
en cualquier momento; creación de contenidos dinámicos, permitiendo crear sitios
mediante lenguajes PHP.
Además de ser libre su soporte técnico es accesible ya que existe una comunidad
que está disponible en foros, canales IRC y servidores de noticias, donde hay gran
cantidad de usuarios disponibles para cuando surge algún problema.
2.2. DESCRIPCIÓN DEL NEGOCIO
Se trata de una sucursal de la MUNICIPALIDAD DE Pacucha (grifo), con un capital para
el desarrollo del software aproximadamente catorce mil nuevos soles.
El proyecto, el negocio cuenta con manejo de sus registros a través de libros y
cuadernos muy convencional la cual no ofrecía la seguridad y manejo que requería el
cliente, por lo cual se desarrollara un software que desempeñara las funcionalidades de
un sistema “DESARROLLO DE UN SISTEMA DE ADMINISTRACIÓN Y GESTIÓN DEL
GRIFO MUNICIPAL DE PACUCHA 2017-2022” que cumpliera las necesidades
específicas del cliente.
N° PROBLEMA SOLUCIÓN
1 Surgieran Increencia de datos. Utilizaremos metodologías para la
solución de los datos.
2 Inconsistencia de un dato a otro Buscaremos la concordancia de un
dato con otro.
3 Datos de minería en general Normalizaremos los datos a la
tercera forma de normalización.
4 Horario de dialogo con empleados Un opción de horario 24*7 de la
cerrados. semana.
3.2.4. CONTROL.
Para asegurar la eficacia de la ejecución el director de proyectos asignará las
siguientes personas a cargo de operación de tendrá que cumplir.
3.2.5. CONCLUSIÓN.
Como resultado del proyecto a realizarse, es posible concluir que existe una relación
más fuerte entre las áreas de trabajo como es de LOGÍSTICA y TESORERÍA, debido
a un factor principal; contar con la aprobación del jefe de logística.
3.2.5.1. CIERRE ADMINISTRATIVO
El Cierre Administrativo del proyecto se realiza al final de cada fase para
documentar la información producida en el proyecto y almacenarla en un medio
seguro y accesible para proyectos subsiguientes. El Cierre Administrativo debe
realizarse también al final del proyecto. Incluye estas actividades:
EFICACIA EFICIENCIA
N° OBJETIVOS
1 Mi objetivo principal es satisfacerle lo mucho más que se pueda cumpliendo
todos mis actividades antes mencionadas.
2
4. ADMINISTRACIÓN DE RIESGOS
El concepto de calidad total aplicado por los japoneses como estrategia de desarrollo a
partir de la Segunda Guerra Mundial, con el fin de recuperar su economía y tener una
presencia a nivel internacional, ha empezado a popularizarse a nivel mundial y es el
tema obligado de las naciones, organizaciones, entidades e individuos que buscan
consolidación y presencia en los mercados del mundo.
El concepto de calidad total propende por la búsqueda de la excelencia en lodo lo que
el hombre, la sociedad y las organizaciones realizan. Este concepto puede entonces
aplicarse al desarrollo de sistemas de información basados en equipos de
procesamiento de datos y en programas diseñados por el hombre. Hoy en día las
investigaciones en el área de la ingeniería de software se centran en el desarrollo de
metodologías que garanticen y controlen la calidad en el software construido.
El presente documento busca ilustrar, además del concepto de calidad en el software,
las actividades necesarias para controlar y garantizar la calidad de los sistemas de
información que se implementen. El problema principal para garantizar la calidad en el
software está en la concepción de la gran mayoría de las personas cuando suponen que
la garantía de calidad es algo que se impone bajo una medida que se obtiene al finalizar
un proyecto de software. El control de calidad en el software se fundamenta en el
principio de que la calidad se construye a través de un proceso continuo de desarrollo,
verificación (revisión) y optimización en diferentes etapas.
El control de calidad en el software, denominado SQA ("Software Quality Assurance"),
se basa en las siguientes actividades:
1. Uso de métodos y herramientas de análisis, diseño, codificación y prueba.
2. Revisiones técnicas formales, que se aplican durante cada paso de la Ingeniería de
software.
3. Estrategia de prueba multiescalada.
4. Control de la documentación del software y de los cambios realizados.
5. Procedimientos que aseguren un ajuste a los estándares de desarrollo.
Mecanismos de medida de la calidad ("métricas").
7.1. DEFINICION DE CALIDAD EN EL SOFTWARE
Se han formulado muchas definiciones sobre el concepto de calidad en el software. Para
no transcribir estas definiciones en el presente documento tratemos de responder la
pregunta ¿qué es calidad en el software? Seguramente la primera respuesta en qué
pensaría la mayoría de las personas es: La calidad en el software está en relación
directa con el cumplimiento de los requerimientos formulados por el usuario, de tal forma
que si un programa no cumple con alguno de estos requerimientos es un software de
baja calidad.
Aunque el criterio de cumplimiento de los requerimientos es un factor importante, no es
el único factor, ya que existen condiciones implícitas que el software debe cumplir como
son eficiencia, seguridad, integridad, consistencia, etc.; por lo tanto, no podemos afirmar
que un software es de alta calidad cuando cumple con los requerimientos del usuario,
pero:
No es eficiente al utilizar los recursos de la máquina (programas muy lentos).
no es confiable; los resultados que entrega varían, no son siempre iguales al
procesar los mismos datos.
no es fácil de utilizar.
no es seguro.
no es fácil hacerle mantenimiento
La calidad en el software es una mezcla compleja de ciertos factores que varían de
acuerdo con el usuario y con los tipos de aplicación.
Podemos resumir el concepto de la calidad en el software en los siguientes puntos:
1. Los requerimientos del usuario sobren un programa son los fundamentos desde los
que se mide la calidad. La falta de concordancia con estos requerimientos es una
falta de calidad.
2. Los estándares especificados definen un conjunto de criterios de desarrollo que
guían la forma como se aplica la ingeniería de software; si no se siguen estos
estándares, probablemente se obtendrá software de baja calidad.
3. Existe un conjunto de requerimientos implícitos que a menudo no se mencionan
(eficiencia, facilidad de uso, facilidad de mantenimiento).
Si el software falla en alcanzar los requerimientos implícitos, la calidad en el software
queda en entredicho.
Aspecto Factor
Operación del producto Cumplimiento
Exactitud,
Eficiencia
Integridad
Facilidad de uso
Revisión del producto Facilidad de mantenimiento Facilidad de
prueba Flexibilidad
Transición del producto Portabilidad
Reusabilidad
Interoperabilidad
7.2. METRICAS DE CONTROL DE LA CALIDAD EN EL SOFTWARE
Se define como métrica el valor asociado con la respuesta a una pregunta formulada en
una revisión para evaluar o establecer un atributo o un requerimiento de un criterio o su
criterio relacionado con un factor. Por ejemplo:
Un criterio del factor de calidad "Eficiencia “es "Ejecución eficiente" y un atributo de este
su criterio serio "datos agrupados para procesamiento eficiente". En una revisión para
evaluar este su criterio se podría formular la siguiente pregunta: "¿Están los datos
agrupados para permitir un procesamiento eficiente"?
Si la respuesta a la pregunta es "sí", podemos calificar con 1 en la hoja de chequeos
este su criterio; si la respuesta es "no" lo calificamos con O.
El valor de la métrica para el factor de calidad que está siendo juzgado será la suma de
todos los valores obtenidos por criterios/sus criterios divididos por el número de
preguntas aplicadas.