Qual è il più semplice sistema operativo o piattaforma su cui possiamo fare SE oggi [chiuso]

0

Qual è il "più semplice" sistema operativo o piattaforma su cui possiamo fare ingegneria del software in questo giorno ed età? O, in altre parole, ci sono "requisiti minimi" per OS & piattaforma per fare ingegneria del software?

Credo che un computer Linux a scheda singola non sia troppo piccolo. Ho appreso per la prima volta dell'ingegneria del software negli anni '80 e ho lavorato a un progetto a 3 studenti per un sistema su un Macintosh da 128K.

L'alternativa potrebbe essere etichettare l'attività come Programmazione, o qualcos'altro che non ho pensato.

Per favore commenta con attenzione se vedi questa domanda come Meta o basata sull'opinione pubblica.

    
posta D A Vincent 29.05.2017 - 07:29
fonte

2 risposte

9

What is the simplest operating system or platform upon which we can do Software Engineering in this day and age?

Nessuno.

Una delle principali attività in Software Engineering è la progettazione del software concettuale e la realizzazione di concetti per un software non richiede necessariamente una piattaforma specifica. Può essere fatto con carta e penna, disegnando diagrammi UML, modelli di dati o diagrammi di flusso, o semplicemente scrivendo un concetto in forma testuale, senza fare ipotesi sul sistema operativo e sulla piattaforma.

Forse intendevi la tua domanda in un senso diverso, come

"what is the simplest operating system or platform upon which we can run actual programs produced by a Software Engineering process"

ma la risposta è: l'Ingegneria del software può essere eseguita per "qualsiasi piattaforma in grado di eseguire programmi" , scegli quella che ritieni più "semplice" in base alla tua definizione personale di " semplice".

Per essere onesti, c'è molto di più in SE che creare concetti per il software. Ad esempio, questo sito pone l'accento su tutte le attività del ciclo di vita dello sviluppo dei sistemi ad eccezione dei problemi di codifica. Ma come @BasileStarynkevitch ha scritto correttamente nella sua risposta, le attività di SE per "piccoli sistemi" sono tipicamente fatte usando un sistema di sviluppo separato, più grande e un kit di sviluppo incrociato. Pertanto, attività come la gestione della configurazione, il controllo delle versioni, il testing, il QA o la documentazione di scrittura possono essere eseguite su un PC standard con un sistema operativo per il quale è disponibile un kit di sviluppo corrispondente. Ciò rende possibile fare tutti i tipi di attività di ingegneria del software praticamente per qualsiasi piattaforma di destinazione contemporanea.

    
risposta data 29.05.2017 - 11:14
fonte
-1

Per l'ingegneria e lo sviluppo di software per sistemi embedded professionali, la prassi abituale è lo sviluppo incrociato e cross-compilation . Quindi svilupperai (cioè modifica, compila, costruisci) su es. un laptop o desktop (spesso con qualche distribuzione Linux), spesso più potente del sistema embedded target.

Si noti che ottimizzare i compilatori richiede un po 'di potenza della CPU (e anche di più se si desidera l'ottimizzazione dell'intero programma o il tempo di collegamento ottimizzazione = LTO, ad es. compilazione e collegamento con gcc -flto -O2 con GCC ). E la costruzione di progetti di grandi dimensioni, almeno in C o C ++, viene spesso eseguita con diversi processi di compilazione simultanei (attraverso make -j ), quindi diversi core sono utili. BTW La potenza della CPU non è l'unica cosa che conta (avere due grandi schermi e un disco SSD e > = 16 Gbyte di RAM è davvero utile per uno sviluppatore).

Ai fini dell'insegnamento, potresti davvero compilare qualcosa di così piccolo come un RaspBerryPi che esegue alcuni aspetti di Linux (almeno se non lo fai voglio LTO). Ma credo che tu abbia bisogno di almeno un gigabyte di RAM. Nella vita professionale reale, vuoi sicuramente qualcosa di più grande (ad esempio, almeno una scheda madre ITX o un computer minibox) e spendere qualche centinaio di € o US $ per migliorare l'esperienza dello sviluppatore di software ha senso link

A proposito, il costo di uno sviluppatore qualificato è molto più del costo della sua macchina: all'inizio della mia carriera (1987) la mia postazione di lavoro Sun3 / 160 in ufficio costò diversi anni del mio lavoro, oggi un desktop potente costa un pochi giorni o settimane di lavoro (al mio datore di lavoro).

    
risposta data 29.05.2017 - 07:40
fonte

Leggi altre domande sui tag