Mit der Nutzung dieser Webseite akzeptieren Sie unsere Nutzung von Cookies. Weitere Informationen über Cookies finden Sie hier
Zustimmen
Infopulse - Softwareentwicklung & Infrastruktur-Management-Services
Mit der Nutzung dieser Webseite akzeptieren Sie unsere Nutzung von Cookies. Weitere Informationen über Cookies finden Sie hier
Zustimmen
Infopulse - Softwareentwicklung & Infrastruktur-Management-Services
Infopulse - Softwareentwicklung & Infrastruktur-Management-Services
Angebot
Angebot anfordern Bitte füllen Sie dieses kurze Formular aus und wir senden Ihnen in Kürze ein kostenloses Angebot zu.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Abonnieren Sie unsere Updates Seien Sie unter den Ersten, die exklusive Einblicke in die IT, die Innovationen und Best Practices erhalten.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Subscribe to our Vacancies Please fill in this quick form to be among the first to receive our updates.
* Required fields
Your privacy is important to us. We will never share your data.
Abonnieren Sie unsere Updates Seien Sie unter den Ersten, die exklusive Einblicke in die IT, die Innovationen und Best Practices erhalten.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Photo of Dmitry Korolev Senden Sie eine E-Mail an Dmitry Korolev Bitte füllen Sie dieses kurze Formular aus, um unseren Experten direkt zu kontaktieren.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Infopulse - Expert Software Engineering, Infrastructure Management Services
Read the Full Case Study Don't miss the most interesting part of the story!
Submit this quick form to see the rest and to freely access all case studies on our website.
* Required fields
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.

Unternehmensansatz zur Entwicklung mobiler Anwendungen, Teil 1: Studium der Anforderungen

Der aktuelle Trend und die Nachfrage nach mobilen Geschäftsanwendungen boomen heutzutage. Mobil verfügbar zu sein, ist sehr wichtig für moderne Unternehmen. Mobile Enterprise-Anwendungen digitalisieren den Workflow und helfen den Mitarbeitern und den Kunden der Unternehmen, jederzeit und an jedem Ort auf die Unternehmensressourcen zuzugreifen. Von kleinen alltäglichen Planern bis hin zu den firmeneigenen sozialen Netzwerken und Datenanalyse-Tools für die Unternehmens-Governance – diese Anwendungen sparen Milliarden ein, indem die Unternehmen mobil bleiben. Die Entwicklung solcher Anwendungen erfordert jedoch einen spezifischen Ansatz.

Wir starten die Artikelreihe, die sich der industriellen Entwicklung von Anwendungen für die Unternehmenskunden widmet, mit dem Artikel über die Festlegung der ersten Anforderungen an eine Business-App.

Wonach die Kunden fragen

Planung ist wichtig. Eine mobile Business-App wird häufig als Ergänzung zur Webanwendung geliefert. Die Gründe für die Entwicklung einer mobilen App können unterschiedlich sein, z. B. ist diese notwendig, wenn die adaptive Schnittstelle einer Webanwendung für mobile Geräte unzureichend ist oder wenn die geplante Funktionalität beträchtlich variieren soll. In diesem Fall muss die mobile Applikation vollständig in die Informationsumgebung des Unternehmens integriert werden, was die Anwendungsarchitektur massiv beeinflussen kann. All dies sollte schon in der Planungsphase berücksichtigt werden.

Unternehmensansatz zur Entwicklung mobiler Anwendungen, Teil 1: Studium der Anforderungen - Infopulse - 175164

Continuous support and updates require accuracy and good order. Kontinuierliche Unterstützung und die Updates erfordern Genauigkeit und strikte Ordnung. Wenn die Webanwendung weiterentwickelt wird, muss die mobile Applikation regelmäßig aktualisiert werden, was eine enorme Herausforderung für jedes Unternehmen darstellt.

Der menschliche Faktor spielt bei dem Erfolg Ihres Projekts immer eine große Rolle. Im Laufe der Softwareentwicklung können Fachleute kommen und gehen, in andere Projekte wechseln, krank werden usw. Die App-Architektur und die Dokumentation müssen perfekt geordnet sein, damit sich die neuen Projektbeteiligten schnell anpassen können, auch wenn sie für eine andere Firma arbeiten oder gearbeitet haben. Wenn sich der Quellcode Ihres Produkts als ein zufälliges Ergebnis des Bewusstseinsstroms eines Entwicklers entpuppt, wird Ihr Team harte Zeiten bei seiner Wartung erleben.

Nicht-funktionale Anforderungen

Neben den funktionalen Anforderungen, die von einem Kunden direkt festgelegt werden, sollte Ihre Anwendung alle Kriterien erfüllen. Diese Kriterien sind in der Regel in der Architekturdokumentation und dem so genannten Service-Level Agreement (SLA) beschrieben.

Die meisten dieser nicht-funktionalen Anforderungen entsprechen den folgenden Kriterien:

  • Performance
  • Plattformkompatibilität
  • Sicherheit
  • Skalierbarkeit
  • Flexibilität
  • Benutzerfreundlichkeit
  • Tests

Lassen Sie uns jedes Kriterium der Reihe nach einzeln anschauen.

Performance

Die gängige Praxis ist, klare Anforderungen an die Gesamtladezeit sowie an jede asynchrone Anfrage zu haben. Natürlich sollte eine Anwendung den Benutzer mit langsamen Reaktionszeiten nicht ärgern, geschweige denn mit zufälligem Hängen oder Abstürzen.

Ein kleiner Fall aus der Praxis von Infopulse veranschaulicht das. Bei einem Lasttest haben wir herausgefunden, dass eine der Anfragen 45 Sekunden bearbeitet wird – genau 45mal länger als es akzeptabel wäre. Zum Glück konnte dieser Fehler schnell und ohne großen Aufwand behoben werden, bevor das Produkt in die Produktion ging.

Plattformkompatibilität

Neuere Plattformversionen bringen neue Funktionalitäten mit sich und stellen gleichzeitig neue Herausforderungen für die Entwickler dar. Die Rückwärtskompatibilität mit den veralteten Plattformen kann manchmal zusätzliche Herausforderungen und Probleme hervorrufen.
Die Entwicklung, das Testen und die weitere Unterstützung eines Produkts für verschiedene Plattformversionen haben einen großen Einfluss auf die Werkzeuge der Wahl sowie auf die Kosten, die Ressourcen und die Zeit, die für die Implementierung erforderlich sind.
So haben wir bei einem Kompatibilitätstest einer iOS-10-App für unseren globalen Kunden beispielsweise entdeckt, dass der Text auf dem “Anmelden”-Button in chinesischen oder japanischen Zeichen angezeigt wurde. Wir mussten nur eine Zeile im Code ändern, um diesen Fehler zu beheben, aber wir mussten die App neu kompilieren, den Vollzyklus-Test noch einmal durchführen, die App veröffentlichen und für alle Benutzer neu installieren. All das musste getan werden, bevor die neue Version an die Endbenutzer auf der ganzen Welt rausgeht.

Sicherheit

Bei der Entwicklung der Geschäftsanwendungen sollte der Sicherheitsaspekt aufgrund der vertraulichen Natur der Daten besonders berücksichtigt werden. Die Kunden werden alles andere als glücklich sein, wenn wertvolle Unternehmensdaten in die Hände von Hackern oder Wettbewerbern gelangen. Daher werden alle Technologien und ausgelagerten Komponenten immer im Hinblick auf die Sicherheit geprüft, während das Endprodukt vor der Freigabe auf Schwachstellen gescannt wird.
Sensible Daten wie Log-in oder Passwort werden zum Beispiel entweder verschlüsselt oder gar nicht gespeichert. Die Benutzerauthentifizierung sollte über das Sicherheitsprotokoll geschützt werden, während der Zugriff auf die Daten über die Berechtigungszuweisung und Benutzerrollen gesteuert werden kann.

Skalierbarkeit

Seinem Wesen nach ist eine normale mobile App ein Seitensatz mit Übergängen dazwischen. Eine App-Seite kann ein Formular mit Steuerelementen und Datenvisualisierung, eine Liste oder eine Kombination daraus enthalten. Wenn die Datenmenge ansteigt, kann sich die Anwendung verlangsamen, sie kann Speicherplatzverluste aufweisen, Daten verlieren und abstürzen. Um solche Probleme zu vermeiden, verwenden die Entwickler unterschiedliche Techniken, wie dynamisches Datenladen, Caching und wiederholte Verwendung visueller Komponenten, die die Darstellung der App auf verschiedenen Bildschirmversionen gewährleisten. Wenn diese Aspekte übersehen werden, kann das Unternehmen schwere Schäden erleiden.
Die Skalierbarkeit ist sehr wichtig für Ihre App. Wenn Sie Ihre App von Anfang an mit den Möglichkeiten zur Skalierbarkeit konzipieren, wird sie im Laufe der Entwicklung minimale Investitionen erfordern. Wenn Sie erst während der Entwicklungsphase über die Skalierbarkeit nachdenken, wird die Implementierung eher zeit- und ressourcenaufwändiger sein. Im schlimmsten Fall erfolgt die Skalierbarkeitsplanung zum Ende des Entwicklungszyklus hin, d.h. während der Akzeptanz- oder Lasttests. Bei diesem Szenario sollten Sie sich auf unvorhersehbare Konsequenzen und ernsthafte Probleme einstellen.
Auch wenn wir beispielsweise nicht mehr als 100 Datensatzeinträge erwarten, ist es immer noch sinnvoll, Raum für zusätzliche On-Demand-Seitenlast (z.B. 20 Werte zu einem Zeitpunkt) bereitzustellen.

Flexibilität

Wir alle haben unsere eigene Vision von Kreativität und diese Aussage trifft auch für die Softwareentwicklung absolut zu. Softwareentwickler sind sehr kreative Menschen. Ihre Kreativität sollte aber nicht chaotisch sein. Wenn Sie ein Projekt starten, müssen Sie sich auf eine Entwicklungssyntax einigen, indem Sie einen „Project Syntax Style Guide“ erstellen. Darin müssen Sie die Entwicklungsumgebung aufsetzen, klare Projektregeln festlegen, wobei statistische Codeanalysatoren zu den besten Freunden der Entwickler werden. Andernfalls kann der Anwendungscode schnell zu einem unbrauchbaren Durcheinander werden.
Angenommen, unsere Anwendung sollte die Option für Telefonate beinhalten. Da jede Plattform (iOS, Android, Windows) eine spezielle Schnittstelle zu diesem Zweck hat, würden die Entwickler von der Verwendung eines universellen geteilten Codes für den Anrufdienst nur profitieren. Um diese Aufgabe zu lösen, können einige Codierungsmuster wiederverwendet werden, wie z.B. das Repository, die Steuerungsumkehr (IoC) usw., was zugleich die reibungslose Durchführung der Modultests ermöglicht.

Benutzerfreundlichkeit

Benutzerfreundlichkeit ist ein sehr wichtiger Aspekt bei jeder Anwendung, der niemals vernachlässigt werden sollte.
Hier ist ein einfaches Beispiel. Die Landschaftsansicht für Android-Geräte erfordert separate Layouts, zusätzliche Programmierung, mit all den daraus folgenden Konsequenzen. Die Porträtansicht ist jedoch ein weithin akzeptierter Standard für jede Geschäftsanwendung. Wir müssen genau wissen, ob unsere Anwendung die Landschaftsansicht unterstützen soll oder ob unsere Benutzer nur die Porträtansicht benötigen.
Ein anderes Beispiel ist wie folgt. Was ist der beste Weg, Ausnahmen zu verarbeiten? In der Regel wird der Benutzer einen einfachen Fehlerbericht sehen, während die Details in einem Protokoll gespeichert werden. Gleichzeitig sollte das Protokoll auf dem Server gespeichert werden und außer dem eigentlichen detaillierten Fehlerbericht auch Informationen über den Benutzer und sein mobiles Gerät enthalten.
Das spontane und kreative Arbeiten kann manchmal ein netter Ansatz sein, aber die Kreativität erfordert gute Vorbereitung. Sie müssen Ihre zukünftige Zielgruppe und die Anforderungen Ihres Kunden sorgfältig studieren.

Tests

Obwohl es zahlreiche Testtypen gibt, sind sie alle dazu da, um die Mängel in einem bestimmten Stadium der Anwendungsentwicklung zu erkennen. Wir führen einige von ihnen wie folgt auf:

  • Akzeptanztests, die Mängel werden vom Kunden entdeckt
  • Manuelle Tests, werden vom Entwickler durchgeführt
  • Lasttests, dabei wird die Kapazität geprüft, große Datenmengen oder eine große Anzahl an Anfragen zu verarbeiten
  • Automatisierte Benutzeroberflächentests
  • Modultests

Für die Serverseite gelten die Modultests als obligatorisch und sollten etwa 60-80% des Codes abdecken. Für den mobilen Teil sind die Modultests und die testgetriebene Entwicklung (TDD) jedoch noch nicht zur gängigen Praxis geworden.

Wir hoffen, dass die oben aufgeführten Ideen für Sie oder Ihr Unternehmen hilfreich sein werden.

In unserem nächsten Artikel werden wir über die Auswahl der richtigen Plattform für die Entwicklung mobiler Enterprise-Apps schreiben. Bleiben Sie dran!

Newsletter abonnieren