Professional Documents
Culture Documents
ANALISIS DE REQUISITOS
Presentado a:
FRANKLIN LIZCANO CELIS
Grupo: 301403_29
INTRODUCCIÓN.................................................................................................................................................3
OBJETIVO GENERAL ........................................................................................................................................4
OBJETIVOS ESPECIFICOS…………………………………………………………………………………….4
PROYECTO A DESARROLLAR……………………………………………………………………………….5
CONSULTA Y CARACTERISTICA DE LA PROGRAMACION ORIENTADA A OBJETOS.......................7
ANALISIS DE LOS REQUISITOS FUNCIONALES Y NO FUNCIONALES DEL PROYECTO .................27
CONCLUSIONES...............................................................................................................................................30
REFERENCIAS BIBLIOGRÁFICAS ................................................................................................................31
INTRODUCCIÓN
OBJETIVO GENERAL:
Aplicar los conceptos frente a la estructura de la programación orientada a objetos
utilizando el lenguaje de JAVA y bases de datos en MSQL, y llevarlos a la práctica
realizando una aplicación de facturación para el SUPERMERCADO MULTIPLEX.
OBJETIVOS ESPECIFICOS:
Generar dentro del proyecto las fases que permitan: insertar, eliminar, consultar, y
actualizar la información que se requiere dentro de la facturación de productos del
supermercado MULTIPLEX.
Identificar las necesidades específicas del cliente para el desarrollo del aplicativo.
PROYECTO A DESARROLLAR
PROYECTO B
El Mini mercado Surtimax S.A es una empresa unifamiliar la cual es atendida por José
Andrés Cárdenas y Gloria Martínez, quienes son los Propietarios del Mini Mercado.
Actualmente el Mini mercado solo cuenta con cinco clientes (Véase figura 1) y solo ofrece
algunos productos a la venta (Véase figura 2). De igual manera se debe tener en cuenta
otros roles de usuario (Véase figura 3).
Para lograr un buen funcionamiento del negocio se requiere el desarrollo de una aplicación
que realice los siguientes procesos:
Registro de Productos: El módulo debe permitir el ingreso de nuevos productos
permitiendo registrar su nombre, tipo de producto y unidad de medida.
Registro de Clientes: En este módulo debe permitir registrar el nombre, la edad, la
dirección y el teléfono celular de cada cliente.
Actualización Información de Productos: En este módulo se debe permitir actualizar la
información del producto ya registrado o la modificación de los datos relacionados con ésta.
Venta de productos: En este módulo debe permitir realizar el proceso de venta de
productos, registrando el producto y los datos básicos del cliente.
Consulta de Productos: En este módulo debe permitir consultar información relacionada
con los productos, teniendo como criterios de consulta como: El nombre del producto, el
tipo de producto y Unidad de Medida.
Finalmente, al ejecutar la aplicación, esta debe solicitar un password y Login para
garantizar la seguridad de la aplicación y el acceso solo a personal autorizado. Se debe
tener en cuenta que no se permite en el password los siguientes caracteres: #,!,¡,?,^,¿,|,°
por lo que es obligatorio hacer uso de los bloques de excepciones en Java para evitar estos
caracteres.
Para el desarrollo de este proyecto se debe utilizar el paradigma orientado a objetos
(clases, herencia, polimorfismo, encapsulamiento, etc.), así mismo se debe utilizar la base
de datos MYSQL como base de datos predeterminada. El código de la aplicación debe ser
comentado en su totalidad.
Al finalizar el proyecto en la Fase 5 uno de los integrantes del grupo debe comprimir en una
carpeta el archivo ejecutable, y éste será el mismo que ejecutará el docente al momento de
la calificación.
La estructura del programa es más clara puesto que las instrucciones están más relacionas
entre sí, por lo que es más fácil comprender lo que hace cada función.
Debido a la sencillez para abstraer el problema, los programas orientados a objetos son
más sencillos de leer y comprender, pues nos permiten ocultas algunos detalles.
Aquí estamos reservando memoria para una variable de tipo String y la identificamos con el
nombre “cliente”. De ahora en adelante si en el programa hablamos de cliente, estamos
haciendo referencia a esa porción de memoria y al valor que contiene.
Podemos asignarle algún valor en el momento de declarar una variable. Por ejemplo:
Aquí reservamos memoria para una cadena de caracteres y le asignamos el valor "Isaac
Newton".
También podemos declararla y en otro lugar del programa fijarle un valor:
Para ver como se utilizan las variables, podemos modificar el primer programa.
Agregaremos una variable que contenga el texto que se mostrará en pantalla:
Existen dos categorías de variables: las de tipo primitivo y las referenciadas. Una variable
de tipo primitivo accede al valor asignado directamente. Las referenciadas acceden a través
de un puntero.
Es decir, no almacenan un valor sino una dirección de memoria. Estas últimas son
utilizadas por las matrices, las clases y las interfaces.
Por convención, los nombres de variables comienzan con una letra en minúscula. Si un
nombre consiste en más de una palabra, se escribirá sin espacios entre ellas y cada
palabra (salvo la primera) comenzará con una letra mayúscula (por ejemplo:
estaBienEsteNombre
Cada variable debe tener un tipo de dato predefinido. Esto determina el rango de valores
que puede almacenar y qué operaciones se pueden realizar, así como el resultado que te
dará. Por ejemplo, una variable de tipo entero puede almacenar números sin decimales y
puede realizar operaciones aritméticas, pero no puede contener palabras.
4. Sintaxis para imprimir en consola en Java:
Para imprimir por pantalla se hace uso del objeto System.out, que representa la salida
estándar.
Típicamente este objeto se corresponde con la pantalla u otra salida especificada en las
variables de entorno del sistema en el que se ejecuta. El objeto System.out es del tipo
java.io.PrintStream y, por ello, dispone de métodos para escribir con formato en el flujo de
salida, usualmente el monitor.
Los más interesantes son: print, método sobrecargado que puede recoger cualquier tipo de
datos básico, cadena u objeto. println, idéntico a print salvo en que imprime un salto de
línea final; o format, que permite escribir los datos ajustándose a un determinado formato,
de modo similar a cómo lo hace el printf de C.
Así, la sentencia para imprimir por pantalla y dar dos salto de línea, el salto de línea propio
del
Método y el indicado por '\n', es:
También podemos concatenar objetos de tipo String antes y luego imprimirlos, por ejemplo:
Cuando un objeto se concatena con una cadena o se imprime por pantalla, para su
representación se hace una llamada implícita a la implementación que haga de su método
toString.
5. Sintaxis para comentar en Java
Comentarios en Java
Primeramente, vale hacer mencionar los tipos de comentarios utilizados en Java, existen
dos tipos de comentarios puros como tal:
Los dos tipos de comentarios anteriores son utilizados como guía dentro del código fuente,
esto es, a partir de ellos no son generados ningún tipo de documentación, cualquier palabra
entre /* y */ es considerada comentario, al igual que todo renglón que inicie con //.
Para que un comentario sea contemplado en la generación de documentación se utiliza la
siguiente sintaxis
Todo elemento colocado entre los elementos /** */ será contemplado en la generación de
documentación, dependiendo de la ubicación de este comentario será generada la
documentación, esto es, si aparece antes de un elemento class es considerado
documentación para la Clase y así sucesivamente.
!= Es distinto
|| Operador or (o)
Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el
resultado de la comparación es correcto la expresión considerada es verdadera, en caso
contrario es falsa. Por ejemplo, 8>4 (ocho mayores que cuatro) es verdadera, se representa
por el valor true del tipo básico boolean, en cambio, 8<4 (ocho menor que cuatro) es falsa,
false. En la primera columna de la tabla, se dan los símbolos de los operadores
Relacionales, en la segunda, el nombre de dichos operadores, y a continuación su
significado mediante un ejemplo.
!= no igual a a! =b a no es igual a b
Clase:
Las clases en Java (Java Class) son plantillas para la creación de objetos, en lo que se
conoce como programación orientada a objetos, la cual es una de los principales
paradigmas de desarrollo de software en la actualidad.
Instancia de Clases:
Una clase es la estructura de un objeto, es decir, la definición de todos los elementos que
componen un objeto. Un objeto es, por lo tanto, el "resultado" de una clase. En realidad, un
objeto es una instancia de una clase, por lo que se pueden intercambiar los
Términos objeto o instancia (o incluso evento).
Una clase se compone de dos partes: atributos y métodos. Los atributos (denominados, por
lo general, datos miembros) se refieren al estado del objeto. Los métodos (denominados,
por lo general, funciones miembros) son funciones que pueden aplicarse a objetos.
Si tenemos una clase llamada auto, los objetos Peugeot y Renault serán instancias de esa
clase. También puede haber otros objetos Peugeot 406, diferenciados por su número de
modelo. Asimismo, dos instancias de una clase pueden tener los mismos atributos, pero
considerarse objetos distintos independientes. En un contexto real: dos camisas pueden ser
idénticas, pero, no obstante, también ser diferentes de alguna manera. Sin embargo, si las
mezclamos es imposible distinguir una de la otra.
Atributo
Un nombre de variable Java: debe ser un identificador legal de Java comprendido en una
serie de caracteres Unicode. Unicode es un sistema de codificación que soporta texto
escrito en distintos lenguajes humanos. Unicode permite la codificación de 34.168
caracteres. Esto le permite utilizar en sus programas Java varios alfabetos como el
japonés, el griego, el ruso o el hebreo. Esto es importante para que los programadores
pueden escribir código en su lenguaje nativo.
No deben tener el mismo nombre que otras variables cuyas declaraciones aparezcan en el
mismo ámbito.
Tipo es el tipo de la variable, pudiendo ser un tipo básico o un objeto de una clase o de un
interfaz. También puede ser una matriz o vector.
Comportamiento
Clase.
Las clases son la base de la Programación Orientada a Objetos. Una clase es una plantilla
que define la forma de un objeto; en ella se agrupan datos y métodos que operarán sobre
esos datos. En java, una clase se define con la palabra reservada class. Por convención, se
declaran primero las variables (atributos) miembro de la clase y luego las declaraciones e
implementaciones de métodos. Al diseñar una clase es conveniente tomar en cuenta lo
siguiente:
En Java no existen variables ni métodos globales. Todas las variables y métodos deben
pertenecer a una clase.
Cuando una clase extiende a otra hereda todos sus atributos y métodos.
Public: la clase puede ser utilizada por objetos que estén fuera del paquete actual. Por
omisión, una clase sólo puede ser utilizada por otras clases dentro del mismo paquete en el
que están declaradas. Abstract: Se usa para indicar que una clase es abstracta, esto
significa que la clase puede contener métodos sin implementación (abstractos). Una clase
abstracta está diseñada para ser una superclase y no pueden crear objetos de ella.
Final: cuando una clase tiene el modificador final es una clase que no puede tener
subclases.
Interfaces:
Una de las herramientas más efectivas para atacar este problema es la modularización.
Esta consiste en particionar un sistema de acuerdo con ciertos principios de diseño y a una
estrategia de desarrollo, gobernando las dependencias entre las partes resultantes.
Sin embargo, implementar una modularización adecuada no es algo trivial; las técnicas
disponibles son diversas y no existe consenso sobre cuáles son las mejores en cada caso.
La herencia es una forma de reutilización de software en la que se crea una nueva clase al
absorber los miembros de una existente, por lo cual cuando se programa una herencia se
crea una relación es un. Es importante tener claras las relaciones es un y tiene un. Cuando
se habla de tiene un generalmente se refiere a una relación de composición (un objeto
inicializa a otro) o asociación (Deitel).
Las clases nuevas pueden heredar de las clases en las bibliotecas de clases. Las
organizaciones desarrollan sus propias bibliotecas de clases y pueden aprovechar las que
ya están disponibles en todo el mundo. Es probable que algún día, la mayoría de software
nuevo se construya a partir de componentes reutilizables estandarizados, como sucede
actualmente con la mayoría de los automóviles y del hardware de computadora. Esto
facilitará el desarrollo de software más poderoso, abundante y económico (Deitel).
Las superclases deben ser más generales y las subclases más específicas. Por ejemplo,
un PrestamoAuto es un Préstamo, así́ como PrestamoMejoraCasa y PréstamoHipotecario.
Por ende, en Java se puede decir que la clase PrestamoAuto hereda de la clase Préstamo.
En este contexto, dicha clase es una superclase y la clase PrestamoAuto es una subclase.
Un PrestamoAuto es un tipo específico de Préstamo, pero es incorrecto afirmar que todo
Préstamo es un PrestamoAuto; el Préstamo podría ser cualquier tipo de superclase y
subclases.
jerarquía podría contener muchas otras clases. Por ejemplo, las elipses y los trapezoides
son del tipo FiguraBidimensional.
Anotación Override:
Método Constructor:
Es el único método que no se puede heredar. El constructor de cada subclase debe llamar
en forma implícita o explícita al constructor de la superclase para inicializar las variables de
instancia heredadas. Para ello se utiliza la sintaxis de llamada al constructor de la
superclase: la palabra clave súper, seguida de un conjunto de paréntesis que contiene los
argumentos del constructor de la superclase.
Si el constructor de la subclase no invocara al constructor de la superclase en forma
explícita, Java trataría de invocar al constructor predeterminado o sin argumentos de la
superclase. En los casos que la subclase no tenga un constructor así, el ́ compilador
generaría un error.
11. Describa el concepto de Polimorfismo:
Polimorfismo es la capacidad de un objeto de adquirir varias formas. El uso más común de
polimorfismo en programación orientada a objetos se da cuando se utiliza la referencia de
una clase padre, para referirse al objeto de la clase hijo.
Cualquier objeto javo que pueda pasar más de un test "ES-UN" es considerado polimórfico.
En Java, todos los objetos son polimórficos ya que cualquier objeto pasaría un test "ES-UN"
dado que son de su propio tipo, además del de la clase Object.
La clase forma define los métodos dibujar y borrar. En la definición de estos métodos se
implementará el código común a todos los objetos de la clase. Sin embargo, cuando
definamos las clases hijas, círculo y cuadrado, será necesario modificar estos métodos
para adaptarlos a las nuevas subclases. El método de la clase padre implementa aquellas
acciones comunes. Las clases hijas añaden las operaciones particulares que necesiten.
Cuando utilicemos los métodos de la clase forma no tendremos que hacer distinción entre
cuadrados y círculos. Gracias al polimorfismo se ejecutará el método adecuado en función
de la subclase a la que pertenezca el objeto.
¿Qué problemas podemos tener? pues que la cadena no sólo contenga números, sino que
venga con espacios.
Si los espacios vienen al principio o al final, con un simple trim bastará para eliminarlos, por
ejemplo ("1")
numCadena.trim();
Si tenemos espacio entre los números deberíamos usar el método replaceAll (" 1 3 45 6")
Una vez realizados estos sencillos pasos podremos trabajar con los números enteros.
}
public class Vehiculo {
Vehiculo (string c) {
Color = c;
}
15. Qué función tiene el paquete Swing en Java y describa sus principales
característica:.
Swing es una biblioteca gráfica para Java. Incluye widgets para interfaz gráfica de usuario
tales como cajas de texto, botones, listas desplegables y tablas.
AWT (Abstract Window Tolkit) Incluye las siguientes características:
1. Componentes gráficos nativos.
2. Un modelo de gestión de eventos.
3. Herramientas de gráficos e imágenes: fuentes, colores, etc.
4. Algoritmos de distribución de componentes. Estos algoritmos permiten construir la interfaz
delegando la colocación de los diferentes componentes a un algoritmo de distribución. Los
algoritmos de distribución permiten a las aplicaciones con interfaz gráfica de usuario
responder adecuadamente ante diferentes resoluciones de pantalla, cambios en el tamaño
de la ventana, etc.
5. Clases para soportar cortar, copiar o arrastrar y soltar, e integración con el portapapeles
nativo de la plataforma.
Swing es un modelo de componentes para construir interfaces gráficas de usuario. Os
componentes Swing están completamente programados en java, y por tanto no utilizan los
componentes nativos. Swing está basado en el sistema de eventos de AWT, por lo que en
ocasiones la documentación de swing hace referencia a AWT. AWT también proporciona a
swing el soporte para copiar-pegar y arrastrar-soltar.
El modelo de componentes swing a veces es referido como JFC/Swing. JFC son las siglas
de Java Foundation Classes y es un supe conjunto de Swing (aunque se refieran juntos).
En concreto JFC incluye:
El modelo de componentes swing.
Apariencia gráfica de la interfaz de usuario configurable. En JFC se proporciona un sistema
de gestión de la extensible. Las aplicaciones pueden utilizar una apariencia independiente
de la plataforma o bien pueden utilizar la apariencia del sistema de ventanas sobre el que
corren.
Accesibilidad. Permite la utilización, por ejemplo, de dispositivos braille para mostrar
información de la interfaz de usuario.
Java 2D API. Permite incorporar en las aplicaciones gráficos 2D, imágenes y texto, así
como enviar documentos de alta calidad a la impresora.
Internacionalización. Permite crear aplicaciones multilenguaje que pueden ser configuradas
para mostrar la interfaz de usuario utilizando el lenguaje de la zona en la que reside el
usuario.
16. Consultar la estructura y sintaxis de cómo funcionan las excepciones en Java:
En Java los errores en tiempo de ejecución (cuando se está ejecutando el programa) se
denominan excepciones, y esto ocurre cuando se produce un error en alguna de las
instrucciones de nuestro programa, como por ejemplo cuando se hace una división entre
cero, cuando un objeto es 'null' y no puede serlo, cuando no se abre correctamente un
fichero, etc. Cuando se produce una excepción se muestra en la pantalla un mensaje de
error y finaliza la ejecución del programa.
public class Excepciones1 {
public static void main(String [] arg) {
metodo ();
}
static void metodo () {
int divisor = 0;
int resultado = 100/divisor;
System.out.println(“Resultado: ” + resultado);
System.out.println(“Una Suma:” + (3+4));
}
}
Si ejecutamos ese programa, se generara una excepción automáticamente y se nos
indicara por pantalla.
Es preferible tener declaradas todas las posibles excepciones que se puedan generar en
dicho método, para lo que se utilizara la sentencia throws de la declaración de métodos.
Para poder lanzar una excepción es necesario crear un objeto de tipo Exception o alguna
de sus subclases como ArithmeticException y lanzarlo mediante la instrucción throw cmo se
muestra en este ejemplo:
class LanzaExcepcion {
public static void main(String argumentos[]) throws ArithmeticException {
int i=1, j=2;
if (i/j< 1)
throw new ArithmeticException();
else
System.out.println(i/j);
}
}
ANALISIS DE LOS REQUISITOS DEL PROYECTO
REQUERIMIENTOS FUNCIONALES _ RF
Nº de RF Nombre Observación
Actualización
debe permitir la actualización del producto y modificarlo si fuere
3 Información de
el caso, teniendo en cuenta el tipo de dato
Productos
modificar el
5 el sistema debe permitir en cambio de valor del producto
valor
Nº de
Nombre Observación
RNF
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Imprimir_en_Pantalla
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Variables#Tipo_de_variable
https://javabasico.osmosislatina.com/curso/progbasico2/comentarios.htm
https://jarroba.com/herencia-en-la-programacion-orientada-a-objetos-ejemplo-en-java/
www.ciberaula.com/articulo/polimorfismo
http://www.edu4java.com/es/progbasica/progbasica17.html
https://sites.google.com/site/conceptosdejava/home/encapsulamiento-en-java
https://jarroba.com/excepciones-exception-en-java-con-ejemplos/
https://es.wikipedia.org/wiki/Swing_(biblioteca_gráfica)
Flórez, Fernández, Héctor Arturo. Programación orientada a objetos usando java, Ecoe Ediciones,
2012. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3203026.