Examen diagnóstico ¿Qué es una computadora? ¿Qué es un algoritmo?

Slides:



Advertisements
Presentaciones similares
IBD Plan 90 y 2003 Clase 10.
Advertisements

Algoritmos y Programas
Fundamentos de Diseño de Software INFT.1
Lenguaje Unificado de Modelado
Programación Orientada a Objetos
DSOO - María Eugenia Valencia
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
La Programación Orientado a Objetos
Técnico en programación de Software
1.1 Concepto de Tipo de Datos Abstracto.
Introducción al software
Tipos de Datos Abstractos Modularidad
Tipo de Dato Abstracto Tipos de datos:
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
Preguntas tipo test (Tema I)
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Encapsulamiento y Abstracción
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
UNIDAD I. INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA.
METODOLOGIA DE LA PROGRAMACION
TAD_Ana Lilia Laureano/UAM-A1 Tipos Abstractos de Datos y Asertos Ana Lilia Laureano Cruces Universidad Autónoma Metropolitana-Azcapotzalco.
Fundamentos de Programación
VHDL.
Laura Patricia Pinto Prieto Ingeniera de sistemas.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Proceso de información en la computadora
Diseño del Software Diseño de datos Diseño arquitectónico
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
PROGRAMACIÓN ORIETADA A OBJETOS
Ingeniería de Software
Facultad de Ciencias de la Computación MC Beatriz Beltrán Martínez
Sintaxis.
Introducción a los tipos de datos abstractos
1.1 Concepto y terminología
Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
DISEÑO DE SOFTWARE 1ª. Parte
Fundamentos de programación
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Diseño de algoritmos La computadora puede realizar procesos y darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza. Con.
Tecnológico de Estudios Superiores Huixquilucan Fundamentos de Sistemas Ingeniería en Sistemas Computacionales Lic.: Lydia Villavicencio Gómez “Paradigmas.
Comunicación y Multimedia
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
CONTRATOS UML.
Parte I. Estructuras de Datos.
Programación orientada a objetos Capítulo 6 Diseño de clases.
Facultad de Ingeniería
TEMA 9: DIAGRAMA DE CLASE EN UML
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Estructuras de Datos y Algoritmos Introducción. Texto Requerido: Carrano & Prichard: Data Abstraction and Problem Solving with Java; Walls and Mirrors,
Diseño de Sistemas.
Ingeniería de Requisitos
Computación I (CI-2125) Clase 2 Prof. Mireya Morales.
Elaboración de algoritmos usando lógica de programación
POO U1: INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Introducción a los TADs
Edwin Oliveros.  El diseño de sistemas consiste en la transformación del modelo de diseño, que toma en cuenta los requerimientos no funcionales y las.
Programación III 21/04/2017.
FUNDAMENTOS DE PROGRAMACION
TIPOS DE DATOS ABSTRACTOS
DISEÑO DE COMPONENTES Y DESARROLLO BASADO EN COMPONENTES
La Programación Orientado a Objetos
NZ/EA/abril Introducción Julio NZ/EA/abril ¿ Que es la IS ? Disciplina que trata los aspectos concernientes al desarrollo de sistemas.
Fundamentos de Programación Unidad I Conceptos Básicos.
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS
Fundamentos de Ingeniería de Software
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
Introducción Todos los lenguajes de programación son distintos entre si. Sin embargo, pueden ser agrupados según la forma de pensar y estructurar los.
Transcripción de la presentación:

Examen diagnóstico ¿Qué es una computadora? ¿Qué es un algoritmo? ¿Qué es un SO? ¿Qué es la abstracción de datos? ¿Qué es un lenguaje de programación? ¿Qué es un objeto? ¿Qué es una clase?

Unidad 1 Introducción a las estructuras de datos. Lic. En C.C. Ann Margareth Meza Rodríguez ann.meza@gmail.com

1.1 Tipos de datos abstractos (TDA).

Un tipo de dato es un conjunto de valores y un grupo de operaciones sobre tales valores. Este conjunto y estas operaciones forman una estructura matemática que se implementa usando una estructura particular de datos de hardware o software. El tipo de un dato es el conjunto de valores que puede tomar durante el programa. Si se le intenta dar un valor fuera del conjunto se producirá un error.

La asignación de tipos a los datos tiene dos objetivos principales: Detectar errores en las operaciones Determinar cómo ejecutar estas operaciones

Clasificación en los tipos de datos Dinámicos Estáticos Cadena Estructurados Simples Ordinales No ordinales

Abstracción Permite dividir la información en componentes aislados que posteriormente se ensamblan para construir el todo

Aplicaciones de la abstracción Diferentes niveles Nos centramos en los elementos mas grandes e importantes Progresivamente Tratamos volúmenes de información menores que revelen más detalles Diferentes tipos Funcional o procedural de los datos

Encapsulación “Proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen su estructura y su comportamiento”.[Booch, 1996]

Tipo de dato = Representación + Operaciones Tipos de datos Un tipo de dato es un conjunto de valores y un conjunto de operaciones definidas por sus valores. Tipo de dato = Representación + Operaciones Ejemplo: Tipo de dato Operaciones Entero +,-,*,/ Cadena concatenar, subcadena, longitud

Tipos abstractos de datos (TDA) Permiten ampliar los tipos de datos definidos por los lenguajes de programación El programador define este nuevo tipo de dato, al igual que los tipos de datos consta de datos y operaciones que se pueden realizar sobre dichos datos. Poseen interfaces graficas públicas (operaciones que se pueden realizar en cualquier momento de la ejecución del programa), pero su implementación es privada (sólo se ejecuta para la instancia actual )

Un TAD consta de: Tipo Tipo que se está especificando* Operaciones Signatura (tipo de argumentos y resultado) Axiomas definición implícita del valor de la función Invariantes condición booleana que debe mantenerse con exactitud Precondiciones Postcondiciones *Conjunto de objetos

Tipo Pila[X] Operaciones Poner:Pila[X]xXPila[X] Vacia:Pila[X]Boolean Item:Pila[X]X New:Pila[X] Axiomas Para x: T, s: Pila[T]; item(poner(s,x)) = x vacia(new) not vacia(poner(s,x)) Invariantes Precondiciones item (s:Pila[T]) requiere not vacia(s) Postcondiciones

Ejemplo TDA Integer Datos: Una secuencia de dígitos que opcionalmente presentan como prefijo un signo más o un signo menos. Nos referimos a este número entero con signo como N. Operaciones: Constructor: Crea un nuevo entero Add(k): Crea un nuevo entero a partir de la suma de N y k POSTCONDICION: SUM=N+K Sub(k): Crea un nuevo entero a partir de la diferencia de N y k POSTCONDICION: SUM=N-K Set(k): Asigna a N el valor de k. POSTCONDICION: N=K end ¡No confundir ésto con los enunciados de asignación tal como se usan en los lenguajes de programación! Es más bien una ecuación matemática que da "verdadero" por cada valor sum, N y k después que add ha sido ejecutada.

Ejercicio TDA Integer. (a) ¿Por qué no hay precondiciones para las operaciones add y sub? (b) Obviamente, la descripción TDA de Integer está incompleta. Agrega los métodos mul, div y otros cualesquiera. Describe sus impactos especificando pre- y postcondiciones.

Tarea 1 Diseña un TDA Fraction que describa propiedades de las fracciones. (a) ¿Qué estructuras de datos se pueden usar? ¿Cuáles son sus elementos? (b) ¿Cuál serían sus operaciones? (c) Menciona unos cuantos axiomas y precondiciones. 2. Describe con tus propias palabras las propiedades de tipos de datos abstractos. 3. ¿Por qué es necesario incluir axiomas y precondiciones a la definición de un tipo de datos abstracto?

1.1 Modularidad “Propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados”. [Booch, 1996]

Los módulos se comunican mediante interfaces bien definidas Bajo acoplamiento: Un módulo que no depende de otros módulos Comprensión modular: Es posible entender un modulo sin conocer los otros. Continuidad modular: Un cambio en la especificación, afecta solo a un modulo o a unos pocos. Protección modular: El efecto de una situación anormal producida en un modulo afecta solo a éste y a unos pocos Alta cohesión: Un modulo con responsabilidades altamente relacionadas y que no hace una gran cantidad de trabajo.

Programa modular: Se dice que un programa es modular cuando está formado por un conjunto de módulos. Módulo Unidad básica de descomposición de un sistema de software. Los módulos deben ser los mas independientes posibles. Método de software modular Es modular si ayuda a producir sistemas de software a partir de elementos autónomos interconectados por una estructura simple y coherente Programación modular Trata de descomponer un programa en un pequeño número de abstracciones coherentes que pertenecen al dominio del problema cuya complejidad interna esta oculta por la interfaz

Atributos Operaciones Un modulo se estructura mediante una interfaz y una implementación Está compuesto por un conjunto de operaciones y atributos Primitivas de acceso Interfaz Atributos Operaciones Sección privada

Reglas para obtener módulos Unidades modulares: El lenguaje debe proporcionar estructuras modulares con las cuales se puedan describir las diferentes unidades (POO-Clases) Ocultación de información Todos los módulos deben seguir el principio de ocultación de información En una abstracción de datos pueden verse dos caras Interfaz Operaciones que definen el comportamiento (cliente) Implementación (programador)

Ejemplo Modulo que define las cuentas bancarias en un banco Un modulo incluye una estructura de datos junto con un conjunto de operaciones para manipularla Interfaz depositar() verSaldo() retirar() Operaciones calcularIntereses() deposito() verSaldo() Representación NombreCliente:String Codigo:String Saldo:Float

Mecanismos para diseñar programas modulares • Procedimientos o funciones • Módulos • Tipos abstractos de datos (TADS) • Objetos

Tarea. Definir 2 módulos para los siguientes casos: Ejercicio Formar equipos de 4-5 personas y definir 3 módulos para los siguientes casos Registro de ventas de una tienda Control de vacunas de una mascota Monitoreo de entradas y salidas de un estacionamiento Tarea. Definir 2 módulos para los siguientes casos: Salón de belleza Inventario de una zapatería Menú en una cafetería