www.wikidata.de-de.nina.az
Eine Softwareanforderung ist eine Anforderung im Rahmen der Softwareentwicklung Die Anforderung erfasst hierbei den Zweck und die Absicht eines Softwaresystems sowie dessen externen Verhaltens Inhaltsverzeichnis 1 Arten von Softwareanforderungen 2 Format 3 Softwareanforderung aus Kundensicht 4 Herausforderungen 5 Umfang 6 Implizite Softwareanforderung 7 Literatur 8 EinzelnachweiseArten von Softwareanforderungen BearbeitenGrundsatzlich unterscheidet man bei Softwareanforderungen zwischen 1 Geschaftsanforderungen Ziele welche sich aus der Geschaftstatigkeit des Kunden und den Marktanforderungen ergeben Geschaftsanforderungen werden durch das Management und Marketing definiert Benutzeranforderungen Die fur die Benutzer des Softwaresystems erforderlichen Anforderungen um die Geschaftsanforderungen erfullen zu konnen Hier wird definiert welche Benutzergruppen existieren welche Geschaftsprozesse sich wie fur die jeweiligen Benutzer verandern sowie geeignete Metriken um diese Ziele zu erfassen Die Benutzeranforderungen werden durch Geschaftsanalysten Benutzer oder Vertretern der Benutzer sowie Produktmanager definiert Funktionale Anforderungen Erfassen das Verhalten welches ein Softwaresystem besitzen soll um die Benutzeranforderungen zu erfullen Funktionale Anforderungen werden durch Geschaftsanalysten und Produktmanager in Absprache mit der Softwareentwicklung und der Testabteilung definiert Projektanforderungen Die fur den Erfolg eines Projekts notigen Anforderungen um die funktionalen Anforderungen umsetzen zu konnen und das Produkt im Zuge des Application Lifecycle Managements ALM betreuen zu konnen Hierzu gehoren beispielsweise Hardware Bereitstellungsumgebungen Softwarelizenzen fur Entwicklungswerkzeuge Raumlichkeiten Mitarbeiter und Schulungen Dokumentation des Softwaresystems fur Benutzer Trainings und Supportmitarbeiter Qualitatsanforderungen und Service Level Agreements SLAs Rechtliche Anforderungen u a Lizenzen Patente Markenrecht Urheberrecht Format Bearbeiten nbsp SoftwareanforderungsprozessAufgabe des Anforderungsmanagers ist es die Anforderungen und Moglichkeiten gemeinsam mit den beteiligten Interessengruppen z B Anwendern oder Surrogate Anwendern Kunden sowie Product Owner und Entwicklungsteam zu erheben und in eine fur Softwareentwickler verstandliche Form zu ubertragen 2 Dies erfolgt formal in Form von User Stories welche in funktionale Anforderungen aufgeschlusselt und mit Hilfe eines Softwareentwicklers nach Gherkin Syntax ubersetzt werden sowie in Form von UML Diagrammen welche durch einen Softwarearchitekten genauer definiert werden Anforderungen welche lediglich mundlich durch Voicemail auf Klebezetteln E Mails Mitschriften von Meetings oder ahnlich unstrukturiert erfasst sind gehoren nicht zum Anforderungskatalog des Softwaresystems welche ein Entwickler umsetzen muss Diese Anforderungen mussen erst durch den Geschaftsanalysten strukturiert erfasst werden 1 Die Anforderung sieht ein Softwaresystem dabei als Black Box und definiert neben dem Zweck der einzelnen Teilanforderungen auch zugehorige Anwendungsbeispiele aus Sicht der unterschiedlichen Benutzergruppen 2 Die Softwareanforderungen mussen in einer lebenden Dokumentation verwaltet werden Um eine Nachvollziehbarkeit zu ermoglichen sollte eine Versionsverwaltung eingesetzt werden Auch sollte fur Teilanforderungen ein Ansprechpartner und die zugehorigen Kontaktdaten bekannt sein Es sollte zudem in einem Issue Tracking System erfasst werden zu welchem Zeitpunkt von welcher Interessengruppe und aus welchem Grund eine Anforderung gestellt und geandert wurde Bei Programmfehlern und Anderungsanforderungen change request des Systems sollte sowohl Ist Zustand und Verhalten als auch Soll Zustand und Verhalten dokumentiert sein Softwareanforderung aus Kundensicht BearbeitenIn dem Buch Software Requirements definiert Karl Wiegers Rechte und Pflichten des Kunden welche bei der Erstellung von Anforderungen eingehalten werden sollen 1 Rechte des Kunden Geschaftsanalysten verwenden den Jargon des Kunden Geschaftsanalysten erlernen die Geschaftsablaufe und ziele des Kunden Geschaftsanalysten erfassen die Anforderungen derart dass sie in einer fur den Kunden geeigneten Form bereitgestellt werden konnen Anspruch auf Auskunft des Zwecks bestimmter Anforderungen und Auslieferungen Anderungen der Anforderungen Anspruch auf gegenseitigen Respekt Auskunft fur alternative Ideen des Dienstleisters Anforderungen an die einfache Benutzbarkeit Auskunft uber Moglichkeiten die Entwicklung zu beschleunigen indem die Anforderungen so angepasst werden dass bestehende Softwarekomponenten verwendet werden konnen Auslieferung eines Systems welches sowohl den funktionalen Anforderungen als auch den Qualitatsanforderungen gerecht wird Pflichten des Kunden Aufklaren des Dienstleisters uber die Geschaftsprozesse Einplanung der Zeit welche benotigt wird um die Anforderungen bereitzustellen und nachzubessern Erstellung spezifischer und praziser Anforderungen Entscheidungen und Auskunfte zu Anforderungen innerhalb angebrachter Zeitraume treffen Die Einschatzungen der Entwickler zum Zeitbedarf und der Realisierbarkeit einer Anforderung sind zu respektieren Treffen realistischer Priorisierung der Anforderungen in Absprache mit den Entwicklern Regelmassige Reviews von Anforderungen und das Evaluieren von Prototypen Festlegen von Akzeptanzkriterien in Absprache mit dem Kunden Schnelles Kommunizieren von Anderungen an den Anforderungen Einhaltung des Prozesses zum Erfassen der Anforderungen Herausforderungen BearbeitenDokumente mit Softwareanforderungen konnen sehr umfangreich ausfallen und je nach Produkt hunderte bis tausende Seiten an Dokumentation umfassen Es ist dabei in der Praxis unmoglich die Anforderungen vollstandig oder widerspruchsfrei zu formulieren Lucken und Widerspruche werden meist erst wahrend der Entwicklung oder im Produktionsbetrieb aufgedeckt Zudem andern sich die Anforderungen im Regelfall wahrend der Entwicklung eines Softwareprodukts 2 Weitere Schwierigkeiten ergeben sich dadurch dass bei Spezifikationen im Ublichen 2 nicht genugend Informationen fur die Entwicklung bereitgestellt werden auf das Wissen weniger Personen eingeschrankt wird und betroffene Interessengruppen nicht ausreichend eingebunden werden Information in der Ubersetzung der Kundenbedurfnisse in die Anforderung verloren gehen zu erreichende Geschaftsziele Absicht vernachlassigt werden und der Fokus zu sehr auf technische Details konkrete Implementierung konzentriert wird eine naturliche Sprache verwendet wird welche interpretiert und gedeutet werden muss bestimmte Voraussetzungen als gegeben oder selbstverstandlich angesehen werden und daher nicht erwahnt werden sich kleine Fehler und Anderungen akkumulieren was dazu fuhrt dass die Anforderung und die Implementierung im Laufe des Projektfortschritts immer starker voneinander abweichenStudien zeigen dass 40 bis 50 aller Fehler in Softwaresystemen durch eine fehlerhafte Anforderung entstehen 3 Alleine im Jahr 2004 wurden in der Europaischen Union 142 Milliarden Euro aufgrund fehlgeschlagener Softwareprojekte verloren 4 Hiervon ist die Mehrzahl auf Softwareanforderungen zuruckzufuhren welche nicht ausreichend auf die Geschaftsziele ausgerichtet waren oder weil sich die Geschaftsziele verandert haben 4 Zudem kommt dass 30 bis 50 der Projektkosten durch Anderungen der Anforderungen und damit einhergehenden Produktanderungen entstehen 5 6 Von diesen Anderungen werden 70 bis 85 durch Fehler in der Anforderung verursacht 7 Agile Softwareentwicklung reduziert diese Probleme mittels einer regelmassigen Kommunikation der Interessengruppen ist jedoch von denselben Effekten betroffen 2 Aufgrund dieser Herausforderungen muss auf eine moglichst prazise Kommunikation geachtet werden Zudem mussen Prozesse vorgesehen werden die Anforderungen bei Bedarf abzuandern Zudem sollte die Anforderung automatisch prufbar sein damit die Anforderung zum Zeitpunkt der Fertigstellung der Software widerspruchsfrei ist und mit dem Verhalten der entwickelten Software ubereinstimmt Umfang BearbeitenSoftwareanforderungen umfassen 8 Programmierschnittstellen Beschreibungen englisch contracts Verhalten Bindung englisch binding Protokoll Verschlusselung etc Adressen Softwarestack Standards und Normen z B IETF W3C ISO und IEC Normen Verweise auf Requirements aus anderen Systemen Form und Umfang der benotigten Benutzerdokumentation Anforderungen an die Qualitatssicherung Testabdeckung durch Unit Tests Testen von Anforderungen z B mittels BDD Peer Review des Quelltext statische Code Analyse Exploratives Testen SOLID Prinzipien und Clean Code Informations Anforderungen Datentypen und Datenstrukturen Anforderungen an eindeutige Bezeichner IDs GUIDs URIs URNs Clean URLs Berechnungsformeln Art der Datenpersistierung und Lebensdauer von Daten Felder welche fur eine Entitat benotigt werden Anforderungen an Datentransaktionen unter Berucksichtigung des CAP Theorems Daten fur die eine Historie erfasst werden muss Versionsverwaltung Sicherheits und Konformitats Auditing Datenspeicherungsinfrastruktur Datenarchivierung Datenwiederherstellung im Katastrophenfall Lokalitat der Daten z B Endgerat Rechenzentrum Cloud Geschaftspartner Offentlich regionale Einschrankungen Daten Import Exportschnittstellen Konfiguration der Anwendung Funktionalitat aus Benutzersicht Information die eingegeben und angezeigt werden soll Barrierefreiheit Definition der Endgerate und Infrastruktur des Benutzers Benutzerfreundlichkeit Stilrichtlinien Suchmaschinenoptimierung SEO Berichterstellung Information die in Business Intelligence Berichten benotigt wird z B fur Vorhersage Marketing und Controlling Infrastruktur fur die Business Intelligence Berichtserstellung z B ETL OLTP oder CEP Anforderungen an das Product Lifecycle Management PLM Auslieferungsstrategien Continuous Delivery und Rollback Echtzeit Monitoring Logging Ablaufverfolgung Operations Management z B OpsDB Ausfuhrung von A B Tests oder Fault Injection Tests Performance Anforderungen Antwortzeiten Durchsatz Statische Kapazitatsgrenzen Dynamische Kapazitatsgrenzen Verfugbarkeitsanforderungen Flexibilitatsanforderungen Skalierbarkeit Erweiterbarkeit Unparochialitat Unabhangigkeit von der Infrastruktur Vielfaltigkeit Bereitstellung von Daten fur andere Systeme Internationalisierung i18n Mehrsprachigkeit Umgang mit Zeitzonen sowie Schaltsekunden und stunden Wahrungen Leserichtung Kulturelle Symbolik Regional unterschiedliche gesetzliche Anforderungen Zugriffskontrolle und Benutzersicherheit Benutzerregistrierung Benutzerauthentifizierung Benutzerautorisierung spezifische Autorisierung definierte Berechtigungen fur Benutzergruppen Rollen konfigurierbare Autorisierung Konfigurierbarkeit von Berechtigungen Freigabeprozesse Verschlusselungsmethoden Foderierte Identitat und Zero Knowledge Anforderungen Datenschutzrichtlinien Benutzer Impersonation 9 Firewall und ACL Anforderungen Sichere Verwahrung und Austausch von Schlusseln und Zertifikaten Kommerzielle Anforderungen Organisationsformen der Unternehmen welche das Softwareprodukt einsetzen z B ITIL Gesetzliche Richtlinien z B Steuerberechnung SOX Stabilitatsanforderungen und Fehlermigration Verhalten bei Uberlastung oder Ausfall eines externen Systems z B Sicherung Bulkheads und Verbindungs Pooling Darstellung von Fehlern oder eingeschrankter Funktionalitat aus Benutzersicht Verhalten im Fehlerfall einer Instanz des Systems z B dynamisches Routing Identifizierung von fur die jeweiligen Geschaftsprozesse kritischen Systemen sowie moglichen Single Point of Failures Durchsatzratenbegrenzungen Aufteilung in Teilanforderungen Definition von Mindestanforderungen und Streckzielen Muss Sollte Konnte und Nicht Anforderungen siehe auch RFC 2119 10 RFC 6919 11 Priorisierung von Anforderungen Aufteilung der Zustandigkeiten in getrennte Systeme z B Benutzerverwaltung Bestellung Warenmanagement Zustellung Administration Business Intelligence Aufwands und Kostenabschatzungen inklusive UnsicherheitenImplizite Softwareanforderung BearbeitenEine implizite Softwareanforderung ist eine Anforderung die zwingend zu implementieren ist jedoch nicht explizit vom Anforderungsmanagement spezifiziert wurde Dies betrifft meist Anforderungen an die Testbarkeit z B Testabdeckung durch Unit Tests die Sicherheit z B Verschlusselung oder das Application Lifecycle Monitoring z B Logging Literatur BearbeitenStephen Withall Software Requirement Patterns Developer Best Practices Microsoft Press 2007 ISBN 978 0 7356 2398 9 englisch 384 S Karl E Wiegers Software Requirements Developer Best Practices 3 Auflage Microsoft Press 2013 ISBN 978 0 7356 7966 5 englisch 672 S Karl E Wiegers More About Software Requirements Thorny Issues and Practical Advice Developer Best Practices Microsoft Press 2006 ISBN 0 7356 2267 1 englisch 224 S Michael T Nygard Release It Design and Deploy Production Ready Software O Reilly 2007 ISBN 978 0 9787392 1 8 englisch 326 S Christine Rupp Requirements Engineering und Management Aus der Praxis von klassisch bis agil Carl Hanser Verlag GmbH amp Co KG 2014 ISBN 978 3 446 43893 4 570 S Ulrike Hammerschall Gerd Beneken Software Requirements Pearson Studium 2013 ISBN 978 3 86894 151 7 432 S Gojko Adzic Bridging the Communication Gap Specification by Example and Agile Acceptance Testing Neuri Limited 2009 ISBN 978 0 9556836 1 9 englisch 284 S Gojko Adzic Impact Mapping Making a Big Impact with Software Products and Projects Hrsg Marjory Bisset Provoking Thoughts 2012 ISBN 978 0 9556836 4 0 englisch 86 S Einzelnachweise Bearbeiten a b c Karl E Wiegers Software Requirements Developer Best Practices 3 Auflage Microsoft Press 2013 ISBN 978 0 7356 7966 5 englisch 672 S a b c d e Gojko Adzic Bridging the Communication Gap Specification by Example and Agile Acceptance Testing Neuri Limited 2009 ISBN 978 0 9556836 1 9 englisch 284 S Alan M Davis Just Enough Requirements Management Where Software Development Meets Marketing Computer Bookshops 2005 ISBN 0 932633 64 1 englisch 240 S a b Gojko Adzic Impact Mapping Making a Big Impact with Software Products and Projects Hrsg Marjory Bisset Provoking Thoughts 2012 ISBN 978 0 9556836 4 0 englisch 86 S Forrest Shull Vic Basili Barry Boehm A Winsor Brown Patricia Costa Mikael Lindvall Dan Port Ioana Rus Roseanne Tesoriero Marvin Zelkowitz What We Have Learned About Fighting Defects PDF Abgerufen am 12 Juni 2017 englisch Stronger Management Practices Are Needed to Improve DOD s Software Intensive Weapon Acquisitions U S Government Accountability Office GAO 1 Marz 2004 abgerufen am 12 Juni 2017 englisch Dean Leffingwell Calculating the Return on Investment from More Effective Requirements Management In American Programmer Institute for Software Quality IFSQ 1997 abgerufen am 12 Juni 2017 englisch Stephen Withall Software Requirement Patterns Developer Best Practices Microsoft Press 2007 ISBN 978 0 7356 2398 9 englisch 384 S User Impersonation Auth0 abgerufen am 10 April 2017 englisch RFC 6919 englisch RFC 6919 englisch Abgerufen von https de wikipedia org w index php title Softwareanforderung amp oldid 235703019