Professional Documents
Culture Documents
Nivel 1
Problemas, Soluciones y Programas
Programador
Solucin
Entender el problema que tiene el cliente Especificar TODA la informacin que suministre el cliente
Programador
Solucin
Detallar las caractersticas que tendr la solucin Usando algn lenguaje (planos, dibujos, ecuaciones, diagramas, texto, )
Programador
Solucin
Programador
Solucin
El Empleado
Se quiere una aplicacin que permita manejar la informacin de un empleado. El empleado tiene:
Nombre Apellido Sexo Fecha de nacimiento Imagen asociada Fecha de ingreso a la misma Salario bsico asignado Modificar el salario del empleado Realizar algunos clculos con la informacin disponible
Edad actual Antigedad en la empresa Prestaciones a las que tiene derecho. Para el clculo de las prestaciones se utiliza la frmula p = (a * s)/12 (p: prestaciones, a: antigedad, s: salario).
El Empleado
Programador
Solucin
Entender el problema que tiene el cliente Especificar TODA la informacin que suministre el cliente
Especificacin
Especificacin
Requerimientos No Funcionales
Especificacin
Requerimientos funcionales (RF) Las necesidades del cliente Operaciones o servicios que el programa debe proveer al usuario
El Empleado
Se quiere una aplicacin que permita manejar la informacin de un empleado. El empleado tiene:
Nombre Apellido Sexo Fecha de nacimiento Imagen asociada Fecha de ingreso a la misma Salario bsico asignado
Requerimientos Funcionales
R1:Modificar el salario del empleado. R2: Calcular la edad actual. R3: Calcular la antigedad en la empresa. R4: Calcular las prestaciones.
El Empleado
R1
R2 R3 R4
Especificacin
Contexto en el que ocurre el problema Elementos (datos, informacin) que intervienen en el problema
El Empleado
Se quiere una aplicacin que permita manejar la informacin de un empleado. El empleado tiene:
Nombre Apellido Sexo Fecha de nacimiento Imagen asociada Fecha de ingreso a la misma Salario bsico asignado
Especificacin
Requerimientos No Funcionales Restricciones o condiciones que impone el cliente al programa Ejemplos: Tiempo de entrega del programa, # de usuarios simultneos, tiempo de ejecucin del programa,
Requerimientos Funcionales
Se describen a travs de 4 elementos:
Identificador y nombre Resumen de la operacin Entradas que debe dar el usuario para que el programa pueda realizar la operacin Resultado de la operacin
Modificacin de un valor en el mundo del problema Clculo de un valor Mezcla de los dos anteriores
Ejemplo RF
Nombre Resumen Entradas R4 Calcular las prestaciones del empleado Calcula las prestaciones del empleado
Resultados
Ejemplo RF
Nombre Resumen Entradas Nuevo salario Resultados Se modific el salario bsico del empleado R1 Actualizar el salario bsico del empleado Permite la modificacin del salario bsico de un empleado
El Simulador bancario
Se quiere una aplicacin que haga la simulacin en el tiempo de la cuenta bancaria de un cliente. Un cliente tiene:
Nombre Nmero de cdula (identifica la cuenta) Una cuenta de ahorro Una cuenta corriente Certificado de depsito a trmino (CDT)
Se quiere que el programa permita a una persona simular el manejo de sus productos bancarios:
Hacer las operaciones necesarias sobre los productos que conforman la cuenta Avanzar mes por mes en el tiempo, para que el cliente pueda ver el resultado de sus movimientos bancarios y el rendimiento de sus inversiones
El Simulador Bancario
Ejercicio
Identifique y especifique tres requerimientos funcionales del simulador bancario
Nombre Resumen Entradas Resultados
Especificacin
Requerimientos No Funcionales
Modelar las caractersticas de las entidades Buscar las relaciones entre las entidades Documentar (reglas, restricciones, etc.) MODELO DEL MUNDO
Para expresar el modelo del mundo, usamos diagramas de clases del lenguaje de modelos UML (estndar).
Ejercicio
Identifique los elementos que hacen parte del mundo del problema en el simulador bancario
Cuenta bancaria Cuenta de ahorros Cuenta corriente CDT Cliente Cedula Nombre Mes (de simulacin) Saldo cuenta corriente Saldo cuenta ahorro Saldo CDT Saldo total Intereses CDT Inters cuenta de ahorro Inversin CDT (monto)
Modelar las caractersticas de las entidades Buscar las relaciones entre las entidades Documentar (reglas, restricciones, etc.) MODELO DEL MUNDO
Para expresar el modelo del mundo, usamos diagramas de clases del lenguaje de modelos UML (estndar).
Se les da un nombre significativo Pista para ubicarlos: sustantivos del problema En POO las llamamos CLASES Convencin: los nombres de las clases empiezan por mayscula
TODOS LOS DEMAS ELEMENTOS DEL PROBLEMA SON CARACTERISTICAS DE LAS CLASES
Modelar las caractersticas de las entidades Buscar las relaciones entre las entidades Documentar (reglas, restricciones, etc.) MODELO DEL MUNDO
Para expresar el modelo del mundo, usamos diagramas de clases del lenguaje de modelos UML (estndar).
En POO las llamamos ATRIBUTOS Convencin: los nombres de los atributos empiezan por minscula, sin espacios en blanco
Para expresar el modelo del mundo, usamos diagramas de clases del Caractersticas lenguaje de modelos o atributos UML (estndar).
Modelar las caractersticas de las entidades Buscar las relaciones entre las entidades Documentar (reglas, restricciones, etc.) MODELO DEL MUNDO
Para expresar el modelo del mundo, usamos diagramas de clases del lenguaje de modelos UML (estndar).
nombre
En UML
nombre
En UML
fechaIngreso
El empleado tiene una fecha de nacimiento Esta fecha es una entidad del mundo representada por la clase Fecha
fechaIngreso
El empleado tiene una fecha de ingreso La direccin de la flecha indica que la clase que contiene a la otra:
El empleado tiene una fecha, pero la fecha NO tiene un empleado
CuentaAhorros
Mes CDT
ahorros mesActual
CuentaAhorros
Mes
mesApertura
inversion
CDT
Detallar las caractersticas que tendr la solucin Usando algn lenguaje (planos, dibujos, ecuaciones, diagramas, texto, )
Programador
Solucin
UML
Programador
Solucin
Construccin de la Solucin
Algoritmos e Instrucciones
Algoritmos e Instrucciones
Algoritmo =
Secuencia de instrucciones para resolver un problema Secuencia ordenada de pasos para realizar una actividad
Ejemplos:
Algoritmo para preparar unos huevos pericos Algoritmo para amarrarse los zapatos Algoritmo para cambiar una llanta Algoritmo para llegar a una direccin dada
En el computador
Las instrucciones de los algoritmos deben estar escritos en un lenguaje que entienda el computador Lenguaje de Programacin
Archivo: Fecha.java
public class Fecha { private int dia; private int mes; private int ao; }
Archivo: Fecha.java
public class Fecha { private int dia; private int mes; private int ao; }
fechaNacimiento
fechaIngreso
3.
4.
Mostrar un consolidado total de la informacin de todas las lneas (costo total en pesos de las tres lneas, nmero total de llamadas realizadas, duracin total de llamadas en minutos y el clculo del costo promedio por minuto segn el costo total y el total de minutos). Reiniciar el uso las lneas telefnicas, dejando todos sus valores en cero.
Interfaz usuario
Requerimientos Funcionales
R1:Registrar (agregar) una llamada en alguna de las lneas. R2: Mostrar la informacin detallada de cada lnea. R3: ... R4: ...
R1
Nombre Resume n Entradas Nmero de lnea, siendo opciones validas la lnea 1, 2 o 3. Nmero de minutos consumidos, sabiendo que el nmero de minutos es un valor positivo. Tipo de llamada realizada. Puede ser local, larga distancia o celular. Resultados La lnea telefnica tiene una llamada ms. Los minutos consumidos por la lnea especificada aumentaron segn el nmero de minutos de la llamada. El costo total de llamadas realizadas por la lnea especificada se increment en el costo de la llamada. El valor por minuto de una llamada local es de $35, de una llamada de larga distancia es de $380, y de una llamada a celular es de $999 Los totales de toda la empresa se actualizan. R1: Agregar una llamada a una lnea telefnica Se agrega una llamada a una lnea telefnica. Se debe especificar la cantidad de minutos consumidos, as como el tipo de llamada realizada.
Clase LineaTelefonica
Archivo: LineaTelefonica.java public class LineaTelefonica { private int numeroLlamadas; private int numeroMinutos; private double costoLlamadas; }
Clase Empresa
Archivo: Empresa.java public class Empresa { private LineaTelefonica linea1; private LineaTelefonica linea2; private LineaTelefonica linea3; }
Mtodos
Son los algoritmos de la clase. Lo que la clase sabe hacer:
Resolver un problema puntual Servicio que la clase debe prestar a las dems clases del modelo
Piense que
Una clase es la responsable de manejar la informacin contenida en sus atributos Los mtodos son el medio para hacerlo
Agregar
Una llamada local Una llamada de larga distancia Una llamada de celular
Entoces
Cada una de las acciones que sabe hacer una clase
METODO
Mtodos de la LineaTelefonica
Informar:
El nmero total de sus llamadas El costo total de sus llamadas La cantidad de minutos consumidos
darCostoLlamadas darNumeroLlamadas darNumeroMinutos
Agregar
Una llamada local Una llamada de larga distancia Una llamada de celular
agregarLlamadaLocal
agregarLlamadaLargaDistancia
agregarLlamadaCelular
nombre
Lista de parmetros
Conjunto de valores (cada uno con su tipo) necesarios para resolver el problema
Tipo de respuesta
Tipo de dato al que pertenece el resultado que va a retornar el mtodo. Si no hay respuesta, se indica el tipo void
Tipos de instrucciones
Instruccin de asignacin
Para definir el nuevo valor de un atributo Se construye con un = public void agregarLlamadaLocal( int minutos ) { numeroLlamadas = numeroLlamadas + 1; numeroMinutos = numeroMinutos + minutos; costoLlamadas = costoLlamadas + ( minutos * 35 ); }
Tipos de instrucciones
numeroLlamadas = numeroLlamadas + 1;
Expresin que indica el nuevo valor que debe guardarse en el atributo
Pueden hacer parte de una expresin: los atributos, los parmetros y los valores constantes.
Tipos de instrucciones
Instruccin de asignacin
Para definir el nuevo valor de un atributo Se construye con un = public void agregarLlamadaLocal( int minutos ) { numeroLlamadas = numeroLlamadas + 1; numeroMinutos = numeroMinutos + minutos; costoLlamadas = costoLlamadas + ( minutos * 35 ); }
Tipos de instrucciones
Instruccin de retorno
Para devolver un resultado como solucin del problema puntual Se representa con un return
Tipos de instrucciones
Instruccin de llamada (o invocacin) de un Mtodo
Para usar mtodos de la misma clase Para usar mtodos de un objeto de otra clase con el cual existe una asociacin.
public class Empleado { public int calcularSalarioAnual( ) { return (salario * 12 ); } public int calcularImpuesto( ) { return ( calcularSalarioAnual( ) * 19.5 / 100 ); } }
Llamado al mtodo calcularSalarioAnual
Invocacin de un mtodo de un objeto de otra clase con el cual existe una asociacin
Se hace cuando se necesita obtener o modificar alguna informacin de un objeto de otra clase con el cual existe una asociacin.
Ejemplo
Ejemplo
int darTotalNumeroLlamadas( )
int darNumeroLlamadas( )
Ejemplo
int darTotalNumeroLlamadas( )
int darNumeroLlamadas( )
El mtodo darTotalNumeroLlamadas de la clase Empresa DEBE invocar el mtodo darNumeroLlamadas de la clase LineaTelefonica
Ejemplo
LineaTelefonica int numeroLlamadas int numeroMinutos double costoLlamadas
int darNumeroLlamadas( )
Ejemplo
Empresa
int darTotalNumeroLlamadas( )
El nmero total de llamadas de la empresa es la suma del nmero de llamadas de la linea1 + el nmero de llamadas de la linea2 + el nmero de llamadas de la linea3
Ejemplo
Empresa
int darTotalNumeroLlamadas( )
public class Empresa { public int darTotalNumeroLlamadas( ) { return ( linea1.darNumeroLlamadas( ) + linea2.darNumeroLlamadas( ) + linea3.darNumeroLlamadas( ); } }
Ejemplo
Empresa
int darTotalNumeroLlamadas( )
public class Empresa { public int darTotalNumeroLlamadas( ) { return ( linea1.darNumeroLlamadas( ) + linea2.darNumeroLlamadas( ) + linea3.darNumeroLlamadas( ); } }
Nombre de la asociacin
punto
En el momento de hacer la llamada, se deben pasar tantos valores como parmetros est esperando el mtodo. Esos valores pueden ser constantes (por ejemplo, 500), atributos del objeto que hace la llamada (por ejemplo, costoLlamadas), parmetros del mtodo desde el cual se hace la llamada (por ejemplo, minutos) o expresiones que mezclen los tres anteriores (por ejemplo, costoLlamadas * minutos * 500)
public class C2 { private int atr1; private C1 obj; public void m2( int x ) { obj.m1( x, 34+atr1, prueba); } }
public class C2 { private int atr1; private C1 obj; public void m2( int x ) { obj.m1( x, 34+atr1, prueba); } }
public class C2 { private int atr1; private C1 obj; public void m2( int x ) { obj.m1( x, 34+atr1, prueba); } }
Ejercicio
Tarea No. 10 Nivel 1 del libro