Estrategias de prueba de software
Aplicar estrategias para verificar el software utilizado en la organización
aplicando métricas y de acuerdo con el plan de Aseguramiento de la Calidad del
Software (ACS
4.4 Administración de la configuración del software
4.1 Enfoque estratégico
4.5 Métricas de producto
4.2 Estrategia de prueba
4.3 Modelado y verificación forma
4.6 Seguridad
Enfoque estratégico
(Pressman, 2010)
Una estrategia es un conjunto de acciones que se llevan a cabo para lograr un determinado fin. La
palabra estrategia proviene del griego ΣΤΡΑΤΗΓΙΚΗΣ Stratos = ejército y Agein = conductor, guía. Por lo
tanto, el significado primario de estrategia es el arte de dirigir las operaciones militares. Es una palabra muy
amplia cuyo significado varía según el contexto donde se la aplica. Por ejemplo: − Estrategia empresaria: se refiere al camino a seguir por una empresa para el logro de sus metas y
objetivos. − Estrategia de marketing: área del marketing destinada a planear, determinar y coordinar las
actividades operativas.
Tomar Decisiones Estratégicas (Make strategy decisions). Su objetivo es seleccionar las estrategias
más prometedoras a partir de una lista de potenciales estrategias que permiten el logro de los
objetivos. Esta actividad consta de dos tareas o subactividades. La primera es Identificar la lista de
las estrategias potenciales para el logro de los objetivos empresariales. La segunda actividad es
Seleccionar la estrategia más prometedora. La selección se realiza mediante la consideración de la
relación costo-beneficio, y teniendo en cuenta, los factores de contexto y las suposiciones que
restringen la factibilidad de las potenciales estrategias.
Estratégia de Prueba
La estrategia de prueba de software sirve como indicador describiendo los pasos que en cada etapa de la prueba se deben realizar además de indicar el plan de acción, los recursos, el esfuerzo y tiempo a utilizar. Esta compuesta por : la planificación de la prueba, el diseño de casos de prueba, la ejecución de la prueba , ,y
la recolección y evaluación de los resultados. Dicha estrategia debe permitir adecuarse a las necesidades específicas solicitadas, así como establecer una planificación y gestión de la misma para llevar a buen término el proyecto.
1.2.1 Estrategia para software convencional. Esta estrategia es utilizada para diferentes modelos de desarrollo de software, desde el modelo en cascada hasta las metodologías agiles en las cuales las estrategias convencionales son muy diferentes, por ejemplo: 1. Modelo Cascada: Terminar el software y aplicar las pruebas esperando a detectar TODOS los errores 2. Modelo V: Aplicar Pruebas cada que se construya una parte del sistema permitiendo detectar los errores en el momento
1. Pruebas unitarias o de componentes
En este sentido el Modelo V tiene diferentes niveles:
2. Pruebas de integración:
3. Pruebas de sistema
4. Pruebas de validación o aceptación
1.2.2 Estrategia de prueba para software orientado a objeto.
Maneja los mismos niveles que la convencional, pero lo presenta con toro enfoque: • Inician por lo particular y se dirigen hacia lo general, pero en este caso una clase o un conjunto de clases que colaboren entre si • Conforme se integran las clases se deberán hacer pruebas de regresión para identificar errores entre componentes • Al final se debe probar el sistema como un todo para encontrar los errores de requisitos
1.2.3 Estrategias de prueba para aplicaciones web.
Si bien las estrategias que se utilizan para las pruebas de aplicaciones web son las mismas que las convencionales, es necesario tomar en cuenta las siguientes dimensiones (Peño, 2015): • El contenido: se evalúa a nivel sintáctico y semántico. • La función: descubrir errores en función de los requerimientos del cliente. • La estructura: se entrega correctamente el contenido, es extensible y permite agregar nuevas funcionalidades. • La usabilidad: se asegura que la interfaz soporta a cada categoría de usuario. • La navegabilidad: descubrir errores de navegación, como links rotos, inadecuados y erróneos. • La performance: se prueba bajo funcionamientos extremos para asegurar que no sufre degradación. • La compatibilidad: se realizan pruebas para garantizar varias configuraciones de host, tanto en el cliente como en el servidor. • La interoperabilidad: se prueba para garantizar que interactúa correctamente con otras aplicaciones. • La seguridad: se realiza la evaluación de las potenciales vulnerabilidades.
¿Qué es?
4.3 Modelado y verificación forma
¿Cuántas veces ha escuchado a
alguien decir “Hazlo bien desde la primera
vez”? Si esto se lograra en el software, habría
considerablemente menos esfuerzo empleado
en lo innecesario. Dos métodos avanzados de ingeniería
del software (ingeniería del software de cuarto limpio y
métodos formales) ayudan al equipo de software a “hacerlo bien desde la primera vez” al proporcionar un enfoque
basado en matemáticas para programar el modelado y la
capacidad de verificar que el modelo es correcto. La ingeniería del software de cuarto limpio enfatiza la verificación
matemática de la exactitud antes de que comience la construcción del programa y la certificación de la confiabilidad
del software como parte de la actividad de prueba.
Los métodos formales usan teoría de conjuntos y notación lógica para crear un enunciado claro de los hechos (requerimientos) que pueden analizarse para mejorar (o incluso probar) la exactitud y la consistencia.
La línea de base para ambos métodos es la creación de software con tasas de falla extremadamente bajas
4.3 Modelado y verificación forma
El modelado de proceso identifica cuáles son las principales características de las actividades
realizadas para llevar a cabo un objetivo. Por lo tanto, un modelo de proceso es una abstracción de un
proceso que lo específica en términos por ejemplo de sus actividades, agentes y artefactos que lo integran. Al realizar un modelo, utilizando una representación gráfica (diagrama de proceso) se pueden
observar fácilmente las distintas interrelaciones que existen entre las actividades, dependencias, puntos de
control y paralelismos. Esto se debe a que poseen una mayor expresividad que los documentos textuales.
Los diagramas también permiten observar con mayor facilidad la existencia de problemas y luego tomar
acciones para corregirlos, como así también permite identificar posibles aspectos de mejora
Un método representa el modo específico de realizar una actividad. Incluye una descripción clara del
curso de acción a seguir y procedimientos (basados frecuentemente en primitivas de modelado y
estándares) que se emplean para tratar una actividad o conjunto de actividades de un proceso. Muchas
veces, los métodos pueden estar automatizados por herramientas.
Herramientas de modelado
Herramientas que sirven para validar modelos de software, como por ejemplo modelos de datos físicos (PDM) de una base de datos relacional, enumerando inconsistencia y localizando defectos [ISTQB].
Beneficios del modelado de procesos: − Facilita el entendimiento y la comunicación, lo cual implica que el modelo de proceso contiene
suficiente información para su representación. Los modelos pueden ser usados como herramienta
para formar al personal. − Da soporte a la gestión del proceso (planificación, monitoreo y control); para lo cual también se
requiere un proceso definido. − Permite la automatización del proceso mejorando su rendimiento, lo que requiere un entorno
efectivo, proporcionando a los usuarios: guías, instrucciones y material de referencia. − Provee soporte a la ejecución automatizada, para lo cual es necesario automatizar algunas partesdel proceso, soporte de trabajo colaborativo (en grupos), recopilar métricas y asegurar la integridad del proceso. − Brinda soporte a la mejora de los procesos, que necesita de la reutilización de procesos efectivos y bien definidos, la comparación de procesos alternativos y el soporte al desarrollo de procesos.
La ingeniería del software de cuarto limpio (modelo de software incremental)
INCREMENTO 1
BSS
CG
FD
CI
CV
RG
SUT
TP
IS
INCREMENTO 2
INCREMENTO 3
Las primeras cuatro actividades en el proceso de cuarto limpio establecen el escenario para las
actividades normales de verificación que siguen. Por esta razón, el estudio del enfoque de cuarto
limpio comienza con las actividades de modelado, que son esenciales para la verificación formal
que se va a aplicar
Refinamiento de
estructura de
cajas
Una especificación de caja negra
Una
especificación
de caja de estado
La caja de estado es “una simple generalización de una máquina de estado”
Una
especificación
de caja clara
La especificación de caja clara está cercanamente alineada con el diseño procedural y con la
programación estructuradaEn esencia, la subfunción g dentro de la caja de estado se sustituye
con los constructos de programación estructurada que implementan g
DISEÑO DE CUARTO LIMPIO
El enfoque de programación estructurada puede usarse de manera efectiva para refinar funciones. Pero ¿qué hay del diseño? Aquí entran en juego algunos conceptos de diseño fundamentales . Los datos de programa se encapsulan como un conjunto de abstracciones que
son atendidas por subfunciones. Los conceptos de encapsulamiento de datos, ocultamiento de
información y escritura de datos se usan para crear el diseño de datos.
04
03
01
02
Refinamiento de diseño
Verificación de diseño
Pruebas de Cuarto Limpio
Certificación
TÍTULO AQUÍ
SUBTÍTULO AQUÍ
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
Debe observar que el uso de los constructos de programaciónestructurada restringen el número
de pruebas de exactitud que deben realizarse. Una sola condición se verifica para secuencias;
dos condiciones se prueban para if-then-elseo y tres condiciones se verifican para ciclo.
Adicionalmente, debe asegurarse de que el ciclo termina. Un examen de la condición loop indica
que, dado que y se incrementa y x ≥ 0, el ciclo finalmente debe terminar
Pruebas de uso estadístico
La prueba de uso estadístico “equivale a examinar el software de la forma en la que los usuarios pretenden usarlo” [Lin94b]. Para lograr esto, los equipos de prueba de cuarto limpio (también llamados equipos de certificación) deben determinar una distribución de probabilidad de uso
para el software. La especificación (caja negra) para cada incremento del software se analiza a
fin de definir un conjunto de estímulos (entradas o eventos) que hacen que el software cambie
su comportamiento. En la creación de escenarios de uso y en una comprensión general del
dominio de aplicación, a cada estímulo se le asigna una probabilidad de uso con base en entrevistas con usuarios potenciales.
MÉTODOS FORMALES
Los métodos formales utilizados para desarrollar sistemas de cómputo son técnicas con base matemática para describir las propiedades del sistema. Tales métodos formales proporcionan marcos
conceptuales dentro de los cuales las personas pueden especificar, desarrollar y verificar los sistemas
en forma sistemática más que ad hoc.
Las propiedades deseadas de una especificación formal (consistencia, completitud y falta de
ambigüedad) son los objetivos de todos los métodos de especificación
Un lenguaje de especificación formal por lo general se compone de tres componentes primarios:
un conjunto de relaciones que definen las reglas que indican cuáles objetos satisfacen adecuadamente la especifica
1) una sintaxis que define la notación específica con la que se representa la especificación
semántica para ayudar a definir un “universo de objetos” [Win90] que se usarán para describir
el sistema y
El dominio sintáctico de un lenguaje de especificación formal con frecuencia se basa en una
sintaxis que se deriva de la notación estándar de la teoría de conjuntos y del cálculo de predicados. El dominio semántico de un lenguaje de especificación indica cómo representa el lenguaje
los requerimientos del sistema
4.4 Administración de la configuración del software
La administración de la configuración del software es un conjunto de actividades de rastreo y control
que inicia cuando comienza un proyecto de ingeniería de software y sólo termina cuando el
software se retira de la operación
¿Qué es? Cuando se construye software de
computadora, ocurren cambios. Y puesto que
ocurren, es necesario administrarlos de manera
efectiva. La administración de la configuración
del software (ACS), también llamada gestión del cambio,
es un conjunto de actividades diseñadas para administrar
el cambio mediante la identificación de los productos de
trabajo que es probable que cambien, el establecimiento
de relaciones entre ellos, la definición de mecanismos para
administrar diferentes versiones de dichos productos de
trabajo y el control de los cambios impuestos, así como la
auditoría y reporte de los cambios realizados
4.5 Métricas de producto
Las métricas de software proporcionan una forma cuantitativa para valorar la calidad de los
atributos internos de producto y, por tanto, permiten valorar la calidad antes de construir el
producto. Las métricas proporcionan la comprensión necesaria para crear modelos efectivos de
requerimientos y diseño, código sólido y pruebas amplias.
Para ser útil en un contexto de mundo real, una métrica de software debe ser simple y calculable, convincente, congruente y objetiva. Debe ser independiente del lenguaje de programación
y ofrecer retroalimentación efectiva
Las métricas para el modelo de requerimientos se enfocan en los tres componentes del modelo: la función, los datos y el comportamiento.
Las métricas para diseño consideranarquitectura, diseño en el nivel de componentes y conflictos en el diseño de interfaz.
Las métricas de diseño en el nivel de componente proporcionan un indicio de la calidad del módulo al establecer medidas indirectas para cohesión, acoplamiento y complejidad.
Las métricas de diseño arquitectónico consideran los aspectos estructurales del modelo de diseño.
Las métricas de diseño de interfaz de usuario ofrecen un indicio de la facilidad con la que puede usarse una GUI.
Las métricas webapp consideran aspectos de la interfaz de usuario, así como estética, contenido y navegación de la webapp.
Las métricas para los sistemas OO se enfocan en mediciones que pueden aplicarse a las características de clase y de diseño (localización, encapsulación, ocultamiento de información,
herencia y técnicas de abstracción de objeto) que hacen única a la clase. La suite de métricas
CK define seis métricas de software orientado a clase que se enfocan en la clase y en la jerarquía
de clase. La suite de métricas también desarrolla métricas para valorar las colaboraciones entre
clases y la cohesión en métodos que residen dentro de una clase. En un nivel orientado a clase,
la suite de métricas CK puede aumentarse con las métricas propuestas por Lorenz y Kidd y con la
suite de métricas MOOD. Halstead proporciona un interesante conjunto de métricas en el nivel del código fuente. Al
usar el número de operadores y operandos presentes en el código, la ciencia del software proporciona una variedad de métricas que pueden usarse para valorar la calidad del programa.
Pocas métricas de producto se han propuesto para uso directo en las pruebas de software y
en el mantenimiento. Sin embargo, muchas otras métricas de producto pueden usarse para
guiar el proceso de pruebas y como mecanismo para valorar la capacidad de mantenimiento de
un programa de cómputo. Para valorar la comprobabilidad de un sistema OO, se ha propuesto
una gran variedad de métricas OO.
4.6 Seguridad
estrategias de prueba de software
Rocio Palma
Created on May 4, 2021
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Akihabara Connectors Infographic
View
Essential Infographic
View
Practical Infographic
View
Akihabara Infographic
View
The Power of Roadmap
View
Artificial Intelligence in Corporate Environments
View
Interactive QR Code Generator
Explore all templates
Transcript
Estrategias de prueba de software
Aplicar estrategias para verificar el software utilizado en la organización aplicando métricas y de acuerdo con el plan de Aseguramiento de la Calidad del Software (ACS
4.4 Administración de la configuración del software
4.1 Enfoque estratégico
4.5 Métricas de producto
4.2 Estrategia de prueba
4.3 Modelado y verificación forma
4.6 Seguridad
Enfoque estratégico
(Pressman, 2010)
Una estrategia es un conjunto de acciones que se llevan a cabo para lograr un determinado fin. La palabra estrategia proviene del griego ΣΤΡΑΤΗΓΙΚΗΣ Stratos = ejército y Agein = conductor, guía. Por lo tanto, el significado primario de estrategia es el arte de dirigir las operaciones militares. Es una palabra muy amplia cuyo significado varía según el contexto donde se la aplica. Por ejemplo: − Estrategia empresaria: se refiere al camino a seguir por una empresa para el logro de sus metas y objetivos. − Estrategia de marketing: área del marketing destinada a planear, determinar y coordinar las actividades operativas.
Tomar Decisiones Estratégicas (Make strategy decisions). Su objetivo es seleccionar las estrategias más prometedoras a partir de una lista de potenciales estrategias que permiten el logro de los objetivos. Esta actividad consta de dos tareas o subactividades. La primera es Identificar la lista de las estrategias potenciales para el logro de los objetivos empresariales. La segunda actividad es Seleccionar la estrategia más prometedora. La selección se realiza mediante la consideración de la relación costo-beneficio, y teniendo en cuenta, los factores de contexto y las suposiciones que restringen la factibilidad de las potenciales estrategias.
Estratégia de Prueba
La estrategia de prueba de software sirve como indicador describiendo los pasos que en cada etapa de la prueba se deben realizar además de indicar el plan de acción, los recursos, el esfuerzo y tiempo a utilizar. Esta compuesta por : la planificación de la prueba, el diseño de casos de prueba, la ejecución de la prueba , ,y la recolección y evaluación de los resultados. Dicha estrategia debe permitir adecuarse a las necesidades específicas solicitadas, así como establecer una planificación y gestión de la misma para llevar a buen término el proyecto.
1.2.1 Estrategia para software convencional. Esta estrategia es utilizada para diferentes modelos de desarrollo de software, desde el modelo en cascada hasta las metodologías agiles en las cuales las estrategias convencionales son muy diferentes, por ejemplo: 1. Modelo Cascada: Terminar el software y aplicar las pruebas esperando a detectar TODOS los errores 2. Modelo V: Aplicar Pruebas cada que se construya una parte del sistema permitiendo detectar los errores en el momento
1. Pruebas unitarias o de componentes
En este sentido el Modelo V tiene diferentes niveles:
2. Pruebas de integración:
3. Pruebas de sistema
4. Pruebas de validación o aceptación
1.2.2 Estrategia de prueba para software orientado a objeto.
Maneja los mismos niveles que la convencional, pero lo presenta con toro enfoque: • Inician por lo particular y se dirigen hacia lo general, pero en este caso una clase o un conjunto de clases que colaboren entre si • Conforme se integran las clases se deberán hacer pruebas de regresión para identificar errores entre componentes • Al final se debe probar el sistema como un todo para encontrar los errores de requisitos
1.2.3 Estrategias de prueba para aplicaciones web.
Si bien las estrategias que se utilizan para las pruebas de aplicaciones web son las mismas que las convencionales, es necesario tomar en cuenta las siguientes dimensiones (Peño, 2015): • El contenido: se evalúa a nivel sintáctico y semántico. • La función: descubrir errores en función de los requerimientos del cliente. • La estructura: se entrega correctamente el contenido, es extensible y permite agregar nuevas funcionalidades. • La usabilidad: se asegura que la interfaz soporta a cada categoría de usuario. • La navegabilidad: descubrir errores de navegación, como links rotos, inadecuados y erróneos. • La performance: se prueba bajo funcionamientos extremos para asegurar que no sufre degradación. • La compatibilidad: se realizan pruebas para garantizar varias configuraciones de host, tanto en el cliente como en el servidor. • La interoperabilidad: se prueba para garantizar que interactúa correctamente con otras aplicaciones. • La seguridad: se realiza la evaluación de las potenciales vulnerabilidades.
¿Qué es?
4.3 Modelado y verificación forma
¿Cuántas veces ha escuchado a alguien decir “Hazlo bien desde la primera vez”? Si esto se lograra en el software, habría considerablemente menos esfuerzo empleado en lo innecesario. Dos métodos avanzados de ingeniería del software (ingeniería del software de cuarto limpio y métodos formales) ayudan al equipo de software a “hacerlo bien desde la primera vez” al proporcionar un enfoque basado en matemáticas para programar el modelado y la capacidad de verificar que el modelo es correcto. La ingeniería del software de cuarto limpio enfatiza la verificación matemática de la exactitud antes de que comience la construcción del programa y la certificación de la confiabilidad del software como parte de la actividad de prueba.
Los métodos formales usan teoría de conjuntos y notación lógica para crear un enunciado claro de los hechos (requerimientos) que pueden analizarse para mejorar (o incluso probar) la exactitud y la consistencia. La línea de base para ambos métodos es la creación de software con tasas de falla extremadamente bajas
4.3 Modelado y verificación forma
El modelado de proceso identifica cuáles son las principales características de las actividades realizadas para llevar a cabo un objetivo. Por lo tanto, un modelo de proceso es una abstracción de un proceso que lo específica en términos por ejemplo de sus actividades, agentes y artefactos que lo integran. Al realizar un modelo, utilizando una representación gráfica (diagrama de proceso) se pueden observar fácilmente las distintas interrelaciones que existen entre las actividades, dependencias, puntos de control y paralelismos. Esto se debe a que poseen una mayor expresividad que los documentos textuales. Los diagramas también permiten observar con mayor facilidad la existencia de problemas y luego tomar acciones para corregirlos, como así también permite identificar posibles aspectos de mejora
Un método representa el modo específico de realizar una actividad. Incluye una descripción clara del curso de acción a seguir y procedimientos (basados frecuentemente en primitivas de modelado y estándares) que se emplean para tratar una actividad o conjunto de actividades de un proceso. Muchas veces, los métodos pueden estar automatizados por herramientas.
Herramientas de modelado
Herramientas que sirven para validar modelos de software, como por ejemplo modelos de datos físicos (PDM) de una base de datos relacional, enumerando inconsistencia y localizando defectos [ISTQB].
Beneficios del modelado de procesos: − Facilita el entendimiento y la comunicación, lo cual implica que el modelo de proceso contiene suficiente información para su representación. Los modelos pueden ser usados como herramienta para formar al personal. − Da soporte a la gestión del proceso (planificación, monitoreo y control); para lo cual también se requiere un proceso definido. − Permite la automatización del proceso mejorando su rendimiento, lo que requiere un entorno efectivo, proporcionando a los usuarios: guías, instrucciones y material de referencia. − Provee soporte a la ejecución automatizada, para lo cual es necesario automatizar algunas partesdel proceso, soporte de trabajo colaborativo (en grupos), recopilar métricas y asegurar la integridad del proceso. − Brinda soporte a la mejora de los procesos, que necesita de la reutilización de procesos efectivos y bien definidos, la comparación de procesos alternativos y el soporte al desarrollo de procesos.
La ingeniería del software de cuarto limpio (modelo de software incremental)
INCREMENTO 1
BSS
CG
FD
CI
CV
RG
SUT
TP
IS
INCREMENTO 2
INCREMENTO 3
Las primeras cuatro actividades en el proceso de cuarto limpio establecen el escenario para las actividades normales de verificación que siguen. Por esta razón, el estudio del enfoque de cuarto limpio comienza con las actividades de modelado, que son esenciales para la verificación formal que se va a aplicar
Refinamiento de estructura de cajas
Una especificación de caja negra
Una especificación de caja de estado
La caja de estado es “una simple generalización de una máquina de estado”
Una especificación de caja clara
La especificación de caja clara está cercanamente alineada con el diseño procedural y con la programación estructuradaEn esencia, la subfunción g dentro de la caja de estado se sustituye con los constructos de programación estructurada que implementan g
DISEÑO DE CUARTO LIMPIO
El enfoque de programación estructurada puede usarse de manera efectiva para refinar funciones. Pero ¿qué hay del diseño? Aquí entran en juego algunos conceptos de diseño fundamentales . Los datos de programa se encapsulan como un conjunto de abstracciones que son atendidas por subfunciones. Los conceptos de encapsulamiento de datos, ocultamiento de información y escritura de datos se usan para crear el diseño de datos.
04
03
01
02
Refinamiento de diseño
Verificación de diseño
Pruebas de Cuarto Limpio
Certificación
TÍTULO AQUÍ
SUBTÍTULO AQUÍ
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
Debe observar que el uso de los constructos de programaciónestructurada restringen el número de pruebas de exactitud que deben realizarse. Una sola condición se verifica para secuencias; dos condiciones se prueban para if-then-elseo y tres condiciones se verifican para ciclo.
Adicionalmente, debe asegurarse de que el ciclo termina. Un examen de la condición loop indica que, dado que y se incrementa y x ≥ 0, el ciclo finalmente debe terminar
Pruebas de uso estadístico
La prueba de uso estadístico “equivale a examinar el software de la forma en la que los usuarios pretenden usarlo” [Lin94b]. Para lograr esto, los equipos de prueba de cuarto limpio (también llamados equipos de certificación) deben determinar una distribución de probabilidad de uso para el software. La especificación (caja negra) para cada incremento del software se analiza a fin de definir un conjunto de estímulos (entradas o eventos) que hacen que el software cambie su comportamiento. En la creación de escenarios de uso y en una comprensión general del dominio de aplicación, a cada estímulo se le asigna una probabilidad de uso con base en entrevistas con usuarios potenciales.
MÉTODOS FORMALES
Los métodos formales utilizados para desarrollar sistemas de cómputo son técnicas con base matemática para describir las propiedades del sistema. Tales métodos formales proporcionan marcos conceptuales dentro de los cuales las personas pueden especificar, desarrollar y verificar los sistemas en forma sistemática más que ad hoc.
Las propiedades deseadas de una especificación formal (consistencia, completitud y falta de ambigüedad) son los objetivos de todos los métodos de especificación
Un lenguaje de especificación formal por lo general se compone de tres componentes primarios:
un conjunto de relaciones que definen las reglas que indican cuáles objetos satisfacen adecuadamente la especifica
1) una sintaxis que define la notación específica con la que se representa la especificación
semántica para ayudar a definir un “universo de objetos” [Win90] que se usarán para describir el sistema y
El dominio sintáctico de un lenguaje de especificación formal con frecuencia se basa en una sintaxis que se deriva de la notación estándar de la teoría de conjuntos y del cálculo de predicados. El dominio semántico de un lenguaje de especificación indica cómo representa el lenguaje los requerimientos del sistema
4.4 Administración de la configuración del software
La administración de la configuración del software es un conjunto de actividades de rastreo y control que inicia cuando comienza un proyecto de ingeniería de software y sólo termina cuando el software se retira de la operación
¿Qué es? Cuando se construye software de computadora, ocurren cambios. Y puesto que ocurren, es necesario administrarlos de manera efectiva. La administración de la configuración del software (ACS), también llamada gestión del cambio, es un conjunto de actividades diseñadas para administrar el cambio mediante la identificación de los productos de trabajo que es probable que cambien, el establecimiento de relaciones entre ellos, la definición de mecanismos para administrar diferentes versiones de dichos productos de trabajo y el control de los cambios impuestos, así como la auditoría y reporte de los cambios realizados
4.5 Métricas de producto
Las métricas de software proporcionan una forma cuantitativa para valorar la calidad de los atributos internos de producto y, por tanto, permiten valorar la calidad antes de construir el producto. Las métricas proporcionan la comprensión necesaria para crear modelos efectivos de requerimientos y diseño, código sólido y pruebas amplias. Para ser útil en un contexto de mundo real, una métrica de software debe ser simple y calculable, convincente, congruente y objetiva. Debe ser independiente del lenguaje de programación y ofrecer retroalimentación efectiva
Las métricas para el modelo de requerimientos se enfocan en los tres componentes del modelo: la función, los datos y el comportamiento.
Las métricas para diseño consideranarquitectura, diseño en el nivel de componentes y conflictos en el diseño de interfaz.
Las métricas de diseño en el nivel de componente proporcionan un indicio de la calidad del módulo al establecer medidas indirectas para cohesión, acoplamiento y complejidad.
Las métricas de diseño arquitectónico consideran los aspectos estructurales del modelo de diseño.
Las métricas de diseño de interfaz de usuario ofrecen un indicio de la facilidad con la que puede usarse una GUI.
Las métricas webapp consideran aspectos de la interfaz de usuario, así como estética, contenido y navegación de la webapp.
Las métricas para los sistemas OO se enfocan en mediciones que pueden aplicarse a las características de clase y de diseño (localización, encapsulación, ocultamiento de información, herencia y técnicas de abstracción de objeto) que hacen única a la clase. La suite de métricas CK define seis métricas de software orientado a clase que se enfocan en la clase y en la jerarquía de clase. La suite de métricas también desarrolla métricas para valorar las colaboraciones entre clases y la cohesión en métodos que residen dentro de una clase. En un nivel orientado a clase, la suite de métricas CK puede aumentarse con las métricas propuestas por Lorenz y Kidd y con la suite de métricas MOOD. Halstead proporciona un interesante conjunto de métricas en el nivel del código fuente. Al usar el número de operadores y operandos presentes en el código, la ciencia del software proporciona una variedad de métricas que pueden usarse para valorar la calidad del programa. Pocas métricas de producto se han propuesto para uso directo en las pruebas de software y en el mantenimiento. Sin embargo, muchas otras métricas de producto pueden usarse para guiar el proceso de pruebas y como mecanismo para valorar la capacidad de mantenimiento de un programa de cómputo. Para valorar la comprobabilidad de un sistema OO, se ha propuesto una gran variedad de métricas OO.
4.6 Seguridad