Académique Documents
Professionnel Documents
Culture Documents
ORIENTADO A OBJETOS
CON UML
1
Auditorio y Objetivos
n
Dirigido a
n
Objetivos
n
Contenido
n
Introduccin
case)
Desarrollo de escenarios
Objetos y Clases
Contenido
n
Interaccin de Objetos
Definicin de Clases
en el sistema
Definicin de paquetes
Creacin de diagramas de clase
Relaciones
Operaciones y Atributos
Contenido
n
Herencia
Comportamiento de Objetos
Homogeneizacin
Arquitectura
Contenido
n
Mecanismos Clave
Diseo de relaciones
Contenido
n
Resumen
Lectura recomendadas
Introduccin
Objetivos: Introduccin
n
Algunos ejemplos extremos, PERO hay varios desastres similares en escala menor
10
11
12
13
14
Un paradigma nico
Estabilidad
15
Ejemplo: Ventas
Orden
Objeto
Medio de entrega
16
Vendedor
Cliente
Corporativo
Producto
Individual
Vehiculo
Trailer
Tren
17
Efecto en el Cambio de
Requerimientos
Ventas
Vendedor
Cliente
Corporativo
Producto
Individual
Vehiculo
Trailer
Tren
18
19
Sistemas Inmersos
20
Cmputo Cliente/Servidor
21
En la Re-ingeniera
Software Existente
22
OOA
Desarrollo del modelo
de requerimientos
OOD
Agregar decisiones de
diseo y de detalle
23
Qu es UML?
n
Disponible en http:\\www.rational.com
24
Entradas al UML
Booch
Rumbaugh
Jacobson
Fusion
Meyer
Descripcin de operaciones,
Numeracin de mensajes
Antes y despus de
las condicioones
UML
Harel
Mapas de estado
Embley
Clases nicas,
Vista de alto-nivel
Gamma, et.al
Wirfs-Brock
Shlaer - Mellor
Odell
Responsabilidades
25
Publicacin del
Estndar 1.0 Dic96
Retroalimentacin
UML 1.0
Estandardizacin
Booch93
Otros mtodos Booch91
Industrializacin
Unificacin
OMT-2
OMT-1
OOSE
Fragmentacin
26
Beneficios de UML
n
27
28
29
Usted podr:
30
Qu es Desarrollo Iterativo e
Incremental?
n
Beneficios
31
Inicio
Elaboracin
Construccin
Transicin
Inicio
Elaboracin
Construccin
Transicin
tiempo
32
Fase de Inicio
n
Propsito:
Productos requeridos:
Productos opcionales:
33
Fase de Elaboracin
n
Propsito
34
Productos
35
Fase de Construccin
n
Propsito
Productos
Fase de Transicin
n
Propsito
Productos
Qu es una Iteracin?
n
Anlisis de requerimientos
Diseo
Implementacin
Pruebas
Documentacin
Iteracin de
Arquitectura
Iteracin de
Arquitectura
Iteracin de
Desarrollo
Iteracin de
Desarrollo
Iteracin de
Desarrollo
Iteracin de
Transicin
Iteracin de
Transicin
38
Iteracin N
Evaluar la iteracin
Revisar plan del
proyecto
Riesgos eliminados
Revisar riesgos minimizados o nuevos
39
Planeacin de Iteraciones
n
implementar en la iteracin
Los evaluadores, para desarrollar planes y procedimientos
de prueba para la iteracin
Al final de la iteracin
Determinar los riesgos que han sido reducidos o eliminados
Determinar la posibilidad de nuevos riesgos descubiertos
Actualizacin del plan de iteraciones siguientes
40
I n c e p t io n
E la b o ra t i o n
C o n s t r u c ti o n
T r a n s it i o n
R e q u ir e m e n ts
A n a l ys is
A rc h it e c t u re
Level
D e s ign
C la ss L e v e l
I m p le m e n t a ti o n
Te s t
S u p p o r ti n g A c t iv it i e s
P ro je ct M a n a g e m e n t
P ro ce s s C o n fig u r a tio n
p re l im i n a r y
it e ra ti o n (s )
i te ra tio n it e ra ti o n
#1
# 2 . ..
i te ra ti o n
#n
i te ra t io n ite ra t io n
#n+1
# n + 2 ...
i te ra t io n
#m
i te ra ti o n
# m + 1 . ..
It e r a t io n s
41
42
43
44
Qu es el Comportamiento del
Sistema?
n
45
Conceptos Importantes en el
Modelado de Casos de Uso
n
Actor
Caso de Uso
46
Actores
Actor
49
Identificacin de Actores:
Preguntas tiles
n
Instancias de Actores
Insert card
1
4
7
*
Ivan acta
como un
actor
2
5
8
0
3
6
9
#
Tom acta
como un
actor
Actor
caso de uso
51
Insert card
1
4
7
*
2
5
8
0
3
6
9
#
Charlie
Operador
Charlie como
cliente
Cliente
52
Sistema ATM
Cajero
53
Casos de Uso
Caso de Uso
54
56
Banco
Ejecucin de Reportes
Operador
de ATM
Mantener Mquina ATM
57
58
59
de uso?
No describe los detalles de la interfaz de usuario
Describe el flujo bsico de eventos
Cualquier flujo de eventos alterno
60
Desarrolladores: documento de
comportamiento del sistema
63
Sistema
de Cobro
Inscripcin a Cursos
Peticin de Catlogo de
Curso
Profesor
Seleccin de Cursos a
Impartir
Alumno
Mantener
Informacin de
Profesor
Mantener Informacin de
Alumno
Mantener Informacin
de Cursos
Administrador
Generar Catlogo
64
65
68
Flujos de Excepcin
E-1: Se introdujo un nmero id de alumno invlido. El usuario
puede re-introducir el nmero id o finalizar el caso de uso.
E-2: Se introdujo un semestre invlido. El usuario puede reintroducir el semestre o finalizar el casos de uso.
E-3: El nmero de curso no es vlido. El usuario puede reintroducir el nmero vlido o finalizar el caso de uso.
E-4: Los pre-requisitos no fueron satisfechos por el usuario.
Se le informa al alumno que un curso no puede ponerse en el
horario y el motivo. De ser posible, se sustituye con un curso
alterno. El caso de uso continua.
70
71
Escenarios secundarios
Excepciones del escenario primarios
72
Escenarios Secundarios
n
74
75
Sugerencia:
n
Escenarios Primarios
Dedicar aproximadamente el 80% del tiempo a estos
escenarios
Escenarios Secundarios
Elaborar algunos de los escenarios secundarios
interesantes y de alto riesgo
76
77
78
Objetos y Clases
79
Usted podr:
Definir y dar ejemplos de objetos
Definir y dar ejemplos de clases
Describir las relaciones entre clases y objetos
Definir estereotipos
80
Qu es un objeto?
n
Entidad fsica
Trailer
Entidad conceptual
Proceso Qumico
Entidad de software
Lista Ligada
81
Estado
Comportamiento
Identidad
82
Joyce Clark
567138
March 21, 1987
Tenured
Profesora Clark
83
a + b = 10
84
Profesor J Clark
imparte Algebra
Profesor J Clark
imparte Algebra
Profesor J Clark
imparte Algebra
85
Ejemplo de Clase
Clase
Curso
Estructura
Nombre
Ubicacin
Das ofrecidos
Horas de crditos
Hora inicio
Hora trmino
a + b = 10
Comportamiento
Agregar un alumno
Borrar un alumno
Obtener catlogo de cursos
Determinar si est lleno
87
Clases de Objetos
n
88
Profesor Smith
Profesor
Profesor Mellon
Clase
Profesor Jones
89
Algebra 101
Art History
Chemistry
Spanish 101
90
91
Busque
Busqueel
elQU
QUyyno
noel
elCMO
CMO
93
Nombre: StudentInformation
Nombre: Course
Al
Alirirestudiando
estudiandoms
msel
elproblema,
problema,se
sedescubren
descubrenclases
clasesyyse
se
mejoran
mejoranlas
lasdefiniciones
definicionesde
delas
lasanteriores,
anteriores,agregndolas
agregndolasal
al
diccionario
diccionariodel
delmodelo
modelo
94
Representacin de Clases
n
a + b = 10
Professor
Profesor Clark
95
Divisiones de Clase
n
Professor
name
empID
Professor
create( )
save( )
delete( )
change( )
Professor
Professor
96
Estereotipos
n
n
n
Clases Boundary
n
98
<<boundary>>
BillingSystem
99
Clases Entity
n
sistema
Los valores de sus atributos son proporcionados
generalmente por un actor
Su comportamiento es independiente de los alrededores
<<entity>>
Catalogue
100
Clases Control
n
n
objetos controlados
Controla elementos actuales para clases controladas
Es, la mayor parte de las veces, la implementacin de un
objeto intangible
<<control>>
RegistrationManager
101
102
Interaccin de Objeto
103
Usted podr:
Usar diagramas de secuencia y colaboracin para
mostrar las interacciones de los objetos
104
Qu es un Diagrama de
Interaccin?
n
Diagramas de Secuencias
Un diagrama de secuencias estn ordenado de acuerdo
al tiempo
Diagramas de Colaboracin
Un diagrama de colaboracin incluyen el flujo de datos
105
Qu es un Diagrama de
Secuencias?
n
El diagrama muestra
Un Diagrama de Secuencias
John :
Alumno
forma de
Inscripcin
forma de
horario
cursos
disponibles
1: introducir id
2: validar id
3: introducir semestre actual
4: crear horario nuevo
5: desplegar
6: obtener cursos
107
Cursos : Catlogo
disponibles
: Catlogo
Objetos
Objetos y Clases
Clases
108
cursos
disponibles
Obtener cursos
109
Qu es el Enfoque de Control?
n
110
Enfoque de Control
John : Student
forma de
inscripcin
1: introducir id
forma de
horario
cursos
disponibles
2: validar id
5: desplegar
6: obtener cursos
111
Notas
n
forma de
horario
cursos
disponibles
obtener cursos
112
Scripts en Diagramas de
Secuencias
n
113
Ejemplo de Script
forma de
horario
un curso
obtener prerequisito
114
Diagramas de Colaboracin
n
Objetos
Ligas entre objetos (relaciones)
Mensajes intercambiados entre objetos
Flujo de datos entre objetos, si hay alguno
115
Ejemplo de un Diagrama de
Colaboracin
2: validar id
John : Alumno
clases disponibles
forma horario
6: obtener cursos
116
Representacin de Objetos en un
Diagrama de Colaboracin
n
Ingles
101
Ingles 101:
Curso
:Curso
Objetos
Objetos y Clases
Clases
117
Representacin de Ligas en un
Diagrama de Colaboracin
n
formaHorario : Forma
un curso : Curso
118
Anotaciones de Liga
n
Notacin de Liga
Mensaje
Message
points
from client to
Mensaje
supplier
2: obtener cursos
Objeto
Client
object
1: obtener prerequisitos
lista curso
formaHorario : Forma
un curso : Curso
Data return
Liga
Objeto
Supplier
object
120
121
Identificacin de Clases
122
Usted podr:
Discutir el anlisis de casos de usos
Identificar objetos y clases llevando a cabo el anlisis
casos de usos
Crear paquetes
Crear diagramas de clase iniciales
123
124
Objetos
Descripcin del estado de un objeto
Entidades externas y/o Actores
Otros
125
Filtrado de Sustantivos
n
126
Lnea
Lneaprincipal:
principal: Cada
Cadasustantivo
sustantivodebe
debeconsiderarse
considerarseen
enel
elcontexto
contexto
del
deldominio
dominiodel
delproblema
problema----no
nopuede
puedeconsiderarse
considerarsepor
pors
smismo
mismo
127
John
Sistema
Semestre
Horario
Geology 110
College Algebra 110
Cursos alternos
Music Theory 110
Prerequisitos necesarios
Horario de estudiante
Informacin de cobro
Cuatro cursos
Sistema de cobro
n
n
n
n
n
n
n
n
n
n
n
Nmero de ID 369523449
Nmero
Semestre actual
Lista de cursos disponibles
Cursos primarios
English 101
Introduction to Java
Programming 180
World History 200
Registro de estudiante
Lista del curso
Actividad
Qu
Qu sustantivos
sustantivos deben
debenfiltrarse?
filtrarse?
129
Decisiones de Filtrado
n
Decisiones de Filtrado
n
Candidatos a Objetos en el
Escenario
n
Candidatos a Objetos en el
Escenario
n
133
Creacin de Clases
n
134
<<Entity>>
Schedule
<<Entity>>
Catalogue
<<Entity>>
CourseRoster
<<Entity>>
Course
<<Entity>>
StudentRecord
<<Entity>>
BillingInformation
135
Ejemplo:
Al alumno se le presentan diferentes opciones en el caso de
uso Inscripcin a Cursos
<<Boundary>>
ScheduleForm
137
Prototipo de Ventana
n
138
139
<<Boundary>>
BillingSystem
140
<<Control>>
RegistrationManager
143
Curso
Responsabilidades
Servicio proporcionado
Agregar un alumno
Colaboraciones
Alumno
145
del dominio
Cada clase tiene un pequeo grupo de colaboradores
No hay clases indispensables (una clase que colabora con
todos necesita ser redefinida)
La informacin para cada clase se ajusta bien en una
tarjeta de 3X5
Las clases pueden manejar un cambio en requerimientos
Diagramacin de Escenarios
n
:Forma
Horario
:Catalogo
:Administrador
Inscripcion
2: validar
3: introducir semestre
4: crear
5: desplegar
6: obtener cursos
7:mostrar cursos
8: seleccionar cursos
9: enviar
10: crear horario (alumno, semestre, cursos)
150
:Registro
Alumno
:Cursos
:Horario
:Impresora
:Informacin :Sistema
Cobro
Cobro
151
: Alumno
: ScheduleForm
2: validar id
1: introducir id
3: introducir semestre
4: crear horario
5: desplegar
15: crear
: Schedule
: RegistrationForm
: RegistrationManager
: BillingSystem
17: crear
: CourseOffering
: BillingInformation
: Printer
152
Qu es un Paquete?
n
153
Paquetes en el Sistema de
Inscripcin
n
UniversityArtifacts
BusinessRules
RegistrationManager
n
Interfaces
154
Qu es un Diagrama de Clases?
n
Business
Rules
University
Artifacts
156
CourseRoster
Catalogue
Schedule
CourseOffering
StudentRecord
157
RegistrationForm
ScheduleForm
158
RegistrationManager
159
161
Relaciones
162
Objetivos: Relaciones
n
Usted podr:
La Necesidad de Relaciones
n
Asociacin
Agregacin
164
Asociaciones
n
Esto implica que hay una liga entre objetos entre las clases
asociadas
<<entity>>
Course
165
Navegacin
n
<<control>>
RegistrationManager
<<entity>>
Course
166
Nombrando Asociaciones
n
maneja
<<entity>>
Course
167
Definicin de Roles
n
Teacher
Course
168
Asociaciones Mltiples
n
ensea
Course
esta inscrita en
169
CourseSelection
adds student to
Course
Modelo
Modelobueno
buenooomalo?
malo?
170
Indicadores de Multiplicidad
n
*
1
0..*
1..*
0..1
2..4
172
Ejemplo: Multiplicidad
n
Person
Teacher
Course
1
1..*
173
Qu significa Multiplicidad?
n
Course
0..*
Qu
Qule
ledice
diceeste
estediagrama?
diagrama?
174
Agregacin
n
<<boundary>>
ScheduleForm
1
175
Pruebas de Agregacin
n
176
Asociacin o Agregacin?
n
La relacin es un agregacin
n
Student
Course
1
1..*
0..*
3..10
Objetos independientes
177
Asociaciones Reflexivas
n
Course
0..*
Pre-requisite 0..*
Agregaciones Reflexivas
n
ProductPart
0..*
179
Clase de Asociacin
n
Student
0..*
Course
3-10
180
181
1..*
Course
3-10
grade
182
Student
grade
Course
3-10
Student
Course
3-10
grade
183
Calificadores
n
Department
EmployeeID
Professor
Department
Title
Professor
1..*
184
Restricciones
n
Department
is a member of
1
1..*
1
{Subset}
is head of
185
Identificacin de Asociaciones y
Agregaciones
n
aform:Registration
Form
aform:Schedule
Form
despliega
crea
theMgr:Registration
Manager
RegistrationForm
habla con
ScheduleForm
ScheduleForm
habla con
RegistrationManager
186
Asociacin o Agregacin?
RegistrationForm y ScheduleForm estn muy ligadas
-- una ScheduleForm es parte de la RegistrationForm
<<boundary>>
RegistrationForm
<<boundary>>
ScheduleForm
1
1
1
ScheduleForm y
RegistrationManager
son independientes
1
RegistrationManager
187
Relaciones de Paquetes
n
Interfaces
Business Rules
University
Artifacts
Durante el diseo:
Se
Se
Se
Se
Interfaces
Business
Rules
University
Artifacts
190
<<boundary>>
ScheduleForm
1
1
1
1
<<control>>
RegistrationManager
(de Business Rules)
1
<<entity>>
Catalogue
(de UniversityArtifacts)
1
<<boundary>>
BillingSystem
191
<<entity>>
Course
agrega alumno a
1
<<entity>>
Catalogue
1
<<control>>
RegistrationManager
(de Business Rules)
1
<<entity>>
CourseRoster
0..4
Agrega alumno a
1
crea
accesa
1
<<entity>>
StudentRecord
1
<<entity>>
Schedule
192
<<boundary>>
ScheduleForm
(de UniversityArtifacts)
(de Interfaces)
1
agrega alumno a
1
1
<<controller>>
RegistrationManager
1
1
crea
accesa
<<boundary>> 1
BillingSystem
(de Interfaces)
1
<<entity>>
StudentRecord
(de UniversityArtifacts)
agrega alumno a
<<entity>>
1
Course
0..4
(de UniversityArtifacts)
1
<<entity>>
Schedule
(de UniversityArtifacts)
193
Ejercicio: Relaciones
n
194
195
Operaciones y Atributos
196
Usted podr:
197
Qu es una operacin?
n
Una
Unaoperacin
operacindebe
debedesempear
desempearuna
unafuncin
funcinsimple
simpleyycohesiva
cohesiva
198
recibir renta
manejar cuenta
recibir lneaDeCrdito
examinar
tomarMedicina
irAlHospital
recibirFactura
199
Nombrando Operaciones
n
Ejemplos:
n
calculateBalance()
Pobremente nombrado
Indica que se debe calcular el balance -- esta es una
decisin de implementacin/optimizacin
getBalance()
Bien nombrado
Indica solamente el resultado
200
201
Ejemplo:
202
203
Despliegue de Operaciones
n
Course
getPrerequisite () : CourseList
204
registration
manager
a course
obtener prerequisito
registration
manager
a course
getPrerequisite():CourseList
205
Argumento en la operacin
Clase de retorno
n
Ejemplo:
getPrerequisite() : CourseList
addStudent(John : StudentInfo)
n
Descubriendo Relaciones
Adicionales
n
Ejemplo:
Qu es un atributo?
n
Valores de Atributo
n
Atrinutos
Nombre
Nmero de Identificacin
Materia que imparte
Sue Smith
567892
Matemticas
George Jones
578391
Biologa
209
Perspectiva de Banquero
Perspectiva de Doctor
nombre
direccin
fechaDeNacimiento
NumeroCuenta
nombre
direccin
fechaDeNacimiento
altura
peso
210
Despliegue de Atributos
n
211
Atributos Derivados
n
212
Tipo de Dato
Valor Inicial (Opcional)
n
213
Slo
Slomodele
modelelos
losatributos
atributosque
quesean
seanrelevantes
relevantesalaldominio
dominiodel
delproblema
problema
214
Course
description
215
Ejemplo
Despliegue de Atributos y
Operaciones
n
217
Encapsulado
n
Ejemplo: Encapsulado
changeOwnerName
deposit
accountNumber
nameOfBank
nameOfOwner
balance
generateStatement
219
221
222
Herencia
223
Objetivos: Herencia
n
Usted podr:
Definir y discutir herencia, generalizacin y
especializacin
224
Herencia
n
Relacin de Herencia
StudentInfo
Subclase
226
Consideraciones de Herencia
n
La relacin no se nombra
La multiplicidad no tiene sentido
n
Atributos
Operaciones
Relaciones
n
228
Atributos de Herencia
n
Car
Truck
Trucktiene
tienetres
tresatributos:
atributos:
licenseNumber
licenseNumber
weight
weight
tonnage
tonnage
Truck
tonnage
229
Operaciones de Herencia
n
Car
Truck
tonnage
getTax( )
Truck
Trucktiene
tienetres
tresatributos:
atributos:
licenseNumber
licenseNumber
weight
weight
tonnage
tonnage
yydos
dosoperaciones:
operaciones:
register()
register()
getTax()
getTax()
230
Relaciones de Herencia
n
Car
0..*
Truck
tonnage
getTax( )
dueo
1
Person
Trailer
Car
Carest
estrelacionado
relacionadocon
con
un
undueo
dueo
Truck
Truckest
estrelacionado
relacionado
con
conun
undueo
dueo
Truck
tambin
Truck tambintiene
tieneun
un
Trailer
Trailer
231
Generalizacin de Clases
n
Procedimiento de generalizacin
varias clases
Crear una superclase que encapsule el
comportamiento/estructura comunes
Las clases originales se hacen subclases de la superclase
nueva
Ejemplo de Generalizacin
Asset
BankAccount
Savings
Checking
Security
Stock
RealEstate
Bond
Incremento de
abstraccin
233
Especializacin de Clases
n
Procedimiento de Especializacin
Ejemplo de Especializacin
Asset
BankAccount
Savings
Checking
Security
Stock
RealEstate
Bond
Decremento
de
abstraccin
235
Jerarquas de Herencia
n
Incrementar la reutilizacin
236
Niveles de Abstraccin
Vehicle
GroundVehicle
Ford
Truck
AirVehicle
FixedWing
Clases
Clasesalalmismo
mismoalal
mismo
mismonivel
nivelde
de
herencia
herenciadeben
debenestar
estar
al
mismo
nivel
al mismo nivelde
de
abstraccin
abstraccin
Helicopter
237
Herencia Mltiple
FlyingThing
Animal
Herencia
mltiple
Airplane
Helicopter
Bird
Wolf
Horse
Bird
Birdhereda
heredade
deambos
ambosFlyingThing
FlyingThingyyAnimal
Animal
238
Use
Useherencia
herenciamltiple
mltipleslo
slocuando
cuandosea
seanecesario,
necesario,
yy
siempre
siemprecon
conprecaucin
precaucin!!
239
Herencia repetida
Animal
color
color
getColor
getColor
AnimateObject
color
FlyingThing
Animal
Bird
Cada
Cadalenguaje/ambiente
lenguaje/ambientede
deprogramacin
programacin
elige
modos
para
resolver
este
elige modos para resolver estetipo
tipode
de
dificultades
dificultades
Bird
240
Identificacin de Herencia
n
Tcnica de Adicin
Tcnica de Modificacin
Redefinir operaciones
Debe tener precaucin de no cambiar las semnticas
241
Las
Laspalabras
palabrasclaves
claveses
esun
unyytiene
tieneun
unayudarn
ayudarnaa
determinar
determinarla
larelacin
relacincorrecta
correcta
242
Window y Scrollbar
Window
Scrollbar
WindowWithScrollbar
Un
UnWindowWithScrollbar
WindowWithScrollbares
esun
unWindow
Window
Un
UnWindowWithScrollbar
WindowWithScrollbartiene
tieneun
unScrollbar
Scrollbar
Qu
Qurelaciones
relacionesdeben
debenusarse?
usarse?
243
Scrollbar
Window
WindowWithScrollbar
WindowWithScrollbar
Scrollbar
1
Un
UnWindowWithScrollbar
WindowWithScrollbares
esun
unWindow
Window
Un
UnWindowWithScrollbar
WindowWithScrollbartiene
tieneun
unScrollbar
Scrollbar
244
Agregacin
Palabras clave es un
Un objeto
Se representa con
una flecha
245
Qu es Metamorfosis?
n
Metamorfosis
1. Un cambio en forma, estructura o funcin; especialmente
el cambio fsico que sufren algunos animales, como el
renacuajo a rana
2. Cualquier cambio notorio, como en el carcter, apariencia
o condicin
Ejemplo de Metamorfosis
n
Part-timeStudent
Full-timeStudent
name
address
numberCourses
name
address
studentID
gradDate
247
Una Aproximacin
n
FulltimeStudent
studentID
gradDate
Qu
Qusucede
sucedesisiun
unalumno
alumno
de
demedio
mediotiempo
tiempodesea
desea
convertirse
convertirseen
enun
unalumno
alumno
de
tiempo
completo?
de tiempo completo?
ParttimeStudent
numberCourses
248
Metamorfosis
n
ParttimeClassification
0..1
Student
numberCourses
name
address
1
FulltimeClassification
0..1 studentID
gradDate
249
Metamorfosis (cont.)
Mary Smith
Joe Jones
Estudiante de tiempo completo Estudiante de medio tiempo
MarySmith : Student
1
: Full-timeClassification
JoeJones : Student
1
: Part-timeClassification
250
Metamorfosis (cont.)
n
: Student
: Parttime
Classification
: Fulltime
Classification
251
Metamorfosis y Herencia
n
Fulltime
studentID
gradDate
Classification
Parttime
numberCourses
252
Metamorfosis y Flexibilidad
n
ResidentInformation
dorm
room
roomKeyID
0..1
Student
name
address
Fulltime
studentID
gradDate
Classification
Parttime
numberCourses
253
Ejercicio: Herencia
n
254
255
Comportamiento de Objetos
256
Objetivos: Comportamiento de
Objetos
n
Usted podr:
n
n
n
Qu es un Diagrama de
Transicin de Estado?
n
Dibujo de Estados
n
State Name
259
Estado y Atributos
n
English101 : Course
numStudents = 7
numStudents >= 10
Closed
260
Estados y Ligas
n
Professor
0..*
Course
261
Estados Especiales
n
Estado
final
262
Eventos
n
Ejemplo:
263
Transiciones
n
Cancel course
Canceled
Add student
264
Condiciones de Seguridad
n
Open
Registration Complete
265
Acciones
n
Creation
Open
Add student
266
Envo de Eventos
n
Se muestra como:
^Class.event
Add student
Creation
Open
[ numStudents = 10 ]
^CourseReport.Create
report
Closed
267
Actividades
n
Una actividad
Closed
do: Report course is full
268
Dropping
do: ^CourseRoster.Drop student(Student)
269
Transiciones Automticas
n
Offered
Unassigned
do: Assign professor to course
Open
entry: Register a student
271
Estado Anidado
n
Initialize
Unassigned
addStudent/
numStudents = 0
Open
entry: Register a
student
cancelCourse
cancelCourse
registration closed[
Canceled
registration closed[
numStudents > = 3 ]
numStudents < 3 ]
[ numStudents = 10 ]
cancelCourse
Closed
do: Report
course is full
RegistrationComplete
do: Generate class
roster
273
Initialize
RegistrationComplete
do: Generate class roster
registration closed[
numStudents > = 3 ]
Unassigned
do: Assign professor to course
Add student / numStudents = 0
Open
registration closed[
numStudents < 3 ]
addStudent
[ numStudents = 10 ]
Canceled
Closed
cancelCourse
274
Suspend
Suspend
Resume
[ Course count = 4 ] /
Set course count to 0
[ Course count = 2 ]
Quit
H
Save
do: Save form
Submit
do: Submit form for processing
277
Donde iniciar...
n
Ejercicio: Comportamiento de
Objetos
n
clasificacin de pago
Hourly, Salaried, and Commissioned
La clasificacin de pago puede cambiar en cualquier momento
Las clasificaciones de pago se crean/borran despus de
entrar/salir del subestado
279
Ejercicio: Comportamiento de
Objetos (cont.)
n
subestado de empleado
Un empleado puede renunciar mientras este en cualquier
subestado de empleado
El registro de empleado se marca como terminado en este estado
281
Homogeneizacin
282
Objetivos: Homogeneizacin
n
Usted podr:
283
Qu es Homogenizacin?
n
Homogeneizar
mezclar en un conjunto de elementos de manera uniforma,
para homogeneizar
Websters New Collegiate Dictionary
284
Qu buscar?
n
Acoplamiento
Reutilizacin
Visibilidad
285
Combinacin de Clases
n
Department
1
1
0..*
Professor
name
address
tenureStatus
0..*
Teacher
name
address
0..*
Teacher
name
address
tenureStatus
287
288
Divisin de Clases
n
Ejemplo:
Student
name
address
phoneNumber
major
numStudentsinMajor
changeMajor()
Student
name
address
phoneNumber
changeMajor( )
0..*
Major
name
numberStudents
289
Eliminacin de Clases
n
Ejemplo:
n
290
: ProfCourse
Manager
: Course
: Professor
1: open
2: set prof id
3: set course
: Professor
CourseForm
4: process
: Professor
5: addProfessor ( )
6: addProfessor ( )
: Course
1: open
2: set prof id
7: quit
3: set course
4: process
5: addProfessor ( )
6: quit
291
Revisin de Consistencia
n
Reestructuracin de Paquetes
n
Ejercicio: Homogeneizacin
n
294
295
Diseo Arquitectnico
296
Usted podr:
Listar los atributos de una buena arquitectura
Explicar la arquitectura de 4+1 vistas
Explicar el propsito de los diagramas de componentes
Explicar el propsito de los diagramas de distribucin
297
Visin Arquitectnica
n
298
Mary Shaw
299
300
Dimensiones de la Arquitectura
del Software
n
302
n
n
Vista de Componentes
Funcionalidad
Administracin, reuso y
portabilidad del Software
Usuarios finales
Ingenieros de software
Entendimiento de
Utilidad
Vista de Procesos
Vista de Distribucin
Desempeo,
Disponibilidad,
Tolerancia de fallas
Desempeo, Disponibilidad
Tolerancia a fallas, Escalabilidad
Entrega e Instalacin
Integradores de Sistema
Ingenieros de Sistema
304
Vista Lgica
n
Foundation Classes
Foundation
Classes
global
306
Implicaciones de Dependencia
n
ClientPackage
SupplierPackage
307
Business
Rules
Cambiado a
Incoming
Interfaces
Business
Rules
Outgoing
Interfaced
309
Vista de Componentes
n
Qu es un componente?
n
Notacin de componente:
Component name
312
Diagramas de Componentes
n
Name 2
Name 1
Name 3
Name 2
313
Diagramas de Componentes
(cont.)
n
Ejemplo: Diagrama de
Componentes
Curriculum
Course
Curriculum
Course
315
Paquetes en la Vista de
Componentes
n
Notacin:
PackageName
316
Ejemplo.
MFC
RegistrationUser
Interface
Registration
System
317
RegistrationUser
Interface
Registration
System
MFC
RegistrationUser
Interface
Registration
System
319
Vista de Procesos
n
Componentes de Proceso
n
321
MyProcess.exe
Name1
Name1
Name2
Name2
322
Registration.exe
323
Vista de Distribucin
n
324
Diagrama de Distribucin
n
325
nombre
nodo
etiqueta
conexin
326
Este diagrama muestra dos nodos y los dispositivos con los que
se comunica el Sistema de Inscripcin
Sistema de
Inscripcin
Dormitorios
<<device>>
Edificio
Principal
<<device>>
Base de
Datos
Biblioteca
<<device>>
327
Procesos
n
Notacin:
Nombre de
Procesador
328
Tolerancia de fallas
...
330
331
Vista de Componente
Diagramas de Clases,
Diagramas de Secuencias
Diagramas de Componentes
Vista de proceso
Vista de Despliegue
Diagramas de Procesos
Diagramas de Distribucin
332
El documento incluye:
Fase de Elaboracin
Equipo de arquitectura
Arquitecto
Lderes Diseadores
Desarrolladores de
infraestructura
Equipo de Arquitectura
Arquitecto
Grupo de soporte
Equipo 1 de Aplicacin
Diseador lder
Ingenieros de
aplicacin
Equipo 2 de Aplicacin
Diseador lder
Ingenieros de
aplicacin
.
.
.
335
Beneficios de un Equipo de
Arquitectura
n
Documentos a entregar
Documento de arquitectura
Partes del documento de diseo de bajo nivel
Guas de diseo y programacin
Elementos de los planes de liberacin
Auditorias de diseo al sistema a liberar
337
338
Mecanismos Clave
339
Usted podr:
Describir algunos mecanismos claves especficos a OO
Explicar los elementos asociados con la interfaz a bases
de datos
340
Administracin de recursos
Deteccin/manejo/reporte de errores
Comunicacin interproceso
Envi de mensajes
Reutilizacin de software
342
Administracin de Recursos
n
1..*
File
SharedMemory
344
Los escenarios deben desarrollarse para cada caso de uso -tantos como sean necesarios para controlar a la mayora de las
situaciones normales y anormales
Objetos Persistentes
n
Almacenamiento Persistente
n
Jerrquicos
Red
Relacional (RDBMS)
Orientado a Objetos (ODBMS)
Tiempos de acceso
Capacidad de almacenamiento
Confiabilidad del sistema de almacenamiento
Acceso a datos existentes
persistentes
Adicin de atributos para manejar detalles de almacenamiento
del sistema
Clases adicionales para hacer interfaz con el DBMS
348
349
Herramientas de Desarrollo
Ver las herramientas para el diseo de la base de datos, modificacin
del esquema de las base de datos y navegacin, as como tambin
las herramientas de depuracin y afinacin de la base de datos
Facilidad de Migracin
Qu tan fcil/difcil es migrar al sistema de la base de datos?
351
Soporte Multi-usuario
353
name
address
discount
Tabla Customer
customerID
name
address
discount
354
Tabla Customer
customerID
name
address
discount
Tabla Order
0..*
Order
orderID
delivery
urgency
customerID
deliveryTime
urgency
355
Product
0..*
ingredientID
1..*
Ingredient
356
Tabla Order
orderID
SpecialOrder
startDate
endDate
StandingOrder
frequency
deliveryTime
urgency
Tabla SpecialOrder
orderID
endDate
startDate
357
358
Ventajas
No es tcnicamente retador para implementar
Desventajas
Los modelos OO y RDBMS no son separables
La funcionalidad CRUD no siempre es limpiamente heredable
360
Comportamiento de la Base de
Datos dentro de la Clase
: CurriculumManager
: Course
1: save ( )
Course
description
Course
Coursedebe
debetener
tenerconocimiento
conocimiento
de
la
base
de
datos
de la base de datos
save ()
361
Ventajas
El modelo OO es separable del modelo RDBMS
Existen herramientas disponibles para generar las clases de
interfaz bsicas a la base de datos
Desventajas
Ms tcnicamente retador de implementar
362
: Transaction
Manager
: DBCourse
: Course
1: saveCourse (Course)
2: save (Course)
3: getDescription ( )
4: makePersistent ( )
TransactionManager
TransactionManager
TransactionManager
separa
separalo
lolgico
lgico(Course)
(Course)
de
delo
lofsico
fsico(DBCourse)
(DBCourse)
Course
DBCourse
363
Ventajas:
Interfaz sin parches entre la aplicacin y la base de datos
Se necesita relativamente poco cdigo para hacer a los objetos
persistentes
Desventajas:
Riesgo ms alto de desarrollo ya que la tecnologa y producto de
ODBMS no son tan maduros como sus contrapartes de RDBMS
Deteccin de Errores
n
Manejo de Errores
n
Qu hace throw?
369
Elementos de Manejo de
Excepcin
n
371
372
Terminar el programa
Simplificar el cdigo
373
Reporte de Error
n
Comunicacin Interprocesos
n
ClassB
: ClassB
1: functionB ( )
functionB( )
375
Comunicacin Interprocesos
(cont.)
n
376
Estndares Distribuidos de OO
n
Clases Proxy
ClassA
ProxyClientB
ProxyServerB
ClassB
378
Container objects
Interfaces to databases
Actualizacin de Diagramas
n
380
GUI Widgets
Business
Rules
Foundations
global
Error
Handling
Incoming
Interfaces
University
Artifacts
Database
global
381
Diagrama de Secuencias
Actualizado
: Registrar
aForm :
CurriculumMgr
1: open
theManager :
CurriculumMgr
theCourse
: Course
anOffering
: (Course
dbMgr :
TransactionMgr
dbCourse :
DBCourse
dbOffering :
DBOffering
2: enter id
3: verify id
4: enter
5: create a
6: set number, name, description,
7: set number offerings, professor,
8: process
9: create course(number, name, description, credit hours, offerings,
10: create(number, name, description,
11: create offering(number, pofessor,
12: create(professor, time,
13: save
14: save(course)
15: get info
16: commit
17: save(offering)
18: get info
19: commit
382
383
384
Diseo de Clases
385
Usted podr:
Discutir decisiones de diseo de interfaz de usuario
Agregar clases de nivel de diseo para solucionar
problemas de diseo
386
Windows layouts
Nmero de ventanas
Manejo de eventos iniciados por los usuarios
387
Descubriendo de Requerimientos
de Interfaz
n
: Registrar
theManager :
CurriculumMgr
theCourse
: Course
anOffering
: (Course
dbMgr :
TransactionMgr
dbCourse :
DBCourse
dbOffering :
DBOffering
3: verify id
4: enter
5: create a
6: set number, name, description,
7: set number offerings, professor,
8: process
9: create course(number, name, description, credit hours, offerings,)
10: create(number, name, description,)
11: create offering(number, professor,)
12: create(professor, time,)
13: save
14: save(course)
15: get info
16: commit
17: save(offering)
18: get info
19: commit
389
Requerimientos de la Interfaz de
Usurio
n
Actor Registrar
Introduce la informacin necesaria para crear un Course y sus
ofertas
Decisiones de diseo
Una ventana que contenga todas las opciones disponibles para el
actor Registrar
391
Ventana de Course
392
393
Inscripcin a Course
registration
form
John :
Student
schedule
form
available
courses
1: enter id
2: validate id
3: enter current semester
4: create new schedule
5: display
6: get courses
7: select
394
Actor Student
Decisiones de diseo
395
396
Clases Utility
n
0..*
<<controller>>
RegistrationManager
Course
1
1..*
399
extern float
inchToCentimeter(float inch);
#ifndef UNIT_UTILITIES
#define UNIT_UTILITIES
extern float
centimeterToInch
(float centimeter);
class/*_utility*/ Unit_Utilities {
public:
static float inchToCentimeter(float inch);
static float centimeterToInch(float centimeter);
};
#endif // UNIT_UTILITIES
400
Clases Help
n
Ejemplo:
Aparicin de Patrones
n
Un Patrn
exitosas
Da como resultado sistemas ms fciles de mantener
Incrementa productividad
402
Adaptacin de Patrones
n
El Patrn Factory
creates
UserFactory
create (what)
RegistrationUser
1
Student
Professor
Registrar
La
Lacreacin
creacin(what)
(what)de
dela
laoperacin
operacinUserFactory
UserFactory
crea
el
tipo
correcto
de
RegistrationUser
crea el tipo correcto de RegistrationUser
404
Otros Patrones
n
406
407
408
Diseo de Relaciones
409
Usted podr:
n
410
Navegacin
n
Customer
Order
0..*
Customer
Customerpuede
puede
hablar
hablarcon
conOrder
Order
Order
Orderno
nopuede
puede
hablar
hablarcon
conCustomer
Customer
411
Decisiones de Navegacin
n
412
Preguntas de Navegacin
n
Supplier
Product
1..*
1..*
413
414
Supplier
Product
1..*
415
Order
OrderItem
1..*
416
Refinando Agregaciones
n
Por referencia
Por valor
417
418
Relaciones Por-Referencia
n
Catalogue
Course
1..*
419
Relaciones Por-Valor
n
OKButton
420
Relaciones de Dependencia
n
Supplier
Un
Unobjeto
objetoClient
Clientdepende
dependede
deun
unobjeto
objetoSupplier
Supplier
421
422
#include BillingSystem.h
void RegistrationManager::process(){
BillingSystem theInterface;
BillingSystem
423
Course
class Course;
class TransationManager {
public:
void saveCourse(Course&);
private:
};
424
Visibilidad de Objeto
n
425
Global
El objeto proveedor es un objeto global
Parmetro
El objeto proveedor es un parmetro de una operacin del objeto
cliente
Local
El objeto proveedor es declarado localmente
Campo
El objeto proveedor es un campo en el objeto cliente
426
Modelo de Anlisis
n
Diagrama de Clases
CurriculumController
Diagrama de Colaboracin
: CurriculumController
createCourse ()
1
1: saveCourse (Course)
1
TransactionManager
: TransactionManager
saveCourse (Course)
427
: TransactionManager
TransactionManager
saveCourse (Course&)
428
Visibilidad Global
static TransactionManager theManager;
class CurriculumController {
public:
void createCourse();
};
class Course;
void CurriculumController::createCourse() {
Course *aNewCourse;
theManager.saveCourse(aNewCourse);
};
429
1: saveCourse (Course)
: CurriculumController
n
P
G
: TransactionManager
CurriculumController
createCourse (TransactionManager&)
TransactionManager
saveCourse (Course&)
430
Visibilidad de Parmetro
class TransactionManager;
class Course;
class CurriculumController {
public:
void createCourse(TransactionManager&);
};
void CurriculumController::
createCourse(TransactionManager& theManager) {
Course *aNewCourse;
theManager.saveCourse(aNewCourse);
}
431
1: saveCourse (Course)
: CurriculumController
n
: TransactionManager
TransactionManager
saveCourse (Course&)
432
Visibilidad Local
#include TransactionManager.h;
class Course;
class CurriculumController {
public:
void createCourse();
};
void CurriculumController::createCourse() {
Course *aNewCourse;
TransactionManager theManager;
theManager.saveCourse(aNewCourse);
}
433
1: saveCourse (Course)
: CurriculumController
n
: TransactionManager
TransactionManager
saveCourse (Course)
434
Visibilidad de Campo
#include TransactionManager.h;
class Course;
class CurriculumController {
public:
void createCourse();
private:
TransactionManager theManager;
};
void CurriculumController::createCourse() {
Course *aNewCourse;
theManager.saveCourse(aNewCourse);
}
435
de
datos
Curriculum.
Un
TransactionManager
es
436
Course
createCourse ()
Student
1..*
0..4
1
DBCourse
TransactionManager
1
saveCourse (Course)
3..10
Professor
save (Course)
437
Decisiones de Diseo
n
438
Student
Course
3..10
TransactionManager
saveCourse (Course)
DBCourse
save (Course)
Professor
1
441
442
Implementacin de Asociaciones
con Multiplicidad de 1 o 0 a 1
n
Course
0..*
Teacher
Professor
class Professor;
class Course {
public:
// public info
private:
Professor *teacher;
};
443
Opcionalidad
n
Professor
teaching( )
0..*
444
List
445
Course
StudentList
1
Student
#include List.h
class Course {
public:
private:
List<Student>
students;
446
Student
3..10
447
Clase Asociacin
n
Course
Student
4
3..10
grade
448
449
Course
1
3..10
Report
grade
Student
4
450
Ejercicio
n
451
452
453
Usted podr:
Operaciones pblicas
Atributos
Operaciones protegidas
y privadas
455
+Acceso publico
#Acceso protegido
- Acceso privado
Course
-maxStudents
-name
+addStudent ()
+isFull ()
#determineCourseSize()
457
Representaciones de Atributo
n
Title : String
Author : String
LastRevised : Date = Today
458
Diseo
Course
- name : String
- description : DayType
- maxStudents : short = 0
459
Diseo de Operaciones
n
Durante el anlisis
Durante el diseo
460
Tipos de Operaciones
n
Funciones de administracin
Funciones de implementacin
Funciones de acceso
Funciones de ayuda
461
Operaciones de Administracin
n
Operaciones de Implementacin
n
463
Operaciones de Acceso
n
Operaciones de Ayuda
n
465
Anlisis
Diseo
Course
Course
+addStudent (newStudent)
466
467
Operacin pblica
protected:
int determineCourseSize();
Operacin protegida
private:
String name;
short maxStudents;
Atributos privados
};
469
Friendship (Amistad)
n
Atributos de C++
n
User-defined classes
471
Course
-description : char*
-name : char*
-creditHours : short
-maxStudents : short
private:
char *description;
char *name;
short creditHours;
short maxStudents;
};
472
private:
char *description;
char *name;
short creditHours;
short maxStudents;
dayType daysOffered;
};
473
#include UniversityPlace.h;
public:
class Course {
private:
public:
char *building;
short room;
private:
};
char *description;
char *name;
Course
-description : char*
-name : char*
-creditHours : short
-maxStudents : short
-daysOffered : DayType
-location : UniversityPlace
short creditHours;
short maxStudents;
dayType daysOffered;
UniversityPlace location;
};
474
475
Operaciones de Administracin en
C++
n
Constructores
n
Constructores de Copia
n
478
Constructor de Copia
(Por Omisin) Correcto
class Circle
{
public:
Circle(float x, float y, float r):
xPosition(x), yPosition(y), radius(r) {};
private:
float xPosition;
float yPosition;
float radius:
};
479
Qu sucede aqu?
class Employee {
public:
Employee(const char *n= );
~Employee () {delete []name;};
private:
char *name;
};
Employee::Employee(const char *n):
name(new char[strlen(n)+1]) {
strcpy(name,n);
}
480
481
Constructor de Copia
n
482
Inicializacin de Miembros
n
Indicacin:
Indicacin:Cmo
Cmose
seinicia
inicianame?
name?
483
Inicializacin de Miembros
n
484
class Employee {
public:
Employee(const String&);
private:
String name;
};
Employee::Employee(const String& n):
name(n) {}
485
Inicializacin de Miembros
n
Buen
Buenestndar
estndar
Siempre
Siempreusar
usarinicio
iniciode
demiembro
miembro
Cdigo
Cdigoms
msfcil
fcilde
deleer
leer
Cdigo
Cdigoms
msfcil
fcilde
demantener
mantener
486
Orden de Inicializacin
n
Qu sucede aqu?
extern String LookupEmployee(long);
class Employee {
public:
Employee(long);
private:
String name;
long id;
};
Employee::Employee(long i):
id(i), name(LookupEmployee(id)) {};
487
Orden de Inicializacin
n
Arreglar
n
Operaciones de C++
n
489
Apuntadores y Referencias
n
Una apuntador
Es una direccin
Puede cambiar para apuntar a otro objeto
Puede no estar iniciado
Puede ser nulo
Una referencia
493
Modificador Const
n
// copy constructor
not called
{
// cannot modify object
}
494
Tipos de Retorno
n
495
Ejercicio
n
496
497
Diseo de Herencia
498
Usted podr:
Refinar la jerarqua de herencia del nivel de anlisis para
incrementar el reuso
Jerarquas de Herencia
n
Subclass
500
Atributos, y/o
Operaciones, y/o
Asociaciones
n
SavingAccount
interestRate
interestRate
getPayment( )
getBalance( )
0..*
1..*
granted to
is owned by
Customer
1..*
1..*
502
Customer
1..*
1..*
La asociacin con
Customer se cambi a
superclase
getRate()
interestRate se hereda a
ambas subclases y debe
manejarse de forma
idntica
Mortgage
getPayment()
SavingsAccount
getBalance()
Ambos getPayment() y
getBalance() requieren
clculo del inters que es
llevado a cabo por el
mtodo heredado
getRate()
503
La terminologa de herencia es
Base Class
Derived Class
504
505
class base {
private:
int x;
};
class derived : public base {
private:
int z;
};
Objetos
aBase
aDerived
x
z
506
Polimorfismo
n
Ejemplo de Polimorfismo
Animal
talk ()
Lion
talk ()
Sin Polimorfismo
Tiger
talk ()
Con Polimorfismo
508
Polimorfismo y C++
n
Herencia y Destructores
n
Baseball
Baseball ()
~Baseball
511
main()
{
Ball *myBall;
myBall = new Baseball();
delete myBall;
512
514
Clases Abstractas
n
Lion
Tiger
talk ()
talk ()
Todos
Todoslos
losobjetos
objetos
son
sonya
yasea
sealeones
leonesoo
tigres;
tigres;no
nohay
hay
instancias
instanciasdirectas
directas
de
deAnimal
Animal
515
516
Animal
Abstract
talk ()
Lion
talk ()
Tiger
talk ()
El
ElAnimal
Animalno
nonecesita
necesita
especificar
especificarelelmtodo
mtodotalk()
talk()
Los
Losmtodos
mtodosdeben
debenser
ser
provistos
provistospor
porLion
LionyyTiger
Tigerpara
para
talk()
talk()yyestos
estosmtodos
mtodosdeben
deben
conformar
conformaralalprotocolo
protocolodefinido
definido
en
enAnimal
Animal
517
520
Principio de Substitucin de
Liskov
n
Menos formal:
n
Estas
Estasreglas
reglasrepresentan
representanel
elestilo
estiloISA
ISAde
deprogramacin
programacin
522
Siguen
Siguenestas
estasclases
claseselelestilo
estilo
de
deprogramacin
programacinISA?
ISA?
Stack
523
Una
Unasubclase
subclase(Clase
(Clasederivada)
derivada)de
deestilo
estiloISA
ISANO
NO
debe
debetener
tenerms
msrestricciones
restriccionesque
quesu
susuperclase
superclase
524
Factoring
n
List
Stack
insertBottom (Item)
removeBottom ()
insert (Item,
position)
525
Delegacin
n
List
Stack
push (Item)
pop ()
insertBottom
(Item)
removeBottom ()
1 insert (Item,
position)
remove (position)
void Stack::push(Item I) {
body.insertTop(I);
};
const Item Stack::pop() {
return body.removeTop();
};
526
Herencia Privada
n
void Stack::push(Item I) {
insertTop(I);
};
const Item Stack::pop() {
return removeTop();
};
Private
inheritance
Stack
push (Item)
pop ()
push()
push()yypop()
pop()pueden
puedenaccesar
accesar
mtodos
mtodosde
deList
Listpero
perolas
lasinstancias
instanciasde
de
Stack
Stackno
nopueden
pueden
527
Herencia Mltiple
n
InterestBearing
InsurableItem
BankAccount
528
Colisin de nombres o
Herencia repetida
529
Colisiones de Nombres
n
InterestBearing
presentValue
InsurableItem
presentValue
Un
Unobjeto
objetoBankAccount
BankAccountquiere
quiere
imprimir
imprimirel
elpresentValue
presentValue
Cul
se
imprime?
Cul se imprime?
BankAccount
530
Resolucin de Colisiones de
Nombres
n
InsurableItem::presentValue
O
n
InterestBearingItem::presentValue
531
InsurableItem
RealEstate
Security
BankAccount
Stock
Savings
Bond
Checking
532
Asset . . .
InsurableItem : public Asset
InterestBearing : public Asset
BankAccount : public InsurableItem,
public InterestBearing . . .
RealEstate : public Asset,
public InsurableItem . . .
Security :
public InterestBearing . . .
SavingsAccount : public BankAccount . . .
CheckingAccount : public BankAccount . . .
Stock : public Security . . .
Bond : public Security . . .
533
Herencia Repetida
n
WindowWithDialogBox
WindowWithScrollbar
ScrollingWindowWithDialogBox
534
Esto indica que la misma clase base esta siendo heredada por
una clase derivada ms de una vez. Por ejemplo,
ScrollingWindowWithDialogBox esta heredando Window ms de
una vez
n
535
class WindowWithDialogBox :
public virtual Window {
public:
void dialogBoxPaint( );
// paint only dialog box
virtual void paint( );
// invoke Window::paint
// and
// paint dialog box
};
class WindowWithScrollBar :
public virtual Window {
public:
...
void scrollBarPaint( );
// paint only scrollbar
virtual void paint( );
// invoke Window::paint and
// paint scrollbar
...
} ;
538
Esto podra ser solo una perdida de tiempo o podra (en algunos
sistemas) corromper la imagen en pantalla
540
541
Herencia Mltiple
n
Use
Useherencia
herenciamltiple
mltiplesolo
solocuando
cuandosea
seanecesario,
necesario,
yy
siempre
siemprecon
conprecaucin!
precaucin!
542
Ejercicio
n
543
544
Resumen General
545
Objetivos: Resumen
n
Usted podr:
Resumir el curso listando las actividades que ocurren
durante cada fase del proceso de desarrollo
546
Resumen -- El Proceso de
Desarrollo
n
550
551
Los escenarios ilustran los riesgos del modelo actual del anlisis y
diseo, por lo que se extiende a manejar estos riesgos
553
555
Bibliografa
556
Anlisis y Diseo
n
J. Rumbaugh, et al., Object-Oriented Modeling and Design, PrenticeHall, Englewood Cliffs NJ, 1991
R. Wirfs-Brock et al., Designing Object-Oriented Software, PrenticeHall, Englewood Cliffs NJ, 1990
N. Wilkinson, Using CRC Cards, SIGS Books, New York, NY, 1995
Anlisis y Diseo
n
558
559
Arquitectura
n
Software General
n
561
Metrics
n
562
Administracin de Proyectos
n
563
Mecanismos Clave
n
564
S. Davis, C++ for Dummies, IDG Books, Foster City, CA, 1994
565
567
Problema de Nmina
568
570
571
572
573
574
Salaried
Employee
Time Management
Commissioned
Employee
Purchase Order
Management
Maintain Employee
Information
Payroll
Administrator
Run Payroll
Bank
575
Persona que recibe un pago por hora. Pago de tiempo extra (1 1/2 ms
de la cuota por hora) se recibe por todas las horas trabajadas en exceso
de 40 horas por semana
n
Empleado asalariado
Empleado comisionado
Empleado asalariado que tambien recibe una comision por sus ventas
n
Administrador de nomina
Banco
576
Breves Descripciones
n
Ejecucion de Nmina
577
Breves Descripciones
n
Administracin de Tiempo
578
2.1 Pre-condiciones
Ninguna
2.1 Pre-condiciones
Ninguna
585
2.1 Pre-condiciones
Ninguna
587
2.1 Pre-condiciones
Ninguna
592
Flujos de Excepcin
E-1: Id introducido no valido. El usuario puede re-introducir el
nmero de id o finaliza el caso de uso.
E-2: El sistema es incapaz de guardar la informacin de la orden
de compra. El usuario sabe porque no se pudo guardar la
informacin. El caso de uso inicia de nuevo desde el principio.
E-3: La informacin de la orden de compra no puede ser
obtenida. El usuario sabe porque no se pudo obtener la
informacin. El caso de uso inicia desde el principio.
595
Borrar un empleado
596