Flexibilität ist die Fähigkeit einer Software, Funktionen hinzuzufügen/zu ändern/zu entfernen, ohne das aktuelle System zu beschädigen. Skalierbarkeit ist die Fähigkeit von Software, Funktionalität hinzuzufügen, ohne das System zu beschädigen, und kann daher als eine Teilmenge der Flexibilität betrachtet werden. Diese funktionalen Änderungen können aufgrund sich ändernder Anforderungen erfolgen oder wenn der Entwicklungsprozess eine iterative Methode ist. Änderungen in der Softwareentwicklung sind unvermeidlich, daher ist dies eines der wichtigsten Merkmale hochwertiger Software.
Wartbarkeit ähnelt in gewisser Weise der Flexibilität, konzentriert sich jedoch eher auf Fehler, Modifikationen für Korrekturen und kleinere Funktionsänderungen als die Skalierbarkeit wichtiger Funktionen. Es kann durch nützliche Schnittstellendefinitionen, Dokumentation und selbstdokumentierenden Code und/oder Codedokumentation unterstützt werden. Je korrekter und nützlicher die Dokumentation, desto höher ist die Wartbarkeit.
Leistung hängt hauptsächlich mit der Reaktionszeit der Software zusammen. Diese Antwortzeit sollte innerhalb eines akzeptablen Intervalls liegen (z. B. höchstens einige Sekunden) und sich nicht erhöhen, wenn die Transaktionsanzahl steigt. Außerdem sind Ressourcen teuer. Effizienz muss durch Ressourcennutzung unterstützt werden. Als übertriebenes Beispiel ist die Verwendung nur eines 32-Prozessor-Computers oder 1 TB Festplattenspeicher zum Ausführen einer einfachen Funktion inakzeptabel. Man muss das beste Verhältnis zwischen Quelle und Leistung anstreben.
Ein skalierbares System reagiert innerhalb einer akzeptablen Zeit auf Benutzervorgänge, selbst wenn die Last steigt. Natürlich kann mehr Hardware hinzugefügt werden, um steigende Benutzertransaktionen zu bewältigen, aber die Architektur sollte sich dabei nicht ändern. Dies wird als vertikale Skalierbarkeit bezeichnet. Die Fähigkeit, auf einer immer größeren Anzahl von Maschinen zu laufen, ist Multiprocessing. Wenn Software eine solche Verarbeitung durchführen kann, spricht man von horizontaler Skalierbarkeit. Das bevorzugte skalierbare System sollte beide Ansätze unterstützen.
Verfügbarkeit, Robustheit, Fehlertoleranz und Zuverlässigkeit:
Robuste Software sollte ihre Verfügbarkeit auch in den meisten Fehlerzuständen nicht verlieren. Es kann auch dann weiter funktionieren, wenn einige Komponenten ausfallen. Selbst wenn die gesamte Anwendung abstürzt, kann sie mithilfe von Backup-Hardware und -Daten sowie Fehlertoleranzmethoden selbstständig wiederhergestellt werden. Es sollte immer einen Plan B oder sogar C, D geben ... Zuverlässigkeit steht auch für die Integrität und Konsistenz der Software selbst unter Hochlastbedingungen. Es hängt also mit Verfügbarkeit und Skalierbarkeit zusammen. Ein unzuverlässiges System ist auch nicht skalierbar.
Aus Sicht des Benutzers ist die Benutzeroberfläche der einzige sichtbare Teil der Software. Daher sind Einfachheit, weniger Zeitaufwand für die Erledigung der Arbeit, schnelles Lernen usw. in diesem Fall sehr wichtig. Das bekannteste Prinzip dieser Eigenschaft ist KISS (Keep It Simple Stupid). Einfach ist immer am besten. Verfügbare Software sollte auch die Steuerung verschiedener Barrierefreiheitstypen für Menschen mit Behinderungen unterstützen.
Hochwertige Software sollte auf möglichst vielen Plattformen laufen. So können mehr Menschen davon profitieren. In unterschiedlichen Zusammenhängen beziehen wir uns möglicherweise auf unterschiedliche Plattformen, dies kann die Betriebssystemplattform, der Browsertyp usw. sein. Unter Portabilität versteht man die Anpassung von Software an die Ausführung auf verschiedenen Plattformen, um eine bessere Plattformkompatibilität zu erreichen. In diesem Sinne geht es bei Portabilität auch um Flexibilität
Testbarkeit und Verwaltbarkeit
Qualitätssoftware erfordert Qualitätstests. Der Quellcode sollte mit maximaler Abdeckung und den effizientesten Testmethoden getestet werden. Dies kann durch den korrekten Einsatz von Techniken wie Kapselung, Schnittstellen, Mustern, geringer Kopplung usw. erreicht werden. Gute Software sollte neben der Testbarkeit auch nach der Bereitstellung einfach zu verwalten sein. Es kann beispielsweise die Leistung oder den Datennutzungsstatus überwachen oder es Entwicklern ermöglichen, das System einfach zu konfigurieren. Ein weiteres sehr wichtiges Thema hinsichtlich der Verwaltbarkeit ist die Erstellung eines erfolgreichen Protokollierungssystems.
Sicherheit ist ein sehr wichtiges Thema bei der Softwareentwicklung, insbesondere bei der webbasierten oder auf mobilen Geräten basierenden Softwareentwicklung, bei der möglicherweise Millionen von Benutzern die Möglichkeit haben, aus der Ferne auf das System zuzugreifen. Sie sollten Ihre Sicherheitsrichtlinie erstellen und diese korrekt anwenden, indem Sie keine Einstiegspunkte hinterlassen. Dazu können Autorisierungs- und Authentifizierungstechnologien, Schutz vor Cyberangriffen, Datenverschlüsselung und mehr gehören. Alle möglichen Arten von Sicherheitslücken sollten berücksichtigt werden, sonst könnte ein einziger Angriff eines Tages Ihre gesamte Anwendung und Ihr gesamtes Unternehmen lahmlegen.
Funktionalität (oder Korrektheit) bezieht sich auf die Übereinstimmung von Software mit tatsächlichen Anforderungen und Spezifikationen. Tatsächlich ist dies ein vorrangiges Merkmal der Anwendung, vielleicht kein Qualitätsfaktor, aber wir möchten es zum letzten Qualitätsfaktor machen, um die Aufmerksamkeit darauf zu lenken: Qualitätsfaktoren haben keine Bedeutung, wenn wir über Software sprechen, die nicht funktioniert richtig. Führen Sie zunächst die erforderliche Funktionalität aus, generieren Sie die richtige Software und wenden Sie dann Qualitätsfaktoren darauf an. Am besten wäre es, wenn beides Hand in Hand gehen könnte.
Das obige ist der detaillierte Inhalt von10 Faktoren, die bei der Softwareentwicklung nicht ignoriert werden dürfen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!