CS-432: Ingeniería Moderna de
Software
Semana 3
Dr. Jesús Borrego
Lead Faculty, COS
Regis University
1
scis.regis.edu ● [email protected]
Agenda
Modelo del Diseño – parte 1
• Elaboración y el model de diseño
• Clases de diseño
• Asociación de relación
• Listas e iteradores
• Diagramas de sequencia
• Material para el primer exámen
2
Términos clave
•
•
•
•
•
•
•
•
•
•
3
Abstraction – abstracción
Encapsulation – encapsulación
Inheritance – herencia
Iterator - iterador
Overloading – sobre carga
Overriding – anulación
Polymorphism - polimorfismo
Signature – firma
Trace – traza/o
Visibility - visibilidad
Elaborando el modelo de diseño
• Continuando nuestro trabajo de análisis, el
enfoque empieza a cambiar a el modelo de
diseño
• El modelo de diseño trata de especificar como se
realizará el caso de uso
• La realización del caso de uso se prepara a un
nivel apropriado para implementarlo en un
lenguage de programación orientada a objetos
4
Diseño y casos de uso
• El diseño es guiado por los casos de uso
• Hay una dependencia de trazo
• Pasar de análisis a diseño no tiene que cambiar
de simbología – una ventaja de OO
5
Ejemplo
Los objetos del diagrama de comunicación
refieren a clases en el diseño, con trazas del
análisis
6
Notas
• Aunque los objetos del diagrama se relacionan
con clases en el análisis y diseño, hay que
entender que cada elemento tiene un propósito
distinto en el modelo
▫ Puede haber clases en diseño sin trazas a el análisis
▫ Puede haber varias clases en diseño que
corresponden a una clase en análisis
7
Clases de diseño y sus atributos
• Para completar el diseño detallado, se necesita
(por cada clase):
▫ Atributos, incluyendo diferentes estados
▫ Operaciones, incluyendo su interfaz pública y las
interfaces implementadas
▫ Relaciones a otras clases y sus tipos
8
Atributos y visibilidad
- Private – privado. Visible en la clase únicamente
+ Public – público – visible en cualquier objecto
~ Package – paquete – visible dentro del paquete
# Protected – protegido – visible en su clase y los
hijos de la clase
9
Tipos de datos
• El lenguaje define tipos de datos
• Programadores pueden crear sus propios tipos
Visibilidad
10
nombre
separador tipo
valor de defecto
Valores
• Inicial/Defecto
▫ UML, Java, C# permite asignar valor por defecto a
atributos
▫ C++ no permite asignar valor inicial a los
atributos de la clase; se pueden definir con el
constructor
• Restricción
▫ UML permite asignar valores de restricción
11
En código
12
Operaciones y métodos
• Las operacions de la clase se llaman métodos
• Los métodos incluyen:
▫
▫
▫
▫
13
Visibilidad
Nombre
Parámetros
Valor de retorno
Ejemplo
14
Funciones y Métodos
• Los métodos se parecen a las funciones creadas
en CS 361 y CS362
▫ Tienen nombre, tipo, parámetros y tipo de retorno
• La diferencia es que los métodos se invocan con
mensajes a el objeto
▫ Mas detalles se proveerán después
15
Iinterfaz pública
• La interfaz pública es la colección de operaciones
públicas de la clase
▫ Los métodos públicos indicados con (+)
• Similar al API (Application Programming
Interface) – Interfaz de aplicaciones de
programación
• También han interfaz que no es pública
(métodos privados)
16
Ejemplo de interfaz
• Pública:
▫ findByID
▫ findByName
• Privada
▫ loadDegreePlan
▫ loadAddress
17
18
Ejemplo en Java
19
Firmas y sobrecargas de métodos
• Una Firma consiste de la visibilidad, nombre,
número de parámetros y el tipo de los
parámetros
• Sobrecarga – mas de una operación con el
mismo nombre tiene firma diferente
• Despacho – encontrar la firma correcta del
método para mandar el mensaje
20
Constructores y destructores
• Constructores son métodos que inicializan un
objeto
• Los constructores tienen el mismo nombre de la
clase y en invocado cuando el objeto es creado
• Destructores se usan para destruír objetos que
ya no se necesitan
21
Ejemplos
22
Relaciones y Asociaciones
• UML define 3 relaciones entre objetos:
▫ Asociación
▫ Dependencia
▫ Generalización
23
Asociaciones y Atributos
Depende del
lenguaje,
podemos asociar
dos clases con
atributos de una
clase a la otra
24
Acoplamiento
• Acoplamiento ocurre cuando dos objetos se
conocen
• Cambios en un objecto pueden impactar
seriamente (muy acoplado) o mínimamente (no
muy acoplad0)
Demasiado acoplados
25
No muy acoplados
Navegabilidad
• Navegabilidad se usa para restringir el
acoplamiento entre objetos
• Define como se accesan las clases
• La vista del estudiante ‘conoce’ al estudiante,
pero el estudiante no ‘conoce’ la vista del
estudiante
Acoplado 
 No Acoplado
26
Multiplicidad
• Describe el número de objetos que relaciona
• Si no se indica, la multiplicidad es 1
27
Asociaciones
• Composición
▫ Si el objeto no existe en el programa, partes
tampoco existen en el programa
▫ Si un estudiante deja la Universidad, su plan de
estudios no existe
• Agregacion – compartida
▫ Estudiantes en una clase pueden dejar la clase,
pero la clase sigue
28
Listas
• Diploma es una colleccion de cursos
• En UML:
29
Iteradores
• Un mecanismo para tener acceso a los miembros
de una lista
• La interfaz publica tiene 2 metodos
▫ hasNext
▫ Next
30
Fragmento de programa
31
Diagramas de Sequencia
• Se usan para indicar la sequencia de eventos en
una interacción
32
Diagramas de sequencia - elementos
33
Actividad 1
• Examinen en grupo el diagrama de secuencia
anterior
• Discutan que información pueden obtener
• Escriban en media hoja con palabras la
información que captan con el diagrama
• (30 minutos)
34
Gestion de Riesgos del proyecto
•
•
•
•
•
•
35
Identificar los riesgos
Estimar probabilidad de ocurrir
Estimar el impacto si ocurre
Preparar el plan de mitigación
Monitorear riesgos y progreso de mitigación
Obtener compromisos de tiempo y presupuesto
del grupo ejecutivo y el equipo
Tarea 4
• Actualizar el modelo de diseño, incluyendo
diagramas de clase y secuencia
• Tienen 2 semanas y media para completar la
tarea para darles tiempo a prepararse para el
primer exámen
• Entregar en WorldClass, Asignación 4 antes de
la semana 5
36
¿Preguntas?
• Correo electrónico a [email protected]
37
Descargar

ABET