Академический Документы
Профессиональный Документы
Культура Документы
Permite:
- Construir aplicaciones más rápidamente.
- Incrementar la calidad del producto resultado.
- Soportar el cambio de requerimientos mas facilmente.
- Soportar la migración a plataformas distribuidas.
- Permite una relación entre un modelo de negocio orientado a objetos y los componentes de un
software
desarrollado en un lenguaje orientado a objetos.
Beneficios
- Es una vía de modelado muy intuitiva porque esta refleja la forma en que nosotros pensamos
en el mundo real (utiliza nuestro vocabulario).
- Facilidad en el mantenimiento de sistemas que reflejen cambios en sus requerimientos, debido
a que los componentes desarrollados pueden cambiar y modificarse sin efectos sobre otros
componentes.
- Un mismo modelo es usado a lo largo de todo el ciclo de vida de desarrollo, desde la fase de
análisis hasta la fase de implementación (usando los mismos conceptos, simplificando la
extensión del problema y refinándolo).
- Mantiene una clara separación entre la interfaz (¿QUÉ es lo que hace un objeto?) y su
implementación (¿CÓMO lo hace?). Esta separación permite que los objetos sean más flexibles
debido a que se puede cambiar la implementación de las clases sin afectar el resto del sistema.
“Que es un Objeto?
- Un objeto es definido como una abstracción de software que modela los aspectos relevantes de
una entidad tangible o conceptual dentro de una solución (modela alguna parte de la realidad).
- Un objeto es un "paquete" de software que contiene una colección de datos relacionados
(atributos) y procedimientos (métodos) que controlan dichos datos.
-La estructura y comportamiento de objetos similares están definidos en una clase común para
especificación y simplificación. Las clases son como plantillas a partir de las cuales se pueden
crear objetos con las mismas características (Un objeto es una instancia de una clase).
- Los objetos se comunican entre ellos enviando mensajes de una a otro, los cuales producen que
se ejecute una operación (también conocido como método) en el objeto que lo recibe, logrando
así que el sistema responda.
Un objeto es la instancia de una clase (o categoría), que cuenta con una estructura:
atributos (propiedades) y operaciones (metodos). Las operaciones son todas las
actividades que el objeto es capaz de realizar.
Los atributos y operaciones, en conjunto, se conocen como características o razgos.
- Lo importante es entender como el objeto será usado en el sistema especificando solo las
operaciones relevantes.
Atributos de un Objeto
-Los Objetos tienen todo el conocimiento del sistema. Cada pieza de conocimiento es llamada
atributo, el cuál tiene un nombre y un valor. El estado de un objeto esta definido por el valor de
sus atributos.
- Los atributos son normalmente deducidos después de que se haya decidido las operaciones
que este va a brindar.
El número de atributos depende de las operaciones que el objeto ejecuta.
-Los objetos pueden necesitar acceder a los datos almacenados en otros objeto.
Abstracción
La abstracción se refiere a quitar las características de un objeto para dejar sólo aquellas que
sean necesarias. Diferentes tipos de problemas requieren distintas cantidades de información,
aún si estos problemas pertenecen a un área común.
En un sistema que consta de objetos, éstos dependen unos de otros en diversas formas. Si uno
de ellos falla y los desarrolladores tienen que modificarlo, el ocultar sus operaciones de otros
objetos significará que tal vez no será necesario modificar los demás objetos.
Beneficios
Interno:
- Evita que se ”corrompan„ los datos.
- La implementación de una operación puede cambiar sin imposibilitar que los demás usuarios la puedan seguir usando de la misma
manera.
Externo:
- Evita que otros objetos se ”compliquen„ con el uso del objeto.
Asociaciones
- Los Objetos necesitan comunicarse con otros objetos. Para ello los Objetos se asocian con otros
objetos a través de enlaces (Asociaciones). Un objeto puede pasar mensajes a otro objeto
utilizando estas Asociaciones.
Las asociaciones son bidireccionales. Cada objeto puede enviar mensajes al otro.
Agregación
Es un tipo de asociación mediante el cual un objeto se conforma de otros sub-objetos (una
combinación de diversos tipos de objetos).
¿ Por ejemplo un objeto Computadora esta compuesto por los subobjetos Monitor, Teclado, CPU,
Mouse, etc.
El uso de Agregación facilita el reúso de componentes desarrollados para otros objetos. Los
subobjetos
desarrollados para un sistema pueden ser utilizados para otros.
Multiplicidad
La Multiplicidad describe el número de objetos que son parte de una asociación o enlace en un
momento en el tiempo. Es necesario identificar la multiplicidad para entender las limitaciones y
habilidades del sistema que se está modelando.
Es usualmente expresado de las siguientes maneras.
- Solo 1
- 0o1
- 0 o mas
- De 1 a Muchos
Mensajes
En un sistema los objetos trabajan en conjunto interactuando a través del envió de mensajes.
Éstos mensajes indican la necesidad de un servicio del objeto que envía el mensaje (precisando
que método ejecutar) y el otro receptor ejecutará la operación.
“Una comunicación entre objetos que transmite información con la expectativa de desatar una
acción. La recepción de un mensaje es, normalmente, considerado como un evento”
Partes de un mensaje:
- Objeto receptor
- Metodo a activar
- Parametro (opcional)
En los mensajes existe el requerimiento, del objeto emisor al receptor, y una respuesta del
receptor al emisor.
La respuesta o valor de retorno de un mensaje puede ser un objeto o un tipo simple de dato.
Clases
Una clase es una categorizacion de objetos que tienen el mismo comportamiento y la misma
estructura, de manera que se pueda especificar atributos, operaciones y asociaciones comunes a
ellos.
Ademas es una plantilla para fabricar objetos con las mismas caracteristicas.
- Cuando se crea un objeto particular a partir de una clase, es necesario que se inicialicen los
atributos y asociaciones con valores especıficos.
Ejm. Para la clase Persona al momento de crearse un objeto a partir de ella es necesario definir
los atributos de este, como son el nombre, el apellido, direccio n, etc.
Herencia
Herencia es la relacion existente entre clases donde una clase llama a la otra padre.
La clase hijo puede tener atributos adicionales y un comportamiento relevante a e l ası como
puede redefinir
operaciones especificadas en la clase padre en el caso fuera requerido.
Cuando un objeto de una clase hijo es creado, e l hereda todas las propiedades de su clase padre
ademas de los
definidos en la clase hijo.
La herencia puede mejorar la productividad debido a que nuevas clases pueden ser creadas
rapidamente basadas en
clases ya existentes.
Es importante que cada metodo implementado tenga la misma semantica. (Los argumentos
pasados como
parametro y el valor de retorno deben ser consistentes en todos los me todos polimorficos).
Ejemplos.
¿ Si para las siguientes clases
-Prestamo Largo Plazo
-Prestamo a Corto Plazo
-Sobregiro
-Tarjeta de Credito
¿ Se desea implementar un metodo de calculo de interes, cada modalidad de credito puede tener su propia tasa de interes y su
propia formula de calculo.
¿ La implementacion de cada uno de estos metodos para cada una de estas clases serıa un conjunto de metodos polimo rficos.
En ocasiones una operación tiene el mismo nombre en diferentes clases. Por ejemplo, podrá abrir
una puerta, una ventana, un periódico, un regalo o una cuenta de banco, en cada uno de estos
casos, realizará una operación diferente. En la OO, cada clase “sabe” cómo realizar tal
operación. Esto es el polimorfismo.
En una empresa productora de colchones, diariamente llegan insumos y materias primas utilizadas en el proceso de fabricacion provenientes de
diferentes proveedores.
- Cada embarque de materias primas llega con una factura del proveedor.
- En el almacen de la fabrica se ingresan los insumos o materias primas habiendose verificado que lo especificado en la factura del proveedor sea
exactamente lo que se esta recibiendo. (En ocasiones parte de la mercaderıa no llega completa o se rechaza parte de ella por no cumplir con ciertas
especificaciones de la empresa en cuyo caso so lo se registra en el sistema lo que se ingresa.)
- Una vez ingresada la mercaderıa se genera la nota de ingreso de mercaderıa de almacen, que junto con la factura del proveedor es enviada al area
de contabilidad, para que esta registre en el sistema la factura del proveedor (Indicandose la fecha de vencimiento, forma de pago, moneda, ademas
de otros datos.)
Semanalmente se obtiene un listado de las facturas vencidas o por vencer en la semana para que pase por aprobacion del gerente financiero, el cual
indica que facturas deberan ser canceladas.
De la relacio n de facturas aprobadas por el gerente financiero la persona de contabilidad procedera a generar los cheques correspondientes
(Pudiendo un mismo cheque cancelar 2 o mas facturas de un mismo proveedor.)
Definir las clases requeridas para el siguiente caso. Adicionalmente dar ejemplos de objetos de las principales clases.
Resumen
Un objeto es una instancia de una clase. Una clase es una categoría genérica de objetos que tienen los
mismos atributos y operaciones. Cuando crea un objeto, el área del problema en que trabaje determinará
cuántos de los atributos y operaciones debe tomar en cuenta.
Un objeto hereda los atributos y operaciones de su clase. Una clase también puede heredar atributos y
operaciones de otra.
El polimorfismo esquecifica que una operación puede tener el mismo nombre en diferentes clases y cada
clase ejecutará tal operación de forma distinta.
Los objetos ocultan su funcionalidad de otros objetos y del mundo exterior. Cada objeto presenta una
interfaz para que otros objetos (y personas) puedan aprovechar su funcionalidad.
Los objetos funcionan en conjunto mediante el envío de mensajes entre ellos. Los mensajes son
peticiones para realizar operaciones.
Por lo general, los objetos se asocian entre sí y esta asociación puede ser de diversos tipos. Un objeto en
una clase puede asociarse con cualquier cantidad de objetos distintos en otra clase.
La agregación es un tipo de asociación. Un objeto agregado consta de un conjunto de objetos que lo
componen y una composición es un tipo especial de agregación. En un objeto compuesto, los
componentes sólo existen como parte del objeto compuesto.
Clase 2
Ciclo de Desarrollo
Fases de un Proyecto
– Toma de Requerimientos: Identificar las necesidades explıcitas o implıcitas del negocio.
Se identifican las necesidades o problemas (requerimientos) que debe proporcionar el sistema.
Estos requerimientos pueden ser funcionales (Que es lo que debe proveer el sistema) o no
funcionales (restricciones que el sistema debe cumplir como rendimiento o confiabilidad).
– Diseno:
Definir como el sistema trabaja internamente, para que los requerimientos puedan ser
entregados.
– Se profundiza en el modelo obtenido del analisis, identificando en mayor detalle los objetos que
lo
conforman y sus interrelaciones en una mayor profundidad.
– Implementacion:
Construccion del modelo disenado en el paso anterior.
– Soporte y Mantenimiento:
Puesta en marcha del sistema.
Correccion de errores cometidos durante la etapa de implementacion.
Fases secuenciales
Comienzo de una fase con el término de la anterior
Paso de fase al conseguir los objetivos
Obtención de documentos como criterio de finalización de
fase
El final de una fase puede suponer un punto de revisión
Inconvenientes
Exige al usuario que exponga explícitamente todos los requisitos al principio, presentando
problemas para gestionar la incertidumbre natural propia del comienzo de la mayoría de los
proyectos
Hasta llegar a las etapas finales del desarrollo no habrá una versión operativa del programa, lo
que influye negativamente en el descubrimiento a tiempo de errores o incongruencias en los
requisitos
Un proceso iterativo permite una comprensión creciente de los requerimientos, a la vez que se va haciendo crecer el sistema. Así se
logra reducir los riesgos del proyecto y tener un subsistema ejecutable tempranamente.
Este modelo se basa en la evolución de prototipos ejecutables, mensurables y evaluables, en los cuales se van incorporando mejoras
funcionales en cada iteración (versiones).
Cada iteración reproduce el ciclo de vida en cascada, pero a una escala menor. Los objetivos de cada iteración se establecen en función
de la evaluación de las iteraciones precedentes
RUP sigue un modelo iterativo que aborda las tareas más riesgosas primero.
Beneficios
Se alienta el feedback del usuario
Focalización en los temas más críticos, sin distracciones
Testing continuo e iterativo: evaluación objetiva
Inconsistencias entre requerimientos, diseños e implementaciones se detectan tempranamente
Carga de trabajo mejor repartida en el tiempo
Integración progresiva en lugar de Big Bang
Evidencias concretas a los sponsors
Se facilita la reutilización
Arquitectura más robusta
2) Diseno de Requerimientos
– Se adiciona mas informacio n al modelo con el fin de especificar como los objetos se comunican entre sı utilizando mensajes.
3) Diseno de Clases
– En esta etapa se tiene un razonable detalle y descripcion de las principales clases en el sistema..
– Se debe revisar cada clase definiendoles los atributos y operaciones.
4) Diseno de Asociaciones
– En el Analisis Orientado a Objetos (OOA) se asume que todas las asociaciones son bidireccionales.
- En esta etapa se revisa cada asociacion y se identifica la mas eficiente implementacion para los fines buscados.
Implementacion
La fase de Implementacion se puede dividir en las siguientes etapas:
1) Definir las Clases en Codigo
– Para cualquier lenguaje de programacio n utilizado, como primer pasose debe definir cada clase en el lenguaje escogido.
– En la definicio n de la clase se debe especificar: nombre de la clase, nombre de los atributos (especificando los tipos) y nombres de las
operaciones indicando el nu mero y tipo de sus argumentos.
3) Prueba Unitaria
– Cada clase antes de poder ser considerada segura para ser reusada por otros programadores en otros proyectos deberaser probada
Debidamente
– Esta prueba deberaser realizada de forma separada para cada clase.
4) Prueba de Integracio n
– Una vez se tengan todas las clases operando apropiadamente de forma independiente se debera verificar que ademas trabajan
correctamente una vez que todas hayan sido reunidas.
5) Prueba de Aceptacion
– El sistema es probado por el cliente (usuario) con la finalidad que lo valide y verifique que cumple con los requerimientos especificados.
UML no es una metodologıa. Es una sintaxis visual que puede ser usada para crear modelos
metodolo gicos
como es el caso del Proceso Unificado (Unified Process, UP) base de RUP (Rational Unified
Process).
Esto se debe a que permite a los analistas y diseñadores de sistemas crear diagramas que capturen los requerimientos de los usuarios y
las soluciones de los analistas en una forma sencilla y fácil de comprender por todo el equipo de desarrollo, así como por los usuarios
convencionales.
1) Provee a los desarrolladores un lenguaje de modelamiento visual listo para utilizar.
Consolida un conjunto de conceptos generalmente aceptados por muchos métodos y
herramientas.
2) Proporciona mecanismos de extensión y de especialización para ampliar los conceptos
básicos.
3) Es independiente de los lenguajes de programación y de métodologías de desarrollo de
software.
4) Proporciona una base formal para entender el lenguaje de modelado.
5) Anima el crecimiento del mercado de las herramientas OO.
6) Utiliza conceptos de alto nivel de desarrollo tales como colaboraciones, armazones,
modelos y componentes.
7) Integra las mejores prácticas de desarrollo de software.
Diagramas UML
UML dispone de los siguientes diagramas:
Análisis í Definir claramente el propo sito del sistema. Diagramas Use Case.
í Comprender las caracterısticas, relaciones y comportamiento de Diagramas de Clases.
todos los elementos involucrados en el sistema. Diagramas de Actividades.
í Delimitar el alcance (requerimientos) y las restricciones del sistema.
í Entender las reglas del negocio.
Implementacion í Desarrollar los me todos definidos en las clases funcionales. í Diagramas de Casos de Uso.
í Desarrollar la interfaz grafica de usuario. í Diagramas de Interaccio n.
í Llevar a cabo las pruebas del sistema. í Diagrama de Despliegue.
í Capacitar a los usuarios.
í Instalar el sistema.