Audiokonferenzen für Smart Phones: Projektmanagement-Aufsatz

Words: 2287
Topic: Technik und Ingenieurwesen

Projekthintergrund/Einführung

Mit dem Aufkommen der neuen Technologie wurde die Kommunikation neu definiert. Die hohe Erreichbarkeitsrate der meisten Menschen in der heutigen Welt hat die Welt zu einem globalen Dorf gemacht. Die Situation macht es möglich, mit jeder Person über die mobilen Geräte in Kontakt zu treten. Dank des technologischen Fortschritts und des Wettbewerbs der führenden Unternehmen wurden Smartphones entwickelt, die für die meisten Menschen in den Ländern leicht zugänglich sind. Ein Smartphone ist ein handliches Gerät, das sowohl als herkömmliches Mobiltelefon als auch als Personal Computer dienen kann. Smartphones bieten heutzutage eine zufriedenstellende Leistung für die Audiokommunikation sowie Multimedia-Anwendungen, so dass die Einrichtung eines hochwertigen VOIP-Konferenzsystems durch die Einführung von Smartphones ermöglicht wurde. Die Fähigkeit von Smartphones, ein Audiokonferenzsystem zu unterstützen, hat den Menschen eine neue Perspektive eröffnet, da sie der Welt großen Komfort bietet. Da es eine Vielzahl von Produkten auf dem Markt gibt, sind einige davon in der Lage, Audiokonferenzdienste über Smartphones anzubieten. In diesem Projekt wird das Audiokonferenzsystem mit GPS-Ortung und einer Benutzerschnittstelle ausgestattet, um die Auswahl von vorgegebenen Nummern zu ermöglichen.

Voice-over-IP (VOIP) Audiokonferenzsysteme sind als Internetanwendungen weit verbreitet. VOIP hat einen Durchbruch bei der Überbrückung der Kluft zwischen weit voneinander entfernten Personen gebracht. Die Anwendung des Sprachkonzepts hat sich in verschiedenen Bereichen wie dem sozialen, akademischen und geschäftlichen Bereich gezeigt, was auf einen großen Bedarf an diesen Systemen hindeutet. VOIP-Systeme finden immer mehr Akzeptanz, da sich die Qualität der Dienste und der umgebenden Netzwerkumgebung ständig verbessert.1 Eine sehr auffällige Situation ist, wenn Benutzer mit ihren Smartphones an einer Konferenz teilnehmen können, ohne physisch anwesend sein zu müssen. Diese Eigenschaft kann in Notfallszenarien genutzt werden, insbesondere bei Überfällen und Raubüberfällen in Wohnungen. In der Untersuchung wird analysiert, wie ein einfaches und erweiterbares Audiokonferenz- und GPS-Benachrichtigungssystem für Smartphones entwickelt und vollständig ausgeführt werden kann. In dieser Arbeit werden alle wesentlichen Module für den Aufbau eines Audiokonferenz- und GPS-Benachrichtigungssystems für Android-basierte Mobiltelefone betrachtet. Darüber hinaus wurde die Benutzerfreundlichkeit des Systems durch zwei Schlüsselexperimente untersucht. In diesen Experimenten wurde der begrenzte Energie- bzw. Batterieverbrauch getestet und die Anwendung der Dienstqualität durch Verzögerungstests ermittelt.

Projektauswahl

Die Bürgerinnen und Bürger sind mit verschiedenen Sicherheitsproblemen konfrontiert. Durch die Berücksichtigung wichtiger Vorsichtsmaßnahmen können die Sicherheitsrisiken jedoch erheblich verringert werden. Dies kann beispielsweise dadurch geschehen, dass man die Versuchung für Räuber verringert, sich von gefährlichen Gegenden fernhält und sogar den gesunden Menschenverstand bei der Auswahl sicherer Orte anwendet. Ein großes Problem, das in allen Teilen des Landes zunimmt, sind jedoch Hauseinbrüche und Überfälle. Die meisten Menschen sind unvorbereitet und können das derzeitige, in unsere Gesellschaft integrierte System nicht nutzen. Mit der SOS-Anwendung auf dem eigenen Handy oder Tablet kann man sein Leben retten und das Risiko von Traumata und Sachschäden verringern. Mit nur wenigen Fingertipps auf dem Handy kann man mehrere Personen und Nachbarn gleichzeitig anrufen und ihren GPS-Standort angeben.

Kommunikationsplan

Die Kommunikation zwischen allen beteiligten Akteuren ist für den Erfolg eines jeden Projekts wichtig. Die Kommunikation ist ein Schlüsselaspekt in den verschiedenen Phasen des Projekts. Dazu gehören die Analyse, der Entwurf, die Implementierung, das Testen und die Einführung sowie die Wartung. In der Analysephase ist die Kommunikation hauptsächlich auf die Anforderungsanalyse ausgerichtet. Da es sich um ein unternehmensinternes Projekt handelt, werden die Anforderungen von Personen sowohl aus dem Unternehmen als auch aus der Öffentlichkeit ermittelt, die die Zielbenutzer des Systems sein werden. Das Ergebnis dieser Phase ist ein Anforderungsdokument, in dem die funktionalen und nicht-funktionalen Anforderungen an das System aufgeführt sind. In der Entwurfsphase gehören zu den Beteiligten das Management, das Entwurfs- und das Entwicklungspersonal. Ziel ist es, einen Entwurf zu erstellen, der als Richtschnur für die Entwicklung und den Einsatz des Systems dienen soll. Zu den Führungskräften gehören Mitarbeiter der oberen Managementebene, Projektmanager und -leiter, Marketing- und Vertriebsmitarbeiter. Das Designteam setzt sich aus Mitarbeitern der Entwicklungs-, Marketing- und Kunstdesignabteilung zusammen.

Das Entwicklungsteam besteht aus leitenden Entwicklern, Entwicklern, Testern, IT-Administratoren (System-, Datenbank- und Netzwerkadministratoren) und Entwicklern. Es werden mehrere Dokumente erstellt, darunter Systementwurfsdokumente (Anwendungsfalldiagramme, Klassendiagramme und ERD-Diagramme), Zeitplanungsdokumente (Gantt-Diagramme, Aufgabenzuweisungstabellen u. a.), Branding- und Marketingdokumente (Farbschemata, visuelle Designdokumente) und andere.2 Die wichtigsten Dokumente in direktem Zusammenhang mit dem Projekt sind die Systementwurfsdokumente. Während der Umsetzungsphase ist die Kommunikation innerhalb des Entwicklungsteams sowie mit anderen relevanten Interessengruppen von zentraler Bedeutung. Das Entwicklungsteam trifft sich täglich am Morgen, um sicherzustellen, dass die Entwicklungsarbeiten aufeinander abgestimmt sind. Wöchentlich finden Besprechungen mit dem Management statt, um die Fortschritte zu bewerten und auftretende Probleme zu lösen. Die gleiche Methodik wird in der Test- und Einführungsphase angewandt.

Umfang Erklärung

Die Tragweite dieses Projekts, SOS, ist enorm, da es angesichts der Anzahl der Menschenleben und der Zeit, die es spart, große Auswirkungen hat. SOS kann eine Referenz oder Grundlage sein, die man nutzen kann, um einen Plan zu verwirklichen, der es wert ist, andere Schlüsselprojekte von größerem Ausmaß zu implementieren, wie z.B. soziale internationale Videoanrufe, Verfolgung von Personen oder Geräten. Der größte Nachteil der oben erwähnten Dienste ist die unendliche Notwendigkeit, eine Infrastruktur für den Internetzugang zu haben. Es gibt Situationen, in denen die Infrastruktur für die Internetverfügbarkeit eine große Herausforderung darstellt, entweder aufgrund der Nichtverfügbarkeit der erforderlichen Infrastruktur oder aufgrund der hohen Kosten der verfügbaren Infrastruktur, z. B. kann das Surfen im Internet teuer sein.3 In solchen Situationen könnte man Internetpakete kaufen, damit das mobile Gerät eine ständige Internetverbindung hat, oder die Anwendung kann so erweitert werden, dass sie über SMS funktioniert.

Work Breakdown Structure (WBS) für das Projekt und Verantwortungsmatrix:

Während der Durchführung des Projekts sind verschiedene Aufgaben zu erfüllen. Die wichtigsten Aktivitäten sind im Folgenden aufgeführt.

Matrix der Verantwortungszuweisung

WBS

Berechnung des kritischen Pfades

Der kritische Pfad ist 1, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 3, 4.1, 4.3, 5, und 6. Die Entwicklungsaufgaben können parallel durchgeführt werden, und die Tests werden nach jeder Entwicklungseinheit durchgeführt. Alternativ kann eine testgetriebene Entwicklung durchgeführt werden, bei der die Tests geschrieben werden, bevor der Quellcode geschrieben wird. In jedem Fall müssen Entwicklung und Unit-Tests gleichzeitig durchgeführt werden. Zusätzlich werden Integrationstests während der Entwicklung der Software durchgeführt. Die abschließenden Tests dienen dazu, das fertige System zusammenzuführen und sicherzustellen, dass es auch in extremen Fällen wie z. B. bei abweichenden Eingaben und großem Datenverkehr wie erwartet funktioniert.

Gantt-Diagramm

Kostenvoranschlag

Die Projektkosten in Form von Human- und Finanzkapital werden im Folgenden erläutert und aufgeschlüsselt.

Die Projektkosten erfordern mehrere Teams für den erfolgreichen Abschluss des Projekts. Die beteiligten Teams setzen sich, wie bereits erwähnt, aus verschiedenen Disziplinen zusammen. Bei der Kostenschätzung liegt der Schwerpunkt auf den Personen, die direkt an den verschiedenen Phasen beteiligt und Teil des Entwicklungsteams sind. Sie sind im Folgenden aufgeführt:

Systemanalyse- und -entwurfsteam: Das Team besteht aus einem Analysten oder höchstens drei Analysten/Konstrukteuren. Für das Analyseteam sind die folgenden Fähigkeiten erforderlich, die darüber entscheiden, ob ein einzelner Analytiker ausreicht oder ob mehrere erforderlich sind.

Systementwicklung und Testsystem: In Anbetracht des Zeitplans für das System soll das Entwicklungsteam aus drei Teams bestehen. Ein Team soll für die Kern-API und die Cloud-Entwicklung zuständig sein, das andere soll das VOIP-System entwickeln, während sich das dritte auf die Android-Entwicklung konzentriert. Von jedem Entwickler wird erwartet, dass er mit dem Testen vertraut ist. Ein Team von zwei professionellen und engagierten Testern ist jedoch für das Testen der kundenorientierten Anwendung zuständig. Die Tester testen das System größtenteils nach dem Blackbox-Prinzip, d. h. die Tester, die von Anfang an beteiligt sind, sind die Entwickler/Tester und nicht die speziellen Tester. Die Entwickler müssen automatisierte Testtools verwenden, und die engagierten Tester müssen sich mit dem Testen mobiler Anwendungen sowohl mit automatisierten als auch nicht automatisierten Methoden auskennen. Das Kernteam für die API- und Cloud-Entwicklung besteht aus drei Entwicklern, die sich in Python oder Java auskennen.4

Die VOIP-Entwickler bestehen aus zwei Entwicklern, die sich auf die zu verwendende Technologie einigen. Das Android-Team besteht aus drei Entwicklern, die sich mit der Java- und Android-Entwicklung auskennen: Der leitende Entwickler gehört zum Kernteam für die API- und Cloud-Entwicklung. Er ist nicht nur für alle Teams zuständig, sondern auch für die Cloud-Entwicklung und die Systemintegration. Daher muss der leitende Entwickler über große Erfahrung in der Cloud-, VOIP- und Android-Entwicklung verfügen. Er muss über gute Kenntnisse in Java und Python verfügen, wenn das API-Kernteam Python für die Entwicklung verwenden möchte. Da es sich um ein firmeninternes Projekt mit dem erforderlichen Humankapital handelt, dürfen sich die Kosten für das Humankapital in keiner Weise auf die finanziellen Kosten auswirken. Es würden auch keine Opportunitätskosten entstehen, da alle Mitarbeiter, die in das Projekt eingebunden werden, derzeit nicht für andere Projekte oder Aufgaben verpflichtet sind.

Bereitstellung und systembezogene Verwaltung: Das Einführungsteam besteht aus dem Entwicklungsteam und den verschiedenen Administratoren. Zu den beteiligten Administratoren gehören ein Systemadministrator, der sich mit Sicherheit auskennt, oder alternativ ein System- und ein Sicherheitsadministrator, ein Datenbankadministrator und ein Netzwerkadministrator. Der Datenbankadministrator stellt sicher, dass alle Datenbanken ordnungsgemäß konfiguriert sind und während der Entwicklung und der Tests einwandfrei funktionieren. Während der Bereitstellung ist er für die Migration der Datenbank von der Entwicklungs-/Testumgebung in die Bereitstellungsumgebung verantwortlich. Der Netzwerkadministrator ist dafür verantwortlich, dass während der Entwicklungs- und Testphase eine ausreichende Konnektivität und Bandbreite vorhanden ist.5 Während der Bereitstellungsphase kümmert er sich zusätzlich um die Netzwerkkonfiguration, die je nach Art der Cloud-Architektur, auf der das System bereitgestellt wird, erforderlich sein kann.

Finanzielle Kapitalkosten

Das Projekt wird intern finanziert. Die Kostenkalkulationen bieten auch einen gewissen Spielraum für eventuelle Änderungen oder Notfälle, die während der Projektdurchführung auftreten können.

Plan für das Risikomanagement

Es findet eine ständige Kommunikation zwischen allen beteiligten Akteuren statt, um sicherzustellen, dass das Projekt die festgelegten Anforderungen erfüllt. Die Fortschritte werden ständig bewertet und überprüft, um festzustellen, ob das Projekt in die erwartete Richtung geht. Um das Risiko zu verringern, sind bewährte Software-Verfahren anzuwenden. Da der häufigste Grund für das Scheitern von Projekten darin besteht, nicht genügend Zeit einzuplanen, wurde jede Entwicklungsphase so veranschlagt, dass die von den Ausführenden beantragte Zeit tatsächlich 80 % der zugewiesenen Zeit ausmacht. Um die Wahrscheinlichkeit von Fehlschlägen weiter zu verringern, ist bei der Entwicklung des Systems eine testorientierte Entwicklung zu verfolgen. Unit-Tests werden nach der Entwicklung jeder Einheit durchgeführt, wobei die Entwickler dazu angehalten werden, zuerst Tests zu schreiben, bevor sie die Software entwickeln. Unabhängig davon, für welche Methode sich ein Entwicklerteam entscheidet, müssen Unit-Tests und Entwicklung Hand in Hand gehen. Jeder der Beteiligten wird einem Bereich zugewiesen, in dem er besonders kompetent ist. Der Projektleiter verfügt über große Erfahrung in der Softwareentwicklung, so dass sein Zeitplan zuverlässig auf jahrelanger Erfahrung und ihrem Fachwissen beruht. Die Teams, die gebildet werden, haben bereits bei verschiedenen Projekten zusammengearbeitet. Das bedeutet, dass sie wissen, wie man als Team arbeitet, dass sie mit dem Quellcode und dem Entwicklungsstil der anderen vertraut sind und dass die Kommunikationsprobleme innerhalb der Teams minimal sein werden.

Darüber hinaus wurden Entwicklungs- und Kommunikationsrichtlinien aufgestellt. Zu den Beispielen gehört, dass alle Klassennamen mit Großbuchstaben beginnen und die folgenden Wörter in Kleinbuchstaben geschrieben werden, d. h. Datenbankverbindung, während Variablennamen mit einem Kleinbuchstaben beginnen und die folgenden Wörter in Großbuchstaben geschrieben werden – Datenbankverbindung. Bei der Softwareentwicklung wird eine Versionskontrolle eingesetzt und die Entwicklung von Prototypen begleitet, wobei eine Iteration der Entwicklung immer zu einer funktionierenden Version des Systems führt. Die Versionskontrolle soll die Nachverfolgung von Änderungen und das Rollback zu einer funktionierenden Version der Software im Falle von Problemen erleichtern. Alle Entwickler im Team sind mit der Verwendung von Git für die Versionskontrolle vertraut. Alle Übertragungen an der entwickelten Software müssen von den Teammitgliedern abgesegnet werden, und im Falle von Problemen muss der Projektleiter eingeschaltet werden, um den Streit zu schlichten. Spielraum wird genutzt, um sicherzustellen, dass das Budget im Falle von Änderungen nicht zum Engpassfaktor wird. Die Teams haben auch einen Spielraum bei der Wahl der Technologie, die sie in den einzelnen Entwicklungsphasen einsetzen. Open-Source-Technologie ist dann zu verwenden, wenn mehrere Entwickler mit ihr vertraut sind, so dass sie alle erforderlichen Änderungen vornehmen können.6 Kommerzielle Software ist zu verwenden, wenn die Technologie für die meisten Entwickler neu ist oder wenn keiner der Entwickler mit der Open-Source-Version vertraut ist. Auf diese Weise können sie die Vorteile der professionellen Unterstützung nutzen, die von den meisten kommerziellen Softwareanbietern im Falle von Fragen oder Problemen angeboten wird. Die Verwendung sowohl von Open-Source- als auch von kommerzieller Software soll es dem Entwicklungsteam ermöglichen, die Fallstricke beider zu vermeiden und gleichzeitig deren Vorteile zu nutzen.7

Schlussfolgerung

Das Projekt soll den Menschen mehr Sicherheit geben, egal wo sie sich befinden. Wenn ein Nutzer unsere Anwendung herunterlädt, kann er sicher sein, dass er im Notfall Hilfe bekommen kann. Es soll weiter daran gearbeitet werden, das System belastbarer und zuverlässiger zu machen. Dazu gehören die Bereitstellung von Offsite-Funktionen über eine interne oder gehostete Cloud, die Implementierung von Peer-to-Peer-Technologie und ein SMS-Dienst für Fälle, in denen die Internetverbindung schlecht ist. Weitere Verbesserungen sollen vorgenommen werden, wenn die Nutzer mit der App interagieren und Feedback geben. Die VOIP-Technologie kann verbessert werden, indem die Anzahl der SIP-Server an verschiedenen Standorten erhöht wird, um die VOIP-Leistung in solchen Gebieten zu verbessern.

Literaturverzeichnis

Cloud Tweaks, “Vorteile und Nachteile von Open Source”, Cloud Tweaks [Website]. 2012, Web.

Larman, C., Applying Uml and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Prentice Hall Professional Technical Reference, Upper Saddle River, 2005.

Miles, R. & K. Hamilton, Learning Uml 2.0, O’Reilly, Sebastopol, 2006.

Pilone, D. & R. Miles, Head First Software Development, O’Reilly, Sebastopol, 2008.

Turunen, T. & M. Boehm, ‘Benefits of Co-existing Open Source & Commercial Software Development’, Creative Destruction & Me [Website]. 2013, Web.

Was sind die Phasen des Software Development Life Cycle (SDLC)?”, ISTQBExamCertification.com [Website], 2011, Web.

Fußnoten