Está en la página 1de 29

ACTIVIDAD 1 FASE 1

ANALISIS DE REQUISITOS

LUZ ADRIANA MARTINEZ E.


CÓDIGO: 25173355
ISAIAS ZULETA ALZATE
CÓDIGO: 1088253910
JOHAN DEIVE RINCON DIAZ
CODIGO: 1094928209
EDUARD ARISTIZABAL

Presentado a:
FRANKLIN LIZCANO CELIS
Tutor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


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

INTRODUCCIÓN ......................................................................................................................................................3
OBJETIVOS ...............................................................................................................................................................4
PROYECTO A TRABJAR ........................................................................................................................................5
REQUISITOS FUNCIONALES: ...............................................................................................................................7
REQUISITOS NO FUNCIONALES .........................................................................................................................8
RESPUESTAS A LAS 16 PREGUNTAS..................................................................................................................9
CONCLUSIONES ....................................................................................................................................................28
REFERENCIAS BIBLIOGRÁFICAS .....................................................................................................................29
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:
Diseñar la primera etapa del proyecto planteado realizando el análisis de los requisitos que se aplicaran
para este. Proyectos que involucra el desarrollo de unos programas.

OBJETIVOS ESPECIFICOS:
 Modelar y elaborar el prototipo de una herramienta computacional como elemento de ayuda
dentro del proceso de análisis de requerimientos para proyectos.

 Identificar un proceso que facilite la recolección de datos que se manejen dentro del proceso de
análisis de requerimientos.

 Utilizar este proceso de recolección como base de la información que se maneja dentro de la
herramienta computacional.

 Identificar y definir un proceso de análisis de requerimientos dentro de los proyectos de


software. o Utilizar este proceso como base para la elaboración de un modelo.

 Profundizar mis conocimientos en el área de la ingeniería de requerimientos y particularmente en


el área de análisis de requerimientos.
PROYECTO A TRABJAR

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 producto Tipo de producto Unidad de medida Costo
Aceite No Perecedero Litros $ 2500
Arroz No Perecedero Kilogramos $1300
Pastas No Perecedero Kilogramos $900
Tomate Perecedero Kilogramos $1500
Cebolla Perecedero Kilogramos $1200

Figura 3 Otros roles de usuarios


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

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.
REQUISITOS FUNCIONALES:

REQUERIMIENTOS FUNCIONALES
Nº de
Nombre Observación
Requerimiento
Para llevar a cabo el registro del
producto se debe, tomar el
Registro de código de barras el cual será
1
productos leído por un lector de códigos e
ir añadiendo nuevos productos.
todo Cliente debe de ser creado
por un administrador del
sistema, el sistema le pedirá
Registro de
2 numero de cedula, nombre ,
Clientes
apellido , dirección y teléfono
los campos deben ser
coherentes con el tipo de dato

Actualización debe permitir la actualización


3 Información de del producto y modificarlo si
Productos fuere el caso, teniendo en
cuenta el tipo de dato
debe permitir la actualización
Venta de del producto y modificarlo si
4
productos: fuere el caso, teniendo en
cuenta el tipo de dato
el sistema debe permitir en
5 modificar el valor
cambio de valor del producto
Se podrá realizar consultas de
Consulta de por medio de: nombre del
5
Productos producto, unidad de medida, y
tipo.
el administrador tendrá manejo
7 seguridad
de usuario y contraseña
REQUISITOS NO FUNCIONALES

REQUERIMIENTOS NO FUNCIONALES
Nº de
Requerimiento Nombre Observación
debe permitir el registro
1 PROCESAMIENTO de productos en
segundos
el acceso al sistemas
debe ser cambiado solo
2 SEGURIDAD por el administrador del
sistema de acceso a
datos
Se refiere al esfuerzo
que tendrá el usuario
para aprender, usar,
3 USABILIDAD
ingresar datos e
interpretar los
resultados.
Demostrar en su
ejecución el menor
4 EFICIENCIA
tiempo de respuesta a
peticiones del usuario.
Destreza del software
5 DISPONIBILIDAD para brindar un servicio
correcto y estable.
Velar por la estabilidad
6 INTEGRIDAD evitando alteraciones
inadecuadas del sistema.
Pasó a paso operativo
que describe cómo ha de
7 OPERACIONAL ser usado el software
dentro del contexto de la
organización.
Debe cumplir con todas
las especificaciones
requeridas por las leyes
REGULTORIO, que le acogen, así
8 ÉTICO Y también debe aplicar
LEGISLATIVO cada ley regulatoria, sin
dejar de un lado el ser un
sistema libre de procesos
no legales.
RESPUESTAS A LAS 16 PREGUNTAS

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.
OPERADOR DESCRIPCIÓN

== 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 mayor 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
las 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 seria 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 las 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 java 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 todas 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.
o Un nombre de constructor debe ser el mismo que su nombre de clase.
o 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:
public class Vehiculo{ El método del vehículo es el constructor de
private string color; nuestra clase, de modo que cada vez que se crea
un objeto que no sea una clase, el atributo de
Vehiculo(){ color se establecerá en "rojo".
Color = “Rojo”; Un constructor también puede tomar 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ísticas.
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);
}
}
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. (Isaias Zuleta)
 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 B. (Isaias Zuleta)
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.