Softwareentwicklung

Softwareentwicklung

Nachhaltige Softwareentwicklung

Die Softwareentwicklung (Frontend und Backend Entwicklung) von Saticon basiert auf einem innovativen und erfahrungsreichen Wissensstand. Dieser fußt auf jahrelanger Zusammenarbeit mit kleinen und großen mittelständischen Unternehmen . Dabei haben wir eine höchst strukturierte Arbeitsweise für eine agile und flexible Softwareerstellung entwickelt. Dadurch können wir Ihnen individuelle Softwarelösungen bieten, die optimal auf Ihre Anforderungen und Ihr Unternehmen zugeschnitten sind.

Datenbankentwicklung

Eine gut entwickelte Datenbank, die stabil, schnell und sicher funktioniert, bietet Unternehmen die Basis für erfolgreiche Arbeitsabläufe.

Daten sind heutzutage ein wichtiger Bestandteil fast jeden Unternehmens. Genau deshalb sollte die Geschwindigkeit der Verarbeitung und die Datensicherheit höchste Priorität haben. Unser Fokus in der Softwareentwicklung liegt vor allem auf der Datenbankprogrammierung und Zend Framework . Auf Basis dieser unterschiedlichen Softwarelösungen können wir Ihnen den Arbeitsalltag nicht nur erleichtern, sondern auch für mehr Seriosität und Flexibilität in Ihrem Unternehmen sorgen.

Webentwicklung

Die moderne Webentwicklung bietet einem heutzutage die Möglichkeit, die Attraktivität einer Website mit verschiedenen Komponenten zu erhöhen. Damit ist aber auch die Komplexität in der Web Entwicklung gestiegen. Ansprechende Inhalte gepaart mit der Möglichkeit des direkten Kontaktes haben heute eine hohe Priorität. Aber auch eine gelungene Präsentation von Bildmaterial, sowie eine schnelle Performance sind bei hochwertigen Webseiten ein wichtiger Bestandteil.

Aus diesen Gründen programmieren wir dynamische Internetseiten mit JavaScript und PHP. Unsere Software Entwickler nutzen beispielsweise nodeJS und vueJS, in Kombination mit HTML 5 und CSS 3, um ein ansprechendes Design zu erstellen. Damit können wir eine gut funktionierende und ansprechende Website für Sie erstellen, die modern, sicher in der Anwendung und unkompliziert in der Handhabung ist.

Softwareentwicklung

Auch in der Datenbankprogrammierung und der objektorientierten Programmierung ist auf uns Verlass. So verfügen wir über ein umfangreiches Know-how in Java und MySQL. Aber auch darüber hinaus sind wir vielseitig aufgestellt. Dadurch können wir uns bei der Entwicklung ganz nach Ihren Vorstellungen und Wünschen richten.

Daher steht Saticon bei der Softwareentwicklung für innovative, vielseitige und flexible Software Lösungen. Und für Lösungen, die Sie in keinem Fall im Stich lassen. Überzeugen Sie sich von unserer Arbeit und fordern Sie noch heute ein erstes Gespräch an.

Was ist eine Software?

Software ist der Sammelbegriff für alle nicht physischen Bestandteile eines Computers, eines Netzwerks oder eines mobilen Endgeräts.
Der Begriff umfasst dabei alle Programme und Anwendungen (z. B. Betriebssysteme, Webbrowser, Websites, Apps, Videoplayer), die dafür sorgen, dass ein IT-System für den Benutzer funktioniert.

Aus dieser Definition heraus, ist alles in der folgende Liste Software:

  • Android
  • Windows 10 & Windows 11
  • WordPress
  • Websites
  • Office 365
  • Mail Client (Outlook, Thunderbird, Mail, …)
  • Joomla
  • Webbrowser
  • YouTube
  • Amazon
  • Facebook

Wie wird eine Software entwickelt?

Zuerst formulieren Sie die Anforderungen, welche die zu entwickelnde Software erfüllen muss.
Im folgendem sind mögliche Anforderungen:

  • Festlegen der Programmiersprache
  • Definieren der Frameworks
  • Welche Funktionen beziehungsweise Was soll die zu entwickelnde Software können?
  • Konkretisieren des fertigen Zustandes
  • Darlegen der Zeitrahmen für Informationsaustausch und Fertigstellung der Software.

Die festgelegten Anforderungen werden in einem Lastenheft festgehalten.

Anschließend erstellen die Dienstleister ein Angebot, wie diese die zu entwickelnde Software realisieren möchten, dies wird in einem Pflichtenheft festgehalten.

Mit dem akzeptieren des Angebots und das unterzeichnen eines Dienstleistungsvertrages, beginnen die Entwickler, mit der Entwicklung Ihrer Software.
Dabei sind die Vorgaben, die im Lasten und  Pflichtenheft festgehalten wurden, für die Entwickler bindend.

Währenddessen können Sie Informationen über den aktuellen Entwicklungsstand erhalten und wissen dadurch an welchen Funktionen die Entwickler gerade arbeiten. In diesem Zeitraum können weitere Anforderungen in das Pflichten- bzw. Lastenheft aufgenommen werden, dies setzt jedoch das Einverständnis aller beteiligten Parteien (Auftraggeber und Auftragnehmer) voraus.

Was ist eine Datenbanken?

Eine Datenbank ist eine organisierte Ansammlung von Daten und oder strukturierter Informationen. Das Speichern der Daten findet für gewöhnlich auf einem elektronischen Computersystemen statt. Datenbankmanagementsystem (DBMS) verwalten in der Regel eine und oder mehrere Datenbanken. Zusammen mit dem DBMS und den zugehörigen Anwendungen bezeichnet man das System als Datenbanksystem. Die Datenbanksysteme können im Regelfall nur auf die angebundenen Datenbanken zugreifen.

Die heutzutage gebräuchlichsten Datenbanksysteme modellieren die Daten in der Regel in verschiedene Tabellen mit Zeilen und spalten. Durch diese Vorgehensweise ermöglichen die Datenbanksysteme eine effiziente Verarbeitung und Abfrage der Daten. Dies erleichtert wiederum das Abrufen, Verwalten, Ändern, Aktualisieren, Kontrollieren und Organisieren der Daten. Zum beschreiben und abrufen einer Datenbank verwenden die meisten Datenbanksysteme die Programmiersprache SQL (Structurized Query Language).

Warum verwendet man Datenbanken?

Eine Datenbank ermöglicht das speichern von Daten und verknüpft diese miteinander, um eine logische Kombination zu bilden. Dazu wird jeder einzelne Datensatz mit einer Metabeschreibung und den erforderlichen Informationen versehen. Anhand dieser Informationen kann ein Datenbanksystem die Daten weiterverarbeiten.

Die meisten Datenbanksysteme ermöglichen Ihnen Berechtigungen zu vergeben und festzulegen wer mit, welchem Programm auf die Datenbank zugreifen darf. Das erleichtert das Verwalten von Datensätzen und das Abrufen bestimmter Informationen ungemein, indem man den Nutzern nur bestimmte Berechtigungen erteilt. Dies ermöglicht es den Zugriff auf die Inhalte den Nutzerbedürfnissen anzupassen und auszuliefern. Daraus resultiert für den Nutzer eine klare und angemessene Darstellung der Informationen, die für ihn relevant sind.

Warum normalisiert man Datenbanken?

Datenbanken werden normalisiert, um Daten einzeln von einander getrennt Betrachten zu können. Des weiteren ermöglicht es eine schnellere Suche, da die Suche spezifisch auf Teilwerte des Datensatzes bezogen ist. Außerdem kann man das lesen und ausgeben der Daten beschleunigen, da die Daten in unterschiedliche Tabellen und Spalten eingetragen werden, wodurch man selektiv die Werte auswählt, die gerade benötigt werden.

Daraus folgt dass folgende Ansätze und Verbesserungen hinter der Normalisierungen stecken:

  • Optimieren der Lese- und Übertragungsoperationen
  • Strukturieren der Daten
  • leichtere suche in den Datensätzen, da Spalten selektiv Auswählbar sind
  • reduzieren bzw. erkennen von Redundanzen
  • erkennen von Anomalien
  • Speicheroptimierung, wenn mehrfach auftretende Werte in einer neuen Tabelle zusammengefasst werden können

Was kann man unter Datenbankprogrammierung verstehen?

Unter Datenbankprogrammierung ist die Planung und Entwicklung der Datenbank, sowie das erstellen der Ein- und Ausgabemaske der Daten zu verstehen.
Dazu planen die Entwickler als erstes die Datenbank.

Dafür beantworten Sie üblicherweise die folgenden Fragen .

  • Welche Daten werden erhoben?
  • Wie werden die Daten gespeichert?
  • In welcher Abhängigkeit stehen die Daten zu einander?

Anschließend erstellen die Entwickler die Datenbank anhand der Informationen, die in der Planung festgehaltenen wurden. Dies schließt das Erstellen, Verknüpfen und Verwalten der Zugriffsberechtigungen der Tabellen ein.

Wenn die Datenbank entwickelt wurde, muss das Datenbankprogramm in der Lage sein, die eingegebenen Nutzerdaten zu speichern und auszugeben. Dazu entwickeln Datenbankprogrammierer eine Ein- und Ausgabemaske (Schnittstelle). Damit ermöglichen die Entwickler den Zugriff auf die Datenbank. Mit diesem Zugriff können die Datensätze in die Datenbank geschrieben und für die Nutzer ausgegeben werden.

Was versteht man unter Datenbankpflege?

Unter einer Datenbankpflege können Sie das optimieren einer Datenbank verstehen.

Im folgendem können Sie mögliche Optimierungsmaßnahmen für Datenbanken vorfinden:

  • Erstellen einer Sicherheitskopie
  • Löschen von nicht benötigten Daten (mit Einverständnis des Auftraggebers)
  • Anpassen der Tabellenstrukturen an die aktuellen Bedürfnisse
  • Korrigieren fehlerhaften Einträge (sofern möglich)
  • Finden von unvollständigen Datensätze, weiteres Vorgehen (Löschen, Anpassen, Ignorieren) entscheidet der Auftraggeber
  • Entfernen von Duplikaten
  • Rekonstruktion der Datensätze, Neu Indexieren der Daten

Diese Maßnahmen bieten Ihnen zwei Vorteile. Der erste Vorteil besteht aus dem frei gewordenen Speicherplatz, welches Sie für neue Dateneinträge wiederverwenden können. Außerdem können Sie die Daten oft schneller, als zuvor abrufen, da nur die notwendigen Datensätze in der Datenbank Indexiert vorliegen.

Welche Datenbanksysteme gibt es?

Je nach Verwendungszweck werden verschiedene Datenbanksysteme verwendet.
Im folgendem einige der bekanntesten Datenbanksysteme:

  • Oracle
  • MySQL
  • Microsoft SQL Server
  • PostgreSQL
  • MongoDB
  • Redis
  • MariaDB
  • SQLite
  • und weitere

 

Welche App-Arten gibt es?

Es gibt {die |}Folgende App-Arten:

  • Native App
    • {optimierte App für ein Zielsystem|für ein Zielsystem optimiert}
    • kann {auf {Systemelemente|Systemobjekte|System abhängige {Objekte|Elemente}|Systemspezifische {Elemente|Objekte}} zugreifen|{Systemelemente|Systemobjekte|System abhängige {Objekte|Elemente}|Systemspezifische {Elemente|Objekte}} verwenden}
    • {Für jedes Zielsystem {muss man eine eigene {App|Applikation} {entwickeln|programmieren}|wird eine eigene {App|Applikation} {entwickelt|programmiert}}, {da {bestimmte |}Systemabhängigkeiten|Abhängigkeiten} vorliegen|Aufgrund von {bestimmten |}{Systemabhängigkeiten|Abhängigkeiten}}|Aufgrund der {Systemabhängigkeit|Abhängigkeiten} muss für jedes Zielsystem eine eigene {App|Applikation} {entwickelt|programmiert} werden}
  • Hybrid App
    • das {Verwenden|Benutzen} von Container, {ermöglicht|erlaubt} das Ausführen der {Applikation|App} auf mehreren Zielsystemen
    • verliert {Erkennungsmerkmal|Eigenheiten} der {jeweiligen |}Systeme
    • {{erstellen|entwickeln|programmieren} von Interpretern, für jedes Zielsystem einer|es muss ein Interpreter pro Zielsystem {entwickelt|erstellt} werden|für jedes Zielsystem werden Interpreter {entwickelt|erstellt|programmiert}}
    • Erweiterungen und Wartungsarbeiten an der {App|Applikation} sind {vergleichsweise|Verglichen} zu Native App {reduziert|verringert|geringer}, da die {Aktualisierung|Updates}, {sofern|so lange} es nicht die Interpreter betrifft nur einmalig {eingepflegt|implementiert|entwickelt|programmiert|hinzugefügt} wird, {wo hingegen diese bei Native App für jedes Zielsystem einzeln implementiert werden muss|bei Native Apps muss {die {Aktualisierung|Erweiterung}|das Update} für jedes {Zielsystem|System} {einzeln |}{implementiert|entwickelt|programmiert|hinzugefügt} werden}.
  • Cross-Platform-App
    • {App|Applikation} für mehrere Zielsysteme
    • {Erkennungsmerkmale|Eigenheiten} der {jeweiligen |}{Systeme|Zielsysteme} {bleiben erhalten|gehen nicht verloren}, da {diese|bestimmte} Elemente zu Systemabhängige Elemente {konvertiert|umgewandelt|übersetzt} werden
    • {durch die Verwendung einer einzigen Codebasis wird die Entwicklung und Wartung vereinfacht|der Entwicklungs- und Wartungsaufwand, wird durch das Verwenden einer einzigen Codebasis {{sehr |}stark |}{vereinfacht|reduziert}}
  • Web App
    • ausführen der Applikation im Browser des Endgeräts
    • Kompatibilität mit jedem System, unter Verwendung eines aktuellen Browsers
    • Kann nicht auf Systemelemente zugreifen
    • Nur mit Internetverbindung verwendbar
  • Progressive Web App (PWA)
    • Kombiniert Web App und Native App
    • Die Native-App speichert, aktualisiert und führt die Web-App auf dem Mobilgerät aus und ermöglicht die Offline Nutzung
    • beim Verwenden der App, muss beim erstmaligen öffnen eine Internetverbindung vorliegen
    • Kann auf Systemelemente zugreifen, um so bspw. Push-Benachrichtigungen zu senden

Welche Programmiersprachen werden für die App-Entwicklung verwendet?

Es gibt unterschiedliche Programmiersprachen für das Entwickeln von Applikationen (App). Diese können zwischen Native und Cross-Plattform unterschieden werden.

Native Programmiersprachen sind für die jeweiligen Betriebssysteme optimiert. Daraus resultiert ein unvollständiger Zugriff auf die Funktionen der anderen Systeme.  Der Aufwand steigt durch das Berücksichtigen der Eigenschaften der einzelnen Systeme. Für ein iPhone-System ist der Zurück-Button beispielsweise unerlässlich, jedoch für ein Android-System überflüssig, da dieser in der Menüzeile integriert ist. Dadurch ergeben sich winzige aber wesentliche Unterschiede in der App-Entwicklung und können die Benutzerfreundlichkeit der Applikation beeinflussen.

Die Entwicklungsdauer einer App kann durch unterschiedliche Faktoren beeinflusst werden. Mögliche Aspekte wären, für welche der verschiedenen Systeme entwickelt werden soll, der Umfang der APP und um welche Entwicklungs Art es sich handelt. Bei der Nativen Programmierung kann der Entwicklung- und Wartungsaufwand ansteigen, wenn für verschiedene Systeme entwickelt wird, da für jedes Zielsystem eine eigene Applikationen entwickelt wird. Daraus ergibt sich ein steigender Wartungsaufwand, da die Lücken für alle Applikationen einzeln implementiert, getestet und übernommen werden müssen. Anhand dessen wurden Programmiersprachen entworfen, welche die gemeinsamen Funktionen der Systeme zusammenfassen. Die außergewöhnlichen Sonderfälle, die durch Systemspezifische Eigenheiten zustande kommen, werden geprüft und je nach System unterschiedlich verarbeitet. Wodurch der Programmieraufwand von unterschiedlichen Anwendungen (eine Applikation je Zielsystem), auf eine App reduziert wird. Der Wartungsaufwand wird ebenfalls verringert, da die Erweiterungen nur einmal entwickelt werden.

Die folgende Aufzählung listet die gängigsten Native-Programmiersprachen für die Systeme Android, iPhone und Windows auf:

  • Android:
    • Java
    • Kotlin
  • iPhone:
    • Swift
    • Objective-C
  • Windows:
    • C#
    • XAML

In der folgende Liste sind die Cross-Plattform Programmiersprachen, welche Systemunabhängige Komponenten zusammenfassen aufgelistet:

  • Dart
  • Flutter
  • Xamarin

Was ist Webentwicklung?

Webentwicklung befasst sich im wesentlichen, damit Webseiten und oder Apps für das Internet zu aufzubauen. Dies umfasst folgende Tätigkeiten:

Was sind die Vorteile einer Webentwicklung?

Bei einer Webentwicklung finden unterschiedliche Strategien und Tools Verwendung. Diese Strategien und Werkzeuge ermöglichen es Ihnen selbstständig an Ihrem Blog zu arbeiten und an der aktuellen Situation anzupassen. Zusätzlich können Sie simpel, kurzfristig und flexibel neuen Inhalt veröffentlichen.
Dies wird durch die einheitliche Designstruktur und dem verwendeten Content Management System (CMS) ermöglicht.
Eine gelungene Webentwicklung umfasst das verbessern Ihrer Website für Suchmaschinen, wodurch das Besucheraufkommen für Ihre Seite ansteigt. Daraus resultiert, dass Ihre Website an Bedeutung gewinnt und im Ranking der Suchergebnisse aufsteigt.

Der einzige Nachteil besteht darin, dass  Ihr Blog, sofern noch nicht geschehen auf eine moderne Struktur umgestellt wird. Während dieser Anpassung ist Ihre Seite für eine sehr kurze Dauer nicht aufrufbar. Dies sollten Sie bewusst in Kauf nehmen, da die unzähligen und langfristigen Vorteile den kurzen Ausfall überwiegen.

Was sollte eine Moderne Website können?

Eine Moderne Webseite sollte folgende Grundanforderungen erfüllen:

  • Mobile optimiert
  • sichere Datenübertragung mithilfe von HTTPS mit SSL
  • Corporate Design bspw. anwenden eines Firmenlogos und Farben, um so den Wiedererkennungswert der Website zu steigern
  • Nutzerfreundlicher Seiteninhalt bspw. durch strukturieren des Seiteninhalts
  • Ansprechende Seite, durch das Verwenden von Bild-Elementen an geeigneten Stellen
  • Sharen der Seite auf Sozialen Medien bspw. Facebook
  • SEO-Optimierung, um die Landingpage für potentielle Interessenten auffindbar zu machen

Je nach Verwendungszweck Ihrer Landingpage könnten folgende Funktionen auch eine wichtige Rolle spielen:

  • Kontaktmöglichkeiten, um bspw. Probleme zu klären
  • WebShop, um bspw. Waren und Dienstleistungen anzubieten
  • Kommentar- bzw. Bewertungsfunktion, um Nutzererfahrungen zu erhalten, um anhand dessen das Nutzererlebnis zu optimieren

Was sind Frameworks?

Ein Framework ist ein Gerüst, welches in der Entwicklung verwendet wird, insbesondere im Zusammenhang mit objektorientierter Programmierung (OOP) und komponentenbasierten Programmieransätze.

Welche Frameworks gibt es für PHP?

Für PHP werden verschiedene Frameworks verwendet. Im Folgendem eine Aufzählung dieser:

  • Laravel
  • Symfony
  • CodeIgniter
  • Zend Framework / Laminas Project
  • Yii (Framework)
  • CakePHP
  • Slim
  • Phalcon