User Tools

Site Tools


Problem constructing authldap
teme:tema2

This is an old revision of the document!


Tema 2 - File System

Obiective

  • Aprofundarea noțiunilor de moștenire, agregare și interfațare în contextul programării orientate pe obiecte.
  • Utilizarea unor design patterns în contextul implementării unei aplicații reale.
  • Înțelegerea modului de funcționare a unui sistem de fișiere.
  • Respectarea unui coding-style adecvat.

Cerințe

Va trebui să implementați propriul vostru sistem de fișiere minimal în stilul celor folosite pe platformele de tip Unix. Odată creat sistemul de fișiere, acesta va trebui să suporte o parte din comenzile cele mai des utilizate în sisteme de operare tip Unix (ex: ls, cd, mkdir, touch etc.).

Pentru aceasta, va trebui să folosiți următoarele design patterns:

  • Composite Pattern, care va fi folosit pentru crearea structurii arborescente a sistemului de fișiere.
  • Factory Pattern (despre care găsiți noțiuni și în laboratorul 11), care va fi folosit pentru gestionarea creării fiecărei comenzi în parte.
Dacă tema nu respectă cele două restricții de design, nu vă va fi acordat punctajul aferent testelor.

Punctaj (100p)

  • 90p teste publice
  • 10p README, comentarii, JavaDocs, coding style

Descriere

Composite Pattern

Sistemul de fișiere va fi implementat sub forma unui arbore. Pentru a realiza acest lucru, se va folosi Composite Pattern, un pattern structural, care implică crearea unei clase în care se agregă instanțe ale aceleiași clase. În cazul de față, pentru a înțelege și mai bine detaliile teoretice, se poate crea o clasă cu rol de părinte (o numim generic Entitate) atât pentru directoare, cât și pentru fișiere. Clasa Director va agrega alte instanțe de tip Entitate.

Factory Pattern

Pentru a genera instanțe ale comenzilor de care avem nevoie, vom folosi Factory Pattern. Ca să ilustrăm într-un mod cât mai concret acest lucru, ne putem imagina că avem o “fabrică” (un obiect de tip Factory) care primește ca parametru tipul comenzii dorite și returneaza o instanță a acelei comenzi.

Implementarea comenzilor

Fiecare comandă va fi citită dintr-un fișier de intrare. Într-un fișier de ieșire vor fi afișate eventuale mesaje de eroare, iar după ce se citesc toate comenzile, în același fișier de ieșire va fi afișat întreg arborele creat. Erorile pot apărea în urma unor acțiuni nepermise ce se pot executa și fiecare eroare, împreună cu mesajul asociat, vor fi descrise în cele ce urmează.

Permisiuni

După cum bine știți, sistemele de fișiere înglobează o logică de permisiuni bine pusă la punct.

Comanda adduser

Inițial, în sistemul nostru de fișiere există

teme/tema2.1479061578.txt.gz · Last modified: 2016/11/13 20:26 by laurentiu.piciu