La progettazione dell'algoritmo appartiene all'ingegneria del software? [chiuso]

2

In senso accademico, mi sembra che

    La progettazione dell'algoritmo
  • è studiata in un livello alto / astratto di computazione (computabilità, complessità), sebbene l'ingegneria del software sia anche studiata a livello alto / astratto nel mondo accademico.

  • l'ingegneria del software riguarda il processo di creazione di un programma software per risolvere un problema. Sembra che l'algoritmo faccia parte del processo.

  • Ma dai riferimenti limitati sull'ingegneria del software che ho preso in esame, la progettazione dell'algoritmo non è discussa (ma potrei perdermi qualcosa). Invece, la progettazione del modello (o si chiama design pattern invece?) È discussa in ingegneria del software.

Le mie domande sono:

  • La progettazione dell'algoritmo appartiene all'ingegneria del software? L'algoritmo progetta un passo nel processo di ingegneria del software?
  • quali sono le differenze e le relazioni tra la progettazione dell'algoritmo, la progettazione del modello, la progettazione del programma e la progettazione del sistema? Queste parole possono essere ascoltate spesso dall'industria come parole d'ordine. Puoi condividere le definizioni di questi vari tipi di design?
posta Tim 12.10.2015 - 18:51
fonte

2 risposte

6

Sì e no.

Lo studio degli algoritmi (e delle strutture dati - i due vanno di pari passo) in relazione al calcolo tende a ricadere nella categoria dell'informatica. Alcuni algoritmi, tuttavia, possono essere sviluppati da quelli in un particolare dominio. Ad esempio, gli algoritmi necessari per implementare un qualche tipo di controllo automatico in un sistema hardware / software possono essere sviluppati da qualcuno specializzato in controlli di ingegneria . Allo stesso modo, i filtri di elaborazione del segnale possono richiedere conoscenze di fisica ed ingegneria elettrica. Tuttavia, le persone che sviluppano questi algoritmi potrebbero non avere le conoscenze e le competenze per trasformare una rappresentazione matematica di un algoritmo in qualcosa che possa essere usato dal software. Per trasformare questo algoritmo in qualcosa che può essere utilizzato dal software, avrai anche bisogno di alcune delle conoscenze che rientrano nell'ambito dell'ingegneria del software.

Il design dell'algoritmo deve adattarsi all'ingegneria del software. I tuoi requisiti e vincoli probabilmente guideranno le scelte degli algoritmi. Quindi, è necessario progettare per l'uso di algoritmi, o come andrete sull'implementazione dell'algoritmo o sull'uso di una libreria o di un modulo esistente che implementa l'algoritmo. Dovrai anche considerare la testabilità e la manutenibilità dell'algoritmo, entrambe cose di cui i tecnici del software sono interessati.

Anche se non considererei la progettazione dell'algoritmo parte dell'ingegneria del software, la considererei qualcosa di cui un ingegnere del software deve essere minimamente consapevole. L'ambiente e il dominio in cui lavora l'ingegnere del software determineranno la quantità di coinvolgimento nella progettazione dell'algoritmo.

    
risposta data 12.10.2015 - 19:12
fonte
2

Gli algoritmi non sono esclusivi dell'ingegneria del software. In questi giorni è più probabile che tu veda il termine usato insieme all'ingegneria / sviluppo del software ma non è un termine esclusivo. Ora in termini di appartenenza di Algorithm all'ingegneria del software rispetto a? sviluppo software? Dipende da chi è responsabile dei programmatori. Puoi trovare la soluzione e chiedere ai programmatori di implementarla, oppure puoi spiegare il problema e farli risolvere anche tu. È più di una persona che lavori per problemi. Lavoro per un'azienda che spiega il problema e il suo problema per risolverlo (fornire l'algoritmo) Ho lavorato per altre società che l'intera soluzione è già stata mappata per te e tutto ciò che fai è tradurre l'algoritmo che forniscono il computer. chi progetta l'algoritmo dipende in realtà da come lo sviluppo del software avviene in una specifica organizzazione. Gli algoritmi sono esclusivi dell'ingegneria del software? No.

    
risposta data 12.10.2015 - 21:32
fonte

Leggi altre domande sui tag