In che modo le coppie concettuali Abstract / Concrete, Generic / Specific e Complex / Simple sono correlate l'una all'altra nell'architettura software?

0
(= 2 (+ 1 1))

prendi quanto sopra. Il requisito del predicato '=' è che i suoi argomenti siano comparabili. In questo caso, due strutture sono comparabili e quindi il contratto / requisito è piuttosto generico. Il predicato '+' richiede che i suoi argomenti siano numeri. Questo è più specifico.

(socket domain type protocol)

gli argomenti qui sono molto più specifici (anche se gli argomenti sono ancora solo numeri e la funzione stessa restituisce un descrittore di file, che è esso stesso un int), ma gli argomenti sono più astratti e l'implementazione è costruita da altri funzioni le cui astrazioni sono meno astratte, che sono costruite da astrazioni sempre meno astratte. Al punto in cui i requisiti sono qualcosa come spostarsi da una posizione a un'altra, osservare se l'interruttore in quella posizione è acceso o spento, accendere o spegnere l'interruttore o lasciarlo lo stesso, ecc.

Ma le funzioni sono sempre meno complesse meno astratte sono? E c'è una relazione tra il numero e la gamma di argomenti di una funzione e la complessità della sua implementazione, mentre vai da più astratto a meno astratto e viceversa?

(= 2 (+ 1 1) 2r10)

il predicato '=' è più generico del predicato '+', e quindi potrebbe essere più complesso nella sua implementazione. Il contratto del predicato '+' è meno generico, e quindi potrebbe essere meno complesso nella sua implementazione. Questo è anche un po 'corretto? Che dire della funzione 'socket'? Ognuno di questi argomenti è un numero di qualche tipo. Ciò che rappresentano, tuttavia, è qualcosa di più elaborato. Restituisce anche un numero (proprio come fanno gli altri), che è anche una rappresentazione di qualcosa concettualmente molto più elaborato di un numero.

Per ridurlo, ti sto chiedendo se esiste una relazione tra le seguenti dimensioni e perché:

  1. Astratto / calcestruzzo
  2. Complesso / Semplice
  3. generico / specifico

E più precisamente, le diverse configurazioni di queste dimensioni hanno un impatto specifico e misurabile sul numero e sull'intervallo degli argomenti (vale a dire, il contratto) di una funzione?

    
posta tjb1982 29.05.2014 - 23:20
fonte

1 risposta

1

Generico / Specifico e Astratto / Calcestruzzo sono gli stessi assi. Sono anche termini diversi, quando si crea qualcosa di generico, lo si rende non concreto, piuttosto astratto. Quando crei qualcosa di specifico, lo stai rendendo non astratto, piuttosto concreto.

Complesso / Semplice è un asse non correlato al precedente che descrivi. Puoi mostrare che non tracciano insieme semplicemente disegnando il quadrante dei due assi e riempirlo per visualizzare i vincoli che una relazione avrebbe conferito.

            Abstract/Generic
                    |
                    |
          Possible  |  Possible
                    |
Complex_____________|______________Simple
                    |
          Possible  |  Possible
                    |
                    |
            Concrete/Specific

Tutti e quattro i quadranti sono possibili e quindi non vincolati. Questi assi non proferiscono vincoli reciproci, quindi non c'è alcuna relazione.

And more specifically, do different configurations of these dimensions have a specific, measurable impact on the number and range of the arguments (i.e., the contract) of a function?

La mia esperienza mi dice che singolarmente questi assi influiscono sulla progettazione di un dato bit di codice, in quanto tale per dire che in combinazione essi anche influenzano il design in modo abbastanza chiaro. Per quanto riguarda che esattamente quell'impatto è? Beh, ha un impatto sul modo in cui il codice getta su questi assi per uno, quindi puoi misurare che suppongo che tu possa trovare un sistema di misurazione per questo.

Detto questo, non credo che otterrai alcuna descrizione di come questo codice effetto dimensioni, non ho conoscenza di studi che ne parlano necessariamente. Anche se le opinioni soggettive sono numerose, probabilmente non è possibile ottenere informazioni obiettive su come questi assi soggettivi abbiano effetto sul codice.

    
risposta data 29.05.2014 - 23:34
fonte

Leggi altre domande sui tag