Description

Unidad 1: Fase 1 - Análisis De RequisitosYaneth Marcela Rodríguez Vinasco - Cód. 1.088.248.071 Balwin Gerardo Ladino Valencia – Cód. 95032813624 Ivan Salamanca Cely – Cód. 86.053.048 Sergio Iván Rodríguez-Cód. Ing. Franklin Lizcano Celis Director de Curso Grupo: 301403_30 Universidad Nacional Abierta Y A Distancia (Unad) Escuela De Ciencias Básicas Tecnología E Ingeniera Programación Orientada A Objetos Febrero 2018 DESARROLLO DE LA ACTIVIDAD 1. Elección del proyecto a desarrollar. El proyecto elegido por el grupo es el del Mini mercado Surtimax S.A. 2. Características generales de la programación orientada objetos. 2.1 ¿Cuál es la diferencia entre programación estructurada y programación orientada a objetos? Programación estructurada Programación orientada a objetos Divide los programas en módulos, Usa objetos y sus interacciones fáciles de leer para diseñar programas Va de lo general a lo particular Incluye datos y procedimientos en una clase Estructura secuencial, las Procedimientos separados y sin instrucciones se ejecutan una relación después de la otra Uso de condicionales para ejecutar Encapsulan datos en objetos que una acción, orientada a acciones están relacionados entre sí. Uso de instrucciones repetitivas La unidad de programación es la hasta que se cumpla una condición clase. y se pueda terminar el ciclo, unidad de programación es a la función. Fácil detección de errores debido a Estructura no secuencial, no es fácil que las instrucciones son la detección de errores secuenciales 2.2 Ventajas y desventajas de la programación orientada a objetos. Veamos las ventajas más importantes de la programación orientada a objetos, - Reusabilidad. Cuando hemos diseñado adecuadamente las clases, se pueden usar en distintas partes del programa. - Mantenibilidad. Debido a la sencillez para mostrar el problema, los programas orientados a objetos son más sencillos de leer y comprender, pues nos permiten ocultar detalles de implementación dejando visibles sólo aquellos detalles más relevantes. - Modificabilidad. La facilidad de añadir, suprimir o modificar nuevos objetos nos permite hacer modificaciones de una forma muy sencilla. - Fiabilidad. Al dividir el problema en partes más pequeñas podemos probarlas de manera independiente y aislar mucho más fácilmente los posibles errores que puedan surgir. Desventajas de la programación orientada a objetos, - Cambio en la forma de pensar de la programación tradicional a la orientada a objetos. - La ejecución de programas orientados a objetos es más lenta. - La necesidad de utilizar bibliotecas de clases obliga a su aprendizaje y entrenamiento. 2.3 Sintaxis para definir variables en Java. Variables y Tipos. Una variable en Java es un identificador que representa una palabra de memoria que contiene información. El tipo de información almacenado en una variable sólo puede ser del tipo con que se declaró esa variable. Una variable se declara usando la misma sintaxis de C. Por ejemplo la siguiente tabla indica una declaración, el nombre de la variable introducida y el tipo de información que almacena la variable: Por ejemplo una variable int almacena un valor entero como 1. se copia el valor de la primera en el espacio que ocupa la segunda variable. Las variables de tipo referencia a objetos en cambio almacenan direcciones y no valores directamente. El área de memoria se solicita con el operador new. 2. Una referencia a un objeto es la dirección de un área en memoria destinada a representar ese objeto. -1. 0.Java posee dos grandes categorías de tipos para las variables: Las variables de tipos primitivos almacenan directamente un valor que siempre pertenece al rango de ese tipo. Esto significa que ambas variables quedan refenciando el mismo objeto. La diferencia entre ambas asignaciones se observa en la siguiente figura: . Esto significa que al asignar una variable entera a otra variable entera. Al asignar una variable de tipo referencia a objeto a otra variable se asigna la dirección y no el objeto referenciado por esa dirección. etc. out. System.println(valor+ " Hola"). Ejemplo: . También está el println.out. Estas líneas no son tenidas en cuenta al compilar el programa. Los comentarios pueden ser introducidos en cualquier parte del código y comienzan por un doble slash “//”.5 Sintaxis para comentar en Java. Ejemplo: System. Existen diferentes métodos como lo son el print.2. Al ingresar el doble slash en la línea de código todo lo que haya de ahí en adelante será tomado como comentario. Para imprimir por pantalla utiliza el objeto System.out que representa una salida estándar y corresponde con la pantalla u otra salida especificada en las variables de entorno del sistema en el que se ejecuta. sin embargo las líneas debajo de este no se ven afectados.print("Hola"). el cual puede recoger cualquier tipo de variable de datos.4 Sintaxis para imprimir en consola en Java. Para incluir un comentario el cual nos sirve de apoyo en la documentación del programa y facilitar su comprensión por parte de alguna otra persona. cadena u objeto. En pantalla se muestra “Este es el mensaje: Hola” 2. En pantalla se muestra la palabra “Hola” O también: String valor = "Este es el mensaje: ". el cual imprime un salto de línea final y el format que permite escribir los datos ajustándose a un determinado formato. && : Devuelve verdadero si las dos expresiones son verdaderas. constructor e identificadores. . la cual es una de los principales paradigmas de desarrollo de software en la actualidad. i++) Esto aun sigue siendo un comentario System. en lo que se conoce como programación orientada a objetos.6 Sintaxis de los operadores lógicos y relacionales. Los operadores lógicos se utilizan para construir expresiones lógicas combinando valores lógicos (falso o verdadero). atributo. Los operadores relacionales se utilizan para realizar comparaciones de igualdad. > : Devuelve verdadero si el operador 1 es mayor que el operador 2. Clase: (Java Class) Son plantillas para la creación de objetos. contiene todas las características y funciones o métodos que realizaran alguna acción sobre un objeto. También es posible insertar múltiples líneas de comentarios. Ejemplo: /* Esta línea no se ejecuta ---. //Este es otro comentario */ 2. identidad. pero si la opción 1 es falsa ya no se evalúa la segunda. Los operadores lógicos son: & : Devuelve verdadero si las dos expresiones son verdaderas.print("Hola"). || : Devuelve verdadero si una de las dos expresiones es verdadera. ! : Devuelve verdadero si la expresión es falsa y falso si la expresión es verdadera. instancia de clase. >= :Devuelve verdadero si el operador 1 es mayor o igual que el 2. //Esta línea mostrará Hola en pantalla. Los operadores relacionales son: < : Devuelve verdadero si el operador 1 es menor que el operador 2. Una Clase es una especie de "plano". desigualdad y relación de menor o mayor.out.print("Hola"). | : Devuelve verdadero si una de las expresiones es verdadera. comportamiento.out. 2. == :Devuelve verdadero si los dos operadores son iguales. para ello es los comentarios deben ir encerrados entre “/*” y “*/”.for(int i = 0. el resultado es siempre booleano (falso o verdadero).7 Defina Clase. != : Devuelve verdadero si los dos operadores son diferentes. i <= 0.System. <= :Devuelve verdadero si el operador 1 es menor o igual que el operador 2. si la primera opción es falsa ya no se evalúa la segunda. una por cada atributo. Identidad: La identidad es una propiedad de un objeto que lo diferencia del resto. pero cada una de ellas irá tomando distintos valores para ellos. int alto. Es decir. El constructor tiene el mismo nombre que la clase. class Rectangulo{ int x. un objeto llama a un método para realizar una determinada tarea. int y1. el método se llama desde la propia clase. int w. El constructor se llama de forma automática cuando se crea un objeto. int h){ x=x1. Atributo: Los atributos son las características individuales que diferencian un objeto de otro y determinan su apariencia. Los atributos se guardan en variables denominadas de instancia. Comportamiento: El comportamiento de los objetos de una clase se implementa mediante funciones miembro o métodos. tuCoche sería una instancia de la clase Coche y daremos a la variable de instancia velocidadMaxima el valor 180. también hay métodos de instancia y de clase. Por ejemplo. es su identificador (concepto análogo al de identificador de una variable o una constante). Constructor: Un objeto de una clase se crea llamando a una función especial denominada constructor de la clase. en el segundo. .Instancia de clase: Cuando creamos una instancia de la clase en ejecución tendremos las variables de instancia. para situarlo en memoria e inicializar los miembros dato declarados en la clase. int y. y cada objeto particular puede tener valores distintos para estas variables. Mientras que la instancia cocheDeNigell tiene su propia variable velocidadMaxima con el valor 300. int ancho. Todas las instancias de la misma clase tendrán los mismos atributos (nombre y tipo). Lo específico del constructor es que no tiene tipo de retorno. Del mismo modo que hay variables de instancia y de clase. Un método es un conjunto de instrucciones que realizan una determinada tarea y son similares a las funciones de los lenguajes estructurados. estado u otras cualidades. y todas integradas dentro de la misma instancia. En el primer caso. Rectangulo(int x1. dicho con otras palabras. tendremos una copia de los atributos por cada objeto de una clase que creemos. nombre de una Comienza por letra Rectangulo. a una clase. pero no comenzar por un número . y. ancho=w. Rectangulo(int w. el siguiente constructor crea un rectángulo cuyo origen está en el punto (0. Una clase puede tener más de un constructor. La primera y fundamental es la de encontrar un nombre que sea significativo. } } Identificadores: Un identificador es un nombre que identifica a una variable. clase mayúscula CinematicaApplet . Tipo de Convención Ejemplo identificador String.Puede incluir. pero que no afectan a la ejecución del programa. alto=h.Todos los identificadores han de comenzar con una letra. El tiempo que se pretende ahorrar eligiendo nombres cortos y poco significativos se pierde con creces cuando se revisa el programa después de cierto tiempo.Distingue entre letras mayúsculas y minúsculas . int h){ x=0. y=0. 0). y con ellos inicializa los miembros dato x. Por ejemplo. el carácter subrayado ( _) o el carácter dollar ( $ ). ancho y alto.No se pueden utilizar las palabras reservadas como identificadores Además de estas restricciones. Todos los lenguajes tienen ciertas reglas para componer los identificadores: . int y. int ancho.No puede incluir el carácter espacio en blanco . class Rectangulo{ int x. y=y1. de modo que el programa sea lo más legible posible. w y h. y1. alto=h. } } El constructor recibe cuatro números que guardan los parámetros x1. . ancho=w. int alto. hay ciertas convenciones que hacen que el programa sea más legible. a un método o función miembro. se puede fijar un conjunto de métodos y atributos.java”. calcularArea.8 Informe los tipos de clase. tendríamos que ponerle al archivo el nombre de “banco. minúscula setColor comienza por letra área. color. MAX_ANCHO constante 2. primero hay que importarlos con la sentencia “import”. cada uno puede implementarlos como le parezca. estando en el mismo paquete o desde otros paquetes. Las clases abstractas trabajan junto con los métodos abstractos. Uno puede llamar a una clase public desde otra. En java existen 4 tipos de clases: Clase Public: Tiene la característica de ser accesible desde cualquier otra clase. Esto es muy útil cuando la implementación es específica pero cada usuario. Un detalle de las clases del tipo “public” es que el archivo con el que se guardan debe tener el mismo nombre de la clase. pero sus métodos deben tener los mismos nombres que se dieron antes. nombre de variable minúscula appletSize nombre de En letras mayúsculas PI. . si se encuentran en la misma carpeta. es decir se dejan incompletos para después ser refinados mediante el mecanismo de la herencia. Se puede acceder a ellas directamente o por herencia. comienza con letra nombre de función getValue. Clase Abstract: Sin la necesidad de implementar métodos. de otra forma se presentará un error de compilación. de otra forma tendrá dificultades para interactuar con esta. los cuales están vacíos. Un ejemplo de uso de una clase public sería: public class banco { // cuerpo de la clase } Y al momento de grabar el programa. . Decir que podría estar en otro sitio. pero el código que ejecutara el método no está. es decir. pues indica que es el final de las divisiones.lang. Al decir que termina la cadena de herencia significa que ya no se sub-divide en más clases. El otro motivo para usar . Aquí un ejemplo de una clase: public abstract class Triangulo { public abstract void Area_Triangulo(int b. Motivo de eficiencia.int h).Por ejemplo al ver una declaración de métodos en una clase abstracta solo podemos observar algunas líneas que solamente tienen los datos que van a recibir los métodos. Pero se puede modificar este tipo de organizaciones al usar “final”.String está declarada como “final”. Pueden ser a la vez clases “public”. Se puede decir que es una base para la herencia. Las organizaciones de clases en java suelen ser de la siguiente forma: class A{} class B extends A { } Con lo que se indica que de la clase A sale una sub-clase o clase hija que es B. Motivo de seguridad.int z).. la clase java. eso quiere. Es posible mezclar final con public. } Clase Final: Una clase final es la que acaba con una cadena de herencia. public abstract void Perímetro( int x. De la clase final no se puede heredar nada.int y. Por ejemplo. se puede tener algo como esto: public final class A{ } Uno puede declarar su clase como “final” por algunos motivos. Sería de la siguiente forma: final class A { } Con lo que se está indicando que de la clase A no van a salir otras clases. por lo tanto no permite crear una sub-clase String y darle un método length() que yo haya creado y que haga algo diferente a devolverme la longitud de una cadena. . . lo cual es sumamente útil si el programa es largo y complicado. Se puede repartir la tarea entre varias personas.“final” es la eficiencia.php/Archivo:Modularizacion. Si no se utiliza alguno de los modificadores al momento de crear una clase. se aprecia también una menor longitud del programa. Ilustración 1 Modularización https://www. por defecto. Se trabaja solo con instancias de la clase sin tener que ir a las sub-clases.png Cuando una tarea debe realizarse más de una vez en un mismo programa. Java asume que la clase es: No final. No abstracta. Otra ventaja de importancia es la claridad que resulta de la descomposición de un programa en módulos concisos e independientes.edu. Clases Synchronizable: “Synchronizable” se especifica que todos los métodos que estén definidos dentro de esta clase serán sincronizados. la modularización evita la programación redundante. ya que una vez definida la tarea como un módulo independiente. así puedes optimizar esa clase. un thread es un flujo de control para controlar la ejecución de un programa. No implementa interfaz alguno 2.fing. representando cada uno de estos una parte bien definida del problema en su conjunto. puede ser invocada desde cualquier parte del código.9 Describa el concepto de Modularización. Los programas pueden escribirse en módulos. los que permiten que un problema general pueda descomponerse en una serie de subproblemas independientes (Divide y vencerás). permitiendo escribir y depurar el código más fácil. Su estructura lógica es más clara. y concentrarse en la resolución de cada subproblema. Para esto debemos saber que la computadora puede llevar a cabo varios threads a la vez. Subclase de la clase Object.uy/inco/cursos/fpr/wiki/index. . el código de cualquiera de las clases puede ser utilizado sin más que crear una clase derivada de ella. cada clase tiene solo una clase padre. esta consiste en particionar un sistema de acuerdo a ciertos principios de diseño y a una estrategia de desarrollo. lo cual significa que en la POO todas las relaciones entre clases deben ajustarse a dicha estructura. la clase hija de una superclase es llamada una subclase. la herencia permite compartir automáticamente métodos y datos entre clases. Existen dos tipos de herencia: Herencia simple. Herencia múltiple. la clase padre de cualquier clase es conocida como su superclase. la primera indica que se pueden definir nuevas clases solamente a partir de una clase inicial. o bien una subclase. Una superclase puede tener cualquier cantidad de subclases. En esta estructura jerárquica. esta indica que se pueden definir nuevas clases a partir de los más clases iniciales. . . esto es. implementar una modularización adecuada no es algo trivial. gobernando las dependencias entre las partes resultantes. Sin embargo.10 Describa el concepto de Herencia La herencia se define como el mecanismo que permite la definición de una clase a partir de la definición de otra ya existente. Java solo permite herencia simple Superclases y Subclases El concepto de herencia conduce a una estructura jerárquica de clase o estructura de árbol. las técnicas disponibles son diversas y no existe consenso sobre cuáles son las mejores en cada caso. Una subclase puede tener solo una superclase. 2. Esta está fuertemente ligada a la reutilización del código en la POO.Adicionalmente. subclases y objetos. Clase A ----------------------------- Id: integer Nombre: String Apellidos String Edad: integer Viajar(): void Concentrarse(): void Entrenamiento(): void Partido(): void Clase B Clase D Clase C ----------------------------. -------------------------------------------. 2. E es una subclase de C. C es la superclase de E. C y D. C y D son subclases de A. ------------------------------- dorsal: integer Id federacion: integer titulacion: String demarcacion: String aniosExperiencia: integer planificarEntrenamiento(): void entrevista(): void -------------------------------- darMasaje(): void Clase E --------------------------------- Id: integer pasarInstrumentos: String auxiliar(): void Dónde: A es la superclase de B. B.11 Describa el concepto de Polimorfismo . out. un objeto solo tiene una forma (la que se le dé al crearlo) pero su referencia a objeto es polimórfica porque puede referirse a objetos de diferentes clases (la referencia toma múltiples formas) y para que esto sea posible debe existir la relación de herencia entre esas clases. . protectec String nombre. // tener en cuenta que se deben usar los constructores.out. tienen como padre o superclase a A. . } Public void concentrarse () { System. Una referencia a un objeto de la clase D también puede ser una referencia a un objeto de la clase A. por ejemplo. protectec String apellidos. lo que hace obligatorio implementar en las clases hijas. } .println (“concentrarse (clase A)”). pero si en la hijas Public abstract void entrenamiento (). públic abstrac class Clase A { protectec int id. Ahora como hemos visto las clases B.println(“asiste al partido (clase A)”). Una referencia a un objeto de la clase B también puede ser una referencia a un objeto de la clase A. protectec int edad. o sea que se puede volver a escribir ese método resultando la especialización de la hija. getter y setter Public void viajar() { System. lo importante de la herencia y el polimorfismo es que las hijas heredan los métodos de las clases padre. Public void partido() { System.out. . C. Una referencia a un objeto de la clase E también puede ser una referencia a un objeto de la clase A. implementemos un ejemplo. } // Importante--.Otro objeto de la POO es el polimorfismo o muchas formas.el método abstracto no se implementa en la clase padre. y D.println (“viajar (clase A)”). lo que quiere decir que las hijas se pueden redefinir los métodos. donde las clases hijas se pueden especializar. de forma que la aplicación es un conjunto de objetos que colaboran entre sí. evitando modificaciones a los códigos o accesos indebidos a los datos que almacenan las clases. donde se asigna un valor negativo a la variable que no ha sido prevista y esto genere errores de resultados. Ahora vemos donde si podemos utilizar la palabra reservada “abstract” en un método (este es el método entrenamiento). Cada uno será aislado del exterior. es que utilizamos dos veces la palabra reservada “abstract”. estas clases no se pueden instanciar. mediante el paso de mensajes invocando sus operaciones o métodos. } Lo primero que nos llama la atención. De esta manera los detalles de implementación permanecen "ocultos" a las personas que usan las clases. concentrándose sólo en cómo debe usar. Es importante tener en cuenta el método de validaciones para prevenir que no se le asigne un valor no valido a la variable. de tal forma que solo sea posible modificar los mismos mediante los métodos definidos para el objeto. 2. Veamos un ejemplo. Clase D”. esto nos indica que la clase “Clase A” es una clase abstracta y por ello. Teniendo en cuenta esto.12 Describa el concepto de Encapsulamiento El concepto consiste en la forma de ocultar el estado de los datos miembro del objeto. lo que quiere decir que todas la clases hijas de la clase “Clase A” se debe implementar ese método obligatoriamente. Clase C. el usuario de la clase no se tiene que preocupar de cómo están implementados los métodos y propiedades. por ello no podremos hacer un “new Clase A”. . con esto podemos decir que la clase “Clase A” es una clase polimorfa y sus las posibles formas que puede adoptar son “Clase B. tipo y clase que pueden ser accedidas desde una instancia de la clase MiClase. donde se requiere una solución que nos permita validar el contenido de la variable que se le va a asignar y escondiendo la variable impidiendo el acceso de forma directa. set y get.Una forma seria usar un modificador de acceso. . . pero que pasa si asignamos un valor no previsto para la variable. . Ahora vemos el ejemplo modificado para un buen encapsulamiento.Usar convenciones de código para los nombres de los métodos. donde no hay nada que nos lo impida.Hacer métodos de acceso públicos obligando el acceso a las variables por medio de estos métodos. .Analizando este código vemos que cuenta con variables enteras públicas. esto está bien. siendo este el principio básico del encapsulamiento. para ello realizaríamos lo siguiente. 13 Informe cómo convertir un String a entero en Java R: Específicamente para int. int b) si quieres la representación del int en una base especifica b . si es necesario en un futuro modificar la variable a un rango de valores especifico sin que se genere resultados negativos.Veamos la sentencia setTipo() para esta no existe validación de valor no valido. pero el hecho de asignar un método de este tipo desde el diseño de la aplicación nos permitirá modificar su comportamiento sin afectar el método utilizado. 2. puedes usar los siguientes métodos de la clase Integer static String toString(int i) si quieres la representación del int en base 10 static String toString(int i. Los métodos en java pueden tener parámetros. String stringNumero2 = Integer.Ejemplo : String stringNumero = String. 2. sin embargo el propósito es manipular variables existentes. el primer tipo de método son métodos que realizan procesos.toString(32).parseInt("32"). y calculan una variable específica. es decir.//aqui estamos ejecutando el metodo escrito en 15 //la parte de abajo.14 Defina el concepto de método y realice un ejemplo constructor R: Tipos de métodos.valueOf(32). El segundo tipo de métodos son los que realizan un proceso o cálculo. se puede utilizar mas de 1 vez 16 } 17 . //Equivalente a la anterior int otroNumerillo = Integer. puedes realizar cualquier operación con ellos. Veamos un ejemplo de cómo hacer un método en el siguiente ejemplo En este ejemplo vemos un programa normal en el cual se ejecuta un ciclo while que imprime números del 0 al 7. un ejemplo podría ser un método para obtener el valor de una multiplicación. que un método puede utilizar variables predefinidas para ser utilizadas en sus procesos. 02 03 /** 04 * 05 * @author xymind 06 */ 07 public class Main { 08 09 /** 10 * @param args the command line arguments 11 */ 12 public static void main(String[] args) { 13 14 iniciarCiclo(). 01 package ciclos. 29 30 } 31 } 32 33 } 2. los usuarios pueden proveer sus propias implementaciones modificadas para sobrescribir las implementaciones por defecto. Personalizable: dado el modelo de representación programático del framework de Swing. 28 x++. Se puede extender clases existentes proveyendo alternativas de implementación para elementos esenciales.out. 18 /*Comienza el metodo 19 Este metodo no regresa valores. que permitirá . Sigue un simple modelo de programación por hilos. el control permite representar diferentes estilos de apariencia "look and feel" (desde apariencia MacOS hasta apariencia Windows XP. pasando por apariencia GTK+. y posee las siguientes características principales: Independencia de plataforma. 25 while(x!=7) 26 { 27 System.15 Qué función tiene el paquete Swing en Java y describa sus principales características. IBM UNIX o HP UX. Extensibilidad: es una arquitectura altamente particionada. por lo que se declara como "void" seguido 20 del 21 nombre que tendra el metodo*/ 22 public void iniciarCiclo(){ 23 24 int x=0. es un metodo que unicamente realiza un procedimiento.println("X vale: "+x). la cual provee herramientas o facilidades para la construcción de GUI's o interfaces Graficas de Usuario (graphical user interface). los usuarios pueden proveer su propia implementación de apariencia. entre otros). R: Es un paquete que hace parte de la Java Foundation Classes o más conocida como JFC. Es un framework MVC para desarrollar interfaces gráficas para Java con independencia de la plataforma. Además. JSplitPane: permite la creación de un contenedor dividido en 2 secciones. JRadioButton – Permite presentar opciones de selección similares a las checkbox.. el contenedor principal JDialog: Una ventana de tipo Ventana de diálogo. JTabbedPane: Permite la creación de pestañas. tanto de texto como de imágenes JButton – Permite vincular Botones simples. . JDesktopPane : Permite crear ventanas dentro de una ventana principal JToolBar : Permite introducir una Barra de herramientas Componentes Atómicos Los componentes atómicos son los elementos que no pueden almacenar otros objetos o componentes gráficos. JFrame: Es la Ventana de aplicación. JTextField entre otros.. un JPanel no es Atómico. un contenedor es el tapiz donde pintaremos nuestros componentes gráficos. ideal para selección múltiples.cambios uniformes en la apariencia existente en las aplicaciones Swing sin efectuar ningún cambio al código de aplicación. existen contenedores principales. JToggleButton – Botón que al oprimirlo se quedará presionado hasta que se ejecute otro evento.. Contenedores Como vimos en entradas anteriores. por ejemplo. solo que el enfoque de estas es de única selección. JPanel: Permite la creación de paneles independientes donde se almacenan otros componentes. ya que en el podemos almacenar JButtons. también puede ser un contenedor principal.. JLabel – Permite Vincular Etiquetas. JScrollPane: permite la vinculación de barras de desplazamiento en un contenedor. cada pestaña representa un contenedor independiente. JCheckBox – Son Casilla de verificación. entre estos se encuentran JFrame y JDialog pero también existen otros contendedores incluidos dentro de los mencionados. JComboBox – Permite mostrar una lista de elementos como un combo de selección. JScrollBar – Permite mostrar una barra de desplazamiento. Estos componentes permiten vincular opciones de menú en nuestras ventanas. JFormattedTextField – Permite introducir un campo de texto con formato. (si definimos que solo recibe números no permitirá letras.) JPasswordField – Campo de texto que oculta los caracteres ingresados.. JTextPane – Similar al anterior. JSlider . colores. Son todos aquellos que nos permiten procesar cadenas de texto. Componentes de Texto..Permite vincular un Deslizador en nuestra ventana. tipo menú principal. JMenuBar: Permite vincular una barra de menús. permitiendo otras opciones de formato. Edición etc. es una barra simple. JEditorPane –Permite vincular un área de texto con propiedades de formato. como por ejemplo el conocido Inicio. iconos entre otros. JProgressBar – Establece una barra de progreso. JSeparator – Permite separar opciones. Archivo. JTextArea – Permite vincular un área de texto donde el usuario ingresara información o simplemente para presentar cadenas de texto. . JSpinner – permite vincular una caja de texto con botones integrados para seleccionar algún valor. Componentes de Menú. JTextField – Permite introducir un campo de texto simple. regularmente usada en Áreas de texto o paneles donde el contenido es mayor que el tamaño del componente. sea como entrada o salida de información. cumplen con funciones más enfocadas a procesos específicos y complejos. JColorChooser – Componente que permite cargar un panel selector de color JOptionPane – No es algo complejo sino más un componente independiente que permite mostrar un cuadro de diálogo personalizable. dependiendo de las propiedades puede tenerse una lista de selección múltiple. JTree . colores entre otros. como por ejemplo obtener gran cantidad de información de una base de datos. JList – Permite cargar una lista de elementos. JPopupMenu: Opciones de menú emergente. tipo directorio. JMenuItem: Botón u opción que se encuentra en un menú.Carga un árbol donde se establece cierta jerarquía visual. JCheckBoxMenuItem: Elemento del menú como opciones de checkbox. Componentes Complejos Estos son componentes un poco más avanzados. trabajo con nodos. .JMenu– Permite vincular botones o enlaces que al ser pulsados despliegan un menú principal. JTable – Permite vincular una tabla de datos con sus respectivas filas y columnas. JFileChooser – Es un componente que permite la búsqueda y selección de ficheros entre otras. JRadioButtonMenuItem: Elemento del menú como botón de selección. Análisis de requisitos del proyecto. bajo el paradigma de la programación orientada a objetos para realizar el registro de productos y clientes y la actualización de la información. consulta.16 Consultar la estructura y sintaxis de cómo funcionan las excepciones en Java. con la cual se pueda registrar productos. consulta y ventas de productos y de esta manera presentar la solución a los requerimientos planteados. 2.A. . actualización y ventas de productos? Objetivo General Desarrollar una aplicación para el mini mercado Surtimax S. Definición del Problema ¿Será posible mediante el uso de paradigma orientado a objetos y el uso de bases de datos MYSQL desarrollar el código de una aplicación para el mini mercado Surtimax S. clientes. 3.A. Recursos para la Especificación del sistema . Hacer bosquejos de las interfaces de usuario. Identificar las plataformas de hardware que debe soportar el software. Requisitos Funcionales Análisis de requisitos para una aplicación Inicialmente es preciso realizar un análisis de requerimientos. etc. d. . estableciendo los requerimientos para su compilación. el tipo de producto y Unidad de Medida. Este trata de capturar y describir detalladamente los requerimientos de funcionalidad del producto que se desarrolla. . Elaborar los requisitos detallados mediante documentos gráficos y textuales. Identificar deseos y necesidades. Diseñar un sistema de información que supla las necesidades de los requerimientos planteados en el análisis de requisitos. Identifica al cliente . Implementar un sistema que permita consultar información relacionada con los productos. Este debe contener. identificando: a. c. validado por el mismo. la . codificando las restricciones necesarias de acceso con usuarios registrados y pasword para el ingreso a la aplicación y así garantizar la seguridad de la aplicación y el acceso solo a personal autorizado. Generar el análisis del aplicativo. . Elaborar documento de los requisitos de usuario. . Inspeccionar los requisitos del usuario. Promover un aplicativo óptimo en seguridad. b. Descripción del proyecto: en este documento se describe de forma concisa y concreta el objetivo del sistema. con diferentes criterios de consulta como: El nombre del producto. Entrevistar al cliente.Objetivos Específicos Como objetivos específicos se tienen: . . . . Desarrollar el aplicativo con respecto a los análisis de requerimientos promoviendo el diseño del mismo. Utilizar las herramientas de expresión de requisitos. . . . solicita informes del sistema del Surtimax S. . Administrador o propietario. Secretaria. Análisis del contexto: se debe construir el modelo de objetos de interacción física entre los actores y el sistema. Cajero. Contador. . hace pedido de mercancías a entregar por mensajería. equipos y dispositivos que forman el ámbito de la aplicación. Otros sistemas. . externos al mismo pero interactúan con él. Descripción de actores. . las características más relevantes. Casos de uso: recursos para describir la funcionalidad del sistema. Secundarios. si Resumen desea puede generar un registro en el sistema para acceder a crédito en ventas.A. realiza compras. Disponibilidad del mini mercado para atender a los Precondiciones clientes. Persona encargada de realizar mantenimiento y actualización a la aplicación. naturaleza y objetivo del producto. Persona encargada de la gestión administrativa principal. Casos de uso Caso de uso Cliente Actor Cliente Tipo Inclusión Propósito Realiza compras o reclamaciones Interactúa con la aplicación. análisis de riesgos. Manto. Principales. personas que realizan tareas de mantenimiento o administrativas a la aplicación. Persona encargada de realizar el registro de salida de productos en el sistema y realizar los cobros respectivos. Persona encargada de la carga de productos al inventario del sistema. Externos. . . Actores . . Persona que realiza los pedidos o compras en el sistema del Surtimax S. usuarios que utilizan las funciones principales del sistema. Cliente. .A. . mostrando sus límites. Flujo Principal Realizar compra Subflujo S-1 acceder almacén . Persona encargada de realizar las actividades de contabilización en el sistema y presentar informes a la administración. cantidades. Disponibilidad del mini mercado para atender a los Precondiciones clientes. cobra. Flujo Principal Realiza consultas S-1 enciende terminal S-2 realiza logueo en sistema S-3 activa ficha consultas Subflujo S-4 registra criterios de consulta S-5 genera consulta S-6 salir E-1 no funciona el sistema Excepciones E-2 no hay acceso por credenciales Caso de uso Secretaria Actor Secretaria Tipo Inclusión Propósito Realiza registro de productos en el sistema . Disponibilidad del mini mercado para atender a los Precondiciones clientes. S-2 seleccionar producto S-3 dirigirse a caja S-4 pagar producto S-5 reclama factura compra S-6 salir E-1 no pago de producto Excepciones E-2 no registrado como cliente con crédito Caso de uso Cajero Actor Cajero Tipo Inclusión Realiza registro de venta. Flujo Principal Registra venta S-1 enciende terminal S-2 realiza logueo en sistema S-3 activa ficha venta Subflujo S-4 registra producto S-5 genera factura S-6 salir Excepciones E-1 no pago de producto. imprime y entrega la factura al cliente. realiza consultas de Resumen estado de mercancías. estado de ventas. sistema debe estar operativo. sistema debe estar operativo. cancela venta Caso de uso Administrador o Propietario Actor Administrador Tipo Inclusión Propósito Realiza consultas e informes en el sistema Interactúa con la aplicación. imprime y entrega la Propósito factura al cliente. Interactúa con la aplicación. realiza pedidos a proveedores. hace el cobro respectivo. realiza registro de Resumen productos en la ficha venta. cantidad del producto. sistema debe estar operativo. Interactúa con la aplicación. Disponibilidad del sistema para realizar operaciones Precondiciones contables y generar informes. genera informes Propósito en el sistema Interactúa con la aplicación. S-7 salir E-1 no funciona el sistema Excepciones E-2 no hay acceso por credenciales Caso de uso Manto Actor Manto Tipo Inclusión Realiza actividad de mantenimiento y actualización Propósito de la aplicación Interactúa con la aplicación. sistema debe estar operativo. realiza actividades de Resumen mantenimiento y actualización a la aplicación pretendiendo el mejoramiento de la misma. genera informes a la administración del Surtimax. disponibilidad de inventarios. Disponibilidad del sistema para ejecutar Precondiciones mantenimiento y actualizaciones del mismo Flujo Principal Realiza manto . realiza registro de mercancías al inventario registrando el valor de Resumen compra. Flujo Principal Realiza ingreso de productos S-1 enciende terminal S-2 realiza logueo en sistema S-3 activa ficha ingreso Subflujo S-4 registra producto con datos solicitados S-5 confirma registro S-6 salir E-1 no funciona el sistema Excepciones E-2 no hay acceso por credenciales Caso de uso Contador Actor Contador Tipo Inclusión Realiza actividad de contabilización. nombre. Disponibilidad del sistema para realizar ingreso de Precondiciones mercancías. unidad de medida. realiza actividades de Resumen contabilización. Flujo Principal Realiza contabilización S-1 enciende terminal S-2 realiza logueo en sistema S-3 activa ficha contabilidad S-4 registra datos contables Subflujo S-5 confirma registro S-6 verifica estado de mercancías. el sistema es de uso en red local o en línea. corregir defectos. Es necesario para el funcionamiento de la aplicación tener plataforma S. cuantos usuarios permite simultáneamente. existe manual de uso para el usuario. Seguridad. Usabilidad. Escalabilidad. hardware con procesadores . Grado de seguridad que presenta la aplicación para con los datos. . Mantenibilidad. Comportablidad. Capacidad de almacenamiento. . Grado de facilidad de uso de la aplicación. La aplicación permite la implementación de módulos y así mejorar su crecimiento. Plataforma física. Disponibilidad. . El sistema presenta buena capacidad de almacenamiento de datos. La disponibilidad en que está operativo el sistema y dispuesto a responder solicitudes a los clientes. . .O. El sistema está capacitado para manejar una carga creciente de trabajo. El sistema permite realizar pruebas de funcionalidad verificando así su comportamiento. Windows 7 o superior. daños o pérdidas por manipulación indebida. . Extensibilidad. . Requisitos no Funcionales . que tan fácil es aprender a operar la aplicación. El sistema presenta facilidad de darle mantenimiento. . S-1 enciende terminal S-2 realiza logueo en sistema como administrador S-3 activa ficha manto S-4Genera copia de respaldo del sistema S-5 realiza actividades de mantenimiento Subflujo S-6 verifica condiciones del sistema luego del mantenimiento o actualización S-7 verifica estado y disponibilidad a usuarios del sistema S-8 salir E-1 no funciona el sistema Excepciones E-2 no hay acceso por credenciales Completar documentación del análisis de requisitos. se requieren de sistemas de impresión POST en las terminales determinadas para la atención a clientes. red LAN que permita la interconexión de las terminales con el servidor de aplicación.5Ghz de velocidad de reloj o superiores. . y espacio disponible de almacenamiento en disco mínimo 500Gb. mínimo 4Gb de memoria RAM.de 1. 1&i t=r&id=GALE%7CCX3004300041&asid=320ab4f95cd384a1b4ef75c7eb74faf8 Es.edu. (2005). (2018).org.unad.com/articulo/ventajas_poo . (Enero 2000).html http://www. [129]). Referencias Bibliográficas Franco A. Jarroba.com/cursos/java/87-curso-javautilizando-metodos-en- java. Polimorfismo en Java (Parte I).com/polimorfismo-en-java-parte-i-con-ejemplos/ [Accessed 11 Feb.Wn0XSXy1vIU Weitzenfeld.htm Cristian David Henao H. con ejemplos . Conceptos básicos de la Programación Orientada a Objetos.blogspot.ehu. http://www. InIngeniería de Software Orientada a Objetos con UML.co/2013/09/componentes-java-swing.wikibooks. (2018). 8 De Febrero 2018 Recuperado de: http://www.Colombia) http://codejavu. 2018].do?p=GVRL&sw=w&u=unad&v=2. Recuperado de: http://bibliotecavirtual.htm http://codigoprogramacion.es/sbweb/fisica/cursoJava/fundamentos/clases1/clases. Mexico City: Cengage Learning.es/sbweb/fisica/cursoJava/fundamentos/clases1/clases.org/wiki/Programaci%C3%B3n_en_Java/Encapsulamiento [Accessed 09 Feb.html#.Jarroba.ciberaula.Wikilibros.wikibooks. [online] Available at: https://jarroba. Programación en Java/Encapsulamiento . Java e Internet (p.sc.sc. [online] Available at: https://es.ehu. A.com.co:2081/ps/i. 2018]. Programación Orientada a Objetos con Java. Ingeniero de Sistemas y Computación (Universidad del Quindío . htm .pmoinformatica.ctr.es/asignaturas/Ingenieria_Software_4_F/Doc/M3_08_Espec ificacion-2011.cl/~lmateu/Java/Apuntes/tiposprim.com/2013/01/requerimientos-no-funcionales- porque.dcc.unican.uchile.html https://www.pdf https://users.http://www.
Copyright © 2024 DOKUMEN.SITE Inc.