Aplicación demo para las tareas básicas de un Administrador de Sistemas en su entorno de trabajo.

Echedey López Romero a442a6a357 Re-actualizada documentación por si acaso 4 anni fa
build a872cc88c7 Correcciones menores, actualizada documentacion 4 anni fa
dist a442a6a357 Re-actualizada documentación por si acaso 4 anni fa
nbproject e445ae4933 Definido Equipo, actualizado README y otros asuntos menores. 4 anni fa
src a872cc88c7 Correcciones menores, actualizada documentacion 4 anni fa
.gitignore e445ae4933 Definido Equipo, actualizado README y otros asuntos menores. 4 anni fa
Datos.txt 8ef8b4e037 Se había borrado el fichero de datos 4 anni fa
LICENSE 0e6cfb8de5 Initial commit 4 anni fa
README.md 8ecceacbb5 Creada interfaz inicial, inicializada interfaz en main, correcciones menores y documentación y README actualizados. 4 anni fa
build.xml 595272fbaf Inicializar proyecto 4 anni fa
manifest.mf 595272fbaf Inicializar proyecto 4 anni fa

README.md

AdministracionSistemasApp

Aplicación demo para las tareas básicas de un Administrador de Sistemas en su entorno de trabajo.

Descripción

Datos

Los datos usados para la app serían cargados desde un fichero contenedor que tendría la siguiente estructura:

Clase;numero;marca;modelo;procesador;memoria;almacenamiento
Software;compañia;nombre;version;tienelicencia;tipo

Habrán un bloque con líneas que empiezan con el nombre de una subclase de Equipo y otras seguidas debajo con el software que posee.

Estructura

Las clases principales y derivados serían:

  • EntornoTrabajo
  • Equipo
    • Ordenador
    • Servidor
  • ComparadorMemoria
  • ComparadorAlmacenamiento
  • Software
  • TipoSoftware

EntornoTrabajo representa el lugar que debe administrar el administrador de sistemas.

  • Variable para una colección de objetos de la clase Equipo en forma de Map.
  • Variable BufferedReader y PrintWriter para la lectura y la escritura.
  • Variables para un nombre, un lugar, y una variable que indica el número del equipo a medida que se van introduciendo en el entorno de trabajo.
  • El constructor inicializa Map como HashMap y los números a 0, y define la lectura, el nombre y el lugar especificados como parámetros.
  • Método leerEntorno que lee línea por línea el fichero indicado en la variable de lectura y llama a los métodos correspondientes de la clase. Usa el método reset.
  • Método guardarEntorno que llama los objetos de cada colección y escribe los valores de sus atributos en el mismo fichero de lectura usando PrintWriter.
  • Método habilitarEquipo al que se le pasa un objeto de la clase Equipo y la lista de Software añadiéndolo a la lista del entorno de trabajo.
  • Método tirarEquipo al que se le indica el número de equipo y lo elimina del entorno de trabajo..
  • Método mantenerEquipo al que se le pasa el número de equipo y los valores de procesador, memoria y almacenamiento a modificar.
  • Método instalarSoftware al que le pasa compañía, nombre, version, licencia y de forma opcional el número de la colección de equipos en uso. Intenta instalar dicho software en todos los equipos o en uno si se especifica el número indicando si ha fallado o no. Usa el método instalar de la clase Equipo.
  • Método desinstalarSoftware al que le pasa compañía y nombre, y de forma opcional el número de la colección de equipos en uso. Intenta desinstalar dicho software en todos los equipos o en uno si se especifica el número indicando si ha fallado o no. Usa el método desinstalar de la clase Equipo.
  • Método mantenerSoftware para el objeto de la clase Equipo indicado intenta actualizar y renovar licencia, y si falla devuelve la compañía y el nombre del software en el que ha fallado. Usa los métodos actualizarVersion y renovarLicencia de la clase Software.
  • Método buscarNumero que devuelve un objeto de la clase Equipo que tenga el número correspondiente en la lista.
  • Método buscarProcesador que devuelve una lista de objetos de la clase Equipo que tengan el procesador indicado.
  • Método buscarMemoria que devuelve una lista de objetos de la clase Equipo que tengan más o igual cantidad de memoria RAM a la indicada.
  • Método buscarAlmacenamiento que devuelve una lista de objetos de la clase Equipo que tenga más o igual capacidad de almacenamiento a la indicada.
  • Método buscarSoftware que devuelve una lista de objetos de la clase Equipo que tenga un objeto de la clase Software correspondiente en sus listas.
  • Método privado reset que pone los valores de la lista de equipos y el número a los originales.
  • Método toString con los atributos del objeto y los objetos de las colecciones.
  • Método ordenarEquipos que devuelven lista de equipos ordenada según la cantidad la marca y el modelo, la cantidad de memoria RAM o la capacidad de almacenamiento.
  • Método imprimirEquipos que imprime los equipos en base a uno o lista indicados.

Equipo es una clase abstracta que representa un equipo del lugar de trabajo.

  • Variable para una colección de software de tipo List.
  • Variables para una marca, un modelo, tipo de procesador, memoria RAM en MB y capacidad de almacenamiento en GB.
  • El constructor inicializa List como ArrayList y define por parámetros el resto de atributos.
  • Métodos getter para todos sus atributos.
  • Métodos setter para el procesador, el almacenamiento y la memoria.
  • Método abstracto instalar al que se le pasa un objeto de la clase Software y lo introduce en la colección. Usa el método cuantoSoftware.
  • Método abstracto desinstalar al que se le pasa la posicion de la lista de software y lo elimina. Usa el método cuantoSoftware.
  • Método mantener al que se le pasa un objeto de la clase Software de la lista de software e intenta actualizar y renovar la licencia.
  • Método protegido cuantoSoftware que devuelve un vector indicando el software de cada tipo que está en la lista.
  • Método ordenar que ordena la lista de software.
  • Método toString que devuelve la información de sus atributos y de los objetos de la colección.
  • Método compareTo que permite ordenar cada objeto de la clase en base a la marca y el modelo.

Ordenador y Servidor son clases derivadas de Equipo que incluyen diferencias en los métodos instalar y desinstalar.

  • El constructor no se altera en comparación con la clase padre.
  • Método instalar:
    • Ordenador solo permite añadir un objeto de la clase Software del tipo Sistema Operativo.
    • Servidor no tiene límite para el tipo Sistema Operativo pero solo puede instalar 2 del tipo Aplicación.
  • Método desinstalar:
    • Ordenador sólo puede eliminar objetos de la clase Software del tipo Aplicacion y si se intenta el del tipo Sistema Operativo, se borran los objetos del tipo Aplicacion.
    • Servidor puede eliminar un objeto de la clase Software del tipo Aplicacion y puede eliminar objetos del Sistema Operativo dejando al menos 1 pero sin eliminar objetos del tipo Aplicacion.

ComparadorMemoria y ComparadorAlmacenamiento son clases que implementan la interfaz Comparator para los equipos.

  • Método compare:
    • ComparadorMemoria compara dos objetos de la clase Equipo en base a su cantidad de memoria RAM.
    • ComparadorAlmacenamiento compara dos objetos de la clase Equipo en base a su capacidad de almacenamiento

Software es una clase que define el software que se usará en los equipos.

  • Variables para el nombre de la compañía, el nombre, una versión, licencia (opcional) y un tipo.
  • El constructor define por parámetros la compañía, el nombre y la versión numérica, define la licencia si se indicase que tiene y el tipo indicando si es o no sistema operativo. Usa el método generarLicencia.
  • Método getter para todos sus atributos.
  • Método actualizarVersion que incrementa el número de la versión de forma aleatoria entre dos pequeños valores y devuelve o no si se pudo hacer. Usa el método estaObsoleto.
  • Método privado estaObsoleto que devuelve de forma aleatoria si la versión actual del software necesita o no ser actualizada.
  • Método renovarLicencia que define una nueva licencia si la actual está caducada y devuelve si se pudo o no hacer también de forma aleatoria. Usa los métodos estaCaducado y generarLicencia.
  • Método privado estaCaducado que devuelve de forma aleatoria si la licencia está caducada o no.
  • Método privado generarLicencia que genera un nuevo código de licencia de forma aleatoria.
  • Método toString que devuelve la información de sus atributos.
  • Método compareTo que usa como criterios una cadena formada por el tipo, compañía, nombre y versión.
  • Método equals que indica que un objeto de la clase software es idéntico si los parámetros no nulos lo son, ignorando el resto.

TipoSoftware es un enum con los valores “SISTEMAOPERATIVO” y “APLICACION”.