Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Analisis y Diseño Oo - Clase 5
Analisis y Diseño Oo - Clase 5
ORIENTADO A OBJETOS
CON UML
2
Objetivos: Identificación de Clases
Usted podrá:
3
• Crear paquetes
• Crear diagramas de clase iniciales
¿Qué es un Análisis Casos de Uso?
El análisis casos de uso es el proceso de estudiar los
casos de usos para descubrir objetos y clases para el
desarrollo del sistema
4
• Las clases se agrupan en paquetes
• Objetos
5
• Descripción del estado de un objeto
• Entidades externas y/o Actores
• Otros
Filtrado de Sustantivos
Cuando se identifican sustantivos, debe estar
consciente de que:
6
• El lenguaje natural es muy ambiguo
7
Si SOLO se consideraran los sustantivos, ¿qué
pasaría?
8
El sistema determina que John tiene todos los pre-requisitos
necesarios al examinar el registro del alumno y lo agrega a la
lista de los cursos.
Cursos alternos
Número
9
Lista de cursos disponibles World History 200
Cursos primarios Registro de estudiante
English 101 Lista del curso
Introduction to Java Actividad
Programming 180
¿Qué¿Quésustantivossustantivosdebendeb
enfiltrarse?filtrarse?
Decisiones de Filtrado
John -- filtrado ( actor )
Número de ID 369523449 -- filtrado (propiedad del alumno)
Sistema -- filtrado (lo que se está construyendo)
Número -- filtrado (lo mismo que el numero id del alumno)
Semestre -- filtrado (estado -- cuando la selección aplica)
Semestre actual -- filtrado (igual que el semestre)
Horario -- candidato a objeto
10
Lista de cursos disponibles -- candidato a objeto
Cursos primarios -- filtrado (estado de un curso seleccionado)
English 101 -- candidato a objeto
Geology 110 -- candidato a objeto
World History 200 -- candidato a objeto
College Algebra 110 -- candidato a objeto
Decisiones de Filtrado
Cursos alternos -- filtrado (estado de un curso seleccionado)
Music Theory 110 -- candidato a objeto
Introduction to Java Programming 180 -- candidato a objeto
Prerequisitos necesarios -- filtrado (curso como otros cursos
identificados)
11
Actividad -- filtrado (Expresión en inglés)
Horario de estudiante -- filtrado (igual que el nuevo horario)
Información de cobro -- candidato a objeto
Cuatro cursos -- filtrado (información necesitada por la información de
cobro)
12
Geology 110 -- una oferta para un semestre
World History 200 -- una oferta para un semestre
College Algebra 110 -- una oferta para un
semestre
Music Theory 110 -- una oferta para un semestre
Introduction to Java Programming 180 -una oferta
para un semestre
13
Lista del curso -- lista de alumnos para una
oferta de curso específica
Creación de Clases
Los objetos entity encontrados se agrupan en
clases
14
Esto es sólo un intento inicial
<<Entity>>
StudentRecord
Ejemplo:
<<Boundary>>
RegistrationForm
<<Boundary>>
ScheduleForm
Prototipo de Ventana
17
Los prototipos de ventanas pueden crearse para
comunicar la apariencia y percepción de la clase
boundary al usuario
etc.)
19
Clases Candidatas Boundary --
Escenario “Crear Horario”
El horario del alumno se imprime en el escenario “Crear
Horario”
21
• Cuanto más casos de uso y escenarios se desarrollen, pueden
eliminarse, dividirse o combinarse las clases de control
23
Tarjetas Responsabilidad- Colaboración
de Clases
Las clases también pueden descubrirse usando tarjetas
responsabilidad-colaboración de clases (Class-Responsibility-
Collaboration Cards, CRC)
Introducidas por Ward Cunningham y Kent Beck at OOPSLA en 1989
24
• Un colaborador es una clase cuyos servicios necesitan una
responsabilidad
Responsabilidades Colaboraciones
Una
sesión de tarjeta CRC
Un grupo de personas ejecutan un escenario
25
Se crea una tarjeta para cada objeto en el escenario
tarjetas
27
• Todas las clases tienen nombre significativos, específicos del
dominio
29
• Se agregan notas y/o scripts de ser necesario
Diagrama de Secuencias para el
Escenario “Crear Horario”
:Forma :Forma :Administrador
: Catalogo
Inscripcion Horario Inscripcion
:Student
6: obtener lumno,
1: introducir id
cursos semestre,
2: validar
desplegar
4: crear 5:
os
7:mostrar cursos
8: seleccionar curs
cursos)
9: enviar
crear horario
10: (a
30
11: pre- )
obt
ene requi
r lo
s sit
os
requi
( c
12: sitos
pre urs
to
-
o )
13 ma
:
nibl
di dos
sp
o e? ( c
o
ar
15:
crea
r
mp
rim
ir
(h
16: i ora
17: r 31
cre
Diagrama de Secuencias para el Escenario
“Crear Horario”(cont.)
:Administrador :Registro :Informació :
Inscripcion : Cursos Alumno :Horario :Impresora n Cobro Sistema
Cobro
LOOP en todas las ofertas de curso
32
Diagrama de Colaboración para el
Escenario “Crear Horario”
33
¿Qué es un Paquete?
34
Un paquete es un mecanismo de propósito general
para organizar elementos en grupos
Nombre del
paquete
etiquetada
35
Paquetes en el Sistema de Inscripción
Las clases en el Sistema de Inscripción se pueden agrupar
en tres paquetes:
• University Artifacts, Business Rules, e Interfaces
UniversityArtifacts
• Schedule, Catalogue, CourseOffering, StudentRecord,
CourseRoster, y Billing Information
BusinessRules
• RegistrationManager
Interfaces
36
• RegistrationForm, ScheduleForm, BillingSystem, and
Printer
37
• Vista de una clase, sus atributos y operaciones
• Vista de una jerarquía de herencia
Interfaces Business
Rules
University Artifacts
38
Clases
Diagrama de Principal de
University Artifacts
Catalogue CourseOffering
BillingInformation
StudentRecord
39
Schedule
CourseRoster
Printer
RegistrationForm ScheduleForm
40
Diagrama de Clases Principal de
Business Rules
RegistrationManager
42
Objetivos: Relaciones
Usted podrá:
• Nombrar los dos importantes tipos de relaciones entre clases:
asociación y agregación
43
• Definir asociación y representarla en diagramas de clases
• Usar nombres de asociación y nombres de rol para clarificar las
asociaciones
La Necesidad de Relaciones
Todos los sistemas abarcan varias clases y objetos
44
Los objetos contribuyen al comportamiento del sistema
colaborando unos con otros
• Asociación
• Agregación
45
Asociaciones
Una asociación es una conexión semántica bi-direccional
entre clases
• Esto implica que hay una liga entre objetos entre las clases
asociadas
44
Navegación
Una asociación es una relación bi-direccional
• Dada una instancia de RegistrationManager hay un objeto
asociado Course
47
<< entity
<<control>> >>
RegistrationManager Course
Nombrando Asociaciones
Una asociación se debe nombrar para esclarecer su
significado
48
<<control>> maneja << entity
RegistrationManager >>
Course
Definición de Roles
Un rol denota el propósito o capacidad en la que una
clase se asocia con otra
Los nombres de roles son típicamente sustantivos o
frases con sustantivo
49
• En uno o en ambos extremos de una asociación se pueden
tener roles
Person Teacher
Course
Asociaciones Múltiples
Puede existir más de una asociación entre dos clases
50
esta inscrita en
¿Modelo buenobuenooomalo?malo?
51
Multiplicidad es el número de instancias de una clase
relacionada a UNA instancia de otra clase
52
Indicadores de Multiplicidad
Cada extremo de una asociación tiene indicadores de
multiplicidad
Indica el numero de objetos que participan en la relación
Muchos
*
Exactamente uno
1
Cero o más
0..*
Uno o más
1..*
Cero o uno
0..1
Rango específico
..4
51
Ejemplo: Multiplicidad
La multiplicidad expone varias hipótesis ocultas sobre el
problema que se está modelando
54
Teacher
Person Course
1 1..*
Teacher
Course
0..* 1
¿Qué¿Quéleledice esteestediagrama?diagrama?
55
Agregación
La agregación es una forma especializada de asociación en
la que un todo se relaciona con sus partes
• La agregación es conocida como la relación “parte de” o
“contiene a”
Una agregación se representa como una asociación con un
diamante en el extremo de la liga, del lado de la clase que
denota el agregado ( todo )
La multiplicidad se representa de la misma manera que
otras asociaciones
<<boundary>> <<boundary>>
RegistrationForm ScheduleForm
1 1
56
Pruebas de Agregación
¿Se usa la frase “parte de” para describir relaciones?
• Una Puerta es “parte de” un Carro
¿Asociación o Agregación?
Si dos objetos están estrictamente limitados por una
relación complementaria
• La relación es un agregación
58
Curriculum Course Student
1 1..* 0..* 3..10
Asociaciones Reflexivas
En una asociación reflexiva, se relacionan los objetos de la
misma clase
59
Course
0..*
Pre-requisite 0..*
Agregaciones Reflexivas
1
ProductPart
60
Un objeto ProductPart está “compuesto de” cero o más objetos
ProductPart
Clase de Asociación
62
Una clase de asociación se usa para mantener dicha
información
63
Sólo se permiteuna clase de asociaciónpor asociación
Student 1..* Course
3-10
grade
Student 1 Course
grade 3-10
Student 1 Course
3-10
grade
Calificadores
Un calificador es un atributo o grupo de atributos cuyos
valores dividen el conjunto de objetos relacionado a un
objeto a través de una asociación
Department Professor
EmployeeID
1 1
65
Dado un objeto Department y un valor para un Employee ID hay
exactamente un objeto Professor
Department Professor
Title
Dado un objeto Department y un
1 1..* valor para Title hay un conjunto de
objetos Professor
Restricciones
66
{Ordered by
Professor employeeid} is a member of Department
1..* 1
1 1
{Subset}
is head of
Identificación de Asociaciones y
Agregaciones
Deben examinarse los escenarios para determinar si una
relación debe existir entre dos clases
Dos objetos pueden comunicarse solo si se “conocen” entre ellos
Las asociaciones y/o agregaciones proporcionan una ruta de
comunicación
67
despliega
crea
¿Asociación o Agregación?
68
RegistrationFormy ScheduleFormestánmuyligadas
-- una ScheduleFormes “partede” la RegistrationForm
<<boundary>> <<boundary>>
RegistrationFor
m ScheduleForm
1 1
1
ScheduleFormy
RegistrationManager
sonindependientes 1
RegistrationManager
Relaciones de Paquetes
Los paquetes se relacionan unos con otros a través de una
relación de dependencia
69
Interfaces
Si una clase en un paquete
“habla” con una clase en otro Business Rules
Durante el diseño:
• Se refinan y actualizan las estimaciones de multiplicidad
• Se avalúan y refinan las asociaciones y agregaciones
• Se evalúan y refinan las relaciones de paquetes
• Se maduran los diagramas de clases
University
Artifacts
72
de Interfaces
<<boundary>> <<boundary>>
RegistrationForm ScheduleForm
1 1
1
1
1
<<control>>
RegistrationManager 1
(de BusinessRules) <<entity>>
Catalogue
1 (de UniversityArtifacts)
1
<<boundary>>
BillingSystem
73
Actualización del Diagrama de Clases
74
de University Artifacts
<<boundary>> <<entity>>
ScheduleForm Course
(de Interfaces) agrega alumno a
1
0..4
1
1
1
<<control>>
1 RegistrationManager
<<entity>> (de Business Rules)
Catalogue
1 1 1 accesa
Agrega alumno a
crea 1 <<entity>>
1
<<entity>> StudentRecord
CourseRoster 1
<<entity>>
Schedule
75
Actualización del Diagrama de Clases
de Business Rules
<<entity>>
<<boundary>> CourseRoster
ScheduleForm (de UniversityArtifacts)
(de Interfaces)
1 1
agrega alumno a
1
1
<<boundary>> 1 1 <<controller>>
BillingSystem RegistrationManager
(de Interfaces) 1 agrega alumno a
1 1 <<entity>>
accesa crea 0..4 Course
(de UniversityArtifacts)
1
1
<<entity>> <<entity>>
StudentRecord Schedule
(de UniversityArtifacts) (de UniversityArtifacts)
76
Ejercicio: Relaciones
77