Zusammenfassung der Ressource
Mapa de Unidad 4 Ingeniería de
Software
- Mapear Modelos al Código
- Visión Ganeral
del Mapeo
- Actividades
- Optimización
- Se dirige al rendimiento de
los requisitos del modelo
del sistema.
- Cuatro
optimizaciones
sencillas
- Añadir asociaciones para optimizar las rutas de acceso
- Fuentes de Ineficiencia
- Recorridos repetidos de asociación
- Asociaciones muchos a muchos
- Atributos fuera de lugar
- Colapsar objetos en atributos
- Convertir clases en atributos para
reducir complejidad del modelo.
- Retrasar los cálculos costosos
- Objetos específicos caros (pesados) para crear,
su creación puede ser a menudo retrasada
hasta que se necesite su contenido real.
- Almacenar en caché los resultados de los cálculos costosos
- Reducción de cálculos en métodos cuyos resultados no cambian
con frecuencia, mediante el uso de un atributo privado.
- Implementar
asociaciones
- Se elabora mapa de
asociaciones a partir del
codigo fuente.
- Tipos de
Asociaciones
- Unidireccionales
uno-a-uno
- Bidireccionales
uno-a-uno
- Uno-a-muchos
- Muchos-a-muchos
- Cualificadas
- De clases
- Mapear Contratos a
Excepciones
- Se describe el comportamiento
de las operaciones cuando los
contratos se rompen.
- Incluye
- Comprobar condiciones previas
- Comprobar condiciones posteriores
- Comprobar invariantes
- Hacer frente a la herencia
- Esfuerzo de Codificación
- Aumento de las oportunidades de los defectos
- Código ofuscado
- Encontrar excepciones mediante
- Omitir la comprobación de
código para condiciones
posteriores e invariantes
- Centrarse en las interfaces del subsistema
y omitir el código de verificación asociado
con métodos privados y protegidos
- Centrarse en los contratos
de los componentes con la
vida más larga.
- Es decir, el código con más
susceptibilidad de ser
reutilizados y para sobrevivir a
liberaciones sucesivas
- Reutilización de código de
comprobación de restricción
- Mapear el modelo de clases a
un esquema de
almacenamiento
- Selección de una estrategia
de almacenamiento
persistente (BD, archivos,
etc.).
- Base de Datos
- Proceso de mapeo
- Mapear clases y atributos
- Mapeo de asociaciones
- Mapeo de relaciones de herencia
- Dos tipos
- Mapeo Vertical
- Mapeo Horizontal
- Transformación
- Tiene por objeto mejorar un aspecto del
modelo, mientras conserva todas sus
propiedades.
- Cuatro
tipos
- Transformaciones
de modelos
- Su proposito es simplificar u optimizar el modelo
original, con lo mas proximo al cumplimiento de
todos los requisitos en la especificación.
- Pueden ocurrir errores
- Medidas para evitarlo cada
transformación
- 1.- Debe abordar un solo criterio. 2.- Debe ser local.
3.- Se debe aplicar aislada de otros cambios. 4.- Debe
ser seguido por una etapa de validación.
- Refactorizaciones
- Es una transformación del código fuente que mejora su legibilidad o
modificabilidad sin cambiar el comportamiento del sistema.
- Ingeniería hacia adelante
- Su proposito es mantener una fuerte correspondencia entre
el objeto del diseño del modelo y él código, reduciendo así el
numero de errores y el esfuerzo de implementación.
- Ingeniería
Inversa
- Su proposito es volver a crear el modelo para un sistema existente,
ya sea porque el modelo se perdió o nunca fue creado, etc.
- Gestión de la Implementación
- Transformaciones de la Documentación
- Información perdida
en el proceso a
causa de
- Asociaciones de multiplicidad y colecciones
- Asociaciones de multiplicidad y
asociaciones enterradas
- Condiciones posteriores e invariantes
- Reducir problema mediante
- Para una transformación dada,
utilice la misma herramienta
- Mantenga los contratos en el código fuente,
no en el modelo de diseño de objetos
- Utilice los mismos nombres
para los mismos objetos
- Hacer transformaciones explícitas
- Asignación de Responsabilidades
- Papeles
- Arquitecto principal
- selecciona las
transformaciones que
deben aplicarse
sistemáticamente
- Enlace de arquitectura
- Es el responsable de la
documentación de los
contratos asociados a las
interfaces del subsistema
- Programador
- Es responsable de seguir las convenciones establecidas
por el arquitecto principal y en realizar la aplicación de
las transformaciones y convertir el modelo de diseño
de objetos en código fuente
- Pruebas
- ¿Qué son?
- Son el intento sistemático para
encontrar fallas de manera planificada
en el software implementado
- visión general de las actividades de prueba
- Planificación de Pruebas
- Asigna recursos y
horarios de la prueba.
- Pruebas de usabilidad
- Trata de encontrar fallas en el diseño de la
interfaz de usuario del sistema.
- Prueba de la unidad
- Trata de encontrar fallas en los objetos y/o subsistemas participantes
con respecto a los casos de uso del modelo de casos de uso.
- Pruebas de integración
- Es la actividad de búsqueda de fallas para probar
los componentes individuales en combinación.
- Culmina en
- Ensayo estructural
- Pruebas del sistema
- Pone a prueba todos los componentes juntos, vistos como un solo sistema para
identificar fallas con respecto a los escenarios de la declaración del problema, los
requisitos y objetivos de diseño identificados en el análisis y diseño de sistemas.
- integra
- Pruebas funcionales
- Pruebas de los requisitos de la
RAD y el manual de usuario.
- Llevado a cabo por
- Desarrolladores
- Pruebas de rendimiento
- comprueba los requisitos no funcionales
y de diseño adicional las metas del SDD.
- Llevado a cabo por
- Desarrolladores
- Pruebas de aceptación y control
- Para la instalación del sistema en contra del proyecto acuerdo.
- Hecho por
- Clientes
- Desarrolladores
- Conceptos
- Componente de prueba
- Es una parte del sistema que puede ser
aislado para la prueba. Un componente
puede ser un objeto, un grupo de
objetos, o uno o más subsistemas.
- Falla
- También llamado error o defecto, es un diseño o error de codificación
que puede causar comportamiento del componente anormal.
- Es una desviación entre la especificación y el comportamiento real.
- Estado erróneo
- Es una manifestación de un fallo
durante la ejecución del sistema.
- Caso de prueba
- Es un conjunto de insumos y resultados esperados
que ejerce un componente de prueba con el
propósito de causar fallas y la detección de fallas.
- Tiene cinco atributos
- name
- Nombre del caso de prueba.
- location
- Ruta completa del ejecutable
- input
- Datos o comandos
de entrada
- oracle
- Resultados esperados de pruebas
los cuales son comparados con los
obtenidos por las pruebas
- log
- Salida producida por la
prueba
- Clasificación
- Pruebas de caja negra
- Se centran en el
comportamiento
de entrada/salida
del componente.
- Pruebas de caja blanca
- Se centran en la estructura
interna del componente.
- Talón de prueba
- Es una implementación parcial de
los componentes en los que el
componente de la prueba depende.
- Sustituyen
- Partes del sistema
que faltan
- Piloto de pruebas
- Es una implementación parcial
de un componente que depende
del componente de prueba.
- Corrección
- Es un cambio a un componente. El propósito
de una corrección es reparar una falla
- Actividades
- Inspección de componentes
- Métodos
- David Parnas
- Revisión del diseño
- Elimina la reunión de inspección de todos
los miembros del equipo de inspección
- Michael Fagan
- Inspección de Fagan
- Pasos
- Información general
- Preparación
- Reunión de Inspección
- Re trabajo
- Seguimiento
- Se lleva a cabo por un equipo de desarrolladores,
entre ellos el autor del componente, un moderador
que facilita el proceso y uno o más revisores que se
encuentran fallas en el componente.
- Encuentra fallas en un componente individual a
través de la inspección manual de su código fuente
- Pruebas de usabilidad
- Tres tipos
- Prueba de Prototipo
- Los usuarios finales se presentan con un trozo de
software que implementa los aspectos clave del sistema.
- Tipos
- Horizontal
- Implementa
una sola capa
del sistema.
- Vertical
- implementa un caso de uso a través del sistema.
- Mago de Oz
- prototipo de interfaz de usuario en la
que un operador humano está detrás de
las escenas para tirar de las palancas
- Prueba del producto
- Es similar a la prueba de prototipo, excepto que una versión
funcional del sistema se utiliza en lugar del prototipo.
- Prueba de Escenario
- Uno o más usuarios se les presentan una visión
de un futuro escenario del sistema.
- Prueba de la unidad
- Más importantes
- Equivalencia
- Limites
- Ruta
- Basada en el estado
- Pruebas de integración
- Tpos
- Vertical
- Componentes son
integrados de acuerdo a
las funciones.
- Horizontal
- Componentes se
integran de
acuerdo con capas.
- Varios Enfoques
- Big Bang
- De abajo hacia arriba
- De arriba hacia abajo
- Sándwich
- Sándwich modificado
- Detectan las fallas que no han sido
detectadas durante las pruebas
unitarias centrándose en pequeños
grupos de componentes.
- Pruebas del sistema
- Se aseguran de que todo el sistema
cumple con los requisitos
funcionales y no funcionales.
- Actividades
- Pruebas funcionales
- Pruebas de rendimiento
- Pruebas piloto
- Pruebas de aceptación
- Pruebas de instalación
- Administración
- Describe la forma de gestionar las actividades de
prueba para minimizar los recursos necesarios.
- Se describe
- Planificación de pruebas
- A continuación, se describe
- Pruebas de D
- A continuación, se describen
- Asignación de Responsabilidades
- A continuación, se discuten
- Pruebas de Regresión
- Pruebas Automatizadas
- Pruebas basadas en modelos