Vorrei avere delle informazioni di carattere generale per quanto riguarda: concetti sull’architettura client server e sulla programmazione ad oggetti.

In entrambi i casi si tratta di concetti che dovrebbero essere sviluppati
in forma più ampia di quella consentita da una risposta di questa
rubrica.

Su entrambi gli argomenti, si possono trovare articoli sulle principali
riviste di informatica, fra le quali consiglio “Byte” (esiste anche una
versione italiana) in quanto di solito unisce un taglio tecnicamente rigoroso
con trattazioni a livello generale introduttivo.

Una breve descrizione generale del concetto di architettura client-server
è già stata fornita in queste pagine (vedi:
http://www.vialattea.net/esperti/php/risposta.php?numero=8428
).

Per trattazioni più approfondite occorre rivolgersi alla letteratura
specializzata. I titoli sono assai numerosi, soprattutto in inglese. Non
conosco direttamente i due seguenti, ma dovrebbero essere utili a livello
introduttivo:

Schank Jeffrey D.: “Architettura ed applicazioni client/server” (McGraw
Hill)

Robert Orfali, Dan Harkey, Jeri Edwards: Essential Client/server Survival
Guide (John Wiley and Sons).

Anche per quanto riguarda la programmazione ad oggetti darò
una breve introduzione rimandando a testi specifici per gli approfondimenti.

Il termine “programmazione ad oggetti” si riferisce ad una serie di
tecniche di progettazione del software e di programmazione basate sul
concetto di “oggetto”. In questo ambito un “oggetto” consiste di una struttura
di dati e delle funzioni che sono in grado di manipolare i dati della
struttura; dati e funzioni relative sono strettamente collegati fra loro
e vengono trattati a livello logico come un unica entità. Quindi
un linguaggio di programmazione si dice “ad oggetti” quando fornisce gli
strumenti per definire oggetti nel senso appena detto e per assemblarli
insieme per realizzare un programma; i linguaggi di programmazione C++
e Java sono due dei più tipici ed usati linguaggi orientati
agli oggetti.

L’uso del concetto di oggetto si rivela assai potente nelle tre principali
fasi di sviluppo di un progetto software:

  • Nella fase di progettazione, perché è un potente mezzo
    per esprimere la complessità del programma e delle relazioni
    fra le sue parti.
  • Nella fase di scrittura del codice, perché fornisce strumenti
    efficaci per il controllo della correttezza del codice e per la protezione
    dei dati.
  • Per la riutilizzazione del codice, perché consente la derivazione
    di nuovi oggetti a partire dalle funzionalità di oggetti preesistenti.

Anche in questo caso per approfondimenti è necessario rivolgersi
alle molte pubblicazioni esistenti. Ad esempio:

Grady Booch: Object-oriented Analysis and Design with Applications (Benjamin
Cummings).

—–

Vedi anche Come
si sviluppa l’architettura client-server?
(risponde
Luca Fini)