Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Anlisis y Diseo
ENERO-ABRIL
CONTENIDO
1. Introduccin
2. Generalidades del Paradigma OO
3. Proceso de Desarrollo Iterativo e Incremental
Introduccin
INTRODUCCIN
Qu es el software
Intangible
Complejo
INTRODUCCIN
Complejidad
Program
x3
x3
x3
Program
Product
Application
system
x3
Application
System
Product
INTRODUCCIN
Problemtica en el desarrollo de software
INTRODUCCIN
Casos
Ao 2000 (Y2K)
Son ejemplos extremos PERO existen muchos casos similares en menor escala
INTRODUCCIN
Qu es un modelo
Los modelos
matemticos
pueden
ser
fsicos,
grficos
INTRODUCCIN
Por qu modelar
INTRODUCCIN
Por qu modelar (2)
Abstraer las caractersticas,
estructura de algo por construir
componentes
INTRODUCCIN
Aplicaciones del Modelado
Construccin
Telecomunicaciones
Automotriz
Cinematogrfica
Aeronutica
Administracin
Elctrica y electrnica
Software
INTRODUCCIN
UML
El Lenguaje de Modelado Unificado (UML) es un
lenguaje de modelado visual que se usa para
especificar, visualizar, construir y documentar
artefactos de un sistema de software.
INTRODUCCIN
UML
Integra lo mejor de varios autores
Booch
Rumbaugh
Jacobson
Fusion
Meyer
Operation descriptions,
Message numbering
Harel
State charts
UML
Gamma, et.al
Embley
Singleton classes,
High-level view
Wirfs-Brock
Frameworks, patterns,
notes
Shlaer - Mellor
Object Lifecycles
Odell
Classification
Responsibilities
INTRODUCCIN
UML
UML 2.0
2001
1999-2000
1998
Submission to OMG
for adoption, July 97
Publication of
1.0 Standard Dec 96
public
feedback
OOPSLA 95
Other methods
UML 1.2
UML 1.1
UML 1.0
UML Partners
Expertise
Booch 91
Unificacin
Fragmentacin
OMT - 2
OMT - 1
Industrializacin
Estandardizacin
Booch 93
Optimizacin y
actualizacin
OOSE
INTRODUCCIN
UML
Lenguaje. Mediante la notacin permite expresar y
comunicar conocimiento.
INTRODUCCIN
UML
No es un proceso de software
Elementos
Relaciones
Diagramas
INTRODUCCIN
Ventajas del UML
PARADIGMA OO
Evolucin
70s - Mtodos de desarrollo para lenguajes de programacin como
Cobol y Fortran
PARADIGMA OO
Tecnologa de objetos
El paradigma orientado a objetos es una filosofa
para el desarrollo de sistemas basado en el modelado
del mundo real a travs de la identificacin de objetos
PARADIGMA OO
Ejemplos de objetos cotidianos
PARADIGMA OO
Los objetos son ...
la pieza fundamental que combina tanto estructura
como comportamiento
PARADIGMA OO
Ejemplos de Clases
mamfero
hombre
PARADIGMA OO
Ejemplos de Clases (2)
instrumento
percusin
tambor
cuerda
violn
guitarra
aliento
saxofn
PARADIGMA OO
Ejemplos de Objetos
miViolin:violn
marca: Stradivarius
color: caf
ao: 1856
peso: 455 gr
afinar()
tocarNota(nota)
cambiarCuerda()
PARADIGMA OO
Ejemplos de Objetos (2)
Mary
James
Susy
PARADIGMA OO - Conceptos
Algunas caractersticas de los objetos
ABSTRACCIN
Omitir las propiedades y acciones de un objeto y
dejar slo aquellas que nos interesan
PARADIGMA OO - Conceptos
CLASIFICACIN
Los objetos con la misma estructura y
comportamiento son agrupados en clases
instrumento
percusin
tambor
cuerda
violn
guitarra
aliento
saxofn
PARADIGMA OO - Conceptos
POLIMORFISMO
El comportamiento de una clase puede variar de
acuerdo a ciertas circunstancias
polgono
camin
piezaAjedrez
mover
mover
mover
PARADIGMA OO - Conceptos
HERENCIA
Las clases son organizadas jerrquicamente. Las
clases
hijas
conservan
la
estructura
y
comportamiento de las clases padres
PARADIGMA OO - Conceptos
ENCAPSULAMIENTO
Permite ocultar los detalles de la implementacin
de un objetos
PARADIGMA OO - Conceptos
MENSAJES
Para que los objetos de un sistema trabajen en
conjunto, un objeto enva a otro un mensaje para
realizar una operacin y el objeto receptor ejecutar
la operacin
mensaje
torreControl
avin
Estable
Objeto
Medio de entrega
Vendedor
Cliente
Empresa
Producto
Individual
Vehiculo
Trailer
Tren
eCommerce
Desarrollo
en equipo
Lenguaje de
Modelado
Proceso
Unificado
Generar
aplicaciones
rpidamente
liberaciones tempranas y continuas.
mediante
Requerimientos
Proceso de Ingeniera
de Software
Sistema
PROCESO DE DESARROLLO
Qu procesos o ciclos de
vida de desarrollo de
software conocemos?
Core Process
Workflows
Core
Supporting
Workflows
Elaboration
Construction
Transition
Tiempo
Inception.
Elaboration.
Construction.
Transition.
Elaboration
Construction
Transition
Tiempo
Visin y
objetivos
Arquitectura
Base
Capacidad
de operacin
Inicial
Versin
de producto
Elaboration
Elaboration
Construction
Elaboration
Construction
Transition
...
Iteracin 1
Iteracin N
R
D
D
C
iter 4
C
P
Ejecutable 1
Ejecutable N
iter i
iter
i+1
iter
i+2
iter
i+3
iter n
iter
n+1
iter
n+2
iter
n+3
Trabajadores
Actividades
Artefactos
Flujos de trabajo
Manager workers
Change Control Manager
Configuration Manager
Deployment Manager
Process Engineer
Project Manager
Project Reviewer
Developer workers
Other workers
Architect
Architecture Reviewer
Capsule Designer
Code Reviewer
Database Designer
Design Reviewer
Designer
Implementer
System Integrator
Any Worker
Course Developer
Stakeholder
System Administrator
Technical Writer
Tool Smith
Testing workers
Test Designer
Tester
Execute Test
Database design
Resulting Artifacts
Worker
System Analyst
Son los
productos
tangibles del
proyecto.
Requerimientos (Requirements)
Descripcin de qu debe hacer el sistema; acuerdo entre los
desarrolladores y los clientes
Implementacin (Implementation)
Definir la organizacin del cdigo; implementar las clases y
objetos; probar los componentes desarrollados; integrar los
resultados en sistemas ejecutables
Pruebas (Test)
Verificar la interaccin e integracin de los componentes de
software; verificar que todos los requerimientos han sido
correctamente implementados.
Distribucin (Deployment)
Producir versiones de producto y entregar el software a los
usuarios; empacar, distribuir e instalar el software; brindar
asesora; migracin de datos existentes.
Ambiente (Environment)
Configurar el proceso en el contexto del proyecto.
Arquitectura de Componentes
Administracin de requerimientos
Verificacin de la Calidad
Modelado Visual
Control de Cambios
UML
RUP
OOA
Desarrollo del modelo
de requerimientos
Perspectiva de
Usuario
OOD
Agregar decisiones de
diseo y de detalle
Perspectiva de
Desarrollador
Especificar
ambigedad
modelos
precisos,
completos
sin
Use
Case
Use
Case de
Diagramas
Diagrams
Diagrams
Secuencia
Scenario
Scenario de
Diagramas
Diagrams
Diagrams
Colaboracin
Scenario
Scenario
Diagramas
Diagrams
Diagrams
de Estado
Use
Case
Use
Case de
Diagramas
Diagrams
Diagrams
Casos
de Uso
State
State
Diagramas
Diagrams
Diagrams
de Clase
Modelos
Diagramas de
Actividad
State
State
Diagramas
Diagrams
Diagrams
de Objetos
State
State de
Diagramas
Diagrams
Diagrams
Componentes
Component
Component
Diagrams
Diagramas
Diagrams de
Distribucin
Funcionalidad
Diagrama de Casos de Uso
Estructura Esttica
Diagrama de Clases
Comportamiento dinmico
Diagramas de Actividad
Diagramas de Interaccin (Secuencia y Colaboracin)
Diagramas de Estado
Implementacin
Diagramas de Componentes
Diagramas de Distribucin
Casos de Uso
Comportamiento del Sistema y
Especificacin de Requerimientos
Dominio del
Problema
Dominio de la
Solucin
Necesidades
del negocio
Caractersticas del
Sistema
Requerimientos de Software
No Funcionales
Describen nicamente atributos del sistema o atributos del
ambiente del sistema y pueden ser por ejemplo:
requerimientos de interfaz, de diseo, de implementacin,
legales, fsicos, de costo, de tiempo, de calidad, de
seguridad, de construccin, operacin.
Uso
captura
el
Actor
Use Case
los
Actor
Insertar
Tarjeta
1
4
7
*
2
5
8
0
3
6
9
#
John
Tom
Usuario
Ingreso a
Instalaciones
Insertar
Tarjeta
1
4
7
*
2
5
8
0
3
6
9
#
Charlie
Ingreso a
Usuario
Operador
Instalaciones
Mantenimiento
Use Case
detalles
Retiro de ef ectiv o
Usuario
Consulta de Saldo
Depsito de Cheques
Mantenimiento
Alimenta ef ectiv o
Consulta Bitcora
Operador
Especialista
Banco
Uses (usa)
Extend (extiende)
Analiza
Riesgo
<<uses>>
Valuacin
Comerciante
Negocia
Precio
Captura
negociacin
<<uses>>
<<extends>>
Lmite
excedido
<<extends>>
<<uses>>
Retiro de efectivo
<<uses>>
Usuario
Consulta de Saldo
Validacin de NIP
Efectivo insuficiente
Breve Descripcin
Pre-condiciones
Flujos de Excepcin
Flujos Alternos
Flujo Principal
Post-condiciones
Escenarios primarios.
Escenarios secundarios
Diagramas de Actividad
Secuencia y acciones paralelas
Programar obra
Anunciar obra
Comprar guiones
y msica
Contratar
artistas
Comprar
equipos
Vender entradas
Ensayar
Ensayo general
Representar la obra
Disear
iluminacin
Hacer
vestuario
Actividad
Barra de
sincronizacin
Decisin
[condicin de guarda ]
Perspectiva conceptual
Una actividad es alguna tarea que necesita
ser realizada ya sea por una persona o una
computadora
Perspectiva de especificacin
Una actividad es un mtodo en una clase
Buscar Bebida
[hay caf
[hay refresco]
Encender mquina
^cafetera.On
Caf en preparacin
Servir caf
Beber
Utilidad
Desde la perspectiva de la implementacin, permite
representar qu clase es responsable de qu
actividad
Desde
el punto de vista de dominio, permite
representar qu persona o departamento es
responsable de qu actividad
AND Trigger 2
1
3
Trigger 3
Actividad 1
Trigger 1
OR
Trigger 3
Actividad 2
Trigger 2
Actividad 2
2
Actividad 3
Entidad fsica
Trailer
Entidad conceptual
Proceso Qumico
Entidad de software
Lista Ligada
Estado
Comportamiento
Identidad
Nombre:
Mariana C.
Empleado ID:
567138
Fecha de contrato: 21/03/1987
Estado:
Asignada
(Regresa:confirmacin)
Sistema de
Inscripcin
Profesor J. C.
imparte Algebra
Profesor J. C.
imparte Algebra
Profesor J.C.
imparte Algebra
Clase
Curso
Estructura
Nombre
Ubicacin
Das ofrecidos
Horas de crditos
Hora inicio
Hora trmino
Comportamiento
a + b = 10
Agregar un alumno
Borrar un alumno
Obtener catlogo de curso
Determinar si est lleno
Profesor
Profesor Smith
Profesor Mellon
Clase
Profesor Jones
Tarjetas de 4 x 6 pulgadas
profesor
nombre
empID
crear( )
guardar( )
borrar( )
modificar( )
profesor
nombre
empID
profesor
crear( )
guardar( )
borrar( )
modificar( )
profesor
profesor
Clase Interfaz
Clase Entity
Clase Control
Asociacin
Agregacin (pertenencia)
Generalizacin (herencia)
Dependencia
Asociacin
Agregacin
Esto implica que hay una liga entre objetos en las clases
asociadas
<<controller>>
registrationManager
<<entity>>
course
Navegacin
Una asociacin es una relacin bi-direccional
<<controlador>>
registrationManager
<<entidad>>
course
<<control>>
registrationManager
maneja
<<entity>>
course
person
Teacher
course
Muchos
Exactamente uno
Cero o ms
Uno o ms
Cero o uno
Rango especfico
*
1
0..*
1..*
0..1
2..4
Person
Teacher
Course
1
1..*
Teacher
Course
0..*
<<boundary>>
registrationForm
<<boundary>>
scheduleForm
1
La relacin es un agregacin
course
Pre-requisite
0..
*
0..
*
student
0..*
3-10
course
1..*
3-10
grade
course
department
EmployeeID
professor
department
Title
professor
1..*
Professor
{Ordered by
employee id}
Department
is a member of
1
1..*
1
{Subset}
is head of
Es un relacin de es-un-tipo-de
Generalizacin
University
Artifacts
Relaciones (Resumen)
Todos los sistemas contienen varios objetos que colaboran con unos
y otros para producir la funcionalidad que se necesita
Las asociaciones y agregaciones son dos importantes tipos de
relaciones
Una asociacin es una conexin entre dos clases que representan
comunicacin
Una asociacin puede tener un nombre
Se pueden usar nombres de roles
La comunicacin puede ser uni- o bi-direccional (por omisin)
La multiplicidad es el numero de instancias que participan en una
asociacin
Se representa cerca del final de la lnea de asociacin
Cada final de asociacin debe tener un indicados de multiplicidad
Diagramas de Interaccin
Secuencia y colaboracin
Diagramas de secuencia
Diagramas de colaboracin
Cada uno provee un punto de vista diferente de la
misma interaccin
Los diagramas de secuencia estn ordenados de
acuerdo al tiempo
Los diagramas de colaboracin pueden incluir flujo
de datos
El diagrama muestra:
Los objetos que participan en la interaccin
La secuencia de mensajes intercambiados
Un diagrama de secuencia contiene:
Objetos con sus lneas de vida
Mensajes intercambiados entre objetos en
orden secuencial
Enfoque de control (opcional)
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
Cursos : Catlogo
disponibles
: Catlogo
cursos
disponibles
Obtener cursos
cursos
disponibles
obtener cursos
un curso
obtener prerequisito
John : Alumno
clases disponibles
6: obtener cursos
forma horario
Ingles
101
Object only
Ingles 101:
Curso
:Curso
Class only
un curso : Curso
2: obtener cursos
Objeto
Client
object
1: obtener prerequisitos
lista curso
un curso : Curso
Data return
Liga
Objeto
Supplier
object
Diagramas de Estado
Comportamiento dinmico
State Name
English101 : Course
numStudents = 7
numStudents > = 10
Closed
Professor
0..*
Course
Open
Add student
Cancel course
Canceled
[ numStudents >= 3 ]
Open
Registration Complete
Closed
do: Report course is full
Initialize
addStudent/
numStudents = 0
Unassigned
Open
entry: Register a
student
cancelCourse
cancelCourse
registration closed[
Canceled
numStudents < 3 ]
[date = end]
[ numStudents = 10 ]
cancelCourse
Closed
do: Report
course is full
RegistrationComplete
do: Generate class
roster
Initialize
RegistrationComplete
Unassigned
do: Assign professor to course
Add student / numStudents = 0
Open
registration closed[
numStudents < 3 ]
addStudent
[ numStudents = 10 ]
Canceled
Closed
cancelCourse
Diagramas de Componentes y de
Distribucin
Name 1
Name 2
Name 1
Name 3
Name 2
Catlogos
Reportes
(DLL)
(EXE)
Etiqueta
Nombre
Nodo
Conexin
<<RS-232>>
Server
P=300MHz
Memoria=128MB
MS-SQL Server
<<BUS>>
Terminal
Serv. Escolares
<<Ethernet>>
Consola
config.exe
ARQUITECTURA
Arquitectura 4 + 1
ARQUITECTURA
Diagramas del UML
Use
Case
Use
Case de
Diagramas
Diagrams
Diagrams
Secuencia
Scenario
Scenario de
Diagramas
Diagrams
Diagrams
Colaboracin
Scenario
Scenario
Diagramas
Diagrams
Diagrams
de Estado
Use
Case
Use
Case de
Diagramas
Diagrams
Diagrams
Casos
de Uso
State
State
Diagramas
Diagrams
Diagrams
de Clase
Modelos
Diagramas de
Actividad
State
State
Diagramas
Diagrams
Diagrams
de Objetos
State
State de
Diagramas
Diagrams
Diagrams
Componentes
Component
Component
Diagrams
Diagramas
de
Diagrams
Distribucin
ARQUITECTURA
Vista Casos de Uso: Diagrama
de Casos de Uso
ARQUITECTURA
Diagrama de Actividad
Diagrama de Colaboracin
Inicio
[ no hay caf ]
Encuentra
bebida
: alumno
valida
[ encontr refresco ]
Poner caf en
filtro
Aade agua al
depsito
Obtiene tazas
Obtiene lata
de refresco
Poner filtro en
mquina
: formaInscripcion
1: Semestre
: grupo
[ no hay refresco ]
3: materia
2: Cupo
Enciende la
mquina
Preparar caf
: asignatura
Servir caf
Tomar bebida
Fin
Diagrama de Estados
Inicio
disponible
encendido
trabajando
Selecciona operacion
desactiv a interruptor
apagado
fin
ARQUITECTURA
Vista Implementacin: Diagrama de Componentes
path.dll
collision.dll
driver.dll
{versin =
8.1.3.2}
IDrive
ISelfTes
t
Vista Distribucin: Diagrama de Distribucin
{Conexin}
: Objeto
Acceso
TCP
/IP
: Salud
Dominio
{Nodo}
<<comunicacin>>
Contenido}
ARQUITECTURA
Visin Arquitectnica
Dos cualidades comunes para virtualmente todos los
proyectos OO son:
La existencia de una visin arquitectnica fuerte
La aplicacin de un ciclo de vida incremental bienmanejado e iterativo
La arquitectura debe ser simple
El logro de comportamiento comn a travs de
abstracciones y mecanismos comunes
ARQUITECTURA
Dimensiones de la Arquitectura del Software
Perspectivas diferentes para inversionistas diferentes
Usuario final, cliente, administrador de proyecto
Ingeniero de sistema, desarrollador, arquitecto,
evaluador
Las perspectivas mltiples requieren mltiples vistas
Los diagramas de clase no muestran los mapas del
sistema al hardware
Los diagramas de bloque del hardware no
describen la estructura del sistema
ARQUITECTURA
Vistas de la Arquitectura del Software
Para describir completamente una arquitectura, se necesitan
cuatro vistas:
La vista lgica para proporcionar una imagen esttica de
las clases primarias y sus relaciones
La vista de componente para mostrar como est el
cdigo organizado en paquetes y libreras
La vista de proceso para mostrar los procesos y tareas
La vista de distribucin para mostrar los procesadores,
dispositivos y ligas en el ambiente operacional
Finalmente, una vista de escenario explica como trabajan
juntas las otras cuatro vistas
ARQUITECTURA
VISTA LGICA
VISTA DE
COMPONENTES
Funcionalidad
Administracin, Reuso y
Portabilidad del
Software
VISTA DE CASOS
DE USO
Contexto del Sistema
VISTA DE PROCESOS
IPC, Concurrencia,
Desempeo,
VISTA DE
DISTRIBUCIN
Desempeo,
Escalabilidadm Entrega e
Instalacin
ARQUITECTURA
Vista Lgica
La vista lgica de arquitectura
mapea
los
requerimientos
funcionales al sistema
Proporciona una imagen esttica
de las clases primarias y sus
relaciones
La vista lgica se captura en
diagramas de clase que contienen
paquetes, clases y relaciones que
representan abstracciones clave
del sistema en desarrollo
VISTA LGICA
Funcionalidad
ARQUITECTURA
Vista de Componentes
La vista de componente de
arquitectura tiene que ver con la
organizacin de los mdulos del
Los diagramas de componente se
crean para mostrar los paquetes
(en expansin) y componentes
que componente el sistema en
desarrollo
Muestra la distribucin de clases
a componentes y la distribucin de
componentes en paquetes
VISTA DE
COMPONENTES
Administracin, Reuso y
Portabilidad del
Software
ARQUITECTURA
Vista de Procesos
La vista de proceso de la
arquitectura se enfoca en la
descomposicin de procesos
La vista muestra la distribucin de
componentes a procesos
La vista de procesos direcciona la
disponibilidad,
confiabilidad,
desempeo,
administracin
y
sincronizacin del sistema
VISTA DE PROCESOS
IPC, Concurrencia,
Desempeo,
ARQUITECTURA
Vista de Distribucin (Despliegue)
La
vista
de
despliegue
de
VISTA DE PROCESOS
IPC, Concurrencia,
Desempeo,
ARQUITECTURA
VISTA LGICA
VISTA DE
COMPONENTES
Arquitectos
Programadores
Integradores
Lder de Proyecto
VISTA DE CASOS
DE USO
Usuarios y Clientes
Analistas
Diseadores Pruebas
Lder de Proyecto
VISTA DE PROCESOS
VISTA DE
DISTRIBUCIN
Diseadores
Administradores
de Sistemas
ARQUITECTURA
VISTA LGICA
Diagramas de Clase
Diagramas de Secuencia
Diagramas de Colaboracin
Diagramas de Estado
VISTA DE
COMPONENTES
Diagramas de componentes
VISTA DE PROCESOS
Diagramas de componentes
Diagramas de despliegue
VISTA DE
DISTRIBUCIN
Diagramas de despliegue
Bibliografa y Referencias
BIBLIOGRAFA Y REFERENCIAS
Orientacin a Objetos
Booch, Grady.
Anlisis y diseo orientado a objetos, 2 Edicin
Mxico, Addison-Wesley Iberoamericana. 1996.
Jacobson, Ivar.
Object oriented software engineering.
EE.UU, Addison-Wesley. 1994.
Rumbaugh, James y otros.
Object oriented modeling and design.
EE.UU, Prentice-Hall. 1991.
BIBLIOGRAFA Y REFERENCIAS
Proceso de Desarrollo Unificado
Jacobson, Ivar.
El Proceso Unificado de Desarrollo de Software
Espaa, Addison-Wesley Iberoamericana.
2000.
BIBLIOGRAFA Y REFERENCIAS
UML
Booch, Grady.
El Lenguaje Unificado de Modelado
Espaa, Addison-Wesley Iberoamericana. 1999.
Booch, Grady.
El Lenguaje Unificado de Modelado. Manual de Referencia
Espaa, Addison-Wesley Iberoamericana. 1999.
Fowler, Martin
UML Gota a Gota
Mxico, Addison-Wesley, 1999.
BIBLIOGRAFA Y REFERENCIAS
Ligas de inters
Objetct Management Group
http://www.omg.org/technology/uml/index.htm
Rational Software Corporation
http://www.rational.com/uml
Cetus Links - Object-Orientation
http://www.cetus-links.org
The Object Agency
http://www.toa.com
The Object-Oriented Page
http://www.well.com/user/ritchie/oo.html
Sinan Si Alhirs Web Site
http://home.earthlink.net/~salhir/
Object Orientation Tips
http://ootips.org/