Categorieën: Alle - métricas - software - normas - desarrollo

door Jhoan Garcia 12 maanden geleden

432

Conociendo el contexto del software

El desarrollo de software es un proceso complejo que requiere la aplicación de normas y estándares de calidad para asegurar que los productos generados sean eficientes y funcionales.

Conociendo el contexto del software

Referencias bibliográficas Arciniega, F. (s.f). Normas y estándares de calidad para el desarrollo de software. http://fcaenlinea.unam.mx/anexos/1728/Unidad_2/u2_act2_1.pdf Bourque, P. & Fairley, R. E. (2004). Guide to the Software Engineering Body of Knowledge Versión 3.0. Swebok, revisar capítulo 3 Software Construction, subcapítulo 1.5 Standards in construction. Cabero Almenara, J. (1992). Diseño de software informático. Bordón, 44 (4), 383-391. https://www.researchgate.net/profile/Julio_Almenara/publication/255626488_Diseno_de_software_informatico/links/0deec53b22ea9b0641000000/Diseno-de-software-informatico.pdf Martínez Flores, J. L. (1994). Métricas de software en lenguajes de cuarta generación. (Tesis de maestría, Universidad Autónoma de Nuevo León). Especialmente, realizar lectura del capítulo 2.3 Métricas de software de la y 2.4 Métricas de calidad del software. Pino, F. J., García, F., Ruiz, F. y Piattini, M. (2006). Adaptación de las normas ISO/IEC 12207: 2002 e ISO/IEC 15504: 2003 para la evaluación de la madurez de procesos software en países en desarrollo. IEEE Latin America Transactions, Vol. 4 (2), 17-24. Software. (2013). Modelos de desarrollo de software. El conspirador. https://www.elconspirador.com/2013/08/19/modelos-de-desarrollo-de-software/ Torrell, A. (2018). Métricas de Software- Software metrics. Revista Tino. https://revista.jovenclub.cu/metricas-de-software-software-metrics/

Mapa mental Por: Jhoan Alexander García Soto

Conociendo el contexto del software

Modelos de construcción de software

Modelos y metodologías del desarrollo de software
RUP o proceso unificado relacional

principios básicos de este método

enfoque a la calidad

elevar el nivel de abstracción

colaboración entre equipos

demostrar valor iterativamente

equilibrar prioridades

adaptar el proceso

Es uno de los modelos más utilizado en el

e implementación de la documentación de sistemas orientados a objetos

análisis, diseño

desarrollado por la empresa Rational Software

Es propiedad de IBM

Proceso Unificado

características

enfocado en los riesgos

centrado en la arquitectura

dirigido por casos de uso

es iterativo e incremental

es utilizado para evitar problemas legales con el método RUB

puede ser implementado hacia otros proyectos de distintas organizaciones

está centrado en la arquitectura y la utilización de iteraciones incrementales

se distingue por la utilización de casos de uso

Desarrollo concurrente

Desventajas

condiciones necesarias para su implementación.

necesita de grupos de trabajo

Ventajas

está orientado a grupos de trabajo independientes

Una de las características es

los resultados de las revisiones

las decisiones de la gestión

que está orientado a las necesidades del usuario

Es utilizado en su mayoría para aplicaciones cliente servidor

Se conoce como ingeniería concurrente

RAD o desarrollo de aplicaciones rápidas

toma en cuenta las características de

rapidez de la ejecución de la aplicación

utilidad

usabilidad

compuesto por un grupo reducido de personas

incluye

testers del sistema

desarrolladores

permite la construcción rápida de sistemas utilizables

Desarrollo iterativo y creciente o Iterativo e Incremental

Se puede dividir en los siguientes procesos

3. Lista de control del proyecto.

Tareas que describen las partes que conforman el proyecto

2. Etapa de iteración

análisis, rediseño e implementación del producto

1. Etapa de inicialización

construcción de un producto

obtener retroalimentación de parte del usuario final.

Es esencial para el método de programación extrema

ofrece entornos de trabajo con técnicas para su correcta utilización

Resuelve los problemas encontrados en el modelo en cascada

Desarrollo por etapas

fases del modelo

4. Codificación y depuración

3. Diseño inicial

2. Análisis de requisitos

1. Especificación conceptual

Al al momento de la crítica o retroalimentación

no se obtendrán completamente las características del software

estas se descubren en el proceso

del avance del software

Es similar al modelo por etapas

Modelo en espiral

tiene dos formas en las cuales se debe de planificar el proyecto

la forma radial

indica el aumento del costo dado que cada iteración conlleva más tiempo de desarrollo.

la forma angular

indica únicamente el avance del software dentro del proyecto

las actividades se desarrollan en espiral

estas se realizan conforme se van seleccionando

de acuerdo al análisis de riesgo

Modelo de prototipos

Las etapas de este modelo son

6. Entrega del desarrollo final

5. Comunicación

4. Entrega y retroalimentación

3. Construcción del prototipo

2. Modelo

1. Plan rápido

El prototipo es construido para

obtener criticas y retroalimentación

mostrárselo al cliente

Pertenece a los modelos evolutivos

utilización escasa de recursos

el prototipo debe de ser construido rápidamente

Modelo en cascada o Clásico (modelo tradicional)

cualquier error detectado lleva al

rediseño del área de código afectado

aumentando el costo del desarrollo del proyecto

El inicio de una etapa de desarrollo debe esperar el fin de la etapa anterior

modelo en el cual se ordenan rigurosamente

las etapas del desarrollo del software

Ofrecen un marco de trabajo usado para
controlar el proceso de desarrollo de sistemas de información

Métricas de construcción y diseño

Tipos de métricas
Métricas R. Martin (1994)

I: Instability = Ce / (Ca + Ce)

métrica comprendida entre [0,1], siendo 0 la máxima estabilidad y 1 máxima inestabilidad

Ce: Efferent Couplings:

número de clases dentro del propio paquete que dependen de clases de otros paquetes

Ca: Afferent Couplings:

número de clases de otros paquetes que dependen de las clases del propio paquete

Líneas de código

atributo más usado para interpretar

el tamaño de un programa

Métricas de Lorenz y Kidd (1994)

dividen las métricas basadas en clases

en cuatro categorías

valores externos

valores internos

herencia

tamaño

Métricas de Halstead

determinan el tamaño del software asumiendo que el programa está compuesto por

un conjunto de elementos

clasificados en

operandos

operadores

conjunto de medidas primitivas

Métricas de Li Henry

consideran cinco de las métricas de Chidamber y Kemerer

LCOM

RFC

NOC

DIT

WMC

Métricas CK Chidamber y Kemerer

Es uno de los conjuntos de métricas

más referenciado

métricas orientadas a clases

individuales, herencia y colaboraciones

Métricas a nivel de código fuente

se determinan examinando los

atributos de calidad

que se encuentran en las líneas de código

conjunto de medidas de software

se determinan examinando las

líneas de código de los módulos

proporcionan a los programadores

mejor visión del código

Las métricas sirven para
se caracterizan porque

se recopilan en el transcurso de todos

durante largos períodos

los proyectos

clasificar el software final
mejorar
evaluar
según el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE)
Si se desea conseguí la calidad de un software la medición es esencial
la métrica se define como

una medida cualitativa, del grado en que un sistema, componente o proceso posee un atributo determinado

Estándares en la construcción del software

MOPROSOFT
sirve para estandarizar

prácticas en gestión de ingeniería de software

operaciones

Es una norma Mexicana
basada en procesos para las industrias de software
Está dirigido a

empresas o áreas internas dedicadas al

desarrollo y/o mantenimiento de software

TSP-Team Software Process
Es un proceso para equipos de software

para procesos de software

PSP- Proceso personal del software
sirve para producir software de calidad
método de autoconocimiento

permite estimar cuánto se tarda un individuo en realizar una aplicación de software

IEEE (Institute of Electrical and Electronics Engineers)
Algunos de sus estándares son

IEEE 754

IEEE 802.11

IEEE 802

IEEE 488

IEEE 1394

POSIX

VHDL

posee cerca de 900 estándares activos
produce más del 30% de la literatura publicada en el mundo sobre ingeniería eléctrica
su trabajo es promover

compartir y aplicar los avances en las tecnologías de la información

y la integración

el desarrollo

la creatividad

método de establecimiento y mejora del trabajo en equipo

para procesos software

Su creación se remonta al año 1884
CMMI
establece cinco niveles de madurez los cuales son

Nivel 5 Optimizado:

Los procesos de los proyectos y de la organización están orientados a la mejora de las actividades

Nivel 4 Administrado:

se usan métricas para gestionar la organización

Nivel 3 Definido:

la forma de desarrollar proyectos está

existen métricas.

definida, establecida, documentada

Nivel 2 Repetible:

Se da cuando el éxito de los resultados obtenidos se puede repetir

Nivel 1 Inicial o ejecutando

el proceso se ejecuta y se logra su objetivo

Nivel 0: Incompleto

El proceso no se realiza, o no se consiguen los objetivos

puede ser utilizado como guía para mejorar las actividades de

área - organización

un proyecto

Provee

elementos necesarios para determinar su efectividad

Es un modelo de mejora de los procesos de construcción de software
Spice
Es creciente en número de métodos de evaluación disponibles
Tiene tres objetivos principales

para

promover la transferencia de tecnología de la evaluación de procesos de software en la industria mundial del software a nivel mundial

llevar a cabo los ensayos de la industria de la norma emergente

-desarrollar un proyecto de trabajo y generar un estándar para la evaluación de procesos de software.

Apoya el desarrollo de una Norma Internacional

para la

Evaluación de Procesos de Software

Normas ISO/IEC
Norma ISO/IEC 25000 (SquaRE)

SQuaRE está formada por las divisiones

ISO/IEC 25050–25099

Estándares de extensión SQuaRE.

ISO/IEC 2504n

División de evaluación de la calidad.

ISO/IEC 2503n

División de requisitos de calidad.

ISO/IEC 2502n

División de mediciones de calidad

ISO/IEC 2501n.

División del modelo de calidad.

ISO/IEC 2500n

División de gestión de calidad.

Objetivo principal de la serie SQuaRE

coordinación y armonización del contenido

de ISO 9126 y de ISO 15939:2002 (Measurement Information Model)

es una nueva serie de normas que se basa en

ISO 14598

ISO 9126

Estándar ISO/IEC 14598

consta de seis partes

ISO/IEC 14598-6

Documentación de Módulos

ISO/IEC 14598-5

Proceso para avaladores

ISO/IEC 14598-4

Proceso para adquirentes

ISO/IEC 14598-3

Proceso para desenvolvedores

ISO/IEC 14598-2

Planeamiento y Gestión

ISO/IEC 14598-1

Visión General

define el proceso para evaluar un producto del software

Estándar ISO/IEC 1598

características del proceso de evaluación

medidas concretas que participan

Evaluación de la conclusión

Ejecución del plan de evaluación

Evaluación del diseño y definición del plan de evaluación

Evaluación de las especificaciones

Análisis de los requisitos de evaluación

objetividad

imparcialidad

reproducibilidad

repetitividad

esta norma ofrece

métricas y requisitos

para los procesos de evaluación

Es usado como base metodológica

para evaluar el producto del software

Norma ISO/IEC 9126

esta definida bajo un marco conceptual basado en

factores como

calidad en uso

calidad del producto del software

contribuye a

mejorar la calidad en uso

calidad del proceso

esta indica

las características de la calidad y las métricas asociadas

puede ser útil para

definir los requerimientos de la calidad

evaluar el producto

las características de la calidad y lineamientos para su uso

es la que evalúa los productos de software

ISO 12207

Modelos de ciclos de vida del software

El estándar indica unos procesos que van

En total son 17 procesos que se agrupan en

tres categorias

de organización

de apoyo

Principales

hasta la culminación

del software

desde la recopilación

de requisitos

El estándar se concibe para los interesados en

Proveedores

Desarrolladores

adquisición de software

Hacen parte de la ingeniería del software
objetivo

concordancia con los requisitos exigidos

ofrecer mayor confiabilidad

utilización de estándares y metodologías para

prueba y análisis

del software desarrollado

programación

el diseño

Base conceptual/Fundamentos teóricos del software

Técnicas de implementación de sistemas
Tipos de metodologías

Metodología utilizada

Metodología UML

Metodología OMT

Metodología orientada a objetos

Metodología estructurada

Una metodología se puede definir como

conjunto de procedimientos necesarios para llegar a un objetivo

La metodología es un modo sistemático de producir software
Herramientas CASE
características y ventajas de las herramientas CASE

Facilitan el uso de las distintas metodologías

propias de la Ingeniería del software

Reducen el tiempo y el costo de desarrollo

Mejoran la productividad en el

mantenimiento

desarrollo

Aumentan la calidad del producto

Tienen soporte de reusabilidad

Permiten la comprobación de errores

en etapas tempranas del desarrollo

Es útil en tareas como

generación automática de documentación

generación de código a partir del diseño

cálculo de costos

el diseño del proyecto

facilitan y agilizan el ciclo de vida en un sistema
conjunto de utilidades, métodos y técnicas

empleadas por los profesionales del desarrollo de software

Ciclo de vida del software
Etapas en común dependiendo del modelo

Mantenimiento

Pruebas

Codificación

Diseño

Análisis

Existen varios modelos de ciclo de vida

dependiendo de esto serán

la forma en cómo se lleva a cabo el proyecto

las etapas que lo componen

se utiliza para estructurar las actividades

que se llevarán a cabo en el desarrollo de un producto

Algunos problemas identificados en la producción de software incluyen
Gran dificultad en el mantenimiento
Baja calidad y fiabilidad del producto
Elevados costos de producción y cargas de mantenimiento
Poca productividad
Retrasos considerables en la entrega
Para generar un producto de software
se requieren de métodos y técnicas para que

el desarrollo sea de calidad

Software
pueden ir desde

hasta aplicaciones específicas

editores de imágenes

videojuegos

editores de texto

un sistema operativo

se puede definir como el

conjunto de componentes lógicos

datos

reglas

procedimientos

que hacen funcionar y realizar tareas específicas a una computadora