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 Begriff für alle nicht physischen Bestandteile eines Computers oder einem Netzwerks. Der Begriff beschreibt dabei alle Anwendungen (z. B. Excel, Word, Calc, Powerpoint, Paint), die dafür sorgen, dass ein IT-System funktioniert.Anhand dieser Definition, sind alle Anwendungen in der folgende Liste Software, welche ein IT-System erweitern oder bestimmte Funktionen ermöglichen:
  • Android
  • macOS
  • Windows 7
  • Content Management System (CMS) (WordPress, Joomla)
  • Websites (YouTube, Amazon, Facebook)
  • Office 365
  • Mail Client (Outlook, Thunderbird, Mail, …)
  • Webbrowser

Wie wird eine Software entwickelt?

Zuerst nennen Sie die Anforderungen, welche die zu entwickelnde Software erfüllen muss. Im Folgendem listen wir Ihnen mögliche Anforderungen auf:

  • Vorgeben der Programmiersprache
  • Vorgeben der Frameworks
  • Welche Funktionen beziehungsweise Was soll die zu entwickelnde Software können?
  • Festlegen des abgeschlossenen Zustandes
  • Darlegen des Zeitplans für Austausch und Fertigstellung der Software.

Die ausgehandelten Vorgaben werden in einem Lastenheft geschrieben.

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

Mit dem akzeptieren des Angebots und das signieren eines Dienstleistungsvertrages, fangen die Entwickler, mit der Realisierung Ihrer Software an.
Dabei sind die Vorgaben, die im Lasten- und  Pflichtenheft festgehalten wurden, für die Entwickler bindend.

Während der Enwicklung können Sie Auskunft über den aktuellen Stand erhalten und erfahren dadurch an welchen Funktionen die Entwickler gerade arbeiten. In diesem Zeitraum können weitere Funktionen 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 strukturierte Ansammlung von Informationen und oder Daten. Das Sichern der Informationen findet in den meisten Fällen auf einem System statt. Zum Administrieren dieser Datenbanken werden häufig  Datenbankmanagementsysteme (DBMS) eingesetzt. Das DBMS und die dazu gehörigen Anwendungen bezeichnet man als Datenbanksystem. Die Datenbanksysteme können oft nur auf die angebundenen Datenbanken zugreifen.

Die heutzutage gängisten Datenbanksysteme modellieren die Daten fast immer in verschiedene Tabellen mit Zeilen (Werte) und Spalten (Attribute). Durch diese Vorgehensweise realisieren diese Systeme eine effiziente Verarbeitung und Abfrage der Daten. Dies erleichtert wiederum das Lesen, Verwalten, Ändern, Aktualisieren, Überprüfen und Strukturieren der Informationen. Zum aktualisieren und abrufen einer Datenbank verwenden die meisten Datenbanksysteme die Programmiersprache SQL (Structurized Query Language).

Warum verwendet man Datenbanken?

Eine Datenbank ermöglicht das Eintragen und Verknüpften von Informationen, um eine logische Kombination zu bilden. Jeder einzelne Datensatz wird dazu mit einer Beschreibung und den erforderlichen Signaturen versehen. Mit diesen Informationen kann ein Datenbanksystem die Daten weiterverarbeiten.

Die meisten Datenbanksysteme ermöglichen Ihnen Berechtigungen zu erteilen und beschränken wer mit welchem Applikation auf die Datenbank zugreifen darf. Das erleichtert das Organisieren von Datensätzen und das Ermitteln bestimmter Daten ungemein, indem man den Nutzern nur benötigte Berechtigungen erteilt. Dies realisiert es den Zugriff auf die Inhalte, den Nutzerbedürfnissen anzupassen und auszuliefern. Daraus resultiert für den Nutzer eine übersichtliche und angemessene Darstellung der Daten, 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 Unregelmäßigkeiten
  • Speicheroptimierung, wenn mehrfach auftretende Werte in einer neuen Tabelle zusammengefasst werden können

Was kann man unter Datenbankprogrammierung verstehen?

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

Dafür werden Sie üblicherweise die folgenden Fragen beantworten.

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

Anschließend entwickeln die Entwickler die Datenbank anhand der Rahmenbedingungen, die in der Planung aufgenommen wurden. Dies schließt das Erstellen, Verknüpfen und Verwalten der Berechtigungen der Tabellen ein.

Wenn die Datenbank entwickelt wurde, muss das Datenbankprogramm in der Lage sein, die eingetragenen Nutzerdaten zu speichern und auszugeben. Dazu entwickeln Datenbankprogrammierer eine Ein- und Ausgabemaske (Schnittstelle). Damit realisieren die Datenbankprogrammierer 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 pflegen einer Datenbank verstehen.

Im folgendem listen wir Ihnen mögliche Optimierungsmaßnahmen für Datenbanken auf:

  • Anlegen eines Backups
  • Entfernen von nicht benötigten Daten (nur mit Genehmigung des Auftraggebers)
  • Ändern der Struktur an die Bedürfnisse
  • Anpassen von falschen Einträgen (wenn möglich)
  • Finden von unvollständigen Datensätze, weiteres Vorgehen (Löschen, Anpassen, Ignorieren) entscheidet der Auftraggeber
  • Entfernen von doppelten Einträgen
  • Rekonstruktion der Datensätze, Neu Indexieren der Daten

Diese Maßnahmen bieten Ihnen mehrere Vorteile. Ein Vorteil besteht aus dem frei gewordenen Speicherplatz, welches Sie für neue Einträge verwenden können. Außerdem können Sie die Informationen häufig schneller, als vor der Optimierung abfragen, da nur die notwendigen Datensätze in der Datenbank Indexiert vorliegen.

Welche Datenbanksysteme gibt es?

Je nach Verwendung werden unterschiedliche Datenbanksysteme verwendet. Im folgendem sind einige der bekanntesten Datenbanksysteme aufgelistet:

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

 

Welche App-Arten gibt es?

Es gibt die Folgende App-Arten:

  • Native App
    • für ein Zielsystem optimiert
    • kann auf Systemspezifische Objekte zugreifen
    • Aufgrund von Systemabhängigkeiten
  • Hybrid App
    • das Benutzen von Container, erlaubt das Ausführen der Applikation auf mehreren Zielsystemen
    • verliert Erkennungsmerkmal der jeweiligen Systeme
    • für jedes Zielsystem werden Interpreter erstellt
    • Erweiterungen und Wartungsarbeiten an der Applikation sind vergleichsweise zu Native App reduziert, da die Aktualisierung, so lange es nicht die Interpreter betrifft nur einmalig programmiert wird, wo hingegen diese bei Native App für jedes Zielsystem einzeln implementiert werden muss.
  • Cross-Platform-App
    • Applikation für mehrere Zielsysteme
    • Erkennungsmerkmale der jeweiligen Zielsysteme gehen nicht verloren, da diese Elemente zu Systemabhängige Elemente konvertiert werden
    • durch die Verwendung einer einzigen Codebasis wird die Entwicklung und Wartung vereinfacht
  • 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 Cross und Native-Plattform abgegrenzt werden.

Native Programmiersprachen sind für die jeweiligen Betriebssysteme optimiert. Daraus ergibt es ein eingeschränkter Zugriff auf die Funktionen der anderen Systeme.  Der Entwicklungsaufwand 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 unnötig, da dieser in der Menüzeile verankert ist. Dadurch ergeben sich winzige aber bedeutsame Unterschiede in der Entwicklung und können die Benutzererfahrung der App stark beeinflussen.

Die Entwicklungsdauer einer App kann durch mehrere Aspekte beeinflusst werden. Mögliche Einflüsse wären, für welche der unterschiedlichen Zielsysteme entwickelt werden soll, der Umfang der APP und um welche Entwicklungs Art verwendet wird. Bei der Nativen Programmierung kann der Entwicklungsaufwand ansteigen, wenn für mehrere Zielsysteme entwickelt wird, da für alle Zielsysteme eine eigene Applikationen entwickelt wird. Daraus ergibt sich ein steigender Wartungsaufwand, da die Probleme(Bugs) bzw. die Lücken für alle Applikationen einzeln implementiert, getestet und übernommen werden müssen. Aufgrund dessen wurden Programmiersprachen für Hybride Apps entwickelt, welche die sich überschneidenen Funktionen der Systeme zusammenfassen. Die außergewöhnlichen Sonderfälle, welche durch Systemspezifische Eigenschaften zustande kommen, werden entsprechend geprüft und unterschiedlich verarbeitet. Weshalb der Programmieraufwand von mehreren Applikationen (eine App je Zielsystem), auf eine Applikation reduziert wird. Der Wartungsaufwand reduziert sich ebenfalls, da die Anpassungen nur einmal entwickelt werden.

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

  • Android Smartphones:
    • 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
  • React Native
  • Xamarin

Was ist Webentwicklung?

Webentwicklung befasst sich im wesentlichen, damit Websites und oder Applikationen für das Web (Internet) zu erstellen. Dies umfasst folgende Tätigkeiten:

Was sind die Vorteile einer Webentwicklung?

Bei einer Webentwicklung finden eine Vielzahl an Strategien und Werkzeuge Verwendung. Diese Strategien und Werkzeuge können Ihnen es ermöglich selbstständig an Ihrem Blog zu arbeiten und je nach Verwendungszweck anzupassen. Zusätzlich können Sie problemlos, rasch und flexibel neuen Inhalt hinzufügen. Dies wird durch die einheitliche Designstruktur und dem verwendeten Content Management System realisiert. Eine gelungene Webentwicklung umfasst das optimieren Ihrer Webseite für Suchmaschinen, wodurch die Seitenaufrufe auf Ihrem Blog ansteigt. Daraus resultiert, dass Ihr Blog an Popularität gewinnt und im Ranking der Suchergebnisse aufsteigt.

Ein Nachteil besteht daraus, dass  Ihre Website, sofern noch nicht geschehen auf eine aktuelle Struktur umgestellt wird. Während dieser Umstellung ist Ihr Blog für eine kurze Dauer nicht erreichbar. Dies sollten Sie bewusst in Kauf nehmen, da die unzähligen und langfristigen Vorteile den sehr kurzen Ausfall ausgleichen.

Was sollte eine Moderne Website können?

Eine Moderne Landingpage sollte folgende Grundanforderungen erfüllen:

  • Mobile optimiert
  • sichere Datenübertragung mithilfe von HTTPS mit SSL
  • Corporate Design bspw. anwenden eines Logos und Farben, um so den Wiedererkennungswert der Internetseite zu steigern
  • Nutzerfreundliche Landingpage bspw. durch strukturieren des Seiteninhalts
  • Ansprechende Seite, durch das Anwenden von Bild-Elementen an geeigneten Stellen
  • Sharen der Seite auf Sozialen Medien bspw. Youtube
  • SEO-Optimierung, um die Webseite für potentielle Kunden auffindbar zu machen

Je nach Verwendung Ihrer Website könnten folgende Funktionen auch eine wichtige Rolle spielen:

  • Kontaktmöglichkeiten, um bspw. Anfragen und Probleme zu klären
  • WebShop, um bspw. Artikel und Dienstleistungen anzubieten
  • Kommentar- bzw. Bewertungsfunktion, um Kundenerfahrungen zu erhalten, um anhand dessen das Nutzererlebnis zu steigern

Was sind Frameworks?

Ein Framework ist ein Programmiergerüst, welches in der Softwareentwicklung Verwendung findet, besonders im Zusammenhang mit objektorientierter Programmierung (OOP) und komponentenbasierten Entwicklungsansätze.

Welche Frameworks gibt es für PHP?

Für PHP finden verschiedene Frameworks Anwendung. Im Folgendem werden einige dieser Frameworks aufgezählt:

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