Ercole Colonese

L’ESPERIENZA AL VOSTRO SERVIZIO!

Consulenza informatica ed organizzativa

 

 

home

sviluppo software

consulenza

didattica

chi sono

 info

 

Sviluppare software oggi …

Stonehenge

 

In questa pagina:

 

La professione dell'ingegneria del software

Che cos'è la Software Engineering?

Che cos'è una professione riconosciuta?

Quali sono le caratteristiche di una professione?

Manuale delle competenze della professione (SWEBOK)

Le 10 aree di competenza (KA)

Competenze e processi di sviluppo

Codice etico e professionale

 

La professione dell'ingegnere del software

 

Che cos’è la Software Engineering?

La IEEE Computer Society definisce l’ingegneria del software come:

“(1) L’applicazione di un sistematico, disciplinato e quantificabile approccio allo sviluppo, all’operatività e alla manutenzione del software; cioè l’applicazione dell’ingegneria al software.

(2) Lo studio degli approcci definiti al punto precedente.”[1]

Che cos’è una professione riconosciuta?

Affinché l’ingegneria del software sia legittimata come disciplina dell’ingegneria e sia riconosciuta come professione occorre raggiungere il consenso sulle competenze di base (Core Body Of Knowledge).

Quali sono le caratteristiche di una professione?

Le caratteristiche principali della professione ingegneristica includono le seguenti componenti[2]

  • Formazione iniziale eseguita all’interno di un curriculum validato da un’organizzazione apposita tramite l’accreditamento (es.: frequenza dei corsi di un piano di formazione definito e superamento degli esami previsti);

  • Registrazione dell’aderenza alle pratiche riconosciute tramite il superamento di esami particolari (esempio: iscrizione all’albo degli ingegneri, certificazione interna, ecc.);

  • Sviluppo continuo delle competenze tramite frequenza di corsi di specializzazione;

  • Supporto da parte di una comunità accreditata;

  • Impegno a seguire un comportamento etico.

L’insieme degli articoli che ci si appresta a scrivere e a divulgare intendono coprire i primi tre punti.

Manuale delle competenze della professione (SWEBOK)

Il documento SWEBOK (Software Engineering Body Of Knowledge), pubblicato da un apposito comitato fondato dai maggiori enti internazionali sulla materia (IEEE e ACM). Esso fornisce una descrizione di massima di tali competenze richieste dalla professione. Le competenze su cui si trovato un consenso unanime sono le 10 elencate qui di seguito.

Le 10 aree di competenza (Knowledge Areas)

La lista che segue elenca le 10 aree di competenza previste dal modello SWEBOK. Le prime cinque sono riportate nell’ordine in cui generalmente sono svolte nel ciclo di sviluppo (a cascata). Le rimanenti cinque sono generalmente svolte lungo l’intero ciclo di sviluppo e sono riportate in ordine alfabetico. Ciascuna area di competenza è composta da più sotto-aree che indirizzano argomenti specifici.

  1. Software Requirements;

  2. Software Design;

  3. Software Construction;

  4. Software Testing;

  5. Software Maintenance;

  6. Software Configuration Management;

  7. Software Engineering Management;

  8. Software Engineering Process;

  9. Software Engineering Tools and Methods;

  10. Software Quality.

Una breve introduzione al modello SWEBOK e alcuni dettagli sulle singole aree di competenza sono forniti nel documento disponibile in questo stesso sito nell'area  Pubblicazioni. E' disponibile anche una presentazione sul tema delle Competenze della professione dell'ingegnere del software fatta durante una lezione tenuta presso l'Università di Roma Tor Vergata  sull'argomento.

Per gli approfondimenti si suggerisce di accedere direttamente al sito ufficiale SWEBOK (vedi "Link esterni utili" a destra nella pagina).

Competenze e processi di sviluppo

Le prime cinque competenze si riferiscono ai processi primari dello sviluppo software, mentre gli altri cinque ai processi di supporto (secondo la definizione data da ISO 12207:1995, Norme sul ciclo di vita del software). La figura che segue mostra tale relazione.

 

Codice etico e professionale

Un codice di etica professionale per gli addetti all’ingegneria del software è stato sviluppato in cooperazione da ACM e IEEE. Di seguito è riportata una versione sintetica. La versione estesa del codice professionale aggiunge a questa maggiori dettagli e consistenza.

Gli sviluppatori software devono impegnarsi a rendere il proprio mestiere (l’analisi, la specifica, il disegno, lo sviluppo, il test e la manutenzione del software) una professione rispettata e dagli effetti benefici. Gli sviluppatori devono pertanto aderire alle seguenti regole:

1. Pubblico. Gli sviluppatori software devono agire in linea con l’interesse pubblico.

2. Cliente e datore di lavoro. Gli sviluppatori software devono agire in un modo conforme agli interessi del loro cliente e datore di lavoro, restando in accordo con l’interesse pubblico (punto 1).

3. Prodotto. Gli sviluppatori software devono assicurare che i loro prodotti e le modifiche che vi applicano siano a livello di standard professionale più elevato possibile.

4. Giudizio. Gli sviluppatori software devono mantenere integrità ed indipendenza nel loro giudizio professionale.

5. Management. Manager e leader degli sviluppatori devono sottoscrivere e promuovere un approccio etico alla gestione dello sviluppo e della manutenzione del software.

6. Professione. Gli sviluppatori software devono far progredire l’integrità e la reputazione della professione, restando in accordo con l’interesse pubblico (punto 1).

7. Colleghi. Gli sviluppatori software devono essere leali e di supporto nei confronti dei loro colleghi.

8. Se stessi. Gli sviluppatori software devono, per tutta la durata della loro attività  lavorativa, continuare la propria formazione sulla pratica della professione, e devono promuovere un approccio etico ad essa.


Ogni azienda ha un proprio codice etico legato principalmente al settore nel quale opera. Gli ingegneri hanno un proprio albo professionale che ne definisce, oltre ai contenuti tecnici, gli aspetti etici e professionali. Per quanto riguarda l’ingegneria del software, anche se si tratta di una disciplina giovane (ma poi non tanto), non ha un proprio riconoscimento giuridico formale e non esiste ancora un albo degli “Ingegneri del software” (tra l’altro, un ingegnere del software potrebbe non essere un “ingegnere” nel senso stretto del termine). Esistono diversi tentativi nel mondo di disciplinare la materia. Negli USA, in particolare, si sta compiendo uno sforzo notevole in tal senso.

 


[1] “IEEE Standard Glossary of Software Engineering Terminology, 1990.”

[2] G. Ford and E. Gibbs, “A Mature Profession of Software Engineering” Software Engineering Institute, Carnegie Mellon University, Pittsburg, Pennsylvania, January 1996.

Sviluppare software oggi ...

Il contesto

Norme e modelli

Professioni e certificazioni

Ingegneria del software (SWEBOK)

Project Management (PMBOK)

Professioni informatiche (EUCIP)

Esperto qualità (EQDL)

Utilizzo del computer (ECDL)

Metodologia di sviluppo software

10 best practice del software

 

 

 

Collegamenti esterni utili:

SWEBOK - Software Engineering Body Of Knowledge.

SWECC - Software Engineering Coordinating Committee.

IEEE Computer Society.

ACM - Association for Computing Machinery.

 

Pubblicazioni disponibili sul tema:

Introduzione al SWEBOK, Introduzione al Software Engineering Body of knowledge

Competenze della professione ingegnere del software, Lezione tenuta all'Università di Tor Vergata sull'argomento

 

 

Copyright © 2005-2007 - Ultimo aggiornamento: 31 luglio 2007