Qual è la differenza tra un modello di processo software e metodi di ingegneria del software (metodologia)?

8

Sono un ragazzo accademico, che ora si sta avventurando nel mondo dell'ingegneria del software, sconcertato dal fatto che molti termini sembrano sovrapporsi l'un l'altro. Sto leggendo alcuni libri e non riesco a distinguere / correlare un modello di processo software dai metodi di ingegneria del software.

Ad esempio, in Ingegneria del software Ian Sommerville definisce un modello di processo software come :

A simplified representation of a software process, presented from a specific perspective.

E metodologia del software ( metodi di ingegneria del software ) come:

Structured approaches to software development which include system models, notations, rules, design advice and process guidance.

Tuttavia, Wikipedia definisce la metodologia di sviluppo del software come questa:

A software development methodology or system development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information system.

A mio parere, la definizione di Sommerville di un modello di processo software può entrare nello scopo della definizione di Wikipedia. Qualcuno può illuminarmi su questo problema? Un esempio sarebbe rock, ad esempio A è un modello di processo software e B è un metodo di ingegneria del software (metodologia).

    
posta Marcos Roriz Junior 09.02.2012 - 20:00
fonte

4 risposte

12

Il modo in cui mi è stato insegnato, c'è una chiara differenza tra i due.

Un modello di processo software è una rappresentazione astratta di una metodologia di processo. Waterfall 1 è un modello di processo. Agile è un modello di processo. Non specificano come fare le cose, ma delineano i tipi di cose che sono fatte. Ad esempio, Waterfall identifica le fasi che un progetto attraversa: requisiti, progettazione, implementazione / test delle unità, test di integrazione, test di sistema, implementazione, senza dire quali artefatti produrre o quali strumenti utilizzare (sebbene l'output del codice sia implicito) . Agile definisce i valori fondamentali sotto forma di Manifesto per lo sviluppo di software agile , iterazioni time-boxed e risposta continua al cambiamento, ma non dì quanto a lungo dovrebbero essere le tue iterazioni o come reagisci al cambiamento. Il modello Spirale è un terzo modello di processo del software.

Una metodologia di processo software è un modo specifico di condurre un progetto software. Sono cose come Rational Unified Process e Scrum. Definiscono esattamente cosa, quando e / o come vengono prodotti vari artefatti. Potrebbero non essere del tutto espliciti con tutti gli aspetti - per esempio, Scrum non identifica quali documenti produrre o non produrre, poiché si concentra sul fornire valore al cliente - ma definiscono, in qualche modo, le azioni che i membri del team di progetto deve consegnare.

Tuttavia, in realtà, il punto è spesso discutibile. Molte volte, le metodologie di processo vengono presentate come framework in cui si adattano alle esigenze del cliente e del team di sviluppo, in base a requisiti e risorse. Inoltre, le organizzazioni potrebbero occuparsi di linee guida normative o legali che dettano determinati aspetti di ciò che deve essere prodotto o come svolgere determinati compiti (in particolare relativi alle attività di verifica e convalida).

Spesso diventa più importante discutere il processo di ogni squadra o organizzazione in termini di pianificazione del piano contro agile o quantità di formalità e cerimonia. Discutere la differenza terminologica tra un "modello di processo" e una "metodologia di processo" è per lo più utile durante le discussioni accademiche sui modelli di processo.

1 Mi riferisco alla Cascata tradizionalmente insegnata, non alla Waterfall più esplicitamente definita nel documento di Winston Royce.

    
risposta data 09.02.2012 - 22:16
fonte
1

Per ogni attività è possibile creare un modello, abbastanza complesso da descrivere quell'attività. Ma sempre là fuori esiste un altro compito, che non può essere coperto da quello stesso modello. Ma - questo è il primo punto importante - per qualsiasi attività reale tale modello sarebbe inutile .

I modelli sono progettati per esaminare il processo o la soluzione da qualche parte, per fornire una facile comprensione di alcune caratteristiche del soggetto. Ovviamente, il modello è costituito da viste, è corretto, ma è anche la vista stessa. La metodologia è l'organizzazione del processo (a differenza del prodotto finale e dell'attività di partenza). Potrebbe richiedere molti modelli per l'attività / prodotto / processo o le loro parti / fasi.

Naturalmente, potrebbe contenere alcuni modelli che appaiono nel processo nel suo insieme. Ma quella visione dell'uccello non è anche la metodologia. Non è nemmeno "la radice" della metodologia. Il tentativo di spingere tutta la metodologia in un modello semplicemente causa l'unicità della metodologia. Perché - questo è il secondo punto importante - la metodologia è molto più viva e cambia le cose rispetto al modello. Almeno, dovrebbe essere.

    
risposta data 09.02.2012 - 22:25
fonte
0

Il modello software descrive un'ipotetica o esistente istanza di software. La metodologia del software è la procedura per creare un'istanza del software indipendentemente dal modello.

    
risposta data 09.02.2012 - 20:25
fonte
0

Modello di processo software è un'astrazione o una rappresentazione visiva di un'idea, di un evento o di un processo. La modellazione è utilizzata principalmente per aiutarci a comprendere processi o eventi complessi e decidere cosa fare con loro. La modellizzazione è anche utilizzata in altri campi come Mathematics (Mathematical Model) ed Economics (Financial Model).

Applicando la definizione di cui sopra nel contesto dell'ingegneria del software, modelliamo semplicemente i processi software che capiamo specificamente durante la raccolta dei requisiti.

La metodologia di sviluppo del software è semplicemente una linea guida per lo sviluppo di un software che consiste in passaggi e risultati finali per completare il software. Un metodo di sviluppo è costituito da modelli, strumenti e tecniche. Il metodo o approccio più comune allo sviluppo di un software è il modello SDLC a.k.a Waterfall che consiste in diverse fasi (ad esempio pianificazione, analisi, progettazione, implementazione e manutenzione). Ciascuno degli stage può essere realizzato utilizzando tecniche (es. Tecniche di progettazione di database relazionali, tecniche di raccolta e analisi dei requisiti), modelli (modello caso d'uso, diagramma di flusso dati, modello di database relazionale, ecc.) E strumenti (Visio, Visible Analyst e altri strumenti software). Esistono varie metodologie che esistono oggi con gli sforzi dei professionisti del settore e del mondo accademico; Ognuna di queste metodologie, tuttavia, ha punti di forza e di debolezza e le loro tecniche, strumenti e modelli possono differire dall'SDLC. (ad esempio Scrum, Unified Process e Extreme Programming).

    
risposta data 14.04.2014 - 11:45
fonte

Leggi altre domande sui tag