Hallo,
Idee, Entwurf, wie wird was gelöst, Implementierung, also die Umsetzung in Code.
Grob gesagt ist dies der Prozess richtig. Aber man sollte den Entwurf nicht unterschätzen, denn erst wenn eine Idee richtig Konzipiert ist legt man mit der Entwicklung los.
Doch wie genau bekommt man aus dem Code das abgeschlossene Programm, das Bedieneroberflächen hat
Das kommt nun ganz darauf an, es gibt diverse Technologien welche es erlauben den logischen Part deines Codes mit einer Graphischen Oberfläche (GUI) zu ,,verbinden". In der Microsoft Welt wäre das zum Beispiel WPF. In der Webentwicklung kommt man meist nicht drum herum gleich eine Oberfläche mit zu bauen.
Wie genau geht dieser Prozess von statten und wie bekommt man es hin, dass das fertige Programm individuell so aussieht wie man sich das vorstellt?
Meistens geht das ganze schon vor der Entwicklung los, um genauer zu sein in der Konzeptionsphase.
In dieser erarbeitet man meist mit dem Projektteam oder auch Stakholdern die Sachen wie:
- welche Ziele hat die Applikation ?
- Welche Features sollen enthalten sein?
- Auf welchen Plattformen soll die Applikation laufen?
- Und wie soll die Benutzeroberfläche aussehen?
Beim letzten Punkt kann man sich Beispielsweise Techniken wie dem Papier Prototyp auch ,,low-fidelity Prototyping" bedienen. Oder man wählt die sogenannte ,,Wireframe" Methode. Oft bedient man sich auch sogenannten Mokup Tools.
Und wie wählt man die richtige Sprache, bzw die richtige Kombination der Sprachen?
Aus den Ergebnissen der Konzeptionsphase kann der Entwickler nun aufgrund seiner Kenntnisse eine Wahl zu der Sprache treffen.
Wenn du Beispielsweise eine Desktop Applikation erstellen möchtest und das Unternehmen hat eine Microsoft Landschaft, dann wird man schauen dass man auch Microsoft Technologien verwendet.
Oder du möchtest Beispielsweise eine App welche auf IOS sowie Android verfügbar sein soll. Na dann wählt man eben Technologien wie zum Beispiel:
- Telerik (JavaScript)
- Xamarin (C#)
- Ionic/Cordova (JavaScript bzw AngularJS1 bzw 2)
- Phonegap (JavaScript)
- Java und Objective C bzw Swift
und falls die App ein Backend haben soll, sollte man sich auch darüber Gedanken machen.
- Worauf werden Daten gespeichert? (MySql, MS Sql, MongoDB ...)
- Wie soll auf die Daten zugegriffen werden? (SOAP, REST, MQ ...)
- Wie soll die Authentifizierung stattfinden? (BasicAuth, OAuth1, OAuth2...)
Oft wird der Entwickler eine Technologie nehmen, mit dem er schnell zu der Lösung des Problems kommt. Gerade Apps machen in diesem Zusammenhang Cross Plattform Technologien attraktiv, da man (je nach App) tiefreichendes Wissen und Erfahrung in den jeweiligen Frameworks braucht.
Wie du siehst ist eine ganze Menge zu beachten. Ich empfehle dir folgende Bücher:
- Konzeption (Requierements Engineering ISBN: 3446438939)
- Dokumentation( UML 2.0 Glasklar ISBN: 3446430571)
- Entwicklung (Java: 3836241196 ; C# 3836237148)
- Backend Themen (Verteilte Systeme: 3827372933 ; Datenbanken: 1492951048)
Ich hoffe ich konnte dir Klarheit verschaffen falls dir einige Begriffe nicht läufig sind einfach googlen ;)
Viele Grüße