Elementos de un programa.
Algoritmos e instrucciones. Los algoritmos pueden considerarse
elementos esenciales de un programa. Un algoritmo es la solución de un
problema muy preciso y pequeño, en el cual se define la secuencia de
instrucciones que se debe seguir para resolverlo. Un programa es entonces un
conjunto de algoritmos, cada uno responsable de una parte de la solución del
problema global.
Un algoritmo, en general, es la secuencia ordenada de pasos para realizar una
actividad. Los algoritmos tienen diferentes representaciones: gráficamente a
través de diagramas de flujo, y de forma escrita con seudo_códigos y
programas.
Todas las actividades del ser humano, de las máquinas, del cosmos, de los
animales, etc, pueden ser representadas a través de un algoritmo.
Algoritmo para que una persona viaje desde el barrio Restrepo (Estación
Fucha), hasta la Universidad Piloto de Colombia (Estación Calle 45).
* Ingrese a la estación Fucha del Transmilenio.
* Identifique en el mapa de la estación donde está y el punto a donde
necesita ir (Fucha y Calle 45).
* Verifique qué línea se detiene en la estación destino (Calle 45).
* Ubique el lugar para abordar la línea y espere su paso.
* Suba al Transmilenio y bájese en la estación destino
* Diríjase a la Universidad Piloto de Colombia
Cuando es el computador el encargado de seguir el algoritmo se habla de
ejecutar. Las instrucciones para que puedan ser entendidas por el computador
deben ser escritas en un lenguaje que no den espacio a ninguna ambigüedad.
Este tipo de lenguajes se conocen como Lenguajes de Programación y son
muy restringidos y limitados, pero a su vez también son poderosos al observar
todo lo que se puede hacer con ellos. El conjunto de reglas que tiene un
lenguaje para decir las cosas se denomina Sintaxis del lenguaje.
Existen muchos lenguajes de programación en el mundo, cada uno con sus
propias características y ventajas. Java es un lenguaje de propósito general,
muy utilizado en la actualidad, tanto a nivel científico como empresarial.
Expresiones.
Una expresión es la manera en que expresa un lenguaje de programación
algo sobre el estado de un objeto. Es el medio para decir en un programa
algo sobre el mundo del problema.
Las expresiones aparecen dentro del cuerpo de los métodos y están
formadas por operandos y operadores. Los operandos pueden ser
atributos, parámetros, literales, constantes o llamadas de métodos,
mientras que los operadores son los que indican la manera de calcular el
valor de la expresión.
Operadores aritméticos.
+
- tipo + 5 * DIAS
* valor == 56.32
/ sueldo >= minimo
%Conforman expresiones aritméticas.
Operadores lógicos.
&&
|| tipo != PAPELERIA && valor == 56.32
! sueldo >= minimo || saldo < 560000
^
Operadores relacionales.
==
!= tipo != PAPELERIA
< valor == 56.32
> sueldo >= minimo
<=
>=Conforman expresiones lógicas.
Operadores a nivel de bits.
& and
| or
^ xor
<< corrimiento izquierda con 0s por derecha
>> corrimiento derecha con signo por izquierda
>>> corrimiento derecha con 0s por izquierda
Operadores de asignación.
++ -=
-- <<=
= >>=
*= >>>=
/= &=
%= |=
+= ^=
Operadores Unitarios. (Porque afectan directamente la entidad)
!
-
~
-- tipo != PAPELERIA && valor == 56.32
++ sueldo >= minimo || saldo < 560000
Operadores (métodos) sobre cadenas de caracteres.
+ suma la cadenas
equals compara las cadenas
charAr extracción de un caracter
cad1 + cad2
cad1.equals(cad2)
cad1.charAt(1)
Manejo de Variables.
Una variable es un espacio de memoria, para guardar información de tipo
específico, identificado por un nombre. El objetivo de las variables es
permitir manejar cálculos parciales en el interior de un método.
Las variables se crean en el momento en que se declaran y se destruyen
automáticamente al llegar al final del método que las contiene. Por esta
razón es imposible utilizar el valor de una variable por fuera del método
donde fue declarada.
Se suelen usar variables por tres razones principales:
1. Por que es necesario calcular valores intermedios.
2. Por eficiencia, para no pedir dos veces el mismo servicio al mismo
objeto.
3. Por claridad en el código.
Para declarar una variable se utiliza el siguiente formato:
tipo nombre;
También puede ser:
tipo nombre = valor_inicial;
El tipo corresponde a cualquier tipo de dato conocido: int, double, String,
char, etc., el nombre es asignado por el usuario a gusto y el valor inicial
puede ser un literal, una constante o variable, una expresión, un método
que retorne valor. Ejemplo:
int valor1;
int valor2 = 9;
int valor3 = valor2;
double cantidad = darCantidad();
double total = ( darCantidad() * Num_prod )+ 5500.5;
Cuando la variable ya fue declarada y se necesita asignarle un valor
diferente al que tiene almacenado, se utiliza una sentencia de asignación,
con las mismas condiciones de su declaración:
valor1 = 199;
valor3 = ( valor2 * valor1 ) / 2;
cantidad = darCantidadDescuento();
total = ( darCantidad() * Num_prod ) - valor3;
La asignación de valores a las variables pueden utilizar todos los
operadores de asignación : +=, -=, *=, /=, etc,.
taza += cantidad 10;
Nuevo *= 1.10;
Estructuras selectivas.
Selectiva simple o sencilla.
if ( condición )
{
instrucciones;
}
Selectiva doble o compuesta.
if ( condición )
{
instrucciones;
}
else
{
instrucciones;
}
Selectiva en cascada.
if ( condición 1 )
{
instrucciones 1;
}
else if ( condición 2 )
{
instrucciones 2;
}
:
else if ( condición n )
{
instrucciones n;
}
else
{
instrucciones else;
}
Selectiva múltiple.
switch ( valor )
{
case valor1 :
instrucciones 1;
break;
case valor2 :
instrucciones 2;
break;
:
case valorn :
instrucciones n;
break;
default :
instrucciones;
}
Clases y Objetos.
Las Clases son elementos que definen la estructura de un programa,
representan entidades del mundo del problema. Se puede decir que los
algoritmos están dentro de las clases, y que son éstas las que establecen la
forma como los algoritmos colaboran para resolver el problema.
algoritmos
clase 1
algoritmos
clase 2
algoritmos
clase 3Nombre 1 Nombre 2
Programa
Es claro que en un programa hay una clase por cada entidad del mundo
problema, pero ¿que pasa si hay varias “instancias”? de algunas de estas
entidades. (Varios ejemplares).
Un Objeto es una instancia de una clase. La clase define los atributos o
características que debe tener. Cada objeto tiene sus propios valores para cada
uno de los atributos. El conjunto de valores de los atributos se denomina el
estado del objeto. Esta es la base de la POO (Programación orientada a objetos)
Para aclarar los conceptos se puede decir que una clase define un tipo de
elemento del mundo, mientras que un objeto representa un elemento individual.
Ejemplo:
día = 6
mes = 3
año = 1975
:Fecha
fechaIngreso
nombre = “Juan”
apellido = “Pérez”
sexo = Masculino
salario = 2.500.000
:Empleado
día = 8
mes = 1
año = 1993
:Fecha
fechaNacimiento
Clase
FechaEmpleadofechaNacimiento
nombre
apellido
sexo
salario
día
mes
añofechaIngreso
Objeto
El lenguaje Java.
Lenguaje orientado a objetos, creado por Sun Microsystems en 1955, muy
utilizado en la actualidad gracias a su independencia de la plataforma en que se
ejecuta. Java es un lenguaje de propósito general, con el que se pueden
desarrollar desde programas pequeños para resolver problemas simples, hasta
grandes aplicaciones industriales o de apoyo a la investigación.
Un programa java está formado por un conjunto de clases. Cada clase se debe
guardar en un archivo distinto, cuyo nombre debe ser igual al nombre de la clase
y cuya extensión debe ser java. Por ejemplo la clase Empleado debe ser
guardada en el archivo empleado.java.
Empleado public class Empleado
{
// Aquí va la declaración de la clase Empleado
}
En el lenguaje de programación java todo lo que va entre dos corchetes { } se
llama un bloque de instrucciones. Entre los corchetes de la clase va la
declaración de la clase. Allí deben hacerse explícitos atributos y algoritmos de la
clase. También es posible agregar comentarios, que serán ignorados por el
computador al ejecutar el programa pero importantes para el programador para
reconocer su trabajo. Para los comentarios se utilizan dos caracteres slash se //
empezando la línea, o encerrando la frase entre /** y */.
Como un programa puede estar compuesto por miles de clases, java tiene el
concepto de paquete, a través del cual es posible estructurar las clases por
grupos jerárquicos. Toda clase de java empaquetada debe comenzar por la
definición del paquete en el cual está situada.
package universidad.programacion.sistemas;
/** Esta clase representa un empleado */
public class Empleado
{
// Aquí va la declaración de la clase Empleado
}
El nombre del paquete es una
secuencia de identificadores
separados por un punto.
En todo lenguaje de programación, existen las llamadas palabras reservadas
(package, public, class), que son palabras propias del lenguaje y que no pueden
ser utilizadas para nombrar clases o atributos en un programa. Un elemento se
declara como public cuando se quiere que pueda ser visto por otras clases.
Tipos de Datos.
Cada lenguaje de programación cuenta con un conjunto de tipos de datos a
través de los cuales se puede representar los atributos de una clase. Algunos de
java son:
Las cadenas de caracteres se pueden almacenar en matrices, o bien en objetos
String.
Tipos enteros
byte, short, int, long y char.
Tipos reales
float, double.
Tipo lógicos
boolean.
En java, en el momento de declarar un atributo, es necesario declarar el tipo de
datos al cual corresponde, utilizando la sintaxis del siguiente ejemplo:
package universidad.programacion.sistemas;
/** Esta clase representa un empleado */
public class Empleado
{
// Atributos ...
private String nombre;
private String apellido;
private float salario;
private int sexo;
}
Para evitar que un atributo sea manipulado por fuera de la clase, se declara
como privado (private).
Empleado
String nombre;
String apellido;
int salario;
int sexo;
En java, las asociaciones se declaran de manera similar a los atributos.
Utilizando el nombre de la asociación como nombre del atributo y el nombre de la
clase como su tipo, como en el siguiente ejemplo:
package universidad.programacion.sistemas;
/** Esta clase representa un empleado */
public class Empleado
{
// Atributos ...
private String nombre;
private String apellido;
private float salario;
private int sexo;
private Fecha fechaNacimiento;
private Fecha fechaIngreso;
}
FechaEmpleadofechaNacimiento
String nombre;
String apellido;
int salario;
int sexo;
int día;
int mes;
int año;fechaIngreso
Constantes. Las constantes se utilizan para: definir el dominio de un
atributo, cuando se quiere asociar un número a cada valor posible de una
característica; Para representar valores inmutables, si se quiere
representar valores que no van a cambiar durante la ejecución de un
programa.
En java se definen las constantes así:
public class Producto
{
private final static int PAPELERIA = 1;
private final static int SUPERMERCADO = 1;
private final static int DROGUERIA = 1;
private final static double IVA_PAPEL = 0.16;
// ...
}
Declarar una constante supone anteponer el calificador final. Y static si
pertenece a la clase como en el ejemplo y no a un método, donde no se
podrá usar este calificador.
Métodos.
Los algoritmos de la clase en java, se les puede llamar métodos. Cada algoritmo
pretender resolver un problema puntual, dentro del contexto del problema global
del problema que se quiere resolver. También se puede ver un método como un
servicio de la que la clase debe prestar a las demás clases del modelo (o a ella
misma), para que ellas puedan resolver sus respectivos problemas. Un método
está compuesto por cuatro elementos:
Un nombre. Identifica el método.
Una lista de parámetros. Es el conjunto de valores (cada uno con su tipo)
necesarios para poder resolver el problema puntual. Pueden no existir.
Un tipo de respuesta. Indica el tipo de datos al que pertenece el resultado que
va a retornar el método. Si no hay respuesta se utiliza el tipo void.
El cuerpo del método. Es la lista de instrucciones que representa el algoritmo
que resuelve el problema puntual.
public void modificarSalario (float nuevoSalario)
{
// Aquí va el cuerpo del método
}
El encabezado del método (Un método sin cuerpo) se denomina signatura.
public int calcularPrestaciones ()
Para mostrar las signaturas de los métodos de una clase en sintaxis UML
tenemos:
FechaEmpleado
fechaNacimientoString nombre
String apellido
int sexo
int salario
int día
int mes
int año
fechaIngresovoid cambiarSalario(int nuevoSalario)
int darSalario()
int calcularPrestaciones()
int darDía()
int darMes()
int darAño()
En el cuerpo de un método van las instrucciones que resuelven un problema
puntual o prestan un servicio a otras clases. El computador obedece las
instrucciones, secuencialmente hasta el final del cuerpo del método. Una de esas
instrucciones pude ser la Instrucción de retorno (return), con la que le decimos
al método cual es el resultado que debe dar como solución del problema.
public class Empleado
{
// Atributos
private String nombre;
private String apellido;
private float salario;
private int sexo;
private Fecha fechaNacimiento;
private Fecha fechaIngreso;
// Métodos
public int darSalario()
{
return salario;
}
}
En el cuerpo del método únicamente
se puede hacer referencia a los
atributos del objeto para el cual se
está resolviendo el problema y a los
parámetros, que representan la
información externa al objeto que se
necesita para resolver el problema
puntual.
Cuando alguien llama un método sobre un objeto, éste “busca” dicho método en
la clase a la que pertenece y ejecuta las instrucciones que allí aparecen
utilizando sus propios atributos.
Los métodos que no están hechos para calcular un valor, sino para modificar el
estado del objeto, utilizan en la Instrucción de asignación cualquiera de los
operadores de asignación ( =, +=, -=, *=, /=, etc.. ) para definir el nuevo valor del
atributo.
public class Empleado
{
. . .
public void modificarSalario(int nuevoSalario)
{
salario = nuevoSalario;
}
public int calcularSalarioAnual()
{
return salario * 12;
}
}
En algunos casos, como parte de la solución del problema, es necesario llamar
un método de un objeto con el cual existe una asociación. Por ejemplo: Se quiere
saber el año en que un empleado ingresó a la empresa.
public class Fecha
{
. . .
public int darAño()
{
return año;
}
}
public class Empleado
{
. . .
public void problema()
{
int valor = fechaIngreso.darAño();
}
}
El método darAño() de la clase Fecha
retorna el valor que aparece en el
atributo “año” del objeto sobre el cual
se hace la invocación.
Se invoca el método darAño() sobre
el objeto de la clase Fecha que
representa la fecha de ingreso. Para
pedir un servicio a través de un
método se debe dar el nombre de la
asociación, el nombre del método
que se quiere usar, separados por
punto (.) y un valor para cada uno de
los parámetros que hay en su
signatura (ninguno en este caso).
De la misma manera que un objeto puede invocar un método de otro objeto con
el cual tiene una asociación, también puede dentro de uno de sus métodos,
invocar otro método de su misma clase. Ejemplo:
public class Empleado
{
. . .
public int calcularSalarioAnual()
{
return salario*12;
}
public double calcularImpuesto()
{
int total = calcularSalarioAnual();
return total * 19.5 / 100;
}
}
Para invocar un método sobre el
mismo objeto, basta con utilizar su
nombre sin necesidad de explicar
sobre cual objeto queremos hacer la
llamada y la lista de valores para los
parámetros. Por defecto se hace
sobre él mismo.
Total es una variable que almacena el
valor del salario anual dentro del
cuerpo del método.
Un método puede estar acompañado de un conjunto de parámetros, de los
cuales es importante tener en cuenta algunas consideraciones.
Un método necesita parámetros cuando la información que tiene el objeto en sus
atributos no es suficiente para resolver el problema
En la signatura del método se define el tipo de dato del parámetro y se le asocia
un nombre.
El parámetro es utilizado con su nombre de la misma manera como se utilizan
los atributos.
En ningún caso se puede utilizar el parámetro por fuera del cuerpo del método
que lo definió.
Al llamar al método, se deben pasar tantos valores como parámetros esté
esperando el método. (Constantes, atributos, expresiones, etc..)
Los valores que se pasan tienen correspondencia directa de orden y tipo de dato
con los parámetros del método.
public class C2
{
private int atr1;
private C1 obj;
public void m2(int x)
{
obj.m1( x, 34+atr1, ”prueba” );
}
}
public class C1
{
public void m1(int a, int b, String c)
{
...
}
}
Los métodos y sus responsabilidades.
Los métodos de una clase se clasifican en tres tipos, según la operación
que realicen:
Métodos constructores. Tienen la responsabilidad de inicializar los valores
de los atributos de un objeto durante su proceso de creación.
Métodos modificadores. Tienen la responsabilidad de cambiar el estado de
los objetos de la clase. Son responsables de “hacer”.
Métodos analizadores. Tienen la responsabilidad de calcular información a
partir del estado de los objetos de la clase. Son los responsables de
“saber”.
Constructores.
Para inicializar los valores de un objeto, las clases permiten la definición
de métodos constructores, los cuales son invocados automáticamente en
el momento de ejecutar la instrucción de creación.
public Producto()
{
tipo=0;
nombre=“”;
valor Unitario=0.0;
cantidadBodega=0;
cantidadMinima=0;
totalProductosVendidos=0;
}
Un método constructor tiene dos reglas
fundamentales:
1. Se debe llamar igual que la clase y
2. No puede tener ningún tipo de
retorno, puesto que su único
objetivo es dar un valor inicial a los
atributos.
Puesto que en muchos casos los valores por defecto no tienen sentido, es
posible agregar parámetros al constructor, lo que obliga a todo el que
quiera crear una instancia de esa clase a definir los valores iniciales.
public Producto(String tip, String nom, double val, int cant, int min)
{
tipo=tip;
nombre=nom;
valor Unitario=val;
cantidadBodega=cant;
cantidadMinima=min;
totalProductosVendidos=0;
}
La instrucción que permite crear una instancia de la clase sería:
Producto p=new Producto(“PAPELERÍA”, ”Lápiz”, 500.0, 30, 9)
Los objetos para estos dos casos se crearían de la siguiente forma:
nombre = “ “
tipo = “ “
valorUnitario = 0.0
cantidadBodega = 0
cantidadMinima = 0
totalProductosVendidos = 0
:Producto
Con constructor sin parámetros:
Producto p = new Producto()
nombre = “Lápiz”
tipo = “PAPELERIA”
valorUnitario = 500.0
cantidadBodega = 30
cantidadMinima = 9
totalProductosVendidos = 0
:Producto
Con constructor con parámetros:
Producto p = new Producto( ... )
Diseño de la Solución.
En la construcción de un programa, la actividad de diseño sigue los siguientes
pasos:
Se realiza un bosquejo inicial de la solución, que es el modelo conceptual del
mundo del problema.
Se verifican los requerimientos no funcionales y el costo de la implementación.
Se realizan diagramas detallados escritos en UML.
En cada refinamiento se introduce o se ajustan algunos de los elementos del
programa par irse aproximando a la solución adecuada.
Diseño de la solución
Requerimientos funcionales
Mundo del problema
Requerimientos no funcionales
Interfaz usuario
Arquitectura de la solución
Diseño de las clases
Análisis del problema Diseño del programa
La Interfaz de usuario es la parte de la solución que permite que los usuarios
interactúen con el programa. A través de la interfaz, el usuario puede utilizar las
operaciones del programa que implementan los requerimientos funcionales.
Cuando se quiere resolver un problema, es bueno contar con
mecanismos que ayuden a dividirlo en problemas más pequeños. Estos
problemas son menos complejos que el original, por lo tanto más fáciles
de resolver. En programación es importante tener un diseño de alto nivel
en el que aparezcan a grandes rasgos los elementos que conforman la
solución, para poder pegar con facilidad los problemas pequeños al
definir la solución general. Este diseño se denomina la arquitectura de
la solución (para nuestro caso la identificación de los paquetes y las
clases que los componen).
El diseño de las clases es mostrar en detalle cada
una de las clases que van a hacer parte del
programa. Para esto se utiliza el diagrama de clases
de UML, con toda la información que interviene:
nombre, atributos y signaturas de los métodos.
Construcción de la Solución.
En la etapa de construcción se deben escribir todos los elementos todos los
elementos que forman parte del programa que fue diseñado en la etapa de
Diseño de la solución, y que resuelven el problema planteado por el cliente. Este
programa es instalado en el computador del usuario y luego ejecutado.
Construcción de la solución
Interfaz de usuario
Arquitectura de la solución
Diseño de las clases
Archivos fuente Java
Archivos compilados
Archivos de documentación
Organización y convenciones
Archivos empaquetados
Archivos ejecutables
Cliente
Usuario
Construcción de un Programa.
Para la construcción de un programa se define una organización (Se debe
conocer siempre donde buscar un elemento de la solución) y un conjunto de
convenciones (Los archivos deben llamarse siempre de la misma forma para su
fácil identificación). Nuestro elementos están siempre en archivos, y la estructura
de organización se basa en el sistema de directorios.
Proyectos y Directorios. Un proyecto de desarrollo va siempre en un directorio,
cuyo nombre indica su contenido. (Por ejemplo n1_empleado).
Dentro del directorio principal se encuentran siete directorios, con el siguiente
contenido:
Directorio bin. (Por binario). Contiene todos los archivos ejecutables del
proyecto (archivos.bat), que permiten entre otras cosas, ejecutar el programa,
ejecutar las pruebas y generar la documentación del código.
build.bat. Permite compilar el programa (todos los .java) y generar el archivo
empaquetado (.jar). Que será instalado en el computador del usuario.
buildTest.bat. Permite compilar las pruebas del programa y generar el respectivo
archivo empaquetado (.jar).
clean.bat. Borra todos los archivos del proyecto que pueden ser calculados a
partir de otros. .class, .jar, y .html
cleanTest.bat. Borra todos los archivos de las pruebas que pueden ser
calculados a partir de otros.
doc.bat. Genera la documentación del programa (archivos .html), utilizando la
herramienta javadoc.
run.bat. Ejecuta el programa. Es el único archivo .bat que va al computador del
usuario.
runTest.bat. Ejecuta las pruebas del programa.
Directorio source (src). Contiene los archivos fuente, en los que está la
implementación en java de cada una de las clases. Cada clase está en un
archivo distinto dentro de un directorio que refleja la jerarquía de paquetes.
Directorio classes. Contiene los archivos .class, que almacenan el código
binario (bytecode) producto de compilar las clases java. Este directorio tiene la
misma jerarquía de directorios que se usa para los archivos fuente.
Directorio test. Contiene los archivos que hacen las pruebas automáticas del
programa. En su interior hay varios directorios, con archivos .class, .jar y .java.
Directorio docs. En este directorio hay dos subdirectorios:
specs. Contiene todos los documentos de diseño. Por ejemplo: El archivo de
descripción, El archivo de requerimientos, El archivo del dieño, Los archivos
gráficos con los diagramas de clases, etc.
api. Contiene los archivos de documentación de las clases del programa. Estos
son generados automáticamente por la aplicación javadoc. Con el archivo básico
index.html se puede navegar por toda la socumentación.
Directorio lib. Contiene el archivo empaquetado para instalar en el computador
del usuario. Este archivo tiene la misma estructura interna de un archivo .zip.
Directorio data. Contiene archivos con información que usa el programa, ya sea
para almacenar datos (por ejemplo una base de datos) o para leerlos (por
ejemplo una imagen).
Eclipse: Un ambiente de desarrollo.
Un ambiente o entorno de desarrollo
es una aplicación que facilita la
construcción de los programas.
Principalmente, debe ayudar a escribir
código, a compilarlo y a ejecutarlo.
Eclipse es un ambiente de múltiples
usos, uno de los cuales es ayudar al
desarrollo de programas escritos en
java. Es una herramienta de uso
gratuito, muy flexible y adaptable a las
necesidades y gustos de los
programadores.
Dentro de cada uno de los proyectos de desarrollo de java del curso aparecen
los siguientes tipos de archivos:
.bat Archivo de texto, concomandos para el S.O.
Desde la consola decomandos, o con dobleclic en el nombre delarchivo.
Con cualquierEditor de Texto.
Tipo Que contiene? Cómo se usa? Cómo se crea?
.classArchivo que contieneel código compilado deuna clase java.
Lo usa el computadorpara poder ejecutar unprograma.
Con el programacompilador dellenguaje y elarchivo .java
.docArchivo que tiene partede la especificación delproblema (enunciado yrequerimientos ).
Se requiere MicrosoftWord para ejecutarlo, ocon doble clic en elarchivo.
Se modifica ycrea desde Word
.htmlArchivo que contienela documentación deuna clase, generadaautomáticamente por lautilidad javadoc.
Se requiere tenerinstalado un navegadorde internet. Basta undoble clic para abrirlo.
La crea javadoc,que extrae yorganiza de unaclase en java, ladocumentación
.jarArchivo donde estánempaquetados todoslos archivo .class de unprograma.
Lo usa el computadorpara poder ejecutar unprograma.
Se construyecon la utilidadjar, que trae elcompilador java.
Tipo Que contiene? Cómo se usa? Cómo se crea?
.javaArchivo que contienela implementación deuna clase en java.
Se le pasa al compiladorpara que cree un .class,que ejecutará elcomputador.
Cualquier Editorde texto o Amb.desarrollo comoEclipse, Jcreator
.mdlArchivo con todos losdiagramas de clase yde arquitectura delprograma.
Se requiere RationalRose para ejecutarlo, ocon doble clic en elarchivo.
Se modifica yse crea desdeRational Rose.
.jpgArchivo que tiene unaimagen. Se usa paramostrar los diagramasdel programa.
Con cualquier programade manejo de imágenes,incluso navegadores deInternet.
Se crea concualquier Editorde imágenes.
.zip Archivo donde estánempaquetados un buengrupo de archivos.
Aplicaciones para podercomprimir como ZipCentral, Winrar oWinzip.
Herramientas decompresión.