Anda di halaman 1dari 52

Introduccin al Anlisis y Diseo OO

Ing. Jorge Basilio Juan

Objetivos

Conocer los conceptos bsicos de la orientacin a


objetos. Comprender como se estructura un proyecto de desarrollo de software bajo el proceso iterativo e incremental del RUP y el lenguaje de modelacin unificado UML. Establecer las diferencias y relaciones entre los procesos del negocio y los del sistema.

Objetivos

Establecer adecuadamente los requerimientos


Entender los artefactos usados en el anlisis y Refinar, establecer y validar la relacin entre los
diferentes artefactos de anlisis y diseo. del sistema y estructurarlos en Casos de Uso.

diseo Orientado a Objetos.

Estructura del Curso


Principios de la OO Introduccin
RUP y UML Modelacin del Negocio

Requerimientos

Anlisis OO

Diseo OO

Otros artefactos de ADOO

Anlisis Es el estudio previo que se debe realizar antes de tomar alguna decisin o llevar a cabo una accin. Objetivo del anlisis Es la identificacin de los elementos en un sistema y la manera en que dicho elementos se relacionan entre si. Al hacer el anlisis de las necesidades, los anlistas de sistemas necesitan estudiar al sistema que ser perfeccionado, mejorado o reemplazado. De este anlisis inicial, se obtiene una informacin muy valiosa sobre la manera en que se llevan a cabo las cosas

Cuando se hace anlisis de sistemas estn 3 protagonistas:


Usuario, Administrador, Analista.

El analista, administrador y usuario hacen generar


solicitudes dialogando luego definen el problema, y se construye el modelo, pero para esto se necesita entrevistar a los usuarios.

Qu es Diseo? Tiene como objetivo producir modelos o representaciones de una entidad que se construir posteriormente Combina intuicin, experiencia, heursticas, criterios de calidad y un proceso de iteracin Definiciones El diseo pone de relieve una solucin lgica. Determina como el sistema cumple con los requerimientos. Ejemplos: De que manera el software del SI de Biblioteca capturara y registrara los prestamos de libros.

Es una metodologa de modelamiento de sistemas que consiste en derivar un modelo computacional equivalente al modelo conceptual. Base de datos Estructura de datos Interfaces Formularios (Pantallas) Informes (Reportes, listados) Algoritmos Procedimiento de trabajo del programador (rutinas)

Qu es Software Educativo o Educacional?


Programas educativos y programas didcticos como sinnimos para designar genricamente los programas para ordenador creados con la finalidad especfica de ser utilizados como medio didctico, es decir, para facilitar los procesos de enseanza y de aprendizaje. Esta definicin engloba todos los programas que han estado elaborados con fin didctico, desde los tradicionales programas basados en los modelos conductistas de la enseanza, hasta los a un programas experimentales de Enseanza Inteligente Asistida por Ordenador

Que, utilizando tcnicas propias del campo de los Sistemas Expertos y de la Inteligencia Artificial en general, pretenden imitar la labor tutorial personalizada que realizan los profesores y presentan modelos de representacin del conocimiento en consonancia con los procesos cognitivos que desarrollan los alumnos. Clasificacin de los Software Educativo Se han elaborado mltiples tipologas que clasifican los programas didcticos a partir de diferentes criterios. Programas tutoriales: Dirigen el trabajo del alumno Base de datos: Son datos organizados en un entorno organizado.

Simuladores : posibilitan el aprendizaje significativo Constructores: Facilita al alumno la construccin de su propio aprendizaje Programas de herramientas Facilita la realizacin de ciertos trabajos generales. Caractersticas esenciales de los Software Educativos Comparten cinco caractersticas esenciales: Finalidad didctica Utilizan el ordenador Son interactivos Individualizan el trabajo Son fciles de usar

Estructura bsica de los programas Educativos El entorno de comunicacin o interface Las bases de datos Algoritmo (Uso Lp., Macromedia, etc.)

Aplicaciones Educativas Tutoriales Enciclopedias Historietas/Comics Juegos Educativos Un programa computacional con cierta inteligencia es un agente.

Funciones que pueden Educativos 1. Funcin informativa 2. Funcin Instructiva 3. Funcin Motivadora 4. Funcin investigadora 5. Funcin Expresiva 6. Funcin Metalingstica 7. Funcin Ldica 8. Funcin innovadora

realizar

los

Software

Definicin de Ingeniera de Software Es una disciplina de la Ingeniera que involucra todos aquellos aspectos referidos a la produccin del software en la que se desea que las actividades de desarrollo sean coordinadas y planificadas. Debido a que un proceso de alta calidad debera incrementar nuestra habilidad para crear un producto de alta calidad. Segn Bauer (1969) se entiende por Ingeniera del Software el establecimiento y uso de principios de ingeniera robustos, orientados a obtener software econmico, que sea fiable y funcione eficientemente sobre mquinas reales. Objetivo de la Ingeniera de Software Producir software de alta calidad de forma masiva.

Proceso de Ingeniera de Software Es un conjunto de actividades tcnicas y administrativas realizadas durante la adquisicin, desarrollo, mantenimiento y retiro de Software.

Conceptos Bsicos de Anlisis y Diseo OO

Agenda

Introduccin a la Tecnologa Orientada a Objetos Conceptos bsicos de la OO RUP y UML.

Introduccin a la tecnologa Orientada a Objetos

Qu es la tecnologa OO?
Visualiza al mundo en trminos de objetos Se basa en tres pilares fundamentales:

Se ocupa de guiar la construccin del software en


conjunto con lenguajes, bases de datos y otras herramientas compatibles con sus principios.

Encapsulacin y ocultamiento de la informacin. Abstraccin y clasificacin. Herencia y polimorfismo.

Fortalezas de la OO
Refleja un nico paradigma Facilita el reuso tanto de arquitectura como de cdigo. Refleja los modelos del mundo real de manera muy
cercana.

Fomenta la estabilidad. Es adaptable al cambio.

Dnde se usa la tecnologa OO?

Sistemas Cliente/Servidor Aplicaciones Web. Sistemas en tiempo real.

Conceptos bsicos de la OO

Objetos y Clases
Que es un objeto?
Informalmente un objeto representa una entidad, que
puede ser fsica, conceptual o una pieza de software.

Entidad Fsica

Objetos y Clases
Camin

Entidad Conceptual Entidad de Software


Lista Encadenada

Proceso Qumico

Objetos y clases

Un objeto es un concepto, abstraccin o cosa con


lmites definidos y significado para una aplicacin.

Un objeto tiene:
Estado Comportamiento Identidad

Un objeto tiene estado...

El estado de un objeto es una de las posibles El estado de un objeto cambia con el tiempo. El estado de un objeto se implementa
usualmente por un conjunto de propiedades (atributos) y sus valores mas los nexos con otros objetos. condiciones en las que puede estar o existir.

Un objeto tiene estado...


a + b = 10

Nombre: Joyce Rivas ID Empleado: 567138 Fecha Ingreso: Marzo 21, 2000 Fecha Cese: --Estado: Estable

Profesora Rivas

Un Objeto tiene Comportamiento


El comportamiento determina como un objeto acta y
reacciona.

Tambin define la respuesta que da a los requerimientos


de otros objetos.

El comportamiento visible de un objeto est modelado


por el conjunto de mensajes al que puede responder.

Un Objeto tiene Comportamiento

Asigna a la profesora Rivas Sistema de Registros Acadmicos

a + b = 10

(Retorna: confirmacin)

Anlisis Matemtico

Un objeto tiene Identidad

Cada objeto tiene una identidad nica, an si su estado es


igual al de otro objeto.

Un objeto tiene Identidad

Profesora J Diaz ensea Algebra

Profesor J Castro ensea Algebra

Profesora J Calle ensea Algebra

Objetos y Clases
Que son clases?

Una clase es la descripcin de objetos con


propiedades (atributos), relaciones con otros objetos y semntica en comn. Un objeto es la instancia de una clase.

Objetos y Clases
..... Una clase es la definicin abstracta de un objeto en la que:

Define la estructura y comportamiento de cada objeto de la clase. Sirve como molde para la creacin de nuevos
objetos.

Se enfatizan las caractersticas relevantes Se suprimen otras caractersticas irrelevantes.

Nombre Locacin Cantidad clases Cantidad de Crditos Fecha de Inicio Fecha de Fin

Estructura

Clase Comportamiento Clase Ejemplo Adicionar a un estudiante Curso


Eliminar un estudiante Determinar si hay cupo a + b = 10

Cuntas clases hay?

Objetos y Clases

Objetos y Clases Objetos

Clase Profesor

Profesora Daz
Profesora Prez

Profesor Vlit

Representacin de Clases

La notacin convencional es la de un rectngulo partido en tres.

Profesor

a + b = 10

Profesora Daz

Secciones

Compartimientos de la Clase

La primera contiene el nombre y los datos administrativos y de control. La segunda muestra la estructura (atributos) La tercera muestra el comportamiento (operaciones).
Profesor
Nombre EmpID Crear( ) Salvar( ) Borrar( ) Cambiar( )

Profesor

Profesor

Enfoque Cliente-Servidor

Forma de solucionar un problema en la vida real.


Pregunta:
qu hago si mi auto se descompone?

Solucin
voy al taller para que lo compongan

Enfoque Cliente-Servidor
Pasos en la solucin del problema:

Buscar un servidor apropiado (taller) Hacerle la peticin del servicio (pasarle el mensaje
arreglar auto)

El servidor emplea el mtodo apropiado para


resolver la peticin (procedimiento de arreglo propio del taller)

Enfoque Cliente-Servidor
Consideraciones: su peticin. servidor.

Al cliente no le interesa cmo el servidor resuelve

La solucin est encapsulada u oculta en el


El pensamiento de un servidor es buscar alguien
ms para que colabore con la solucin.

Enfoque Cliente-Servidor

CLIENTE

SERVIDOR

COLABORACION

Abstraccin
Una abstraccin denota las caractersticas esenciales de un
objeto que lo distinguen de todos los dems tipos de objetos, proporcionando as fronteras conceptuales definidas sobre las perspectivas del observador.

Abstraccin

Encapsulamiento
El encapsulamiento se centra en la implementacin Se consigue mediante el ocultamiento de la
informacin. fiable del comportamiento de los objetos de una clase.

Es el proceso de guardar en un mismo almacn los


elementos de una abstraccin que constituyen su estructura y comportamiento.

Encapsulamiento

INTERFAZ

IMPLEMENTACION

Modularidad

Es la propiedad que tiene un sistema que ha sido


descompuesto en un conjunto de mdulos cohesivos y dbilmente acoplados.

El principio a seguir es el bajo acoplamiento y la alta


cohesin.

Modularidad

Jerarqua

Es una clasificacin u ordenamiento de abstracciones. Las dos jerarquas mas importantes en un sistema
complejo son la jerarqua de clases y la de objetos (o jerarqua de partes).

Existen dos tipos de herencia: simple y compleja

Polimorfismo
El trmino griego Polymorphos significa tener muchas
formas

Capacidad de aplicar distintas implementaciones a una determinada funcionalidad o interfaz

Ventaja:
Simplicidad y orden

Polimorfismo

Los Clientes pueden invocar a objetos sin conocer su tipo.

Si hay objetos adicionados que soportan la misma operacin, el cliente no necesita ser modificado para pedir la colaboracin de un objeto nuevo.

El polimorfismo permite que un cliente manipule objetos en trminos de su superclase.

Ejemplo de Polimorfismo
Animal
Hablar ()

Leon
Hablar ()

Tigre
Hablar ()

Sin Polimorfismo
Si animal = Leon then Hacer Leon hablar Caso contrario animal = Tigre entonces Hacer Tigre hablar Fin

Con Polimorfismo
Hacer Animal hablar