Forum: Ausbildung, Studium & Beruf Software-Integration: Aufgaben


von blro (Gast)


Lesenswert?

Ich habe die Möglichkeit auf eine Stelle als Softwareentwickler und 
würde mich zunächst um die Software-Integration (Automotive ECU, 
überwiegend Serie) kümmern.

Sehe ich das richtig, dass ich überwiegend damit beschäftigt sein werde 
die Software von Kollegen auf das Steuergerät und mit einem Lauterbach 
Debugger zum laufen zu bringen? Inklusive dem Prüfen der notwendigen 
Normen?

Ich würde mich über ein paar Infos von Leuten mit Erfahrungen in dem 
Bereich freuen. Hat euch die Arbeit gefallen? Ist es ein guter Einstieg 
nach dem Studium? Danke im voraus.

von möppel (Gast)


Lesenswert?

blro schrieb:
> Sehe ich das richtig, dass ich überwiegend damit beschäftigt sein werde
> die Software von Kollegen auf das Steuergerät und mit einem Lauterbach
> Debugger zum laufen zu bringen?

Nein. Du wirst hauptsächlich Branches im SCM mergen und die Ergebnisse 
übersetzen. Dann die fertigen Binaries an die Kollegen zum Testen 
zurückgeben. Daneben noch die ganzen Buchhaltungsaufgaben wie Issues im 
Issue-Tracker verwalten.
Du wirst die Kollegen dann natürlich auch dazu anhalten müssen 
mergefähige Ergebnisse zu produzieren und entsprechende Rückmeldungen 
geben, wenn dies nicht der Fall ist.

von blro (Gast)


Lesenswert?

möppel schrieb:
> blro schrieb:
>> Sehe ich das richtig, dass ich überwiegend damit beschäftigt sein werde
>> die Software von Kollegen auf das Steuergerät und mit einem Lauterbach
>> Debugger zum laufen zu bringen?
>
> Nein. Du wirst hauptsächlich Branches im SCM mergen und die Ergebnisse
> übersetzen. Dann die fertigen Binaries an die Kollegen zum Testen
> zurückgeben. Daneben noch die ganzen Buchhaltungsaufgaben wie Issues im
> Issue-Tracker verwalten.
> Du wirst die Kollegen dann natürlich auch dazu anhalten müssen
> mergefähige Ergebnisse zu produzieren und entsprechende Rückmeldungen
> geben, wenn dies nicht der Fall ist.

Würdest du "Branches im SCM mergen und die Ergebnisse übersetzen" etwas 
näher erläutern? Ich habe da keine Erfahrungen und die Suchmaschine gibt 
mir dazu noch nichts eindeutiges.

von Tom E. (Gast)


Lesenswert?

blro schrieb:
> Würdest du "Branches im SCM mergen und die Ergebnisse übersetzen" etwas
> näher erläutern?

Was hast du denn studiert?

von Claus M. (energy)


Lesenswert?

blro schrieb:
> Würdest du "Branches im SCM mergen und die Ergebnisse übersetzen" etwas
> näher erläutern? Ich habe da keine Erfahrungen und die Suchmaschine gibt
> mir dazu noch nichts eindeutiges.

ich bin zwar nicht der Möppel, helf aber mal aus:

SCM meint eine Versionsverwaltung. Guck im Internet wenn du das nicht 
kennst, dann stolperst du auch über den Begriff "Branch". "Mergen" heißt 
nicht anderes als "zusammenführen" (siehe englisches Wörterbuch).

von blro (Gast)


Lesenswert?

Tom E. schrieb:
> blro schrieb:
>> Würdest du "Branches im SCM mergen und die Ergebnisse übersetzen" etwas
>> näher erläutern?
>
> Was hast du denn studiert?

70% Elektrotechnik (inklusive dem gesamten grundstudium, auch c, 
mikroprozessortechnik, grundlagen inf usw.), 30% BWL.

Ich bin kein klassischer Informationstechniker. Daran kann es liegen, 
aber deswegen frage ich. Meine Vita ist den verantwortlichen Personen 
klar.

von ffff (Gast)


Lesenswert?

bei uns, großes C, ist es eher eine mischung aus beiden, wobei ich eher 
sagen würde: das ganze zeugs lauffähig hinzukriegen(basis SW usw.) du 
kriegst(meist aus matlab generiert) Code und schaust das er läuft. 
Testen tuts dann wieder jemand anderer

von blro (Gast)


Lesenswert?

Claus M. schrieb:
> blro schrieb:
>> Würdest du "Branches im SCM mergen und die Ergebnisse übersetzen" etwas
>> näher erläutern? Ich habe da keine Erfahrungen und die Suchmaschine gibt
>> mir dazu noch nichts eindeutiges.
>
> ich bin zwar nicht der Möppel, helf aber mal aus:
>
> SCM meint eine Versionsverwaltung. Guck im Internet wenn du das nicht
> kennst, dann stolperst du auch über den Begriff "Branch". "Mergen" heißt
> nicht anderes als "zusammenführen" (siehe englisches Wörterbuch).

SCM kannte ich bisher nur im Bezug auf Logistik und Ähnliches. Die 
englischen Wörter und auch das Thema Versionsmanagement (z.B. Starteam) 
sind/ist mir bekannt.
Ich konnte das alles nur nicht zu den Aufgaben der Leute im Bereich 
Software-Integration zusammenbringen. Würdest du mir das anhand eines 
Beispielprozesses mit Stichwörtern aufzeigen?

von möppel (Gast)


Lesenswert?

blro schrieb:
> Würdest du mir das anhand eines
> Beispielprozesses mit Stichwörtern aufzeigen?

Hast du denn wenigstens mal den Wikipedia-Artikel über SCM gelesen?

von blro (Gast)


Lesenswert?

ffff schrieb:
> bei uns, großes C, ist es eher eine mischung aus beiden, wobei ich
> eher
> sagen würde: das ganze zeugs lauffähig hinzukriegen(basis SW usw.) du
> kriegst(meist aus matlab generiert) Code und schaust das er läuft.
> Testen tuts dann wieder jemand anderer

Also ich bin bisher davon ausgegangen, dass es um folgendes gehen wird:
Ich kriege den in MATLAB/Simulink von Kollegen generierten Code, bringe 
ihn auf das Steuergerät und debugge falls es nicht funktioniert. 
Anschließend dann die Weitergabe per Versionsmanagement an die Tester 
(falls das nicht auch zum Aufgabengebiet gehört).

Korrigiert mich, falls ich etwas vergessen haben sollte oder falsch 
liege.

von Sven (Gast)


Lesenswert?

SCM heisst auch Source Code Management oder was du kennst Supply  Chain 
Management hier ist aber ersteres gemeint.

von Hans (Gast)


Lesenswert?

Es gibt typischerweise ein Versionsverwaltungssystem (Source Code 
Management, SCM), wie z.B. SVN, GIT, ClearCase usw., in dem der 
Quellcode eines Projekts aufbewahrt wird. Das Tool bewahrt sämtliche 
Versionen dieser Dateien auf, die jemals hinzugefügt (eingecheckt) 
wurden.

Aus diesem Quellcode wird regelmäßig ein (internes) Release mit einer 
bestimmten Versionsnummer gebaut, z.B. Version 1.2.3. Alle 
Dateiversionen, die zu diesem Release gehören, bekommen eine Markierung 
(Label) mit der Versionsnummer 1.2.3. Das Release besteht dann z.B. aus 
der Binärdatei der Anwendung.

Wenn ein Entwickler eine Änderung an dem Programm machen möchte, stellt 
er als erstes das SCM auf seinem Entwicklungsrechner so ein, dass er 
alle Dateien in der Version 1.2.3 sieht. Wenn er das Programm auf seinem 
PC übersetzt, entsteht daraus ein Binary, das dem der offiziellen 
Version 1.2.3 entspricht.

Jetzt kann er Änderungen am Quellcode vornehmen und auf seinem Rechner 
bzw. der Zielhardware testen und debuggen. Diese Änderungen sieht 
zunächst nur der Entwickler selbst, da er die Datei nur auf seiner 
Festplatte geändert hat. Wenn die Änderung funktioniert, kann er sie in 
das SCM hinzufügen (einchecken). Das macht er in der Regel aber nicht 
direkt auf dem Hauptentwicklungszweig (Main-Branch), sondern auf einem 
privaten Branch, so dass es keine Auswirkungen auf andere Entwickler 
hat. Jetzt kann er noch weitere Änderungen vornehmen, testen und wieder 
auf seinem privaten Branch einchecken.

Irgendwann ist er der Meinung, dass das Feature fertig ist und in das 
offizielle Release integriert werden soll. Dazu liefert er die Änderung 
an den Integrator (also an Dich). Das geschieht in der Regel über ein 
Tool, das z.B. auch Anforderungen und Bugreports verwaltet. Falls die 
Änderung einen Fehler behebt, kann die Lieferung also direkt mit dem 
Fehler verknüpft und nachverfolgt werden, in welcher Version er behoben 
wurde. Die Zulieferung besteht u.a. aus dem Namen des privaten 
Entwicklungsbranches, der integriert werden soll, einer Beschreibung für 
die Release-Notes etc.

Der Job des Integrators ist es, aus den ganzen Zulieferungen, die die 
Entwickler gemacht haben, eine neue Version 1.2.4 zu bauen. Dazu fügt er 
alle Änderungen aus den privaten Branches der Entwickler auf dem 
Hauptbranch zusammen. Das nennt man "mergen". Falls zwei Entwickler 
Änderungen an der gleichen Datei vorgenommen haben, muss die neue Datei 
beide Änderungen enthalten. Das können Mergetools in vielen Fällen 
automatisch, manchmal muss der Integrator den Konflikt aber auch von 
Hand beheben. Wenn er es nicht alleine kann, muss er das Problem 
zusammen in den Entwicklern lösen.

Wenn alles gemergt ist, versucht der Integrator, das Programm zu 
kompilieren. Dabei kann es ebenfalls zu Fehlern kommen, die er selber 
oder zusammen mit den Entwicklern behebt. Wenn der Build erfolgreich 
war, gibt er das Binary der Testabteilung bzw. erledigt ein paar 
einfache Tests ggf. auch selbst, z.B. ob es sich überhaupt installieren 
und starten lässt.

Wenn alles funktioniert und die Testabteilung grünes Licht gibt, 
veröffentlicht er das Release intern oder extern. Falls nicht, muss er 
Rücksprache mit den Testern/Entwicklern/Projektmanagement halten, was 
unternommen wird: Wer untersucht den Fehler, welche Lieferung ist 
schuld, gibt man das Release trotzdem frei usw...

Sobald das Release 1.2.4 freigegeben wird, beginnt das Spiel von vorne. 
Die Entwickler holen sich Version 1.2.4, nehmen Änderungen vor, liefern 
sie an den Integrator und der Integrator baut Version 1.2.5.

Oft hat man auch mehrere Entwicklungsbranches parallel, z.B. eine 
öffentlich freigegebene Version wird mit Bugfixes versorgt, eine neuere 
wird gerade stabilisiert und steht kurz vor der öffentlichen Freigabe 
und neue Features werden auf verschiedenen internen Entwicklungszweigen 
vorangetrieben. Dann müssen Zulieferungen in mehrere Versionen 
integriert werden oder ein bestimmter Entwicklungszweig in einen anderen 
gemergt oder rebased werden, wobei dann ebenfalls wieder Konflikte 
entstehen können, die mit den Entwicklern zusammen gelöst werden müssen.

Außerdem gehört zu dem Job wie gesagt auch, die Bugreports/Changerequest 
zu verwalten, sie Entwicklern zuzuweisen und sich um die Buildumgebung, 
Installer/Deployment der Software etc. zu kümmern. Selber größere 
Änderungen am Code vorzunehmen und zu debuggen ist dagegen nicht 
Kernaufgabe eines Integrators, je nach Unternehmen/Abteilung kann er 
daran aber auch beteiligt sein.

von dingsda (Gast)


Lesenswert?

blro schrieb:
> Also ich bin bisher davon ausgegangen, dass es um folgendes gehen wird:
> Ich kriege den in MATLAB/Simulink von Kollegen generierten Code, bringe
> ihn auf das Steuergerät und debugge falls es nicht funktioniert.
> Anschließend dann die Weitergabe per Versionsmanagement an die Tester
> (falls das nicht auch zum Aufgabengebiet gehört).
>
> Korrigiert mich, falls ich etwas vergessen haben sollte oder falsch
> liege.

Da fehlt eine Menge... das Hauptsächliche hat ja möppel schon mal 
zusammengefasst.

"Ich kriege den in MATLAB/Simulink von Kollegen generierten Code" ist 
das, was möppel mit "im SCM mergen" beschrieben. Du darfst dir das nicht 
so vorstellen, dass die dir ihre Sources per USB-Stick oder Mail 
schicken. Stattdessen checken die den Kram in ein Versionskontrollsystem 
ein und du wirst dann diese Sources in deine Build-Umgebung 
hineinbringen - sei es über Mergen oder Umkonfigurieren.

"bringe ihn auf das Steuergerät" ist so ein bisschen naiv gedacht... da 
gibt's noch massenhaft anderen Kram, der dazwischen liegt. Das obige ist 
das Bauen einer Lib. Diese lib wird dann auf eine AUTOSAR Basis-Software 
aufgesetzt, und dieser Build wird dann vielleicht noch mal 
parametrisiert.
Teilweise wird das Basteln der Basis-SW ausgelagert - d.h. der 
SW-Integrator baut die lib und schickt sie an den Dienstleister der 
diesen Kram übernimmt, d.h. eine RTE bastelt die zu deiner lib passt. 
Damit das hin haut musst du vorher die Architektur kommunizieren, was in 
AUTOSAR über arxml passiert (google es ruhig mal).

Und das Flashen auf's Steuergerät machst dann unter Umständen auch nicht 
du - sondern die jeweiligen Fahrzeug-Verantwortlichen oder Applikateure.

Glaube ja nicht, dass du als Software-Integrator zwangsweise die ECU zu 
sehen oder sogar in die Finger bekommst. Das kann, muss aber nicht sein.

von blro (Gast)


Lesenswert?

möppel schrieb:
> blro schrieb:
>> Würdest du mir das anhand eines
>> Beispielprozesses mit Stichwörtern aufzeigen?
>
> Hast du denn wenigstens mal den Wikipedia-Artikel über SCM gelesen?

Hans schrieb:
> Es gibt typischerweise ein Versionsverwaltungssystem (Source Code
> ....

Vielen Dank für die klasse Beschreibung.

von Cyblord -. (cyblord)


Lesenswert?

blro schrieb:
> Würdest du "Branches im SCM mergen und die Ergebnisse übersetzen" etwas
> näher erläutern? Ich habe da keine Erfahrungen und die Suchmaschine gibt
> mir dazu noch nichts eindeutiges.

Und dir zahlt jemand Geld für deine Qualifikation? Na den Job scheinst 
du ja noch nicht sicher zu haben. Immerhin. Aber eigentlich müsstest du 
da noch Lehrgeld mitbringen. Wer so was fragt, hat doch noch nie 
irgendwas mit SW-Entwicklung im weitesten Sinne zu tun gehabt. Aber dann 
dick einen auf "Software-Integration" machen. E-Technik und BWL. Na 
super. Dann bleib bei deinen Leisten. Ist ja furchtbar.

von Claus M. (energy)


Lesenswert?

Cyblord -. schrieb:
> zu tun gehabt. Aber dann
> dick einen auf "Software-Integration" machen. E-Technik und BWL. Na
> super. Dann bleib bei deinen Leisten. Ist ja furchtbar.

Ist das nicht der Sinn von starren Prozessen gemäß der 26262, dass man 
an jede Stelle im Prinzip eine Putze setzen kann? Qualifizierte Leute 
braucht man nur bei Agiler Entwicklung und Co.

von Fpgakuechle K. (Gast)


Lesenswert?

blro schrieb:

> Also ich bin bisher davon ausgegangen, dass es um folgendes gehen wird:
> Ich kriege den in MATLAB/Simulink von Kollegen generierten Code, bringe
> ihn auf das Steuergerät und debugge falls es nicht funktioniert.


Wie stellst du dir das Code aufbringen und debuggen vor? Woran willst du 
erkennen das der Code fehlerhaft ist?

MfG,

https://www.inchron.de/fileadmin/INCHRON/3-PDFs/Collaboration-WS/110330_INCHRON_Collaboration_Workshop_Salzmann_BMW.pdf

von Fpgakuechle K. (Gast)


Lesenswert?

blro schrieb:

> Ich bin kein klassischer Informationstechniker.
> Meine Vita ist den verantwortlichen Personen
                     ^^^^^^^^^^^^^^^^^^^^^^^^^
> klar.

Nee nee die Verantwortung für die Erfüllung des Jobs liegt letztlich bei 
dir.
Schließlich hat man Dich gefragt ob Du dir das zutraust und Du hast ja 
nicht Nein gesagt.

MfG,

von blro (Gast)


Lesenswert?

Der Job ist für Berufseinsteiger. Was muss bei euch im Leben schief 
gelaufen sein, dass ihr hier sowas schreibt?

von Jo S. (Gast)


Lesenswert?

blro schrieb:
> Der Job ist für Berufseinsteiger. Was muss bei euch im Leben schief
> gelaufen sein, dass ihr hier sowas schreibt?

Es liegt an der Hitze.  ;)

blro schrieb:
> 70% Elektrotechnik (inklusive dem gesamten grundstudium, auch c,
> mikroprozessortechnik, grundlagen inf usw.), 30% BWL.

... dann darf man solche Fragen schon stellen!

Würde die Firma einen Inf. oder SW-Ing. mit 3-5 J. Erfahrung in der 
SW-Integr. einstellen, müßte sie dem 70k+ bezahlen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.