DiseñO De Sitemas

52
Introducción al Análisis y Diseño OO Lic. Joel López del Mar

Transcript of DiseñO De Sitemas

Page 1: DiseñO De Sitemas

Introducción al Análisis y Diseño OO

Lic. Joel López del Mar

Page 2: DiseñO De Sitemas

Objetivos

Conocer los conceptos básicos de la orientación a objetos.

Comprender como se estructura un proyecto de desarrollo de software bajo el proceso iterativo e incremental del RUP y el lenguaje de modelación unificado UML.

Establecer las diferencias y relaciones entre los procesos del negocio y los del sistema.

Page 3: DiseñO De Sitemas

Objetivos

Establecer adecuadamente los requerimientos del sistema y estructurarlos en Casos de Uso.

Entender los artefactos usados en el análisis y diseño Orientado a Objetos.

Refinar, establecer y validar la relación entre los diferentes artefactos de análisis y diseño.

Page 4: DiseñO De Sitemas

Introducción

Estructura del Curso

Principios de la OO

  RUP y UML

Modelación del Negocio

Requerimientos

Análisis OO Diseño OO Otros artefactos de

ADOO

Page 5: DiseñO De Sitemas

AnálisisEs el estudio previo que se debe realizar antes de tomar alguna decisión o llevar a cabo una acción.Objetivo del análisisEs la identificación de los elementos en un sistema y la manera en que dicho elementos se relacionan entre si. Al hacer el análisis de las necesidades, los análistas de sistemas necesitan estudiar al sistema que será perfeccionado, mejorado o reemplazado. De este análisis inicial, se obtiene una información muy valiosa sobre la manera en que se llevan a cabo las cosas

Page 6: DiseñO De Sitemas

Cuando se hace análisis de sistemas están 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.

Page 7: DiseñO De Sitemas

¿Qué es Diseño?Tiene como objetivo producir modelos o representaciones de una entidad que se construirá posteriormente Combina intuición, experiencia, heurísticas, criterios de calidad y un proceso de iteración DefinicionesEl diseño pone de relieve una solución lógica.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.

¿Qué es Diseño?Tiene como objetivo producir modelos o representaciones de una entidad que se construirá posteriormente Combina intuición, experiencia, heurísticas, criterios de calidad y un proceso de iteración DefinicionesEl diseño pone de relieve una solución lógica.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.

Page 8: DiseñO De Sitemas

Es una metodologEs una metodologíía de modelamiento de sistemas a de modelamiento de sistemas que consiste en derivar un modelo computacional que consiste en derivar un modelo computacional equivalente al modelo conceptual.equivalente al modelo conceptual.Base de datosBase de datosEstructura de datosEstructura de datosInterfacesInterfacesFormularios (Pantallas)Formularios (Pantallas)Informes (Reportes, listados)Informes (Reportes, listados)AlgoritmosAlgoritmosProcedimiento de trabajo del programador (rutinas)Procedimiento de trabajo del programador (rutinas)

Es una metodologEs una metodologíía de modelamiento de sistemas a de modelamiento de sistemas que consiste en derivar un modelo computacional que consiste en derivar un modelo computacional equivalente al modelo conceptual.equivalente al modelo conceptual.Base de datosBase de datosEstructura de datosEstructura de datosInterfacesInterfacesFormularios (Pantallas)Formularios (Pantallas)Informes (Reportes, listados)Informes (Reportes, listados)AlgoritmosAlgoritmosProcedimiento de trabajo del programador (rutinas)Procedimiento de trabajo del programador (rutinas)

Page 9: DiseñO De Sitemas

¿Qué es Software Educativo o Educacional?Programas educativos y programas didácticos como sinónimos para designar genéricamente los programas para ordenador creados con la finalidad específica de ser utilizados como medio didáctico, es decir, para facilitar los procesos de enseñanza y de aprendizaje.Esta definición engloba todos los programas que han estado elaborados con fin didáctico, desde los tradicionales programas basados en los modelos conductistas de la enseñanza,hasta los a un programas experimentales de Enseñanza Inteligente Asistida por Ordenador

Page 10: DiseñO De Sitemas

Que, utilizando técnicas 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 representación del conocimiento en consonancia con los procesos cognitivos que desarrollan los alumnos.

Clasificación de los Software Educativo Se han elaborado múltiples tipologías que clasifican los programas didácticos a partir de diferentes criterios. Programas tutoriales: Dirigen el trabajo del alumnoBase de datos: Son datos organizados en un entorno organizado.

Que, utilizando técnicas 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 representación del conocimiento en consonancia con los procesos cognitivos que desarrollan los alumnos.

Clasificación de los Software Educativo Se han elaborado múltiples tipologías que clasifican los programas didácticos a partir de diferentes criterios. Programas tutoriales: Dirigen el trabajo del alumnoBase de datos: Son datos organizados en un entorno organizado.

Page 11: DiseñO De Sitemas

•Simuladores : posibilitan el aprendizaje significativo•Constructores: Facilita al alumno la construcción de su propio aprendizaje •Programas de herramientas Facilita la realización de ciertos trabajos generales.

Características esenciales de los Software EducativosComparten cinco características esenciales:Finalidad didácticaUtilizan el ordenadorSon interactivosIndividualizan el trabajoSon fáciles de usar

•Simuladores : posibilitan el aprendizaje significativo•Constructores: Facilita al alumno la construcción de su propio aprendizaje •Programas de herramientas Facilita la realización de ciertos trabajos generales.

Características esenciales de los Software EducativosComparten cinco características esenciales:Finalidad didácticaUtilizan el ordenadorSon interactivosIndividualizan el trabajoSon fáciles de usar

Page 12: DiseñO De Sitemas

Estructura básica de los programas Educativos•El entorno de comunicación o interface •Las bases de datos•Algoritmo (Uso Lp., Macromedia, etc.)

Aplicaciones EducativasTutorialesEnciclopediasHistorietas/ComicsJuegos EducativosUn programa computacional con cierta inteligencia es un agente.

Estructura básica de los programas Educativos•El entorno de comunicación o interface •Las bases de datos•Algoritmo (Uso Lp., Macromedia, etc.)

Aplicaciones EducativasTutorialesEnciclopediasHistorietas/ComicsJuegos EducativosUn programa computacional con cierta inteligencia es un agente.

Page 13: DiseñO De Sitemas

Funciones que pueden realizar los Software Educativos• Función informativa• Función Instructiva• Función Motivadora• Función investigadora• Función Expresiva• Función Metalingüística• Función Lúdica• Función innovadora

Funciones que pueden realizar los Software Educativos• Función informativa• Función Instructiva• Función Motivadora• Función investigadora• Función Expresiva• Función Metalingüística• Función Lúdica• Función innovadora

Page 14: DiseñO De Sitemas

Definición de Ingeniería de SoftwareEs una disciplina de la Ingeniería que involucra todos aquellos aspectos referidos a la producción del softwareen la que se desea que las actividades de desarrollo sean coordinadas y planificadas. Debido a que un proceso de alta calidad debería incrementar nuestra habilidad para crear un producto de alta calidad.Según Bauer (1969) se entiende por Ingeniería del Software “el establecimiento y uso de principios de ingeniería robustos, orientados a obtener software económico, que sea fiable y funcione eficientemente sobre máquinas reales”.Objetivo de la Ingeniería de SoftwareProducir software de alta calidad de forma masiva.

Definición de Ingeniería de SoftwareEs una disciplina de la Ingeniería que involucra todos aquellos aspectos referidos a la producción del softwareen la que se desea que las actividades de desarrollo sean coordinadas y planificadas. Debido a que un proceso de alta calidad debería incrementar nuestra habilidad para crear un producto de alta calidad.Según Bauer (1969) se entiende por Ingeniería del Software “el establecimiento y uso de principios de ingeniería robustos, orientados a obtener software económico, que sea fiable y funcione eficientemente sobre máquinas reales”.Objetivo de la Ingeniería de SoftwareProducir software de alta calidad de forma masiva.

Page 15: DiseñO De Sitemas

Proceso de Ingeniería de Software Es un conjunto de actividades técnicas y administrativas realizadas durante la adquisición, desarrollo, mantenimiento y retiro de Software.

Proceso de Ingeniería de Software Es un conjunto de actividades técnicas y administrativas realizadas durante la adquisición, desarrollo, mantenimiento y retiro de Software.

Page 16: DiseñO De Sitemas

Conceptos Básicos de Análisis y Diseño

OO

Page 17: DiseñO De Sitemas

Agenda

Introducción a la Tecnología Orientada a Objetos

Conceptos básicos de la OO RUP y UML.

Page 18: DiseñO De Sitemas

Introducción a la tecnología

Orientada a Objetos

Page 19: DiseñO De Sitemas

¿Qué es la tecnología OO? Visualiza al mundo en términos de

objetos Se basa en tres pilares fundamentales:

Encapsulación y ocultamiento de la información.

Abstracción y clasificación. Herencia y polimorfismo.

Se ocupa de guiar la construcción del software en conjunto con lenguajes, bases de datos y otras herramientas compatibles con sus principios.

Page 20: DiseñO De Sitemas

Fortalezas de la OO

Refleja un único paradigma Facilita el reuso tanto de

arquitectura como de código. Refleja los modelos del mundo

real de manera muy cercana. Fomenta la estabilidad. Es adaptable al cambio.

Page 21: DiseñO De Sitemas

¿Dónde se usa la tecnología OO? Sistemas Cliente/Servidor Aplicaciones Web. Sistemas en tiempo real.

Page 22: DiseñO De Sitemas

Conceptos básicos de la OO

Page 23: DiseñO De Sitemas

Objetos y Clases

¿Que es un objeto?

Informalmente un objeto representa una entidad, que puede ser física, conceptual o una pieza de software.

Page 24: DiseñO De Sitemas

Camión

Proceso Químico

Lista Encadenada

Objetos y Clases

Entidad Física

Entidad Conceptual

Entidad de Software

Page 25: DiseñO De Sitemas

Objetos y clases

Un objeto es un concepto, abstracción o cosa con límites definidos y significado para una aplicación.

Un objeto tiene: Estado Comportamiento Identidad

Page 26: DiseñO De Sitemas

Un objeto tiene estado...

El estado de un objeto es una de las posibles condiciones en las que puede estar o existir.

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.

Page 27: DiseñO De Sitemas

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

Profesora Rivas

a + b = 10

Un objeto tiene estado...

Page 28: DiseñO De Sitemas

Un Objeto tiene Comportamiento El comportamiento determina como

un objeto actúa y reacciona. También 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.

Page 29: DiseñO De Sitemas

Asigna a la profesora Rivas

(Retorna: confirmación) Sistema deRegistros

Académicos

Análisis Matemático

a + b = 10

Un Objeto tiene Comportamiento

Page 30: DiseñO De Sitemas

Un objeto tiene Identidad Cada objeto tiene una identidad

única, aún si su estado es igual al de otro objeto.

Page 31: DiseñO De Sitemas

Profesora “J Diaz”enseña Algebra Profesor “J Castro”

enseña Algebra Profesora “J Calle”enseña Algebra

Un objeto tiene Identidad

Page 32: DiseñO De Sitemas

Objetos y Clases

¿Que son clases?

Una clase es la descripción de objetos con propiedades (atributos), relaciones con otros objetos y semántica en común.

Un objeto es la instancia de una clase.

Page 33: DiseñO De Sitemas

Objetos y Clases

..... Una clase es la definición abstracta de

un objeto en la que: Se enfatizan las características relevantes Se suprimen otras características

irrelevantes. Define la estructura y comportamiento

de cada objeto de la clase. Sirve como molde para la creación de

nuevos objetos.

Page 34: DiseñO De Sitemas

Clase Ejemplo

a + b = 10

ClaseCurso

EstructuraNombreLocación

Cantidad clasesCantidad de Créditos

Fecha de InicioFecha de Fin

ComportamientoAdicionar a un estudiante

Eliminar un estudianteDeterminar si hay cupo

Page 35: DiseñO De Sitemas

Objetos y Clases

¿Cuántas clases hay?

Page 36: DiseñO De Sitemas

Objetos Clase

Profesor

Profesora Díaz

Profesora Pérez

Profesor Vélit

Objetos y Clases

Page 37: DiseñO De Sitemas

Profesor

Profesora Díaz

a + b = 10

Representación de Clases La notación convencional es la de un rectángulo partido en

tres.

Page 38: DiseñO De Sitemas

Profesor

Profesor

Compartimientos de la Clase

Secciones La primera contiene el nombre y los datos

administrativos y de control. La segunda muestra la estructura (atributos) La tercera muestra el comportamiento

(operaciones).

ProfesorNombreEmpID

Crear( )Salvar( )Borrar( )Cambiar( )

Page 39: DiseñO De Sitemas

Enfoque Cliente-Servidor

Forma de solucionar un problema en la vida real.

Pregunta:

¿qué hago si mi auto se descompone?

Solución

voy al taller para que lo compongan

Page 40: DiseñO De Sitemas

Enfoque Cliente-Servidor

Pasos en la solución del problema: Buscar un servidor apropiado (taller) Hacerle la petición del servicio

(pasarle el mensaje “arreglar auto”) El servidor emplea el método

apropiado para resolver la petición (procedimiento de arreglo propio del taller)

Page 41: DiseñO De Sitemas

Enfoque Cliente-Servidor

Consideraciones: Al cliente no le interesa cómo el

servidor resuelve su petición. La solución está encapsulada u

oculta en el servidor. El pensamiento de un servidor es

buscar alguien más para que colabore con la solución.

Page 42: DiseñO De Sitemas

Enfoque Cliente-Servidor

CLIENTE SERVIDOR COLABORACION

Page 43: DiseñO De Sitemas

Abstracción

Una abstracción denota las características esenciales de un objeto que lo distinguen de todos los demás tipos de objetos, proporcionando así fronteras conceptuales definidas sobre las perspectivas del observador.

Page 44: DiseñO De Sitemas

Abstracción

Page 45: DiseñO De Sitemas

Encapsulamiento

El encapsulamiento se centra en la implementación fiable del comportamiento de los objetos de una clase.

Se consigue mediante el “ocultamiento” de la información.

Es el proceso de guardar en un mismo almacén los elementos de una abstracción que constituyen su estructura y comportamiento.

Page 46: DiseñO De Sitemas

Encapsulamiento

INTERFAZ

IMPLEMENTACION

Page 47: DiseñO De Sitemas

Modularidad

Es la propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados.

El principio a seguir es el bajo acoplamiento y la alta cohesión.

Page 48: DiseñO De Sitemas

Modularidad

O rderSystem<<Standard EXE>>

D AO<<CO M >>

VBA<<CO M >>

VBR U N<<CO M >>

M SCom D lg<<CO M >>

Com ctlLib<<CO M >>

VB<<CO M >>

stdole<<CO M >>

<<im ports>>

Page 49: DiseñO De Sitemas

Jerarquía

Es una clasificación u ordenamiento de abstracciones.

Las dos jerarquías mas importantes en un sistema complejo son la jerarquía de clases y la de objetos (o jerarquía de partes).

Existen dos tipos de herencia: simple y compleja

Page 50: DiseñO De Sitemas

Polimorfismo

El término griego Polymorphos significa “tener muchas formas” Capacidad de aplicar distintas

implementaciones a una determinada funcionalidad o interfaz

Ventaja: Simplicidad y orden

Page 51: DiseñO De Sitemas

Polimorfismo

Los Clientes pueden invocar a objetos sin conocer su tipo. Si hay objetos adicionados que

soportan la misma operación, el cliente no necesita ser modificado para pedir la colaboración de un objeto nuevo.

El polimorfismo permite que un cliente manipule objetos en términos de su superclase.

Page 52: DiseñO De Sitemas

Si animal = “Leon” thenHacer Leon hablar

Caso contrario animal = “Tigre” entonces Hacer Tigre hablarFin

Sin Polimorfismo Con PolimorfismoHacer Animal hablar

Ejemplo de Polimorfismo

Animal

Hablar ()

Leon

Hablar ()

Tigre

Hablar ()