P. 1
Desarrollo de Proyectos de Software Ago-Dic10

Desarrollo de Proyectos de Software Ago-Dic10

|Views: 919|Likes:
Desarrollo de Proyectos de Software
Ingeniería en Sistemas Computacionales Salvador Gurrola Velazquez salvador.gurrola@yahoo.com.mx

Desarrollo de Proyectos de Software
Aportación de la asignatura al perfil del egresado Desarrolla aplicaciones de software de cualquier dominio. y OBJETIVO GENERAL DEL CURSO
y

El estudiante diseñará y construirá un proyecto de software conforme a los requerimientos establecidos en el dominio del proyecto de software.

Desarrollo de Proyectos de Software
y

Conce
Desarrollo de Proyectos de Software
Ingeniería en Sistemas Computacionales Salvador Gurrola Velazquez salvador.gurrola@yahoo.com.mx

Desarrollo de Proyectos de Software
Aportación de la asignatura al perfil del egresado Desarrolla aplicaciones de software de cualquier dominio. y OBJETIVO GENERAL DEL CURSO
y

El estudiante diseñará y construirá un proyecto de software conforme a los requerimientos establecidos en el dominio del proyecto de software.

Desarrollo de Proyectos de Software
y

Conce

More info:

Published by: salvador.gurrola8168 on Apr 02, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPTX, PDF, TXT or read online from Scribd
See more
See less

06/07/2013

pdf

text

original

Sections

Diseño
Diseñoorientado
orientadoa

a objetos
objetos..

2.1 Diseño del sistema en base a

procesos.

x2.1.1 Actividades y casos de uso.

x2.1.2 Interfaces de usuario.

2.2 Diseño de la lógica.

x2.2.1 Clasesy Objetos.

x2.2.2 Interacción.

x2.2.3 Estadosy Transiciones.

Diagramade casosde uso

9/6 1,2

Diagramade Secuencia

9/6 3,4

Diagramade Colaboracion

9/7 5,6

Diagramade Estados

9/7 7,8

Diagramade Clases

9/8 9,10

Diagramade Objetos

9/8 11

Teoriade Patronesde diseno

Daniel 9/20

PatrónDELEGATION

Mauro 9/20

PatrónINTERFACE

Elizabeth 9/20

PatrónMARKER INTERFACE Manuel

9/21

PatrónSINGLETON

Ana L 9/21

Patrón FACTORY METHOD Jorge 9/21

PatrónADAPTER Lourdes A 9/22

Patrón FAÇADE Patricia 9/22

PatrónOBSERVER Edgar 9/22

PatrónSTRATEGY Julio C 9/23

PatrónITERATOR Adiel

9/23

Diseño
Diseñoorientado
orientadoa

a objetos
objetos..

y El Diseño Orientado a los Objetos (DOO)

crea una representación del problema

del mundo real y la hace corresponder con
el ámbito de la solución, que es el software.

yA diferencia con otros métodos de diseño, el
DOO produce un diseño que interconecta
objetos de datos y operaciones de
procesamiento para esos objetos,
de
forma que se modularizala información y el
procesamiento, en lugar de aislar el
procesamiento.

Diseño
Diseñoorientado
orientadoa

a objetos
objetos..

yTodos los métodos de diseño intentan

desarrollar software basándose en:

‡ Abstracción

‡ Ocultamientode información

‡ Modularidad

y El DOO proporciona un mecanismo que

permite al diseñador consigue estas tres
característicassin dificultad.

Objetos
Objetos,

, operaciones
operacionesy

y mensajes
mensajes

yPara conseguir un DOO, tenemos que

establecer un mecanismo para:

‡ Representar la estructura de datos

‡ Especificarel proceso

‡ Realizar el procedimiento de invocación

Objetos
Objetos,

, operaciones
operacionesy

y mensajes
mensajes

yObjeto: Componente del mundo real

que se hace corresponder con el
software.

y En un Sistema de Información basado en

Computador, un objeto es un

producto o consumidor de

información, o un elemento de

información.

Objetos
Objetos,

, operaciones
operacionesy

y mensajes
mensajes

yOperaciones, métodos o servicios:

Procesos a los que se le permite
transformarestructurasde datos.

Objetos
Objetos,

, operaciones
operacionesy

y mensajes
mensajes

yMensajes: Peticiones que se realizan a los

objetos para que realicen alguna de sus
operaciones.

yLas operaciones contienen

construcciones procedimentales y de
control, que se invocan mediante un
mensaje.

Aspectos
Aspectosde

de diseño
diseño

yDescomponibilidad: Facilidad con la que un método de diseño
ayuda al diseñador a descomponer un problema en subproblemas
más sencillos.

yComponibilidad: Grado en el que un método de diseño permite
la reutilizabilidadde módulos.

yComprensibilidad: Facilidad para comprender un componente
del programa sin tener que hacer referencia a otros módulos.

yContinuidad: Capacidad de realizar cambios en un programa y
que esos cambiosafectena un númeromínimode módulos.

y Protección: Característica arquitectónica que reduce la
propagación de errores.

Principios
Principiosde

de diseño
diseño

yprincipiosde diseñoparaarquitecturas

modulares:

‡ Unidadesmodulares

‡ Pocasinterfaces

‡ Interfaces pequeñas(acoplamiento

débil)

‡ Interfaces explícitas

‡ Ocultamientode información

Principios
Principiosde

de diseño
diseño

yPara conseguir un acoplamiento débil, se debe
minimizar el número de interfaces entre módulos y
minimizar la cantidad de información que se mueve a
travésde unainterfaz.

ySiempre que los módulos tengan que comunicarse
tiene que hacerlo de forma clara, mediante interfaces
explícitas, y no mediante una zona global de datos.

y El principio de ocultamiento de información se
consigue cuando toda la información del módulo está
oculta para el acceso desde el exterior, a menos que
la información se defina explícitamente de forma
pública.

Descripciones
Descripcionesde los

de los objetos
objetos

yLa descripción del diseño de un objeto (una instancia de una
clase o de una subclase) estácompuestade dos partes:

yDescripción de la interfaz: Establece la interfaz del objeto,
definiendo los mensajes que puede recibir el objeto y las
operaciones que puede realizar cuando el objeto recibe el
mensaje.

yDescripción de la implementación: Muestra los detalles
de cada una de las operaciones implicadas como
consecuencia de la recepción de un mensaje. Los detalles de
implementación incluyen información sobre la parte privada
del objeto, es decir, los detalles de las estructuras de datos y
los detalles procedimentales que describen las operaciones.

METODOS DE DISEÑO ORIENTADOS A OBJETOS
METODOS DE DISEÑO ORIENTADOS A OBJETOS

yDebemos comprender la diferencia entre

el Análisis Orientado a Objetos, que es
una actividad de clasificación, y el
Diseño Orientado a Objetos, que define

los objetos que se derivan de cada

clase.

Pasos del Diseño Orientado a Objetos
Pasos del Diseño Orientado a Objetos

y 1) Definicióndel problema

y2) Desarrollo informal de la forma de
procesamiento para la realización del software

y3) Formalización de la forma de procesamiento

a) Identificar los objetos y sus atributos

b) Identificar las operaciones de los objetos

c) Establecer las interfaces que muestren las
relaciones entre los objetos y lasoperaciones

d) Crear un diseño detallado que proporcione una
descripción de la implementaciónde los objetos

DEFINICIÓN DE CLASES Y DE OBJETOS
DEFINICIÓN DE CLASES Y DE OBJETOS

yLa aplicación de los principios y métodos de análisis de requisitos permite
al analista y al diseñador llevar a cabo dos subpasosnecesarios.

a) Descripcióndel problema

b) Análisis y aclaración de las limitaciones conocidas

yLa realización del software del problema del mundo real debe describirse
de forma sencilla y correcta para que permita a los ingenieros del software
que trabajan en el proyecto comprender el problema de forma sencilla y
uniforme.

y El cometido del AOO es el de aislar todos los nombres y frases del texto
explicativo del procesamiento que describe que es lo que ha de realizar el
sistema.

y Esta primera selección nos puede ayudar a definir las clases, subclases y
objetosdel sistema.

a) Un nombre común suele representar una clase de objetos (una abstracción de
datos), como puede ser automóvil.

b) Un nombre propio suele representar una instancia de una clase, como puedeser

Juan.

PROCESO DEL ANÁLISIS Y DISEÑO ORIENTADO A LOS
PROCESO DEL ANÁLISIS Y DISEÑO ORIENTADO A LOS

OBJETOS (99)
OBJETOS (99)

y El resultado del diseño orientado a

objetos es una jerarquía de clases.

yLos elementos iniciales de un DOO son

los propios objetos, y posteriormente, a
medidaquese van identificandoaspectos
comunes, los objetosse van agrupando en
clases, que a su vez serán subclases de
clases más abstractas.

Pasos
Pasosdel DOO
del DOO

y Esencialmente, el DOO consta de cuatro pasos
fundamentales:

a) Identificación y definición de objetos y clases

b) Organización de relaciones entre clases

c) Extracción de estructuras en una jerarquía de

clases

d) Construcción de bibliotecas de clases reutilizables

yComo en todas las fases de Ingeniería del
Software, el DOO es cíclico, es decir, los
diseñadores comienzan definiendo un conjunto
de clases, que se amplían, modifican, ..., y vuelta a
empezar.

Identificación y definición de objetos
Identificación y definición de objetos

y El principal problema del desarrollo de un sistema orientado a
objetos es encontrar los objetos en la fase de AOO y DOO.

y El método que utilizaremos para la identificación de objetos es el
propuesto por Boochen 1983, que dio origen al método
gramatical.

y Esta metodología sugiere que se comience con una descripción
textual del sistema deseado y que el diseñador vea:

‡ A los nombres como posibles identificadores de las clases de los

objetos

‡ A los verbos como posibles métodos

yLa lista resultante de clases (nombres) y métodos (verbos) se
utilizará para comenzar el proceso de diseño.

Directrices para la identificación y definición de clases y
Directrices para la identificación y definición de clases y

métodos
métodos

‡ Modelar con clases las entidades que ocurren de forma natural
en el problema

‡ Diseñar métodos con una sola finalidad

‡ Diseñar un método nuevo antes de ampliar uno existente

‡ Evitarmétodosextensos

‡ Guardar como instancia los datos necesitados por más de un
método o por unasubclase

‡ El diseñador debe trabajar para obtener una biblioteca de

clases.

yAdemás, para evitar la creación de clases innecesarias o
declaración de clases que no lo sean, una clase debe ofrecer
una serie de servicios a objetos de un tipodeterminado.

Directrices para la identificación y definición de clases y
Directrices para la identificación y definición de clases y

métodos
métodos

yUna clase se debería crear cuando:

‡ La nueva clase represente una abstracción

significativa del problema

‡ Es probable que los servicios que

proporciona sean utilizados por otras clases.

‡ Su comportamientosea complejo.

‡ Si se representara como un método de otra

clase, pocos usuarios de ésta lo invocarían.

Definición y organización de clases
Definición y organización de clases

yLa identificación y definición de objetos es sólo el primer
paso en el diseño de un SistemaOO.

yLa abstracción es la tarea continua de un diseñador OO.

yUna vez definidos los objetos, el paso siguiente consiste en
observar características comunes para crear abstracciones a
nivel de clase, pero no existe ninguna metodología formal
para la realización de estas abstracciones.

yLa definición de una clase para generar múltiples instancias
de un objeto ofrece la primera visión del poder de la
abstracción.

Clasificacion
Clasificacion

yAnalicemos la siguiente definición de requerimientos:

El <> es
un gestor de <>, de tal manera que puedan
clasificar en uno o varios <<índices>>, recuperar para su
modificación, visualizar, para su consulta, reclasificar, archivar y
destruir.

El <> procesa la petición del <>,
devolviendo un mensaje e indicando el éxitoo el fracaso de la
petición.

yDe una manera general hemos indicado entre
comillas los sustantivos y en cursiva los verbos. De
esta forma hemos identificado los objetos principales
de la aplicación y las operaciones asociadas a cada
uno de los objetos.

Clasificacion
Clasificacion

yObserve el siguiente diagrama.

ytraducido los requerimientos a un conjunto de objetos.

y Estos están inconexos entre sí, pero aplicando la

<> podemos ver las relaciones que existen
entre ellos.

Clasificacion
Clasificacion

ySin salirnos de las especificaciones de la aplicación, vemos que existen las

asociaciones que aparecen en la siguiente figura:

yComo podemos observar, algunas asociaciones cíclicas como Indice<->

Documento. Estas asociaciones pueden simplificarse.

yTambién existen otras implícitas que examinaremos más adelante, como Usuario-

>Documento->Indice.

Clasificacion
Clasificacion

yObservemos gráficamente las asociaciones que mantienen los

objetos entre sí en la siguiente figura

Clasificacion
Clasificacion(999)
(999)

yLA RELACION DE HERENCIA.

yA continuación vamos a centrarnos en la relación de herencia.

yComo ya sabemos ésta puede agrupar objeto son similares característica o

bien especializar objetos a partir de una genérico. Observemos
nuevamente los requerimientos de nuestro sistema:

Asociaciones
Asociaciones

yLas asociaciones entre dos clases se representan mediante una

línea que las une. La línea puede tener una serie de elementos
gráficos que expresan características particulares de la asociación.

yA continuación se verán los más importantes de entre dichos

elementos gráficos.

y El nombre de la asociación es opcional y se muestra como un texto

que está próximo a la línea.

ySe puede añadir un pequeño triángulo negro sólido que indique la

dirección en la cual leer el nombre de la asociación. En el ejemplo
de la Figura se puede leer la asociación como ´Director manda
sobre Empleadoµ.

Multiplicidad
Multiplicidad

yLa multiplicidad es una restricción que se pone a una asociación, que limita

el número de instancias de una clase que pueden tener esa asociación con
una instancia de la otra clase. Puede expresarse de las siguientes formas:

· Con un número fijo: 1.

· Con un intervalode valores: 2..5.

· Con un rango en el cual uno de los extremos es un asterisco. Significa que es

un intervalo abierto. Por ejemplo, 2..* significa 2 o más.

· Con una combinación de elementos como los anteriores separados por

comas: 1, 3..5, 7, 15..*.

· Con un asterisco: * . En este caso indica que puede tomar cualquier valor (cero o

más).

Roles
Roles

yPara indicar el papel que juega una clase en una asociación se puede

especificar un nombre de rol. Se representa en el extremo de la asociación
junto a la clase que desempeña dicho rol.

Agregación
Agregación

y El símbolo de agregación es un diamante colocado en el extremo en el que

está la clase que representael ´todoµ.

Clases
ClasesAsociación
Asociación

yCuando una asociación tiene propiedades propias se representa como una

clase unida a la línea de la asociación por medio de una línea a trazos.

yTanto la línea como el rectángulo de clase representan el mismo elemento

conceptual: la asociación.

yPor tanto ambos tienen el mismo nombre, el de la asociación.

yCuando la clase asociación sólo tiene atributos el nombre suele ponerse

sobre la línea (como ocurre en el ejemplo de la Figura).

yPor el contrario, cuando la clase asociación tiene alguna operación o

asociación propia, entonces se pone el nombre en la clase asociación y se
puede quitar de la línea.

Asociaciones
AsociacionesNN--Arias
Arias

y En el caso de una asociación en la que participan más de dos clases, las

clases se unen con una línea a un diamante central. Si se muestra
multiplicidad en un rol, representa el número potencial de tuplasde
instancias en la asociación cuando el resto de los N-1 valores están fijos.

y En la Figura 12 se ha impuesto la restricción de que un jugador no puede

jugar en dos equipos distintos a lo largo de una temporada, porque la
multiplicidad de ´Equipoµ es 1 en la asociación ternaria.

Herencia
Herencia

yLa relación de herencia se representa mediante un triángulo en el extremo

de la relación que corresponde a la clase más general o clase ´padreµ.

ySi se tiene una relación de herencia con varias clases subordinadas, pero en

un diagrama concreto no se quieren poner todas, esto se representa
mediante puntos suspensivos.

y En el ejemplo de la Figura, sólo aparecen en el diagrama 3 tipos de

departamentos, pero con los puntos suspensivos se indica que en el
modelo completo (el formado por todos los diagramas) la clase
´Departamentoµ tiene subclases adicionales, como podrían ser ´Recursos

Humanosµ y ´Producciónµ.

Conceptos básicos de la OxO
Conceptos básicos de la OxO

y Polimorfismo

Polimorfismo significa que la misma

operación

puede

comportarse

diferentemente sobre distintas clases. Por

ejemplo, la operación "mover" ejemplo

puede comportarse diferentemente sobre

una clase llamada Ventana y una clase

llamada Piezas_ajedrez.

Conceptos básicos de la OxO
Conceptos básicos de la OxO

y Polimorfismo Paramétrico: Se obtiene cuando una

función trabaja uniformemente sobre un rango de
tipos; esos tipos normalmente exhiben una
estructura común y puede comportarse de manera
distinta para cada tipo.

y Polimorfismo de Inclusión: Es un polimorfismo

utilizado por modelos de subtipos y herencia. En
este tipo de polimorfismo un objeto puede
pertenecer a clases diferentes que no
necesariamente son disjuntas.

Conceptos básicos de la OxO
Conceptos básicos de la OxO

y Polimorfismo por Overloading: En este

caso el mismo nombre se utiliza para

denotar diferentes funciones, y el

contexto se utiliza para decidir cual

función se debería ejecutar para una

invocación particular del nombre.

Conceptos básicos de la OxO
Conceptos básicos de la OxO

y Polimorfismo por Coerción: Es una

operación semántica que convierte
argumentos a los tipos esperado por una
función, en una situación que de otra forma
resultaría en un tipo de error.

y La coerción puede estar dada

estáticamente,

insertándose
automáticamente entre argumentos y
funciones a tiempo de compilación o
pueden tener que determinarse
dinámicamente, con pruebas a tiempos de
ejecución sobre los argumentos.

Conceptos básicos de la
Conceptos básicos de la OxO

OxO(999)
(999)

y Herencia

y La herencia consiste en el compartir

atributos y métodos entre clases
basándose en una relación jerárquica.

y Una clase puede definirse ampliamente y

redefinirse sucesivamente en subclases
más refinadas.

y Cada subclase que se incorpora, hereda

todas las propiedades de su superclase y
adiciona sus propias y únicas propiedades.

Conceptos básicos de la OxO
Conceptos básicos de la OxO

Elementos capaces de ser

heredados

y Herencia Estructural.

y Herencia de Comportamiento (

herencia de métodos).

Conceptos básicos de la OxO
Conceptos básicos de la OxO

Nombre

Persona

Empleado

Estudiante

Secretaría

Director

Año de experiencia

Idiomas

Dependencia

Cargo

Denominación

Carrera

Edad

Dirección

Sexo

Profesión

Dependencia

Conceptos básicos de la OxO
Conceptos básicos de la OxO

yTipos de Herencia:

ySimple.

yMúltiple

Conceptos básicos de la OxO
Conceptos básicos de la OxO

Nombre

Persona

Empleado

Estudiante

Secretaría

Director

Año de experiencia

Idiomas

Dependencia

Cargo

Denominación

Carrera

Edad

Dirección

Sexo

Profesión

Dependencia

Conceptos básicos de la OxO
Conceptos básicos de la OxO

y Definición de Herencia Múltiple: Una

clase puede heredar rasgos de más

de una superclase. Una clase con

más de una superclase es llamada

clase junta. Un rasgo de una clase

ancestro que se encuentra más de

una vez a lo largo de una ruta solo se

hereda una vez.

Conceptos básicos de la OxO
Conceptos básicos de la OxO

Vehícul

Vehícul Terrestres

Vehícul s Acuáticos

Carros

Vehículos

Anfi ios

Bote

Conceptos básicos de la OxO
Conceptos básicos de la OxO

y Encadenamiento Dinámico:

Una de las ventajas que promueve el estilo
de programación orientada por objeto es la
característica del encadenamiento
dinámico,

también

llamado
encadenamiento tardío. En efecto, no se
tendrían sistemas orientados por objeto sin
esa poderosa capacidad.

y Simplemente, la declaración

encadenamiento dinámico significa que el
sistema encadenará una rutina a un
selector para un método particular que está
implantado sobre un objeto clase.

Patrones
Patronesde

de Diseño
Diseño

Patrones
Patronesde

de Diseño
Diseño

y ‡ El diseño OO es difícil y el diseño de software

orientado a objetos reutilizable lo es aún más.

y ‡ Los diseñadores expertos no resuelven los

problemas desde sus principios; reutilizan
soluciones que han funcionado en el pasado.

²Se encuentran patrones de clases y objetos de

comunicación recurrentes en muchos sistemas
orientadosa objetos.

² Estos patrones resuelven problemas de diseño

específicos y hacen el diseño flexible y reusable.

Definición
Definiciónde un

de un patrón
patrón

yAlexander(arquitecto/urbanista)

yCada patrón describe un problema que ocurre

una y otra vez en nuestro entorno y describe
también el núcleo de la solución al problema, de
forma que puede utilizarse un millón de veces
sin tener que hacer dos veces lo mismo.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->