1 / 48

Nivel 1. Problemas, soluciones y programas

Nivel 1. Problemas, soluciones y programas. Presentación creada por M.J. Gaitán. Fundamentos de programaci ón Villalobos J.A., Casallas R. Prentice Hall, 2006. Etapa 1. Problema. Etapa 2. Proceso. Cliente. Programador. Etapa N. Usuario. Problemas y soluciones. Programa. Solución.

bairn
Télécharger la présentation

Nivel 1. Problemas, soluciones y programas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nivel 1. Problemas, soluciones y programas Presentación creada por M.J. Gaitán Fundamentos de programación Villalobos J.A., Casallas R. Prentice Hall, 2006

  2. Etapa 1 Problema Etapa 2 Proceso Cliente Programador Etapa N Usuario Problemas y soluciones Programa Solución

  3. Cliente Programador Especificación de un problema Requerimientos funcionales Mundo del problema Problema Análisis Requerimientos no funcionales

  4. Análisis de un problema

  5. Análisis del problema Proceso Diseño de la solución Programador Construcción de la solución El proceso y las herramientas Problema Entender y especificar el problema: Requerimientos funcionales Mundo del problema Requerimientos no funcionales Detallar características de la solución antes de construirla. Uso de algún lenguaje Herramientas y lenguajes Implementar el programa y probar su funcionamiento Solución

  6. compilador Código fuente Código ejecutable Archivos de construcción programa Elementos que forman parte de la solución de un problema Diseño del programa Datos de prueba Pruebas del programa

  7. Programador Usuario Construcción de un programa usa Ambiente de desarrollo Código ejecutable crea tiene Se instala donde Compilador Editor traducido por crea entiende Lenguaje de programación Código fuente escrito en

  8. Caso de estudio 1 • Programa que administra la información de un paciente adulto • Nombre, apellido, sexo, fecha de nacimiento, fecha de inicio del tratamiento, peso, estatura • Cambiar: peso • Calcular: edad actual, índice de masa corporal, peso ideal

  9. Comprensión y especificación del problema • Análisis del problema • ¿Cómo se especifica un requerimiento funcional? • ¿Cómo saber qué es un requerimiento funcional? • ¿Cómo se describe el mundo del problema?

  10. Requerimientos funcionales

  11. Requerimientos funcionales

  12. Requerimientos funcionales

  13. Requerimientos funcionales

  14. Identificar entidades Modelar sus características nombre Buscar sus relaciones Documentar Modelo del mundo El modelo del mundo del problema Clases atributos asociaciones

  15. El modelo del mundo del problema • Identificación de entidades o clases • Elementos concretos o abstractos • Programas pequeños: buscar sustantivos en el enunciado del problema

  16. El modelo del mundo del problemaModelado de características o atributos

  17. El modelo del mundo del problemaModelado de características o atributos

  18. Paciente Fecha El modelo del mundo del problema • Relación entre entidades fechaNacimiento fechaIngreso

  19. Requerimientos no funcionales • Contexto de utilización del programa • Restricciones definidas por el cliente • Ejemplos: • Múltiples usuarios • Sistema de computación específico • Capacidades de almacenamiento • Tiempo de procesamiento

  20. Datos Procedimientos Algoritmos Clases y objetos Tipos de datos Métodos Instrucciones Lenguaje de programación Elementos de un programa

  21. Clases Definen la estructura del programa Entidades del mundo del problema Definido por atributos y métodos Objeto Instancia o ejemplar de una clase Valores propios para cada atributo {valores de atributos} estado del objeto fechaNacimiento fechaIngreso Paciente Fecha nombre apellido sexo estatura peso dia mes anio :Fecha dia=14 mes=5 anio=1972 :Fecha dia=24 mes=10 anio=1989 :Paciente nombre=“Ana” apellido=“Ruiz” sexo=Femenino estatura=155 peso=50 :Paciente nombre=“Luis” apellido=“Laos” sexo=Masculino estatura=168 peso=72 fechaNacimiento fechaNacimiento :Fecha dia=15 mes=1 anio=2005 :Fecha dia=22 mes=5 anio=2006 fechaIngreso fechaIngreso algoritmos algoritmos Clases y objetos

  22. Tipos de datos

  23. Paquetes • Estructura jerárquica de las clases de un programa ClaseInterfaz1 ClaseInterfaz2 … ClaseMundo1 ClaseMundo2 … ClaseUtil1 ClaseUtil2 … ClasePrueba1 …

  24. Java • Bloque de instrucciones { } • Comentarios • De línea // • De sección • Declaración de una clase • Archivo: Fecha.java public class Fecha { // Aquí va la declaración de la clase Fecha }

  25. Java • Declaración del paquete de la clase package uami.intProg.paciente /** * Esta clase representa a un paciente */ public class Fecha { // Aquí va la declaración de la clase Fecha }

  26. Fecha int dia int mes int anio algoritmos Java • Declaración de atributos de la clase package uami.intProg.paciente /* Esta clase representa una fecha */ public class Fecha { // Atributos------------------- private int dia; private int mes; private int anio; }

  27. Paciente Fecha fechaNacimiento String nombre String apellido int sexo int estatura double peso int dia int mes int anio fechaIngreso algoritmos algoritmos Java • Declaración de atributos de la clase package uami.intProg.paciente /* Esta clase representa a un paciente */ public class Paciente { // Atributos private String nombre; private String apellido; privateint sexo; //1=masculino,2=femenino private int estatura; private double peso; private Fecha fechaNacimiento; private Fecha fechaIngreso; }

  28. Métodos • Cada algoritmo de una clase es un método • Solución de un problema puntual • Servicio que la clase presta a las demás o a ella misma • Elementos • Nombre • Lista de parámetros (con su tipo) • Información que no tiene el objeto pero que se necesita para resolver el problema puntual • Tipo de respuesta (si no hay salida, void ) • Cuerpo del método • Conjunto de instrucciones • Signatura: encabezado (método sin cuerpo)

  29. Métodos

  30. Fecha Paciente int dia int mes int anio String nombre String apellido int sexo int estatura double peso fechaNacimiento fechaIngreso int darDia() int darMes() int datAnio() void cambiarPeso(double nuevoPeso) double calcularIMC() double calcularPesoIdeal(Fecha fechaActual) Métodos

  31. Métodos

  32. Instrucciones Retorno public class Fecha { // Atributos------------------- private int dia; private int mes; private int anio; // Metodos--------------------- public int darDia() { return dia; } public int darMes() { return mes; } public int darAnio() { return anio; } }

  33. Instrucciones Expresiones • Aritméticas var1 11 var2 2 Orden de operadores

  34. Instrucciones Expresiones • Lógicas • Resultado: falso / verdadero (false / true) • Operadores relacionales • < menor que • <= menor o igual • > mayor que • >= mayor o igual • != diferente • == igual • Operadores lógicos • && y (and) • || o (or) • ! negación (not)

  35. Instrucciones Expresiones • Reglas de prioridad o precedencia • Expresiones entre paréntesis • Si hay anidados, de adentro hacia fuera • Orden • !,-(negación) • ++,-- • *, /, %, &&, +, -, || • <, > ,==,<=,>=,!= • Si coinciden varios operadores de igual prioridad en una expresión, de izquierda a derecha

  36. Instrucciones • Asignación atributoModificarse = expresión; • Operandos • Elementos de una expresión • Operadores • Aritméticos • Lógicos • Relaciones entre los operandos areaTriangulo = base*altura/2;

  37. Instrucciones Asignación public class Paciente { // Atributos------------------------------ private String nombre; private String apellido; privateint sexo; //1=masculino,2=femenino private int estatura; private double peso; private Fecha fechaNacimiento; private Fecha fechaIngreso; //Metodos---------------------------------- public void cambiarPeso(double nuevoPeso) { peso = nuevoPeso; } public double calcularIMC() { return peso/(estatura*estatura); } … }

  38. Instrucciones • Llamada de un método sin parámetros • Uso del servicio que proporciona una clase • Misma clase • nombreMetodo() • Otra clase referenciada como atributo • nombreAtributo.nombreMetodo()

  39. Instrucciones • Llamada de un método con parámetros • ¿Cuándo? • Información en sus atributos no es suficiente • Declaración • Signatura o encabezado de un método modificador tipo de nombre del lista de parametros: tipo nombre de control retorno método de acceso public void metodo1(int a, double b, char c) • ¿Cómo se utilizan los valores? • Utilizar el nombre del parámetro en el cuerpo, como con los atributos

  40. Instrucciones • Llamada de un método con parámetros • ¿Cómo se definen los valores? • Al hacer la llamada al método, pasar los valores con los que se desea que el método trabaje • Constantes • Atributos del objeto que hace la llamada • Parámetros del método desde el que se hace la llamada • Expresiones con los anteriores • Relación entre valores y parámetros • Los valores se pasan el orden en el que están declarados los parámetros • Mismos tipos de datos • Mismo número de valores y parámetros

  41. Instrucciones public class C2 { private int art1; privateC1 obj; public void m2(int x) { obj.m1(x,34+atr1,”prueba”); } } public class C1 { public void m1(int param1, int param2, String param3) { … } }

  42. Instrucciones • Creación de objetos • new NombreObjeto( ) • Objetos del modelo del mundo: • creados tipicamente por la interfaz de usuario • Una referencia a un objeto se puede guardar en cualquier atributo o variable del mismo tipo.

  43. Diseño de la solución • Segunda etapa del proceso de desarrollo de un programa • Refinamientos sucesivos Requerimientos funcionales Interfaz de usuario Diseño de la solución Mundo del problema Arquitectura de la solución Requerimientos no funcionales Diseño de las clases

  44. Arquitectura de la solución • División del problema en problemas más pequeños • Diseño de alto nivel que permita la unión • Arquitectura básica con tres grupos de clases: • Interfaz de usuario • Modelo del mundo • Pruebas • Cada grupo de clases en un paquete

  45. Cliente Usuario Construcción de la solución Archivos fuente Organización y convenciones Archivos compilados Interfaz de usuario Archivos de documentación Construcción de la solución Arquitectura de la solución Archivos empaquetados Diseño de las clases Archivos ejecutables

  46. Nivel 1 • Especificación del problema • Análisis del problema • Requerimientos funcionales • Mundo del problema • Requerimientos no funcionales • Diseño de la solución • Programa: datos y métodos • Interfaz de usuario, arquitectura de la solución, diseño de las clases • Construcción de la solución

  47. Ejercicios de expresiones

  48. Ejercicios de expresiones

More Related