Classificazione del tipo di componente software [chiusa]

1

Sto scrivendo un framework che documenta automaticamente le dipendenze delle applicazioni in un sistema distribuito, l'idea è di produrre qualcosa vicino a un diagramma di componenti UML di l'intero sistema in fase di esecuzione.

I componenti sono solitamente applicazioni o una delle risorse che consumano (database, API HTTP, file ...).

Ogni componente ha un nome e un tipo. Mi chiedevo se esiste una cosa come una "classificazione del tipo di componente software"?
Non mi piace reinventare la ruota, soprattutto se esiste uno standard.

Ecco alcuni esempi di ciò che chiamo tipo di componente :

  • application / http
  • applicazione / desktop
  • application / mobile / Android
  • banca dati / mysql
  • di database / Cassandra
posta Michael Tecourt 16.03.2017 - 18:29
fonte

1 risposta

2

Quali sono i componenti?

Un componente componente UML è fondamentalmente una scatola nera con un comportamento e un'interfaccia ben definiti. L'idea è che è autonomo e sostituibile.

Con una definizione così ampia, un componente può coprire qualsiasi cosa sia possibile da intere applicazioni, a plugin, fino a classi elementari. Questo è semplicemente di ampio respiro per uno standard di classificazione generale.

Che cosa sono i modelli di componenti mainstream?

I modelli di componenti principali utilizzano categorie molto flessibili o generiche e richiedono IDL . Ad esempio:

Dubito che queste categorie soddisfino le tue esigenze.

Dove iniziare per la propria categorizzazione?

Dovrai definire gli assi da utilizzare per suddividere le categorie e questo dipenderà dal tuo obiettivo specifico:

  • Se il tuo obiettivo è categorizzare oggetti di dati scambiabili complessi, puoi consultare il tipo MIME per il quale esiste un globale riferimento IANA .
  • Se il tuo obiettivo è più di raggruppare i componenti per scopo, per trovare componenti riutilizzabili adatti più facili in un catalogo, potresti utilizzare il modello di stratificazione della tua architettura software. Ad esempio con una architettura pulita , inizieresti la tua classificazione con gli elementi di livello principali (ad es. entità, casi d'uso / transazioni, controllori, gateway, relatori, ...) e suddividerli ulteriormente (ad esempio gateway di dati, gateway di servizio, ...).

I tuoi pochi esempi suggeriscono strongmente l'uso del secondo approccio.

Modifica: componenti per applicazioni e risorse

Nella tua modifica, riduci la classificazione alle applicazioni e alle risorse. I tuoi esempi per quest'ultimo sembrano indirizzare più servizi (ad es. DBMS, API) rispetto alle risorse stesse (ad esempio i dati oi file).

Non esiste ancora uno standard di categoria generalmente accettato. Ecco alcuni punti di partenza:

  • Classificazione del software GAMP 5 : questo standard è per l'industria farmaceutica, dove l'automazione è controllato con la forza necessaria per garantire la sicurezza del processo di produzione dei farmaci.
  • I prodotti di gestione degli asset software vengono forniti con categorie personalizzate. Un bell'esempio qui , ma ce ne sono sicuramente altri disponibili. Fai attenzione però che tali elenchi proprietari potrebbero essere protetti da copyright, anche se disponibili pubblicamente.
  • Allo stesso modo, le società di marketing lavorano con categorie di software ben definite (ad esempio: Taxonomy del software IDC ). Ma ancora una volta, questo è un materiale proprietario in cui queste aziende hanno investito nella ricerca, quindi non riutilizzabile a volontà.
  • Infine c'è la classificazione CPV europea per gli appalti pubblici. Questa è una lista enorme con i codici. I codici che iniziano con 48 come due prime cifre propongono un dettaglio delle categorie di software (il codice è un sistema di numerazione decimale gerarchico, spiegato sul loro sito web).
risposta data 19.03.2017 - 20:49
fonte

Leggi altre domande sui tag