You are on page 1of 31

ACTIVIDAD 1: FASE 1

ANALISIS DE REQUISITOS

Luz Adriana Martínez E.


Código: 25173355
Isaías Zuleta Álzate
Código: 1088253910
Johan Deive Rincón Diaz
Código: 1094928209
Eduard Aristizabal
Código: 1113307220

Presentado a:
FRANKLIN LIZCANO CELIS
Grupo: 301403_29

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
PROGRAMACION ORIENTADA A OBJETOS
CEAD DOSQUEBRADAS
FEBRERO 17 DEL 2018
CONTENIDO

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

El diseño de programas es una actividad compleja que exige al planificador recoger


informaciones diversas y tomar decisiones a lo largo de un proceso, para satisfacer la
necesidad del cliente final. Con esta actividad se pretende avanzar frente a la
programación, con el desarrollar habilidades para manejo de programa como java, MSQL.
OBJETIVOS

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:

 Realizar el análisis de los requisitos funcionales y no funcionales del proyecto.

 Modelar y elaborar el prototipo de la herramienta computacional como elemento de


ayuda dentro del proceso de análisis de requerimientos para el proyecto.

 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).

Figura 1. Clientes Mini mercado La Granjita S.A

Identificación Nombre Completo Edad Teléfono Dirección

109845678 Elizabeth Rincón 23 6441934 Cra 21 15-02

3214567 Zulia Vega 25 7245678 AV 115 25-40

36789065 Alexander Otálora 45 6543213 Cra 24 Nro 38-18

1099765 Lucia Acuña 28 6789054 Cra 25 Nro 45-125

2567890 Taliana Vargas 27 6789032 Diag 25 Nro 12-45

16789045 Carlos Medina 35 7896543 Cra 25 Nro 76-25

Figura 2. Productos disponibles en Mini mercado Surtimax S.A


Nombre del Tipo de Unidad de
Costo
producto producto medida
No
Aceite Litros $ 2500
Perecedero
No
Arroz Kilogramos $1300
Perecedero
No
Pastas Kilogramos $900
Perecedero
Tomate Perecedero Kilogramos $1500
Cebolla Perecedero Kilogramos $1200

Figura 3 Otros roles de usuarios


Identificació Nombre
Teléfono Dirección Rol
n Completo
3214567 Zulia Vega 7245678 AV 115 25-40 Administrador
Andrés
2874963 5555555 Cra 34 17-80 Empleado
Cortes

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.

2. Consultar y reconocer las características generales de la programación orientada a objetos


y la estructura del Lenguaje Java, que será utilizado para el desarrollo del proyecto. Para ello
se recomienda que entre todos los integrantes del grupo colaborativo se distribuyan las
preguntas planteadas en el siguiente cuestionario que se relaciona a continuación, para ser
solucionadas.
1. Cuál es la diferencia entre programación estructurada y programación orientada a
objetos.
La programación orientada a objetos se basa en una nueva forma de pensar los problemas,
declarando como variables a los tipos de datos los objetos del problema, y que a su vez
cada
objeto tiene anidadas variables que hacen referencia al dato.

La programación estructurada es un paradigma de programación orientado a mejorar la


variedad, calidad y tiempo de desarrollo de un programa de computadora. Utiliza una
secuencia, selección e iteración considerando innecesario y contraproducente el uso de la
instrucción de transferencia incondicional, que es mucho más difícil de seguir y de
mantener y era la causa de muchos errores de programació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.

La programación orientada a objetos es una forma especial de programar, más cercana de


como expresaríamos las cosas en la vida real que otros tipos de programación. Con la
programación orientada a objetos tenemos que aprender a pensar las cosas de una
manera distinta, para escribir nuestros programas en términos de objetos. Propiedades,
métodos y conceptos.

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.

La programación estructurada consta de una estructura donde se va ejecutando paso a


paso y este
Debe tener una secuencia y una lógica para que su función sea eficiente.
La programación orientada a objetos se basa en una nueva forma de pensar los problemas
es más moderna es una evolución de la programación estructurada que plasma el diseño
de una familia de lenguajes conceptos que existían previamente con algunos nuevos.

La programación estructurada pretende resolver un problema de principio a tienen una sola


estructura de código, la programación orientada a objetos resuelve el problema
identificando los
actores que tienen participación en el problema e identificando también sus acciones.
2. Ventajas y desventajas de la programación orientada a objetos
Desventajas:
 El cambio en la forma de pensar de la programación tradicional a la forma de programación
orientada a objetos.
 La ejecución de programas orientada a objetos es más lenta debido que posee más método
 La necesidad de utilizar bibliotecas de clases que obliga a supervisión y entrenamiento.
Ventajas:
Reusabilidad: la ventaja para el programador, las clases se pueden usar en distintas partes
del programa cuando las hemos usado adecuadamente.
Modificabilidad: tenemos la facilidad de añadir, suprimir y modificar permitiéndolo hacer de
una manera muy sencilla.
Mantenibilidad: debido a la sencillez para abstraer el problema, los programas orientados a
objetos son más sencillos de leer y comprender, pues nos permiten ocultar detalles de
implementación sin ocultar detalles dejando visibles solo aquellos detalles más relevantes.
3. Sintaxis para definir variables en Java:
Las variables son una de las características fundamentales de los lenguajes de
programación, permiten acceder a la memoria para almacenar y recuperar los datos con los
que nuestros programas van a trabajar. Son por tanto el mecanismo que los lenguajes de
programación ponen a nuestra disposición para acceder a la memoria.
Se trata de un mecanismo de lo más sencillo, sólo tenemos que dar un nombre a nuestras
variables,
A partir de ese momento el compilador traducirá de forma automática ese nombre en un
acceso a memoria. Por ejemplo:
Java es un lenguaje tipado y nos obliga a declarar nuestras variables antes de poder hacer
uso de ellas, con esta declaración le indicamos al compilador el espacio en memoria que
debe de reservar para almacenar la información. Por ejemplo:

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:

La sentencia para declarar una variable se resume como:

Definimos el tipo de dato, el nombre y opcionalmente su valor inicial.

Para ver como se utilizan las variables, podemos modificar el primer programa.
Agregaremos una variable que contenga el texto que se mostrará en pantalla:

Definimos una variable de tipo String con el nombre "saludo". En la declaración de la


variable también la iniciamos con el valor "¡Hola mundo!". Luego llamamos al método que
imprimirá el texto en la pantalla haciendo referencia a la variable. En el programa original,
explícitamente introducíamos el texto que se mostraría, ahora solo escribimos el nombre de
la variable. Cuando el intérprete se encuentre con el nombre de esta variable, tendrá que
buscar el valor que almacene en la memoria para mostrarlo por pantalla.
Un variable puede cambiar su valor en el transcurso del programa (salvo que se preceda su
definición con la palabra: final

Siempre debemos inicializar una variable. Al compilar el programa, el compilador de Java


leerá el contenido de la variable y siempre verificará que tenga un valor. De lo contrario el
programa no compilará y mostrará un error. Un ejemplo de este caso:

En este caso el compilador mostrará un mensaje de error indicando que la variable x no se


ha iniciado con ningún valor. Como se puede observar esta variable solo se inicia cuando
se cumple una condición, sin embargo, se indica que va a ser utilizada siempre. El
compilador detecta este posible error. Un ejemplo de solución posible sería:
Agregando estas líneas al final del código de la clase Uso Variables nos mostraría lo
siguiente a la salida:
El nombre debe ser único en el contexto del programa. Además, debe seguir las siguientes
reglas:
 No puede ser una palabra reservada del lenguaje o un literal booleano (true o false)
 Puede contener cualquier carácter Unicode, pero no puede comenzar con un número
 No debe contener los símbolos que se utilicen como operadores (+, - ,? etc.).

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:

Lo siguiente imprime el texto por pantalla con un único salto de línea:

También podemos concatenar objetos de tipo String antes y luego imprimirlos, por ejemplo:

El mensaje sería: Este es el mensaje: Hola

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.

6. Sintaxis de los operadores lógicos y relacionales:


OPERADORES LÓGICOS PRINCIPALES EN JAVA
 En Java disponemos de los operadores lógicos habituales en lenguajes de programación
como son “es igual”, “es distinto”, menor, menor o igual, mayor, mayor o igual, and (y), or
(o) y not (no). La sintaxis se basa en símbolos como veremos a continuación y cabe
destacar que hay que prestar atención a no confundir == con = porque implican distintas
cosas.
OPERADO DESCRIPCIÓN
R
== Es igual

!= Es distinto

<, <=, >, Menor, menor o igual, mayor, mayor o


>= igual
&& Operador and (y)

|| Operador or (o)

! Operador not (no)

El operador || se obtiene en la mayoría de los teclados pulsando ALT GR + 1, es decir, la


tecla ALT GR y el número 1 simultáneamente.

Los operadores && y || se llaman operadores en cortocircuito porque si no se cumple la


condición de un término no se evalúa el resto de la operación. Por ejemplo: (a == b && c
! = d && h >= k) tiene tres evaluaciones: la primera comprueba si la variable a es igual a b.
Si no se cumple esta condición, el resultado de la expresión es falso y no se evalúan las
otras dos condiciones posteriores.

En un caso como (a < b || c! = d || h <= k) se evalúa si a es menor que b. Si se cumple esta


condición el resultado de la expresión es verdadero y no se evalúan las otras dos
condiciones posteriores.
¡El operador! recomendamos no usarlo hasta que se tenga una cierta destreza en
programación. ¡Una expresión como (! es Visible) devuelve false si (es Visible == true), o
true si (es Visible == false). En general existen expresiones equivalentes que permiten
evitar el uso de este operador cuando se desea.

Los operadores relacionales

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.

Operador nombre ejemplo significado

< menor que a<b a es menor que b

> mayor que a>b a es mayor que b

== igual a a==b a es igual a b

!= no igual a a! =b a no es igual a b

<= menor que o igual a a<=5 a es menor que o igual a b

>= mayor que o igual a a>=b a es menor que o igual a b

7. Defina Clase, instancia de clase, atributo, comportamiento, identidad, constructor e


identificadores.

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.

Java es un lenguaje de programación de propósito general, concurrente, orientado a


objetos que fue diseñado específicamente para tener tan pocas dependencias de
implementación como fuera posible.

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

Los atributos de una clase son definidos según esta sintaxis:

[modifVisibilidad] [modifAtributo] tipo nombreVariable [= valorInicial];

Donde nombreVariable es el nombre que daremos a la variable, siendo un nombre válido


según las normas del lenguaje:
Por convención, en Java, los nombres de las variables empiezan con una letra minúscula
(Los nombres de las clases empiezan con una letra mayúscula).

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 puede ser el mismo que una palabra clave

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

El comportamiento de los objetos de una clase se implementa mediante funciones miembro


o métodos. Un método es un conjunto de instrucciones que realizan una determinada tarea
Y son similares a las funciones de los lenguajes estructurados.
Del mismo modo que hay variables de instancia y de clase, también hay métodos de
instancia y de clase. En el primer caso, un objeto llama a un método para realizar una
determinada tarea, en el segundo, el método se llama desde la propia clase.
8. Tipos de clase:
Clases en Java 4.1

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.

En Java no existe la herencia múltiple.

Object es la base de toda la jerarquía de clases de Java. Si al definir una clase no se


especifica la clase que extiende, por default deriva de Object. 4.1.1 Modificadores de
Acceso a la clase Los modificadores de acceso a clase son opcionales, se anteponen a la
palabra reservada class, estos son public, abstract y final.

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.

Modificador de Acceso Class Nombre de Clase Declaración de variables miembros de la


clase [modificador] tipo campo1; [modificador] tipo campo2; … [modificador] tipo campoN;
Constructor(es) de la clase Métodos de la clase tipo método1( parámetros); tipo método2(
parámetros); … tipo métodoN( parámetros); ; Introducción a la Programación en Java Ing.
Alma Leticia Palacios Guerrero Pág. 25 4.1.2 Modificadores de Acceso campos de clase El
uso de clases permite proteger sus variables y métodos del acceso de otros objetos. Java
proporciona cuatro niveles de acceso para las variables y métodos miembros: private,
protected, public y acceso de paquete. Niveles de acceso permitidos por cada
especificador: private protected public package clase subclase paquete exterior
private: Es el nivel de acceso más restringido. Los miembros privados están disponibles
sólo para la clase en las que está definidos. Protected: Permite que la misma clase,
subclases y todas las clases dentro del mismo paquete tengan acceso a los miembros
protected. Public: Todas las clases tienen acceso a los miembros públicos de la clase. Los
miembros públicos se emplean solamente cuando el acceso a ellos produce resultados
indeseables. Package: Este nivel es el que se establece si no se indica un nivel de acceso
a los miembros. El acceso de paquete permite que las clases dentro del mismo paquete
que la clase tengan acceso a los miembros. Static: El campo static será el mismo para
todas las instancias de la clase. Final: El campo debe ser inicializado y no se puede
modificar. 4.1.3

Modificadores de Acceso a Métodos de la Clase abstract: Es un método que no tiene


cuerpo y pertenece a una clase abstracta. Final: El método no se puede sobrescribir.
Native: Su cuerpo está implementando en otro lenguaje de programación public: El método
está disponible para todas las clases. Protected: Esta disponible solo para la clase donde
fue definido y sus subclases. Private: El método está disponible sólo para la clase a la que
pertenece. Static: Se puede accesar sin necesidad de hacer una instancia de la clase a la
cual pertenece. Synchronized: Es un método monitoreado para evitar interferencias entre
hilos que manipulan un mismo objeto. Este método debe detenerse antes de ser ejecutado
por un hilo.

Interfaces:

Una interface declara un conjunto de métodos y constantes sin especificar la


implementación de ningún método; es decir los métodos no tienen código. Estos pueden
ser implementados a través de una clase implementa una interface. Cuando una clase
implementa una interface debe proporcionar la implementación para todos los métodos de
la interface. Para indicar que una clase implementa una o más interfaces, se emplea la
palabra implements seguida por una lista de los interfaces implementados por la clase
separadas por comas.

Packages Un paquete es una agrupación de clases. El programador puede crear sus


propios paquetes agregando una línea con la palabra package y el nombre del paquete al
inicio de un programa java. Un ejemplo serio la siguiente línea: package mis. Paquetes; Los
nombres de los paquetes suelen escribirse con minúsculas, para diferenciarlos de las
clases; el nombre de un paquete puede estar formado por varias palabras separadas por
puntos, por ejemplo java.awt.event. Todas las clases que forman parte de un paquete
deben estar en el mismo directorio. Para utilizar un paquete dentro de un programa se debe
de importar. Al importarlo no se cargan todas las clases que contiene el paquete, sólo se
cargan las clases public que se vayan a utilizar. Al importar un paquete no se importan los
subpaquetes. Para importarlos se debe hacer explícitamente ya que en realidad son
paquetes diferentes. Existen dos formas de utilizar import: para una clase y para todo un
package: import mis.paquetes.Teclado; // Importa solo la clase Teclado import
mis.paquetes.*; // Importa todas las clases contenidas en mis.paquetes.

Objeto: Es un elemento declarado de un tipo de clase. Se conoce también como una


instancia de clase. La sintaxis para definir un objeto es nombreDeClase nombreObjeto;
nombreDeClase otroObjeto; Ejemplos: Transporte auto; 4.4.1 Instancias de Clase Una
clase es una abstracción lógica, mientras no se cree un objeto de esa clase no existe una
representación de esa clase en la memoria, cuando esto se declara y define un objeto de
una clase, se dice que se realizó una instancia. En Java crear un objeto implica tres
acciones: declaración, asignación de memoria e inicialización. 1) Declaración: La
declaración de un objeto es simplemente una variable que puede hacer referencia a un
objeto. La declaración de un objeto tiene la forma: NombreClase nombreObjeto; donde
NombreClase es la clase a la que el objeto va a pertenecer y nombreObjeto es el nombre
que va a tener el objeto. Ejemplo: Transporte auto; Asignación de Memoria (Instanciación):
El operador new asigna memoria dinámica, esto es asignada en tiempo de ejecución, para
un nuevo objeto y regresa una referencia al objeto. 3) Inicialización. La inicialización de un
objeto se lleva a cabo a través de un método que lleva el mismo nombre que la clase el
constructor. El constructor es invocado automáticamente cada vez que se crea un objeto de
una clase. Transporte auto=new Transporte().

Constructores La función primordial del constructor es reservar memoria e inicializar las


variables miembro de la clase. Los constructores no regresan valor, su parámetro implícito
es el objeto que se está creando. Una clase puede tener varios constructores, cada uno
con diferentes tipos y número de argumentos. Cuando una clase no tiene implementado un
constructor entonces utiliza el constructor de la clase Object. El constructor de una
subclase puede llamar al constructor de su superclase por medio de la palabra reservada
super, seguida de los argumentos entre paréntesis.

9. Describa el concepto de Modularización:


El software continuamente evoluciona hacia sistemas de mayor complejidad, y no tenemos
argumentos para pensar que esta tendencia cambiará. Por otro lado, cada vez se requiere
que estos sistemas sean más confiables y flexibles. ¿Cómo podemos abordar este
problema?

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.

Adicionalmente, la modularización en sí misma introduce nuevos retos, entre los que se


cuentan la dificultad de configuración y el denominado “infierno de dependencias”.

En este artículo exploraremos el estado actual de la modularización en cuanto a la


plataforma java se refiere y señalaremos algunos principios de diseño, patrones, prácticas y
tecnologías que puedes emplear para introducir una estrategia de modularización efectiva
en tus desarrollos.
10. Describa el concepto de Herencia.
La Herencia es uno de los 4 pilares de la programación orientada a objetos (POO) junto con
la Abstracción, Encapsulación y Polimorfismo.

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.

Ejemplo: jerarquía de figuras.


Evalué la jerarquía de clases del gráfico, esta jerarquía empieza con la superclase Figura,
la cual se extiende mediante las subclases FiguraBidimensional y FiguraTridimensional; las
Figuras son del tipo FiguraBidimensional o FiguraTridimensional. El tercer nivel de esta
jerarquía contiene algunos tipos más específicos de figuras tipo FiguraBidimensional y
FiguraTridimensional. Siguiendo las flechas desde la parte inferior del diagrama, hasta la
superclase de más arriba en esta jerarquía de clases, se pueden identificar varias
relaciones es un. Por ejemplo, un Triángulo es un objeto FiguraBidimensional y es una
Figura, mientras que una Esfera es una Figura Tridimensional y es una Figura. Esta

jerarquía podría contener muchas otras clases. Por ejemplo, las elipses y los trapezoides
son del tipo FiguraBidimensional.

Anotación Override:

La anotación Override permite garantizar que la sobrescritura de los métodos de la


superclase es correcta. Por ejemplo, cuando se intenta sobrescribir el método de una
superclase, los errores comunes son: asignar un nombre incorrecto al método de la
subclase o utilizar el número o tipos incorrectos de los parámetros en la lista de
parámetros.

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.

Es importante saber que la única manera de acceder a un objeto es a través de una


variable de referencia. La variable de referencia sólo puede ser de un tipo. Una vez
declarado el tipo de la variable de referencia, no se puede cambiar.

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.

En la declaración de una clase estamos definiendo el conjunto de métodos y campos que


son accesibles desde fuera de una clase o lo que a menudo se denomina contrato de la
clase. Este contrato determina cual va a ser la funcionalidad de la clase. Pero cuando
extendemos una clase para crear otra estamos ampliando este contrato añadiendo más
funcionalidades. Por tanto cuando creamos esa nueva clase hacemos uso de dos
mecanismos. Por un lado la herencia para reutilizar las partes comunes de la super-clase.
Y por otro el polimorfismo, es decir el cambio en la forma en la que se implementa el
contrato de la superclase. Como vemos al escribir una subclase podemos sobrescribir el
contrato añadiendo nuevas funcionalidades, pero no cambiarlo.
A la hora de implementar el polimorfismo tendremos dos mecanismos de los que echar
mano para sobrescribir una clase: reemplazar la implementación de un método o añadir
funcionalidades a un método.
12. Describa el concepto de Encapsulamiento:
Como java es un lenguaje de programación orientado a objetos, existen en un programa,
diversos atributos y métodos que servirán para el funcionamiento de éste. Para la
interacción del usuario con el objeto es necesario que se apliquen, o se encuentren
disponibles, solo aquellos métodos que le servirán al usuario para utilizar ese objeto,
manteniendo “ocultos” aquellos que servirán para el funcionamiento interno.

Es por ello que el encapsulamiento consiste en permitir la visibilidad de atributos y/o


métodos, en una clase determinada, teniendo así tres niveles de: privados (private) que se
utilizaran solo en esa clase, protegidos (protected) que se utilizaran por todos los métodos,
clases y /o atributos mientras se encuentre en el mismo package, y los públicos (public) que
pueden ser usados por cualquier clase o método.
13. Informe cómo convertir un String a entero en Java:
Para hacer la siguiente operación necesitaremos hacer uso de la clase Integer y de su
método "parseInt" de la siguiente manera:

String numCadena = "1";

int numEntero = Integer.parseInt(numCadena);

¿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")

numCadena.replaceAll(" ", "");

Una vez realizados estos sencillos pasos podremos trabajar con los números enteros.

14. Defina el concepto de método y realice un ejemplo constructor:


 Los constructores son métodos especiales invocados. Se crea un objeto y se utilizan para
inicializarlos.
 Un constructor se puede usar para proporcionar valores iniciales para los atributos del
objeto.
 Un nombre de constructor debe ser el mismo que su nombre de clase.
 Un constructor no debe tener un tipo de devolución explícito.
 Un método constructor es el que se ejecuta de primero al realizar la instancia de un
objeto, inicializa los atributos de la clase; debe ser de visibilidad pública y no posee
retorno un ejemplo de este es:

El método del vehículo es el constructor de


public class Vehiculo {
nuestra clase, de modo que cada vez que se crea
private string color; un objeto que no sea una clase, el atributo de
color se establecerá en "rojo".
Vehiculo (){
Un constructor también puede tomar
Color = “Rojo”; parámetros para inicializar atributos.
}

}
public class Vehiculo {

private string color;

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

REQUERIMIENTOS RF_1 FACTURACION DE PRODUCTO

Nº de RF Nombre Observación

Para llevar a cabo el registro del producto se debe, tomar el


Registro de
1 código de barras el cual será leído por un lector de códigos e ir
productos
añadiendo nuevos productos.

Todo Cliente debe de ser creado por un administrador del


Registro de sistema, el sistema le pedirá número de cedula, nombre,
2
Clientes apellido, dirección y teléfono los campos deben ser coherentes
con el tipo de dato.

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

Venta de debe permitir la actualización del producto y modificarlo si fuere


4
productos: el caso, teniendo en cuenta el tipo de dato

modificar el
5 el sistema debe permitir en cambio de valor del producto
valor

Consulta de Se podrá realizar consultas de por medio de: nombre del


5
Productos producto, unidad de medida, y tipo.
el administrador tendrá manejo de usuario y contraseña no
7 seguridad
permite caracteres especiales

El operario del sistema debe tener acceso, consultar, insertar,


8 operatividad
actualizar y eliminar productos.

para llevar a cabo el proceso de registro, este se genera a través


captura de del desplazamiento por medio de botones y controles de
9
datos selección, cada campo debe llevar la información de acuerdo a
caracteres correctos

PRE-CONDICION se debe realizar el inicio de sesión del sistema

EL registro de información general para ser procesada y


POST-CONDICION
almacenada

REQUERIMIENTOS NO FUNCIONALES- FNR

Nº de
Nombre Observación
RNF

1 PROCESAMIENTO debe permitir el registro de productos en segundos

el acceso al sistemas debe ser cambiado solo por el


2 SEGURIDAD
administrador del sistema de acceso a datos

Se refiere al esfuerzo que tendrá el usuario para aprender,


3 USABILIDAD
usar, ingresar datos e interpretar los resultados.
Demostrar en su ejecución el menor tiempo de respuesta a
4 EFICIENCIA
peticiones del usuario.

Destreza del software para brindar un servicio correcto y


5 DISPONIBILIDAD
estable.

Velar por la estabilidad evitando alteraciones inadecuadas del


6 INTEGRIDAD
sistema.

Pasó a paso operativo que describe cómo ha de ser usado el


7 OPERACIONAL
software dentro del contexto de la organización.

Debe cumplir con todas las especificaciones requeridas por las


REGULTORIO,
leyes que le acogen, así también debe aplicar cada ley
8 ÉTICO Y
regulatoria, sin dejar de un lado el ser un sistema libre de
LEGISLATIVO
procesos no legales.

REQUERIMIENTOS Aplicable a Windows 8. Y sus versiones siguientes. se necesita


EXTERNOS capacidad de memoria de mínimo 4Gb.

capacidad de conexión de tres equipos, el código de


REQUERIMIENTOS
programación es java, msql.el programa es único no se enlaza
ORGANIZACIONALES
con otra área del negocio a nivel interno y externo

El sistema debe proporcionar mensajes de error que sean


REQUERIMIENTO DE
informativos y orientados a usuario final. El sistema debe
USABILIDAD
poseer interfaces gráficas bien formadas.
CONCLUSIONES

 Se concluye que el análisis de requisitos aplicado de manera secuencial permite


detectar posibles fallos o errores de no fácil percepción.

 Es determinante que el lenguaje de programación JAVA es robusto y con capacidad de


brindar la mejor solución al problema planteado para el proyecto
REFERENCIAS BIBLIOGRÁFICAS

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.

You might also like