Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Consigli per esercizio su Gestore telefonia

    Oggi sto tentando l'approccio ad un nuovo esercizio, uno dei primi che sto svolgenti sugli oggetti. Riporto il testo completo dell'esercizio:

    "Si individuino le classi e i messaggi essenziali necessari a modellare il funzionamento di una rete di telefonia mobile dal punto di vista del gestore della rete. Si individuino in particolare i messaggi che la rete scambia con l'utente dei servizi di telefonia, e si discuta di come questi messaggi costituiscano poi l'API dell'intero sistema rispetto all'utente finale."

    Ok, per voi probabilmente sarà facile capire e implementare l'esercizio (anche se non viene chiesto). Allora, iniziamente stavo per mettermi a scrivere la classe Cliente contenente tutti gli attributi del cliente, quali nome, cognome, piano tariffario, data stipula contratto, credito, etc.
    Ci sarebbe stato un costruttore che avrebbe creato un nuovo cliente, con tutti i suoi attributi.
    Poi ci sarebbero stati i metodi per la gestione delle chiamate e del credito, delle ricariche, dell'invio di sms, della ricezione del credito residuo, del cambio di piano tariffario, etc.

    Se non sbaglio però non è questo che chiede l'esercizio, ma chiede un modello dal punto di vista del gestore. Non mi molto chiaro cosa fare in questo caso. Creare una classe Gestore che gestisca in base ai messaggi che arriveranno dai clienti, il credito residuo, il cambio di contratto, le ricariche e le spese telefoniche?

    Grazie a chiunque mi aiuti o anche solo a chi leggerà (fino a qui) questo post :-)

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    considera dal punto di vista del "che cosa accade se", ovvero, che genere di servizi mette a disposizione un gestore di telefonia mobile... più nello specifico:

    - servizio di messaggistica (SMS, MMS)
    - servizio voce (chiamata, videochiamata)
    - eventuali servizi accessori (per esempio, casella messaggi vocali)

    quindi avrai che una data SIM può essere abilitata ad uno o più servizi del gestore (minimo comune a tutte le SIM: messagistica SMS, servizio voce chiamata... servizi accessori MMS, videochiamate, casella messaggi vocali etc etc).

    Alcune voci lì sopra sono raggruppate apposta (perchè magari sotto-classi di una qualche classe comune).

    Giusto un parere. Poi il forum è più luogo in cui discutere di problemi relativi a codice che ad architetture, per cui magari comincia a buttare giù qualcosa di tangibile e poi magari ci si sente di nuovo su questi canali con una problematica più circostanziata.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da Andrea1979
    Poi il forum è più luogo in cui discutere di problemi relativi a codice che ad architetture, per cui magari comincia a buttare giù qualcosa di tangibile e poi magari ci si sente di nuovo su questi canali con una problematica più circostanziata.
    Concordo e sottoscrivo: senza codice o una proposta di soluzione da parte dell'utente, o senza domande circostanziate, la discussione non è ammissibile.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    dal punto di vista della progettazione: gli altri aspetti (come la gestione del cliente, come lo inserisci ecc) qui li si dà per scontato funzionanti, visto che il sotto-modulo di interesse è quello relativo alla gestione delle comunicazioni via rete.
    Poco male se devi progettare e basta, ma se devi programmare devi creare delle interfacce che ti mettano in condizione di creare l'infrastruttura di contorno, ergo quegli aspetti non sono da "trascurare" completamente.

    Per capire cosa devi fare, oltre al consiglio di andrea, io ti consiglio di scrivere le interfacce pubbliche della tua API, cioè cosa si intende per gestione. Spesso il considerare questo aspetto mi riporta a terra, mi fa concentrare su quello che deve fare l'API, su quello su cui io devo porre attenzione.

    ps ho usato interfacce pubbliche per indicare le interfacce disponibili a chi utilizza il modulo. Ce ne saranno sicuramente altre che io definisco interne in quanto non sono viste dagli utilizzatori del modulo (non ne hanno bisogno), ma forniscono dei servizi allo stesso.
    RTFM Read That F*** Manual!!!

  5. #5
    Grazie per i preziosi consigli:-) Ma sono stato via e non ho potuto andare avanti in questo esercizio.

    Ho buttato giù due righe per impostare nella mia testa il da farsi.

    Considerando che chiede la gestione della sola parte relativa all'operatore telefonico, e non del cliente, ci limiteremo ad una strutturazione generale della classe Gestore. Infatti per poter testarne il funzionamento completo dovremmo perlomeno creare un'ulteriore classe cliente che gestisca a mandi messaggi al suo gestore.

    Una prima analisi della situazione, ci dice che la classe Gestore dovrà essere in grado di ricevere messaggi con il codice dell'operazione che intendono svolgere.
    La classe gestore, verificherà la possibilità di svolgere l'operazione richiesta calcolandone il costo, o perlomeno il costo iniziale se si tratta di una chiamata. In questo caso il gestore potrebbe verificare la possibilità per la sim di accedere al servizio ed in questo caso il metodo potrebbe restituire al cliente il tempo massimo di chiamata. In questo modo qualora il cliente arrivasse a zero minuti disponibili verrà interrotta la chiamata e azzerato il credito del cliente.
    Se invece il cliente non sfrutterà tutti i minuti disponibili, a fine chiamata il cliente invierà al gestore un messaggio contenente la durata della chiamata, in modo da sottrarre il credito necessario.
    Se il credito del cliente fosse inferiore a quello richiesto non permetterà di accedere al credito ma invierà un sms al cliente invitandolo a effettuare una ricarica.
    La ricarica avverrà nello stesso modo, cioè tramite l'invio di un sms al gestore contenente un codice univoco che identifica l'operazione di ricarica e un codice che corrisponderà ad uno dei codici per ricarica precedentemente emesso dal gestore, e salvati in un file o database. Una volta trovato il codice corrispondente, verrà inviato al cliente un sms di conferma dell'avvenuta ricarica.

    Per poter visualizzare e gestire i valori dei clienti la classe Gestore dovrà avere un arrya di variabili d'ambiente Cliente[] contenente:
    • Nome | numero | piano | attivazione | credito | sms_residui | internet_residuo | minuti_residui | mms_residui

    In questa breve analisi tralasceremo la possibilità di attivare più servizi, e considereremo tutti i clienti aventi la possibilità di inviare sms, mms, connettersi a internet e chiamare ovviamente.

    Il prezzo di ciascun servizio sarà settato dal valore piano. In base a quel valore ci sarà una tabella dove ci saranno le corrispondenze tra il piano scelto e il prezzo di tutti i servizi ad esso associati.
    Bisognerà tener conto della data di attivazione del piano in quanto potrebbero esserci dei piani a pagamento mensili con il traffico totalmente o parzialmente compreso nel canone. Questo significa che bisognerà avere dei contatori che si azzereranno ogni 30 giorni dove verificare quando l'utente terminerà il suo traffico, sms, internet e andrà poi a pagare con tariffa differente.

    Questi contatori di traffico residuo saranno da inglobare in qualche modo nella tabella con i dati del cliente. Questa implementazione è la più semplice ma è quella meno intelligente per la gestione della memoria. In questo modo anche per chi non avrà questo genere di opzione saranno allocati dei settori di memoria non utilizzati.
    L'ideale sarebbe infatti gestire il tutto con dei database relazionali, identificando il cliente con un id univoco e da li creare le tabelle necessarie per strutturare al meglio tutti i dati necessari.

    La classe Gestore dovrà avere un metodo che sarà invocato ogni giorno che verificherà la scadenza del piano per ciascuna sim, e in quel caso procederà a sottrarre il credito per il mese successivo e azzererà i contatori. Qualora il cliente non abbia credito sufficiente verranno disabilitati i servizi inclusi nell'offerta e lasciato solo quelli a consumo. Alla prima ricarica effettuata dall'utente, il gestore dovrà verificare se questi avesse avuto un piano tariffario in stato di blocco, ed in caso positivo, se il credito lo permetterà, riabilitarlo.

    Cosa ne pensate? Vado oltre e inizio a scrivere la classe?

    Grazie per il supporto ragazzi.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.