Beruflich Dokumente
Kultur Dokumente
Proyecto Integrador de
Ingeniera de Software
Introduccin
Qu es Ingeniera de Software ?
Bicicleta
Tam.del cuadro
Se hace una
Tam. De la rueda
abstraccin que
marchas
resulta en
material
Cambiar marcha()
mover()
reparar()
Introduccin
Orientacin a Objetos
Qu es el anlisis?
Es el estudio de un dominio que da como resultado los
modelos que describen sus caractersticas estticas y
dinmicas. Se centra en las cuestiones del que en lugar
del como. ESPACIO DEL PROBLEMA
Pone nfasis en una investigacin del problema y los
requisitos, en vez de ponerlos en una solucin.
Anlisis es un trmino amplio, es ms adecuado calificarlo
como anlisis de requisitos (un estudio de los requisitos) o
anlisis de objetos (estudios de objetos del dominio)
Qu es el anlisis orientado a objetos?
Es un mtodo de anlisis que examina los requisitos desde la
perspectiva de las clases y objetos que se encuentran en el
vocabulario del dominio del problema (Booch 1994)
Introduccin Anlisis
Diseo:
ESPACIO DE LA SOLUCIN
Objeto LIBRO Titulo Atributo
GetCap(int c) Operacin
Proceso de Desarrollo de
Software
Requerimientos Sistema Software
del usuario
Proceso de desarrollo de software:
Motivacin
Hoy en da la tendencia del software es hacia sistemas
ms grandes y complejos. Esta tendencia tambin ha
sido influenciada por el extensivo uso del internet para
intercambiar todo tipo de informacin. Queremos
software que est mejor adaptado a nuestra
necesidades, aunque ste sea cada vez ms complejo.
En resumen queremos cada vez ms.
Tambin lo queremos ms rpido, el tiempo para
construirlo es otro factor importante. Nuestra demanda
de software complejo y poderoso no concuerda con el
cmo ser desarrollado dicho software. Hoy en da, la
gente desarrolla software usando mtodos que fueron
usados desde hace 35 aos.
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 mtodo comn, un proceso que:
Centrado en la arquitectura
Iterativo e incremental
El PU conducido por casos de uso
Ejemplo: uso de un cajero automtico.
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 interaccin de este tipo es un caso de
uso.
El PU conducido por casos de uso
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
anlisis de requisitos.
En el PU, un artefacto es el trmino general para
cualquier producto del trabajo: cdigo, grficos
Web, esquema de base de datos, documento de
texto, diagramas, modelos, etctera.
Nos centraremos en 3 disciplinas: modelado del
negocio, requisitos y diseo.
Disciplinas del PU (flujos de trabajo)
Modelado del negocio
Anlisis
Modelo de
anlisis
Diseo
Modelo de Modelo de
diseo distribucin
Implementacin
Modelo de
implementacin
Prueba
Modelo de
pruebas
Buenas prcticas del PU adicionales
Lo fundamental para apreciar y aplicar el PU es el desarrollo iterativo
(fijando iteraciones cortas) y adaptable.
Uso de tecnologas de objetos (A/DOO Y POO).
Abordar cuestiones de alto riesgo en las primeras iteraciones.
Involucrar continuamente a los usuarios para evaluacin,
retroalimentacin y requisitos.
Construir en las primeras iteraciones una arquitectura que constituya
un ncleo 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 gestin de configuraciones.
Modelo arquitectnico de capas
La tienda FOO _ X
Articulo ID
Interfaz Menor atencin
Cantidad
Introducir art. Etc.
Introduccin:
Prevemos una aplicacin punto de venta (PDV) tolerante a fallos de prxima
generacin, PDV Nueva Era, con flexibilidad para poder soportar variaciones en
las reglas del negocio del cliente, mltiples mecanismos de terminal e interfaz
de usuario y la integracin con mltiples sistemas de terceras partes.
Enunciado del Problema:
Los sistemas PDV tradicionales son inflexibles, intolerantes a fallos, y difciles
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 planificacin y medidas, entre otras cuestiones. Esto
afecta a los cajeros, encargados de almacn, administradores del sistema y a la
gestin empresarial.
Ejemplo Nueva Era: Visin (parcial)
Enunciado de la posicin en el mercado del producto:
-- Resumen conciso de a quin est dirigido el producto.
Alternativas y competencia:
Descripcin del personal involucrado:
Objetivos de alto nivel y problemas claves del personal
involucrado: despus de llevar a cabo un taller de requisitos se
identificaron los siguientes objetivos y problemas claves:
. . .
Ejemplo Nueva Era: Visin (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
Introduccin:
Este documento es el repositorio de todos los requisitos del PDV Nueva
Era que no se capturan en los casos de uso.
Funcionalidad:
(Funcionalidad comn entre muchos casos de uso)
Registro y gestin 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: Especificacin Complementaria (parcial)
Seguridad
Todo uso requiere la autenticacin de los usuarios.
Facilidad de uso
Factores humanos
El cliente ser capaz de ver la informacin en un gran monitor, por tanto:
Se debe ver el texto fcilmente a una distancia de 1 metro.
Evitar colores asociados con formas comunes de daltonismo.
El cajero est mirando a menudo al cliente o los artculos, no a la pantalla
de la computadora, por tanto, se deben comunicar las seales y avisos con
sonidos, en lugar de slo mediante grficos.
Fiabilidad:
Capacidad de recuperacin
Si se produce algn fallo al usar un servicio externo, intentar solucionarlo
con una solucin local para no obstante, completar una venta. Se necesita
mucho mas anlisis aqu .
Rendimiento
Los compradores quieren completar el proceso de ventas muy rpido. Un
cuello de botella potencial es la autorizacin de pagos externa. El objetivo
es conseguir la autorizacin en menos de 1 minuto el 90% de las veces.
Ejemplo Nueva Era: Especificacin Complementaria (parcial)
Interfaces
Interfaces y hardware destacable
Monitor con pantalla tctil.
Escner lser de cdigo de barras.
Impresora de recibos.
Lector de tarjetas de crdito/dbito.
Interfaces software
Para los sistemas de colaboracin externos (inventario, contabilidad, ) se
requieren diversas interfaces.
Reglas del dominio (negocio)
. ..
Visin, especificacin complementaria, casos de
uso, Qu va primero?
Lista actor-semntica
:Sistema
:Cajero
crearNuevaVenta()
introducirArt(artID, cantidad)
El *[..] indica
Descripcin, total que la caja es
para iterar
* [ms artculos]
finalizarVenta() Va l o r d e r e t o r n o
asociado con el
mensaje anterior,
Total con impuestos ignora la
presentacin y el
medio
realizarPago(cantidad)
Abstraccin que
Cambio devuelto, recibo representa
entrada de datos,
mediante un
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 cdigo del
artculo
Descripcin, total
4. El sistema registra la lnea de venta y
presenta la descripcin y precio del finalizarVenta()
artculo y la suma parcial.
El cajero repite los pasos 3 y 4 hasta Total con impuestos
que se indique
5. El sistema muestra el total con los realizarPago(cantidad)
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.
1..* *
Asociacin Contenida-en Almacenado-en
1
1
Venta Tienda
fecha direccin
Atributos hora nombre
1
1 1
Pagada-mediante Alberga
1 1..*
La tarea fundamental en
el anlisis orientado a
objetos es realizar la Pago
Capturada-en Registro
descomposicin de un
d o m i n i o e n c l a s e s cantidad
conceptuales individuales 1
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 grfica de usuario.
Responsabilidades o mtodos.
Identificacin de clases conceptuales
En un desarrollo iterativo, incrementalmente se
construye un modelo del dominio sobre varias
iteraciones en la fase de elaboracin.
Cliente Encargado
Pago
CatalogoDeProductos EspecificacionDeProducto
Artefactos UP y evolucin 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
Visin c r
Especificacin c r
complementaria
Glosario c r
Diseo Modelo de diseo c r
Doc. de arq. de soft. c
Modelo de datos c r
Implementacin Modelo de Implem. c r r
Artefactos UP y evolucin temporal
Entorno Marco de c r
desarrollo
Influencia entre los artefactos
Asociaciones
Las asociaciones denotan alguna dependencia semntica
entre clases, son el tipo de relacin ms general, pero el
de mayor debilidad semntica1.
Nombre
Expresin de multiplicidad
Navegabilidad
Asociaciones Multiplicidad
El valor de la multiplicidad indica cuntas
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 relacin en el
software, queremos asegurar que una
instancia de Articulo siempre se
Multiplicidad
relacione con del concreta
una instancia rol de
Tienda, de otra forma, indica un error o
corrupcin 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 restriccin de diseo
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 asociacin en base al siguiente
formato:
NombreTipo-FraseVerbal-NombreTipo
1..*
Pagada-mediante
Venta Pago
1 1
Asociaciones e Implementacin
Durante el Modelado del Dominio, una
asociacin NO es una declaracin sobre el flujo
de datos, variables de instancia o conexiones
entre objetos en una solucin software.
Registra-venta-de
- - Identifique que asociacin sirve :
P Cajero
El atributo registroActual en la clase Cajero no es
e nombre
deseable porque su tipo tiene la intencin de ser un
registroActual
o Registro, que no es un tipo de atributo simple (nmero o
r string).
M Cajero Registro
ej nombre 1 numero
o Utiliza
r 1
Atributos
Otro ejemplo:
No es atributo simple
P Vuelo
M Vuelo Aeropuerto
ej 1 Vuela-
o a 1
rLa restriccin de que el tipo de los atributos en el modelo del dominio sea
un tipo de dato simple no implica que los atributos C++ o Java slo deban
ser tipos de datos primitivos o simples.
Aplicando esta gua a los atributos del modelo del dominio del punto de
venta se obtiene:
El atributo direccin debe ser una clase no primitiva Direccin 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 dgito
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 descripcin ms detallada del
comportamiento del sistema.
:Sistema
:Cajero
crearNuevaVenta()
introducirArt(artID, cantidad)
Estos eventos de entrada del
Descripcin, total sistema invocan operaciones
del sistema.
* [ms artculos]
El evento del sistema
CrearNuevaVenta() invoca
finalizarVenta() una operacin del sistema
d e n o m i n a d a
c r e a r N u e v a Ve n t a y a s
Total con impuestos sucesivamente.
Sistema
CrearNuevaVenta()
introducirArt(artID, cantidad)
finalizarVenta()
realizarPago(cantidad)
Sistema::creaNuevaVenta()
pre: <sentencias en OCL>
post_
Contratos expresados con OCL