Está en la página 1de 23

REFINAMIENTO EN

PRODUCCIÓN DE
SOFTWARE
DOCENTE:
ING. KATHERINE ROMERO USSA.
INTRODUCCIÓN.
El refinamiento de software es el proceso de mejorar la calidad y funcionalidad de un software existente, a
través de la revisión y la mejora continua del mismo. En este informe, se describirán las principales
características del refinamiento de software, los tipos de refinamiento, los diseños utilizados, los análisis
realizados, y cómo se desarrolla en un entorno laboral.
¿PARA QUÉ SIRVE EL REFINAMIENTO DE
SOFTWARE?
¿Para qué sirve El refinamiento de software sirve para mejorar la calidad y funcionalidad de un software existente, lo que puede llevar
a una mejor satisfacción del cliente y una mayor eficiencia en el uso del software. Además, el refinamiento de
el refinamiento software también puede ayudar a corregir errores y problemas de seguridad, y a adaptarse a cambios en los requisitos
del usuario o del mercado.
de software?
El refinamiento de software, también conocido como refactorización, sirve para mejorar la calidad del código de un
software existente sin cambiar su comportamiento externo. Los objetivos principales del refinamiento de software
son:

Mejorar la legibilidad del código: El refinamiento de software puede ayudar a hacer el código
más fácil de leer y entender, lo que facilita su
mantenimiento y evolución.

Facilitar el mantenimiento del software: El refinamiento de software puede eliminar código


redundante y simplificar estructuras de código complejas, lo
que puede hacer que el mantenimiento del software sea
más fácil y eficiente.

Mejorar la escalabilidad del software: El refinamiento de software puede hacer que el código sea
más modular y reusable, lo que facilita su extensión y
evolución a medida que las necesidades del negocio
cambian.

Aumentar la eficiencia del software: El refinamiento de software puede eliminar código


innecesario, reducir la complejidad del código y mejorar el
rendimiento del software.
PRINCIPALES CARACTERÍSTICAS DEL
REFINAMIENTO DE SOFTWARE.
Principales El refinamiento de software es el proceso de mejorar o perfeccionar un software existente mediante la
identificación y eliminación de errores, mejoras de rendimiento y de funcionalidad, y la optimización del código.
características del Las principales características del refinamiento de software son:
refinamiento de
Identificación de errores: El refinamiento de software comienza con la identificación de
software. errores en el software existente. Esto se logra mediante pruebas
exhaustivas del software y la retroalimentación de los usuarios.

Mejora de la funcionalidad: Una vez que se han identificado los errores, el siguiente paso es
mejorar la funcionalidad del software. Esto puede implicar agregar
nuevas características o mejorar las existentes para que el software
sea más útil y atractivo para los usuarios.
Mejora del rendimiento: El refinamiento de software también se enfoca en mejorar el
rendimiento del software. Esto puede incluir la optimización del
código, la reducción del tamaño del archivo y la mejora de los
tiempos de respuesta.
Optimización del código: Una parte importante del refinamiento de software es la
optimización del código. Esto implica revisar el código existente
para encontrar formas de hacerlo más eficiente y efectivo.

Pruebas rigurosas: Durante el refinamiento de software, se realizan pruebas rigurosas


para garantizar que las mejoras y cambios realizados no hayan
introducido nuevos errores en el software.

Actualizaciones regulares: El refinamiento de software es un proceso continuo que requiere


actualizaciones regulares del software. Estas actualizaciones
pueden incluir correcciones de errores, mejoras de funcionalidad y
optimización de código.
Retroalimentación del usuario: La retroalimentación del usuario es esencial para el refinamiento de
software. Los usuarios proporcionan información valiosa sobre
cómo utilizan el software y cómo podría mejorarse.
PRINCIPALES CARACTERÍSTICAS DEL
REFINAMIENTO DE SOFTWARE.

Ser un proceso iterativo y Ser un proceso basado en


continuo: El refinamiento de datos: El refinamiento de
software se realiza en software se basa en datos
múltiples ciclos, con la objetivos y cuantificables,
revisión y mejora continua como métricas de calidad y
del software. rendimiento del software.

Tener un enfoque orientado Ser colaborativo: El


al usuario: El refinamiento refinamiento de software
de software se enfoca en involucra a múltiples partes
mejorar la experiencia del interesadas, como
usuario, la eficiencia y la desarrolladores, gerentes de
usabilidad del software. proyectos, usuarios finales y
otros miembros del equipo
de desarrollo de software.
TIPOS DE REFINAMIENTO DE SOFTWARE.
El refinamiento de software se refiere al proceso de mejorar o perfeccionar un software ya existente. Hay varios
tipos de refinamiento de software, que incluyen:
Refactorización: Mejora de rendimiento: Actualización funcional: Mejora de la usabilidad: Corrección de errores:
•Este tipo de refinamiento •Este tipo de refinamiento •Este tipo de refinamiento •Este tipo de refinamiento •Este tipo de refinamiento
implica modificar el código implica mejorar el implica agregar nuevas implica mejorar la implica corregir errores o
fuente de un software sin rendimiento de un funcionalidades o facilidad de uso de un defectos en un software
cambiar su funcionalidad software, por ejemplo, características a un software, por ejemplo, existente. Esto puede ser
externa. El objetivo es mejorar reduciendo el tiempo de software existente. Esto mejorando su interfaz de necesario debido a
su calidad, legibilidad, ejecución o el consumo de puede ser para satisfacer usuario, sus mensajes de problemas de seguridad,
mantenibilidad, y reducir la memoria. Esto se puede las necesidades de los error, o su problemas de
complejidad del código. lograr mediante la usuarios, para estar al día documentación. El funcionamiento o
optimización del código, con las últimas objetivo es hacer que el cualquier otro tipo de
la elección de algoritmos y tecnologías, o para software sea más fallo en el software.
estructuras de datos más mejorar la experiencia del accesible y amigable para
eficientes, y la eliminación usuario. el usuario.
de cuellos de botella.

Refinamiento de requisitos: Refinamiento de diseño: Refinamiento de código: Refinamiento de pruebas:


•Se refiere a la revisión y mejora de los •Se refiere a la revisión y •Se refiere a la revisión y •Se refiere a la revisión y
requisitos del software, para asegurar mejora del diseño del mejora del código fuente del mejora de las pruebas del
que el software cumpla con las software, para mejorar la software, para corregir software, para garantizar
necesidades del usuario. usabilidad, la eficiencia y la errores y mejorar la calidad que el software se comporte
calidad del software. del código. como se espera en
diferentes situaciones.
LOS DISEÑOS UTILIZADOS EN EL REFINAMIENTO DE
SOFTWARE INCLUYEN:

Diseño centrado en el
Diseño incremental: El Análisis de calidad: Se
Diseño basado en usuario: El refinamiento Análisis en el
refinamiento de refiere a la revisión de
pruebas: Se basa en de software se enfoca refinamiento de
software se realiza en la calidad del software,
pruebas objetivas y en mejorar la software Los
múltiples ciclos, donde mediante el uso de
cuantificables, para experiencia del usuario, principales análisis
se agregan nuevas métricas de calidad del
identificar problemas y mediante la evaluación realizados en el
funcionalidades y se software, como el
áreas de mejora en el y mejora de la refinamiento de
mejora el software número de errores o la
software. usabilidad y la software incluyen:
existente en cada ciclo. eficiencia del software.
eficiencia del software.
MODELOS
CLÁSICOS DE
CALIDAD DE
SOFTWARE.
MODELOS CLÁSICOS DE CALIDAD DE
SOFTWARE.

Definiciones:
Los modelos de calidad de software suelen incluir un conjunto de prácticas recomendadas para la planificación, diseño,
construcción, pruebas, implementación y mantenimiento del software. También incluyen criterios de evaluación y medición de
la calidad del software, así como herramientas y técnicas para la implementación de las prácticas recomendadas.

La calidad es un compuesto de diversas características que contiene un producto de software y que le da valor. Pero la calidad no solo se
presenta en el producto final, para que haya una calidad que se refleje en el producto se deben considerar todos los procesos durante el
desarrollo del software.

Los requisitos que el cliente inicialmente solicita son la base para medir la calidad del producto software cuando los requisitos no satisfacen
las necesidades del cliente no existe la calidad, se puede decir que la calidad es proporcional a la satisfacción del cliente. Es por eso que las
organizaciones desarrolladoras de software buscan la manera de implantar nuevos modelos de calidad de productos y/o procesos que los
conduzcan a la evaluación del producto y a la satisfacción del cliente.

Un modelo de calidad de software es un conjunto de buenas prácticas para el ciclo de vida del software, enfocadas en los procesos de
gestión y desarrollo de proyectos, este indica qué hacer y no cómo hacerlo.
MODELOS CLÁSICOS DE CALIDAD DE
SOFTWARE.
Para identificar y aplicar criterios requeridos para el desarrollo del software, es importante seguir las mejores
prácticas de desarrollo de software y considerar los requisitos del cliente. Algunos criterios importantes para el
desarrollo del software incluyen:
Funcionalidad:
El software debe cumplir con todos los requisitos funcionales definidos por el cliente.

Usabilidad:
El software debe ser fácil de usar y tener una interfaz de usuario intuitiva.

Eficiencia:
El software debe ser eficiente en el uso de recursos, como la memoria y el procesador.

Fiabilidad:
El software debe ser confiable y estar disponible para su uso en todo momento.

Mantenibilidad:
El software debe ser fácil de mantener y actualizar.

Portabilidad:
El software debe ser fácil de portar a diferentes plataformas y sistemas operativos.

Al seguir estos criterios y modelos de calidad del software, se puede garantizar que el software resultante cumpla
con los requisitos del cliente y sea de alta calidad.
EL MODELO DE CALIDAD DE MCCALL
Fue creado en 1977 para las fuerzas aéreas norteamericana con la intención de acercar las visiones de
calidad de los desarrolladores y los usuarios. Es de especial importancia por ser históricamente el
primero y la base de esfuerzos posteriores, y se organiza en torno a tres tipos de características de
calidad” (Sánchez, Sicilia, Rodríguez, 2012, p. 385) que se enlistan a continuación:

Permiten
identificar los Indican cómo
aspectos debe construirse
Factores exteriores que al Criterios internamente el Métricas Indican cómo
de usuario son de software desde de controlar y
calidad. importantes en calidad. la perspectiva calidad. medir la calidad.
el momento de del
conocer el desarrollador.
producto final.

El modelo de McCall basándose en las características anteriores, comprende once factores de calidad:
corrección, fiabilidad, eficiencia, integridad, usabilidad, facilidad de mantenimiento, facilidad de
evaluación, flexibilidad, portabilidad, reusabilidad e interoperabilidad que evalúan la calidad de un
producto software. Cada factor de calidad considera criterios específicos de calidad que ayudan a la
evaluación específica del producto software y poder asignar métricas o medidas de calidad.
EL MODELO DE CALIDAD DE MCCALL
Es importante señalar que los factores de calidad están divididos para su estudio en tres perspectivas.

Se integra por todos los Se especifican los


factores de calidad que factores de calidad
Incluye factores de
permitan al evaluador referentes a las
calidad que proporcionan
del producto conocer la características
la adaptabilidad que
Revisión capacidad que tiene el Transición tiene el software a Operación operativas del producto
software. Identificando el
del software para adaptarse del nuevos sistemas del cumplimiento del objetivo
a los cambios ante informáticos o a la
producto. alguna modificación producto. comunicación que puede producto. para la satisfacción del
cliente, el tiempo de
propia del software o de establecer con otras
acuerdo al objetivo de la ejecución, el esfuerzo
aplicaciones.
requerido para
empresa. manipularlo, etc.

Las perspectivas, los once factores y criterios de evaluación de la calidad según el modelo de McCall, se
exponen en la tabla siguiente.
EL MODELO DE CALIDAD DE
Operación Cumple con el objetivo para el cual fue creado.

del
Corrección.
Criterios a considerar: completitud de implementación de las funciones,
producto consistencia en el diseño e implementación y trazabilidad o
rastreabilidad desde los requisitos de inicio de la creación del producto
software hasta la ejecución final del producto.
Involucra el tiempo de la realización de un proceso en el producto

Fiabilidad software.
MCCALL

Criterios a considerar: Exactitud en los cálculos realizados, consistencia


y tolerancia a fallos para continuar la ejecución y funcionamiento del
software bajo situaciones no usuales.

Identificación de los recursos hardware y software para el

Eficiencia funcionamiento adecuado del producto software.

Criterios a considerar: En la ejecución y almacenamiento de la


información.

La información no deba ser alterada por terceros. Criterios a considerar:

Integridad Control de accesos a usuarios y la facilidad para realizar auditoría de


accesos al software.

Verifica el esfuerzo que realiza el usuario para el manejo del producto

Usabilidad software.

Criterios a considerar: facilidad de operabilidad del software, facilidad


para proporcionar datos y obtener resultados.
EL MODELO DE CALIDAD DE
Revisión Facilidad de
Facilidad para localizar las fallas y
errores del sistema.
del mantenimiento
producto Criterios a considerar: Independencia
en los módulos, simplicidad en la
implementación de las funciones y auto
descripción de las funciones a
MCCALL

implementar.
Se prueban todas las opciones del
Facilidad de producto software.

evaluación
Criterios a considerar: la simplicidad,
auto descripción, modularidad,
etcéteras.

Indica el esfuerzo que se requiere para


Flexibilidad modificar el producto software en
funcionamiento.

Criterios a considerar: simplificad,


posibilidad de expansión según sus
funciones y datos
EL MODELO DE CALIDAD DE
Transición Portabilidad
Capacidad que tiene el software de ser
utilizado en otro entorno.
del
producto Criterios a considerar: simplicidad,
independencia del producto software
entre el hardware y software.
MCCALL

Muestra la posibilidad de utilizar alguna


Reusabilidad parte del software en otras
aplicaciones.

Criterios a considerar: simplicidad,


modularidad, independencia del
hardware y software.

La capacidad del producto software


Interoperabilidad para comunicarse con otras
aplicaciones.

Criterios a considerar: Modularidad, uso


de protocolos de comunicación e
interfaces estándar, estructura de
datos.
EL MODELO DE CALIDAD DE MCCALL
Los factores mencionados en la tabla anterior, se consideran para realizar la evaluación de la calidad del
software mediante un proceso que se conforma de tres etapas, según el modelo de McCall.

Para evaluar la calidad de un software con el modelo de McCall se realiza el siguiente proceso.

Fase 3. Evaluar los factores. En


esta fase se aplican criterios de
evaluación a cada factor de
calidad. Los factores de calidad se
revisaron en la tabla: Factores de
Fase 2. Establecer los factores calidad del modelo de McCall.
de calidad según las
perspectivas del modelo de
McCall. En esta fase se establecen
los factores de calidad de acuerdo
Fase 1. Especificar los requisitos con los requisitos de calidad del
de calidad del producto software para ser aplicados en
software. En esta fase del proceso alguna de las etapas de ciclo de Facilidad de Interoperabilidad
se identifican los requisitos que vida del proyecto de software. Los
solicita el usuario que tengan mantenimiento ¿Puedo relacionarlo con
factores de calidad se revisaron en
relación con la calidad final la tabla: Factores de calidad del ¿Puedo arreglarlo? otros sistemas?
deseada. Se establece modelo de McCall.
comunicación directa con el
usuario. Facilidad de prueba Movilidad
¿Puedo probarlo? ¿Puedo utilizarlo en otra
Corrección : ¿Hace el programa lo que quiero? máquina?
Revisión Transición
Flexibilidad
Fiabilidad: ¿Lo hace de forma exacta todo el tiempo? ¿Puedo modificarlo? Reutilización
Operación
¿Puedo volver a utilizar
Eficiencia: ¿Se ejecutará sobre el soporte físico de forma óptima? parte del programa?

Facilidad de uso ¿Puedo utilizarlo?


EL MODELO DE BOEHM

La calidad de un producto ha sido


motivo de estudio para más de un
autor. Boehm ha contribuido con
la implementación de un nuevo
modelo de calidad que permita
controlar y coordinar la calidad
del software. El modelo fue
creado en 1978 se basa en la
identificación de las
características de la calidad para
el software. Su aportación más
significativa fue que el software
se consideraría de calidad
siempre y cuando fuera
verdaderamente útil. Así que
basándose en el concepto de
utilidad plantea el modelo de
calidad.
EL MODELO DE BOEHM
El modelo de calidad de Boehm contempla tres niveles jerárquicos. En el primer nivel define tres utilidades como
factores para la calidad del software que son las siguientes:
1) Utilidad del software tal y como está en el momento de la evaluación, identificar la facilidad de uso, fiabilidad y
eficiencia.
2) La facilidad de mantenimiento identificar lo que es modificable para realizar sus modificaciones pertinentes y
las pruebas adecuadas.
3) Portabilidad facilidad que tiene el software de ser utilizado en entorno distinto

Utilidad
general

Facilidad de
Utilidad tal y
mantenimiento Portabilidad
como está

Facilidad de Facilidad para


Fiabilidad Eficiencia Usabilidad Comprensibilidad Portabilidad
evaluación ser modificado
EL MODELO DE BOEHM
Factores de calidad Elementos primarios
Los factores de calidad del
Independencia del dispositivo
Portabilidad
Autocontención
modelo de Boehm se
Autocontención descomponen en criterios
Fiabilidad Complexión de evaluación que son
Robustez/Integridad llamados elementos
Consistencia
Capacidad para rendir cuentas
primarios. La siguiente tabla
Eficiencia Eficiencia de dispositivos muestra los elementos
Accesibilidad primarios.
Robustez/Integridad
Ergonomía Accesibilidad
Facilidad de comunicación
Capacidad para rendir cuentas
Facilidad de Accesibilidad
evaluación Facilidad de comunicación
Autodescripción
Estructuración
Consistencia
Autodescripción
Comprensibilidad Estructuración
Concisión
Legibilidad
Facilidad para ser Estructuración
modificado Extensibilidad
MODELOS
POPULARES.
Existen varios modelos de calidad del software que se utilizan en la industria del desarrollo de software.
Algunos de los modelos más populares son:

ISO 9001: Es un modelo de gestión de calidad general que se aplica a una


amplia variedad de industrias, incluyendo el desarrollo de software.

Capability Es un modelo de mejora de procesos que se centra en la madurez de


Maturity Model los procesos de gestión y desarrollo de software.
Integration
(CMMI):
ISO/IEC 12207: Es un estándar internacional que proporciona un marco de procesos
para la gestión del ciclo de vida del software.

ISO/IEC 15504 Es un modelo de evaluación de procesos de software que se utiliza para


(SPICE): evaluar y mejorar la calidad de los procesos de software.

Modelo de Es un modelo de calidad de software que se centra en la evaluación


Calidad de de la calidad del software en términos de sus características operativas,
McCall: de mantenimiento, de portabilidad y de eficiencia.

Modelo de Es un modelo de calidad de software que se centra en la evaluación


Calidad de de la calidad del software en términos de sus características internas y
Boehm: externas, y de su calidad operacional.
Existen varios modelos de calidad del software que se utilizan en la industria del desarrollo de software.
Algunos de los modelos más populares son:

Modelo de Este modelo se enfoca en la calidad interna del software, así como
calidad en la calidad externa del software. La calidad interna se refiere a
ISO/IEC 9126: las características del software que no son visibles para el usuario,
como la modularidad, la eficiencia y la seguridad. La calidad
externa se refiere a las características del software que son visibles
para el usuario, como la facilidad de uso y la funcionalidad.

Modelo de Este modelo se enfoca en la madurez del proceso de desarrollo de


madurez del software. El modelo establece niveles de madurez para el proceso
Capability de desarrollo, desde el nivel inicial hasta el nivel optimizado.
Maturity
Model
Integration
(CMMI):
Modelo de Este modelo se enfoca en la calidad del proceso de desarrollo de
calidad Total software, así como en la calidad del software resultante. El modelo
Quality se enfoca en la mejora continua del proceso de desarrollo y en la
Management satisfacción del cliente.
(TQM):
GRACIAS.

También podría gustarte