Enunciado Se plantea el desarrollo de una aplicacin para implementar el sistema operativo Maxix programado en el lenguaje de programacin orientado a objetos L: Existe un sistema de archivos, que est asociado a una tabla de ficheros y a una tabla de usuarios. La tabla de usuarios referencia a todos los usuarios y la tabla de ficheros referencia a todos los ficheros. Debe al menos un usuario referidos (el administrador) y 2 ficheros (la tabla de ficheros y la tabla de usuarios). Los usuarios pueden ser propietarios de ficheros, pero un fichero solo pertenece a un propietario. Se puede crear un usuario y consultar sus datos, pero sto solo lo puede hacer el administrador del sistema. Existen dos tipos de ficheros: el directorio, que se compone a su vez de otros ficheros, y el fichero simple. El fichero simple a su vez puede ser binario (por ejemplo, un ejecutable) o texto (es decir conteniendo ASCII). Si se borra el directorio, tambin desaparecen los ficheros que estn contenidos en l. Adems un directorio puede estar vaco. Cualquier tipo de fichero se puede crear, borrar, consultar, y modificar; cualquier usuario puede crear un fichero, pero es el usuario que crea el fichero quien puede borrar, consultar o modificar el fichero. Cuando un usuario crea un fichero nuevo se produce el siguiente efecto en cascada: le proporciona el tipo, nombre y propietario al sistema de archivos, que se encarga de obtener un identificador y una direccin de comienzo al nuevo fichero; la tabla de ficheros se ve ampliada con una nueva entrada con los datos del tipo, nombre, propietario, y las recientemente creadas identificador y direccin de comienzo; y por ltimo se crea un nuevo fichero del tipo indicado por el usuario, con el nombre suministrado por el usuario y la direccin de comienzo. Si la creacin se lleva a cabo correctamente, el usuario recibe la notificacin de Fichero creado. Para esta aplicacin se solicita: a) Un diagrama de casos de uso para representar toda la funcionalidad. Identificar bien los actores. b) Un diagrama de clases del dominio de la aplicacin que se han ido describiendo en el enunciado. Es importante mostrar las relaciones que hay entre las distintas clases, indicando multiplicidad en las relaciones de asociacin y agregacin, e indicando el nombre de la asociacin en las asociaciones. Se debe aplicar un patrn estructural de los vistos en clase. No hay que indicar atributos ni mtodos en este apartado. c) Mostrar el esquema, participantes y colaboraciones de este sistema operativo de ese patrn aplicado a la funcionalidad descrita. Indicar los mtodos que deben figurar como mnimo en estas clases que forman parte del patrn. Tambin es importante indicar qu clases y mtodos abstractos existen. d) Un diagrama de secuencia detallado que muestre cmo se crea un fichero de tipo binario para el caso de que se cree correctamente, indicando los mtodos que se invocan y los argumentos.