Professional Documents
Culture Documents
Análisis
Contratos
Temario
• ¿Qué es un Contrato?
• Para qué sirve un Contrato
• Materiales para un Contrato
• Secciones del Contrato
• Cómo escribir un contrato
• Running Example
• Para Reflexionar
• Ejercicio Running Example
Sesión 1 2
1
¿Qué es un Contrato?
• El Contrato es un documento que describe lo que
una operación se propone lograr
– Suele redactarse en un estilo declarativo, enfatizando lo que
sucederá y no cómo se conseguirá.
– Los contratos suelen expresarse a partir de los cambios de
estado de las precondiciones y de las poscondiciones.
– Puede elaborarse un contrato tanto para un método de una
clase, como para una operación más global del sistema, aunque
por ahora nos concentramos en su uso para las operaciones
globales del sistema.
• El contrato de operación del sistema describe
cambios del estado del sistema total cuando se llama
una de sus operaciones.
Sesión 1 3
Sesión 1 4
2
Materiales para un Contrato
• Para describir los Contratos de las Operaciones
Globales del Sistema, necesitamos:
– Un producto de trabajo que describa cuáles son esas
operaciones
– Un producto de trabajo que nos indique dónde podemos
registrar el estado resultante de las operaciones
Sesión 1 5
Sesión 1 6
3
Materiales para un Contrato: Modelo Dominio
– Describe entidades
Certificado emite RNP
del Dominio
+certificado 0..1
Representante Electronico
0..1
1 +rnp
tiene
*+unidades
– Permite registrar
Registro Comercio
+repsElectronicos
tiene
+sociedad
1
Unidad RNP
cambios en el estado
registra
respalda Modificador
Sociedad
+capitalEnterado: Integer
+capitalPorEnterar: Integer
pertenece
del sistema, a través
Escritura
+modificacion
1 +modificador
1
de:
realiza +sociedad 1 +sociedad
valida
1 0..*
+modificaciones tiene tiene
• Creación/Eliminación
de Instancias de las
Modificacion
+socios * *
+modificacion +representantes
RegistroBitacora
1
genera
Socio
+participacionCapital: Integer
Representante Legal
Entidades
+participacionUtilidad: Integer
Sesión 1 7
Secciones de un Contrato
• Nombre
– Nombre de la operación
• Parámetros
– Parámetros recibidos por la operación, indicando tipo de dato
• Responsabilidades
– Descripción informal de las responsabilidades que debe cumplir la
operación
• Tipo
– Describe quién provee la operación
• Estamos viendo operaciones globales del sistema, por lo tanto el tipo
es “Sistema”
• Referencias Cruzadas
– Referencias a Requerimientos Funcionales o Casos de Uso
relacionados con la operación
Sesión 1 8
4
Secciones de un Contrato
• Notas
– Detalles de implementación de la operación, por ejemplo, un
determinado algoritmo
• Excepciones
– Comportamiento de la operación ante casos excepcionales
• Salida
– Retorno esperado de la operación, indicando tipo de dato si es
necesario
• Precondiciones
– Descripción informal de las responsabilidades que debe cumplir la
operación
• Poscondiciones
– Estado del Sistema después de la operación
Sesión 1 9
Sesión 1 10
5
Cómo escribir un Contrato
• Después de la sección de Responsabilidades, la parte más
importante del contrato son las post-condiciones, que estipulan
cómo cambió el sistema tras la operación.
• Las post-condiciones se expresan dentro del modelo de
dominio
– ¿Qué instancias es posible crear? La repuesta es: las provenientes
del modelo de dominio
– ¿Qué asociaciones es posible formar? La repuesta es: las que
están en el modelo de dominio
Sesión 1 11
Sesión 1 12
6
Running Example: Desde Diagrama de Casos de Uso…
<<extend>>
<<extend>>
Mantener Sociedad Mantener Representantes Legales
Funcionario <<extend>>
<<extend>>
Emitir Giro
Confirmar Cambios
<<extend>>
Pagar Giro
<<extend>>
<<include>>
Contribuyente
Consultar Modificaciones
Sociedad
Representante Electrónico
Sesión 1 13
Sesión 1 14
7
Running Example:…a CU Expandido - Curso Normal
Curso Normal de los eventos
Acción del actor Respuesta del Sistema
1. El contribuyente solicita Mantener
Representantes Legales
2. El sistema muestra los Representantes
Legales de la Sociedad del Contribuyente
3. El contribuyente escoge una opción:
•Si desea Agregar un Representante Legal,
ver subsección “Agregar Representante
Legal”
•Si desea Eliminar un Representante Legal,
ver subsección “Eliminar Representante
Legal”
4. El contribuyente confirma los cambios de
Representantes
5. El sistema almacena cambios de
Representantes
Sesión 1 15
Sesión 1 16
8
Running Example: Antes del DSS
• Al revisar el detalle del ingreso de un Representante
Legal, vemos una interacción con el Sistema de
Personas del RNP
– Necesitamos modificar nuestro Diagrama de Casos de Uso
Mantener Sociedad
Contribuyente <<extend>>
Sesión 1 17
ASR : System
: Contribuyente : Personas
1 : mantenerRepresentantesLegales()
2 : obtenerRepresentantes()
3 : agregarRepresentante()
4 : ingresarRutRepresentante()
5 : obtenerPersona()
6 : ingresarFechaInicioRepresentacion()
7 : confirmarCambios()
8 : guardarRepresentante()
Sesión 1 18
9
Running Example: Antes de los contratos
Sesión 1 19
Sesión 1 20
10
Running Example: Contratos
Contrato agregarRepresentanteLegal
Nombre agregarRepresentanteLegal
Parámetros Sociedad
Responsabilidades Crear un nuevo Representante Legal para la Sociedad indicada
por parámetro
Tipo Sistema
Referencias Cruzadas CU Mantener Representantes
Notas Nuevo Representante se crea sólo en memoria
Excepciones No aplica
Salidas Representante Legal creado
Precondiciones La Sociedad indicada como parámetro existe en el sistema
Poscondiciones Se creó una nueva instancia de RepresentanteLegal
Se asoció el nuevo RepresentanteLegal a la Sociedad de
parámetro
Sesión 1 21
Parámetros rut
Responsabilidades Obtener una instancia de clase Persona desde el Sistema de
Personas de RNP, a través de su RUT
Tipo Sistema
Referencias Cruzadas CU Mantener Representantes
Notas Rut sin dígito verificador
Sesión 1 22
11
Para Reflexionar
Sesión 1 23
Sesión 1 24
12
Referencias
• [LARMAN]
– Larman, Craig.
– Applying UML and Patterns. An Introduction to
Object Oriented Analysis and Design.
– Prentice Hall, 1998.
Sesión 1 25
13