Upload
lincoln25
View
2.731
Download
2
Embed Size (px)
Citation preview
Introducción al Análisis y Diseño OO
Lic. Joel López del Mar
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.
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.
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
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
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.
¿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.
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)
¿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
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.
•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
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.
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
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.
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.
Conceptos Básicos de Análisis y Diseño
OO
Agenda
Introducción a la Tecnología Orientada a Objetos
Conceptos básicos de la OO RUP y UML.
Introducción a la tecnología
Orientada a Objetos
¿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.
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.
¿Dónde se usa la tecnología OO? Sistemas Cliente/Servidor Aplicaciones Web. Sistemas en tiempo real.
Conceptos básicos de la OO
Objetos y Clases
¿Que es un objeto?
Informalmente un objeto representa una entidad, que puede ser física, conceptual o una pieza de software.
Camión
Proceso Químico
Lista Encadenada
Objetos y Clases
Entidad Física
Entidad Conceptual
Entidad de Software
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
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.
Nombre: Joyce RivasID Empleado: 567138Fecha Ingreso: Marzo 21, 2000Fecha Cese: ---Estado: Estable
Profesora Rivas
a + b = 10
Un objeto tiene estado...
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.
Asigna a la profesora Rivas
(Retorna: confirmación) Sistema deRegistros
Académicos
Análisis Matemático
a + b = 10
Un Objeto tiene Comportamiento
Un objeto tiene Identidad Cada objeto tiene una identidad
única, aún si su estado es igual al de otro objeto.
Profesora “J Diaz”enseña Algebra Profesor “J Castro”
enseña Algebra Profesora “J Calle”enseña Algebra
Un objeto tiene Identidad
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.
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.
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
Objetos y Clases
¿Cuántas clases hay?
Objetos Clase
Profesor
Profesora Díaz
Profesora Pérez
Profesor Vélit
Objetos y Clases
Profesor
Profesora Díaz
a + b = 10
Representación de Clases La notación convencional es la de un rectángulo partido en
tres.
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( )
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
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)
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.
Enfoque Cliente-Servidor
CLIENTE SERVIDOR COLABORACION
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.
Abstracción
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.
Encapsulamiento
INTERFAZ
IMPLEMENTACION
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.
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>>
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
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
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.
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 ()