Está en la página 1de 35

CONSTRUCCIÓN DE

SOFTWARE
ING. ROSARIO OSORIO CONTRERAS
rosorio@continental.edu.pe
Propósito

Reconocer las métricas y


estándares aplicados en la
construcción de software
Identificar los lineamientos a
seguir en la refactorización
Temas

Reutilización

Estándares de ingeniería de software

Refactorización
REUTILIZACIÓN
Definición

Se define como el empleo


de elementos de software
u otros de nivel superior,
creados en desarrollo
anteriores, para de este
modo reducirlos tiempos y
simplificar el desarrollo del
software, mejorando la
calidad y reduciendo su
costo.
Elementos

Diseño previamente
Especificaciones de definidos (estructuras codigo probado y
requerimientos de datos, algoritmos, depurado con
etc) anterioridad

Planes y casos de
Paquetes de software
prueba previamente Personal cualificado
de propósito general
utilizados
Ventajas
Reducir el tiempo de desarrollo.

Reducir los costos.

Incrementar la productividad.

No tener que reinventar las soluciones.

Facilitar la compartición de productos del ciclo de vida.

Mayor fiabilidad

Mayor eficiencia(Aunque al principio pueda parecer que no)

Consistencia y la familiaridad, los patrones dentro del software serán más consistentes, tendiendo a
facilitar el mantenimiento del producto.
Desventajas
Necesidad de invertir antes de obtener resultados.
Carencia de métodos adecuados.
Necesidad de formar al personal.
Convencer a los “manager”.
Dificultad para institucionalizar los procesos.
Unidades de software que se reutilizan
Reutilización de sistemas de aplicación
Se incorpora sin ningún cambio en otros sistemas
Análisis de escenarios

El proyecto es similar a un anterior (reutilización de un proyecto existente).

Mismo proyecto con configuración diferente (reutilizan productos actuales)

Características de uso basados en productos existentes

Nueva Arquitectura con capacidades o elementos existentes


Patrones de Diseño

Descripción del problema


y la esencia de una
Es una descripción de
solución, de forma que la No es una especificación
conocimiento y
solución se pueda detallada
experiencia acumulada
reutilizar en diferentes
situaciones
Niveles de Reutilización
Reutilización de Código
• Librerías de funciones, editores, inclusión de ficheros, mecanismos de herencia en
POO, componentes, etc.
Reutilización de Diseños
• No volver a inventar arquitecturas
• Por ejemplo: patrones de diseño

Reutilización de Especificaciones
• Debe estar asociada a la generación semiautomática de los elementos de diseño e
implementación.
ESTÁNDARES DE
INGENIERÍA DE SOFTWARE
• Los estándares de calidad de software hacen
Estándares parte de la ingeniería de software, el objetivo
es ofrecer una mayor confiabilidad,
de mantenibilidad en concordancia con los
Ingeniería requisitos exigidos, con esto se eleva la
productividad y el control en la calidad de
de Software software, parte de la gestión de la calidad se
establecen a mejorar su eficacia y eficiencia.
Normas ISO/IEC 12207

• Este estándar se concibió para


aquellos interesados en
adquisición de software, así como
desarrolladores y proveedores. El
estándar indica una serie de
procesos desde la recopilación de
requisitos hasta la culminación
del software.
Normas ISO/IEC
9126

• La norma ISO/IEC 9126 de 1991, es la norma para evaluar los


productos de software, esta norma nos indica las características de la
calidad y los lineamientos para su uso, las características de calidad y
sus métricas asociadas, pueden ser útiles tanto como para evaluar el
producto como para definir los requerimientos de la calidad y otros
usos.
Normas ISO/IEC
14598

• Es actualmente usado como base metodológica para la evaluación del


producto software. En sus diferentes etapas, establece un marco de trabajo
para evaluar la calidad de los productos de software proporcionando,
además, métricas y requisitos para los procesos de evaluación de los mismos
• Evalúa características como:

Normas ISO/IEC • Repetitividad


• Reproductibilidad
14598 • Imparcialidad
• objetividad
Normas ISO/IEC
25000
• ISO/IEC 25000, conocida como SQuaRE
(System and Software Quality
Requirements and Evaluation), es una
familia de normas que tiene por
objetivo la creación de un marco de
trabajo común para evaluar la calidad
del producto software.
CMMI
• Es un modelo de mejora de los procesos de
construcción de software que provee los
elementos necesarios para determinar su
efectividad. Este modelo puede ser utilizado
como guía para mejorar las actividades de un
proyecto, área u organización, ya que
proporciona un marco de referencia para
evaluar la efectividad de los procesos actuales,
facilitando con ello la definición de
actividades, prioridades y metas para
garantizar la mejora continua.
PSP
• El proceso personal del software es
un método de autoconocimiento,
que permite estimar cuánto se tarda
un individuo en realizar una
aplicación de software, para así
calcular el presupuesto y asegurar la
operatividad de los desarrollos. PSP
se concentra en las prácticas de
trabajo de los ingenieros en una
forma individual.
7 Pasos del
PSP
REFACTORIZACIÓN
Refactorización
• El proceso de refactorización implica tomar pasos pequeños y
manejables que aumentan gradualmente la limpieza del código
mientras se mantiene la funcionalidad del código. A medida que
realizamos más y más de estos pequeños cambios,
comenzamos a transformar el código desordenado en un
código más simple, más fácil de leer y más fácil de mantener.
DEFINICION

Es modificar el diseño y la
implementación de manera
de hacer lo mismo pero con
en forma más

• Simple
• Extensible
• Fácil de entender
Objetivos

Elimina código
que no se utiliza
Facilita el
mantenimiento
Facilita la del código
comprensión
No arregla del código
errores ni
añade
funcionalidades
La refactorización se da cuando
¿Cuándo encontramos un “código que huele mal” es
decir un tipo de código indica que tiene
refactorizar? ciertos problemas y que en algún momento
dejará de funcionar
¿Porqué refactorizar?

El código se Se aprenden Describir


vuelve más principios de nuevas
legible diseño abstracciones

Nos permite Código limpio


encontrar y mantenible
bugs de forma
más sencilla
Ejemplo de Refactorización
• En una función matemática, podemos refactorizar la siguiente
expresión


Pasos para la refactorización
• Se desarrolla el código y luego se refactoriza
• Debe de realizarse como un paso separado para asegurar que los
errores que se encuentren no pertenecen a la lógica original
• Después de la refactorización cualquier cambio en el comportamiento
es considerado un error y estos deben ser arreglados de forma separada
¿Qué necesitamos para refactorizar?
Técnicas para Refactorizar
Rojo verde
En línea
Mover características entre objetos
Extracto
Refactorización por abstracción
Componer
Actividad
• Revise la practica de factorización y realice cada uno de los procesos,
describa el resultado obtenido.
Reflexionemos
Producto Académico 01
ucontinental.edu.pe

También podría gustarte