Documente Academic
Documente Profesional
Documente Cultură
Proyecto Integrador de
Ingeniería de Software
Introducción
¿ Qué es Ingeniería de Software ?
Bicicleta
Tam.del cuadro
Se hace una
Tam. De la rueda
abstracción que
marchas
resulta en
material
Cambiar marcha()
mover()
reparar()
Introducción
Orientación a Objetos
¿Qué es el análisis?
Es el estudio de un dominio que da como resultado los
modelos que describen sus características estáticas y
dinámicas. Se centra en las cuestiones del “que” en
lugar del “como”.
ESPACIO DEL PROBLEMA
Pone énfasis en una investigación del problema y los
requisitos, en vez de ponerlos en una solución.
“Análisis” es un término amplio, es más adecuado
calificarlo como análisis de requisitos (un estudio de los
requisitos) o análisis de objetos (estudios de objetos del
dominio)
¿Qué es el análisis orientado a objetos?
Es un método de análisis que examina los requisitos desde
la perspectiva de las clases y objetos que se encuentran
en el vocabulario del dominio del problema (Booch 1994)
Introducción Análisis
Diseño:
ESPACIO DE LA SOLUCIÓN
Objeto LIBRO Titulo Atributo
GetCap(int c) Operación
Plane
visualization of
domain concept tailNumber domain concept
Proceso de Desarrollo de
Requerimientos Software
Sistema Software
del usuario
Proceso de desarrollo de software:
Motivación
Hoy en día la tendencia del software es hacia sistemas
más grandes y complejos. Esta tendencia también ha
sido influenciada por el extensivo uso del internet para
intercambiar todo tipo de información. Queremos
software que esté mejor adaptado a nuestra
necesidades, aunque éste sea cada vez más complejo.
En resumen queremos cada vez más.
También lo queremos más rápido, el tiempo para
construirlo es otro factor importante. Nuestra demanda
de software complejo y poderoso no concuerda con el
cómo será desarrollado dicho software. Hoy en día, la
gente desarrolla software usando métodos que fueron
usados desde hace 35 años.
Proceso de desarrollo de software
La comunidad de desarrollo de software
necesita una manera de controlar el
trabajo. Se necesita un proceso que
integre las muchas facetas del desarrollo
de software.
Proceso de desarrollo de software
Necesitamos un método común, un proceso que:
Centrado en la arquitectura
Iterativo e incremental
El PU conducido por casos de
uso
Ejemplo: uso de un cajero automático.
El usuario inserta una tarjeta, responde a las
preguntas que emite el cajero en su pantalla y
recibe una suma de efectivo.
En respuesta a la tarjeta del usuario y sus
preguntas, el sistema realiza una secuencia de
acciones que provee al usuario un resultado
de valor, llamado retiro de fondos.
Una interacción de este tipo es un caso de
uso.
El PU conducido por casos de
uso
Un caso de uso es una pieza de
funcionalidad en el sistema que da al usuario
un resultado de valor.
Los casos de uso capturan los
requerimientos funcionales.
Todos los casos de uso juntos, construyen el
modelo de casos de uso el cual describe la
funcionalidad completa del sistema.
El PU conducido por casos de
uso
Los casos de uso no solo son una herramienta
para especificar los requerimientos de un
sistema; también conducen su :
Diseño,
Implementación y,
Prueba.
Es decir,
versiones
Un ciclo con sus fases y sus iteraciones
The UP Disciplines
Phases
Process Disciplines Inception Elaboration Construction Transition
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Disciplines
Configuration Mgmt
Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Iterations
Disciplinas del PU (flujos de trabajo)
Informalmente una disciplina es un conjunto de
actividades (y artefactos relacionados) en un
área determinada como las actividades en el
análisis de requisitos.
En el PU, un artefacto es el término general
para cualquier producto del trabajo: código,
gráficos Web, esquema de base de datos,
documento de texto, diagramas, modelos,
etcétera.
Nos centraremos en 3 disciplinas: modelado del
negocio, requisitos y diseño.
Disciplinas del PU (flujos de
trabajo)
Modelado del negocio
Análisis
Modelo de
análisis
Diseño
Modelo de Modelo de
diseño distribución
Implementación
Modelo de
implementación
Prueba
Modelo de
pruebas
Buenas prácticas del PU
adicionales
Lo fundamental para apreciar y aplicar el PU es el desarrollo
iterativo (fijando iteraciones cortas) y adaptable.
Uso de tecnologías de objetos (A/DOO Y POO).
Abordar cuestiones de alto riesgo en las primeras iteraciones.
Involucrar continuamente a los usuarios para evaluación,
retroalimentación y requisitos.
Construir en las primeras iteraciones una arquitectura que
constituya un núcleo central consistente.
Verificar la calidad continuamente; pruebas muy pronto, con
frecuencia y realistas.
Aplicar casos de uso.
Modelar software visualmente (UML).
Gestionar los requisitos con cuidado.
Manejar peticiones de cambio y gestión de configuraciones.
Modelo arquitectónico de capas
La tienda FOO _ X
Articulo ID
Interfaz Menor atención
Cantidad
Introducir art. Etc.
Introducción:
Prevemos una aplicación punto de venta (PDV) tolerante a fallos de próxima
generación, PDV Nueva Era, con flexibilidad para poder soportar variaciones
en las reglas del negocio del cliente, múltiples mecanismos de terminal e
interfaz de usuario y la integración con múltiples sistemas de terceras partes.
Enunciado del Problema:
Los sistemas PDV tradicionales son inflexibles, intolerantes a fallos, y difíciles
de integrar con sistemas de terceras partes. Esto da lugar a problemas en el
oportuno procesamiento de las ventas, en el establecimiento de procesos
mejorados y con los datos de contabilidad e inventario precisos y oportunos
para dar soporte a la planificación y medidas, entre otras cuestiones. Esto
afecta a los cajeros, encargados de almacén, administradores del sistema y a
la gestión empresarial.
Ejemplo Nueva Era: Visión (parcial)
Enunciado de la posición en el mercado del producto:
-- Resumen conciso de a quién está dirigido el producto.
Alternativas y competencia:
Descripción del personal involucrado:
Objetivos de alto nivel y problemas claves del personal
involucrado: después de llevar a cabo un taller de requisitos se
identificaron los siguientes objetivos y problemas claves:
Objetivo de alto Prioridad Problemas e inquietudes Soluciones actuales
nivel
Realizar un Alta Se reduce la velocidad cuando se Los productos PDV
procesamiento de aumenta la carga. existentes permiten el
ventas rápido, Pérdida de la capacidad de procesamiento básico
robusto e integrado procesamiento de las ventas si los de ventas pero no
componentes fallan abordan estos
Imposibilidad de adaptar las reglas problemas
de negocio a requisitos únicos.
…….
…. …. …… ….
Ejemplo Nueva Era: Visión (parcial)
Objetivos a nivel de usuario:
Los usuarios (y los sistemas externos) necesitan un sistema para
satisfacer sus objetivos:
•Cajero: procesar las ventas, gestionar las devoluciones, abrir y cerrar
caja.
•Administrador del sistema: gestionar los usuarios, gestionar la
seguridad, gestionar las tablas del sistema.
•Sistema de actividad de ventas: analizar los datos de las ventas.
•…..
Perspectiva del producto:
El PDV Nueva Era residirá normalmente en tiendas. Proporcionará
servicios al usuario y colaborará con otros sistemas
<actor>
<actor> <actor>
Sistema de
Serv. de Calculador
actividad de
Invocar autorización de
ventas Invocar
servicios de pagos impuestos
Cajero servicios
PDV
<actor> <actor>
<actor>
Sistema de Sistema de
Sistema de
rec. inventarios
contabilidad
humanos
Administrador Encargado de
del sistema tienda
Ejemplo Nueva Era: Visión (parcial)
Resumen de beneficiarios:
Característica soportada Beneficio del personal involucrado
Funcionalmente, el sistema proporcionará Servicios de punto de venta rápidos y
todos los servicios típicos que requiere la automáticos
organización de las ventas…..
Introducción:
Este documento es el repositorio de todos los requisitos del PDV Nueva
Era que no se capturan en los casos de uso.
Funcionalidad:
(Funcionalidad común entre muchos casos de uso)
Registro y gestión de errores
Registrar todos los errores en almacenamiento persistente.
Reglas de negocio conectables
En varios puntos de los escenarios de varios casos de uso (pendientes de
ser definidos) soportar la capacidad de adaptar la funcionalidad del
sistema con un conjunto arbitrario de reglas que se ejecutan en ese punto
o evento.
Ejemplo Nueva Era: Especificación
Complementaria (parcial)
Seguridad
Todo uso requiere la autenticación de los usuarios.
Facilidad de uso
Factores humanos
El cliente será capaz de ver la información en un gran monitor, por tanto:
•Se debe ver el texto fácilmente a una distancia de 1 metro.
•Evitar colores asociados con formas comunes de daltonismo.
El cajero está mirando a menudo al cliente o los artículos, no a la pantalla
de la computadora, por tanto, se deben comunicar las señales y avisos con
sonidos, en lugar de sólo mediante gráficos.
Fiabilidad:
Capacidad de recuperación
Si se produce algún fallo al usar un servicio externo, intentar solucionarlo
con una solución local para no obstante, completar una venta. Se necesita
mucho mas análisis aquí ….
Rendimiento
Los compradores quieren completar el proceso de ventas muy rápido. Un
cuello de botella potencial es la autorización de pagos externa. El objetivo
es conseguir la autorización en menos de 1 minuto el 90% de las veces.
Ejemplo Nueva Era: Especificación
Complementaria (parcial)
Interfaces
Interfaces y hardware destacable
•Monitor con pantalla táctil.
•Escáner láser de código de barras.
•Impresora de recibos.
•Lector de tarjetas de crédito/débito.
Interfaces software
Para los sistemas de colaboración externos (inventario, contabilidad, …) se
requieren diversas interfaces.
Reglas del dominio (negocio)
ID Regla Grado de variación Fuente
REGLA1 Se requiere la firma de Se solicita la “firma” de los La política de todas
pagos a crédito compradores, en 2 años los las compañías de
clientes solicitarán la firma autorización de
en aparato digital y en 5
crédito
años la nueva firma digital
única soportada por la ley
americana
……. …..
Visión, especificación complementaria, casos de
uso, ¿Qué va primero?
No es útil ser estricto en el orden de algunos artefactos.
Durante la creación de los diferentes artefactos de requisitos
se produce una sinergia en la que el trabajo de uno influye y
ayuda a clarificar otros. Una secuencia recomendada es:
Lista actor-semántica
:Sistema
:Cajero
crearNuevaVenta()
introducirArt(artID, cantidad)
El *[..] indica
Descripción, total que la caja
es para iterar
* [más artículos]
Abstracción que
Cambio devuelto, recibo representa
entrada de
datos, mediante
Escenario simple de Procesar ventas en
efectivo. :Cajero :Sistema
1. El cliente llega a la terminal PDV crearNuevaVenta()
2. El cajero inicia una nueva venta
introducirArt(artID, cantidad)
3. El cajero introduce el código del
artículo
Descripción, total
4. El sistema registra la línea de venta y
presenta la descripción y precio del finalizarVenta()
artículo y la suma parcial.
El cajero repite los pasos 3 y 4 hasta Total con impuestos
que se indique
realizarPago(cantidad)
5. El sistema muestra el total con los
impuestos calculados.
Cambio devuelto, recibo
6. El cajero le dice al cliente el total y
pide que le pague.
7. El cliente paga y el sistema gestiona
el pago.
…
Regresando al Diagrama de
Clases del Dominio
Concepto u objeto LineadeVenta Registro-venta-de
Articulo
del dominio cantidad
0..1 1
1..* *
Asociación Contenida-en Almacenado-en
1
1
Venta Tienda
fecha dirección
Atributos hora nombre
1
1 1
Pagada-mediante Alberga
1 1..*
La tarea fundamental en
el análisis orientado a
objetos es realizar la Pago Registro
descomposición de un Capturada-en
dominio en clases cantidad
conceptuales 1
individuales u objetos.
Diagrama de Clases del
Dominio
Los siguientes elementos no son adecuados
en un Diagrama de Clases del Dominio:
Artefactos de software, tales como una
ventana o una base de datos, a menos
que el dominio que esté siendo modelado
sea de conceptos de software tales como
un modelo de interfaz gráfica de usuario.
Responsabilidades o métodos.
Identificación de clases
conceptuales
En un desarrollo iterativo, incrementalmente se
construye un modelo del dominio sobre varias
iteraciones en la fase de elaboración.
Cliente Encargado
Pago
CatalogoDeProductos EspecificacionDeProducto
Artefactos UP y evolución temporal
Disciplina Artefacto Inic. Elab Const Trans
I1 E1..En C1..Cn T1..T2
Modelado del Modelo del Dominio c
negocio
Requisitos Modelo de casos de c r
uso
Visión c r
Especificación c r
complementaria
Glosario c r
Diseño Modelo de diseño c r
Doc. de arq. de soft. c
Modelo de datos c r
Implementación Modelo de Implem. c r r
Artefactos UP y evolución temporal
Pruebas Modelo de c r r
pruebas
Entorno Marco de c r
desarrollo
Influencia entre los artefactos
Asociaciones
Las asociaciones denotan alguna dependencia
semántica entre clases, son el tipo de relación más
general, pero el de mayor debilidad semántica1.
Nombre
Expresión de multiplicidad
Navegabilidad
Asociaciones Multiplicidad
El valor de la multiplicidad indica cuántas
instancias se pueden asociar legalmente con
otra, en un momento concreto, en lugar de a lo
largo de un periodo de tiempo.
Almacena
Tienda Articulos
1 *
Si se implementa esta relación en el
software, queremos asegurar que una
instancia de Articulo siempre se
Multiplicidad
relacione con delconcreta
una instancia rol de
Tienda, de otra forma, indica un error o
corrupción en los elementos software o
datos.
Asociaciones Multiplicidad
El valor de la multiplicidad depende de
nuestros intereses como modeladores y
desarrolladores de software, porque pone
de manifiesto una restricción de diseño
que será reflejada en el software.
Ofrecido
Automovil LoteAutos
1..40
T Una a cuarenta
5
T Exactamente 5
3, 5, 8 Exactamente 3, 5 o 8
T
Asociaciones Nombre
Asigne el nombre una asociación en base al siguiente
formato:
NombreTipo-FraseVerbal-NombreTipo
1..*
Pagada-mediante
Venta Pago
1 1
Asociaciones e Implementación
Durante el Modelado del Dominio, una
asociación NO es una declaración sobre el flujo
de datos, variables de instancia o conexiones
entre objetos en una solución software.
Registra-venta-de- -
Identifique que asociación sirve :
Especificacion
LibroMayor CatalogoDe delproducto • para recuperar una
Productos Contiene especificación de producto a
1 1..* partir de un ID del artículo.
1 1
1
Registra
0..1 Usado-por 1 • para recuperar el detalle de la
Describe
Lineaventa * venta
Tienda *
Almacena Articulo • para conocer la venta actual,
1 1
* 1 ..* generar el total, imprimir recibo.
1..*
Contenido-en 1
Registra-completas Alberga
1 1
Venta * Registro
Capturada-en Asociaciones necesito - conocer
1 1
Son aquellas asociaciones para las que
el conocimiento de la relación necesita
Pagada-mediante 1 1 Iniciado-por 1
3 Registra-ventas-en
- conservarse durante algún tiempo.
1 1 1
P Cajero
e
o
El atributo registroActual en la clase Cajero no es
nombre
r
registroActual
deseable porque su tipo tiene la intención de ser un
Registro, que no es un tipo de atributo simple (número o
string).
M
e Cajero Registro
1 Utiliza 1
j
nombre numero
o
r
Atributos
Otro ejemplo:
No es atributo “simple”
P Vuelo
e
o destino Un aeropuerto de destino no es realmente
r
una cadena de texto.
M
e Vuelo Aeropuerto
1 Vuela-a 1
j
o
r
Aplicando esta guía a los atributos del modelo del dominio del punto de
venta se obtiene:
El atributo dirección debe ser una clase no primitiva Dirección por tener
secciones diferentes.
El atributo precio debe ser clase no primitiva si se utiliza diferentes
unidad monetaria.
El atributo idarticulo debe ser clase no primitiva si usa los esquemas
(UPC, EAN) que permite identificar fabricante, producto, pais y
dígito de control.
Contratos
Los casos de uso son el principal mecanismo del
Proceso Unificado para describir el
comportamiento del sistema y, normalmente es
suficiente. Sin embargo en algunas ocasiones
se necesita una descripción más detallada del
comportamiento del sistema.
:Sistema
:Cajero
crearNuevaVenta()
introducirArt(artID, cantidad)
Estos eventos de entrada
del sistema invocan
Descripción, total operaciones del sistema.
Sistema
CrearNuevaVenta()
introducirArt(artID, cantidad)
finalizarVenta()
realizarPago(cantidad)
Sistema::creaNuevaVenta()
pre: <sentencias en OCL>
post_ …
Contratos expresados con OCL