Softwarewartung Übersicht



Software-Wartung ist weithin anerkannt, Teil SDLC jetzt Tage. Es steht für alle Modifizierung und updations nach der Lieferung der Software-Produkt. Es gibt eine Reihe von Gründen, warum Modifizierung erforderlich sind, einige von ihnen werden nachfolgend kurz erwähnt:

  • Marktbedingungen - Richtlinien, die sich über die Zeit ändert, wie die Besteuerung und neu eingeführten Einschränkungen wie, wie Buchführung zu halten, kann Notwendigkeit von Modifizierung auslösen.

  • Client-Anforderungen - Im Laufe der Zeit kann der Kunde fragen für neue Features oder Funktionen in der Software.

  • Host Änderungen - Wenn einer der Hardware und / oder der Plattform (zB Betriebssystem) der Ziel-Host Änderungen, Software-Änderungen nötig sind, um die Anpassungsfähigkeit zu halten.

  • Organisation ändert - Wenn es irgendein Geschäft Pegeländerung am Client-Seite, wie die Reduktion der Organisation Kraft, Erwerbs eines Unternehmens, einer Organisation Erschließung neuer Geschäfts, müssen in der Original ändern Software entstehen können.

Arten von Wartungs

In einem Software-Lebenszeit, kann Art der Wartung von seiner Art variieren. Es kann nur eine Routine-Wartungsaufgaben wie einige Fehler von einigen Benutzer entdeckt zu werden, oder es kann ein großes Ereignis an sich, basierend auf wartungs Größe oder Natur. Im Folgenden sind einige Arten von Wartungs auf der Grundlage ihrer Eigenschaften:

  • Instandsetzung - Dazu gehören Modifizierung und updations, um zu korrigieren oder zu beheben Probleme, die entweder vom Benutzer entdeckt oder durch Benutzerfehler Berichte abgeschlossen sind.

  • Adaptive Wartung - Dazu gehören Modifizierung und updations angewendet, um das Software-Produkt auf dem neuesten Stand und zu halten, um den sich ständig ändernden Welt der Technologie und geschäftlichen Umfeld abgestimmt.

  • perfektiv Wartung - Dies schließt Modifikationen und Aktualisierungen, um die Software über lange Zeit nutzbar zu halten getan. Es enthält neue Features, neue Anforderungen der Anwender für die Verfeinerung der Software und die Verbesserung ihrer Zuverlässigkeit und Leistung.

  • Vorbeugende Wartung - Dies schließt Modifikationen und updations, um künftige Probleme der Software zu verhindern. Es zielt darauf ab, zu besuchen Probleme, welche nicht in diesem Moment signifikant, aber kann ernsthafte Probleme in der Zukunft führen.

Kosten für Wartung

Berichte deuten darauf hin, dass die Kosten für die Wartung ist hoch. Eine Studie zur Schätzung Software Wartung festgestellt, dass die Kosten für die Wartung ist so hoch wie 67% der Kosten der gesamten Software-Prozesszyklus.

Wartungskosten Tabelle

Im Durchschnitt sind die Kosten der Software-Wartung mehr als 50% aller SDLC-Phasen. Es gibt verschiedene Faktoren, welche Triggern Wartungskosten gehen hoch, wie zB:

Echt Welt Faktoren,rührend die Wartungskosten

  • Die Regelalters von Software ist betrachtet bis zu 10 bis 15 Jahren.

  • Older softwares, which were meant to work on slow machines with less memory and storage capacity cannot keep themselves challenging against newly coming enhÄltere Software, die dazu bestimmt waren, auf langsamen Maschinen mit weniger Speicher und Speicherkapazität arbeiten nicht halten kann selbst eine Herausforderung gegen neu kommen verbesserte Software auf moderner Hardwareanced softwares on modern hardware.

  • Die Entwicklung schreitet voran, teuer wird es, um alte Software zu erhalten.

  • Die meisten Wartungstechniker sind Neuling und Nutzung Versuch und Irrtum Methode, um Problem zu lösen.

  • Oft machte Änderungen der ursprünglichen Struktur der Software leicht verletzt, so dass es schwer für spätere Änderungen.

  • Änderungen werden oft ohne Papiere verlassen die mehr Konflikte in Zukunft führen kann.

Software-End-Faktoren, die Wartungskosten

  • Struktur der Software-Programm
  • Programming Language
  • Abhängigkeit von externen Umfeld
  • Mitarbeiter die Zuverlässigkeit und Verfügbarkeit

Wartung Aktivitäten

IEEE bietet einen Rahmen für die sequentielle Wartungsprozess Aktivitäten. Es kann in iterativer Weise verwendet werden und kann verlängert werden, so dass maßgeschneiderte Produkte und Verfahren können sein inbegriffen.

Wartung Tätigkeiten

Diese Aktivitäten gehen Hand in Hand mit jeder der folgenden Phase:

  • Identifikation & Tracing - Es geht um Tätigkeiten im Zusammenhang mit der Identifizierung der Anforderung Modifikation oder Wartung. Es wird von Benutzer oder System erzeugt werden, können selbst berichten via Protokolle oder Fehler messages. Here, wird die Wartung Typ Auch klassifiziert.

  • Analyse - Die Modifikation ist für seine Auswirkungen auf das System einschließlich der Sicherheit und Auswirkungen auf die Sicherheit analysiert. Wenn wahrscheinlichen Auswirkungen schwerwiegend ist, wird alternative Lösung gesucht. Eine Set von erforderlich Modifikation wird dann materialisiert in Pflichtenheften. Die Kosten für die Änderung / Wartung analysiert und Schätzung abgeschlossen ist.

  • Design - Neue Module, die ersetzt oder geändert werden müssen, werden konzipiert gegen Erfordernis Pflichtenheft gesetzt in der vorherigen Stufe. Testfälle werden für die Validierung und Verifizierung erstellt.

  • Umsetzung - Die neuen Module werden codiert mit Hilfe von strukturierten Design erstellt in der Design step. Every Programmierer wird erwartet, zu tun Unit-Testen parallel.

  • Systemtest - Integrationstest ist bei neu erstellten Module getan. Integrationstests wird auch zwischen den neuen Modulen und dem System durchgeführt. Schließlich wird das System ist getestet als Ganzes, folgende regressive Testen Verfahren.

  • Acceptance Test - Nach dem Test des System intern, ist es für die Akzeptanz mit der Hilfe von Anwendern getestet. Wenn in diesem Zustand, Beschwerden von Benutzern einige Fragen, die sie adressiert sind oder bemerkt in nächste Iteration anzugehen.

  • Lieferung - Nach Abnahme, ist das System in der ganzen Organisation entweder durch kleine Update-Paket oder frische Installation des Systems im Einsatz. Die letzte Prüfung bei Client-Seite erfolgt, nachdem die Software geliefert wird.

    Training-Betrieb ist gegeben, wenn erforderlich, zusätzlich zu der Fest Kopie der Bedienungsanleitung.

  • Instandhaltungsmanagement - Konfigurationsmanagement ist ein wesentlicher Bestandteil der Wartung des Systems. Es ist mit Versionskontrollwerkzeuge, um Versionen, semi-Version oder Patch-Management- unterstützt.

Software Re-engineering

Wenn wir sie brauchen, um die Software zu aktualisieren, um sie auf den aktuellen Markt zu halten, ohne Auswirkungen auf die Funktionalität, wird es als Software-Re-Engineering. Es ist ein Prozess, bei dem gründlichen das Design der Software geändert und Programme werden neu geschrieben.

Legacy-Software kann nicht halten Abstimmung mit der neuesten Technologie auf dem Markt verfügbar. Da die Hardware veraltet, Aktualisierung von Software wird ein Kopfschmerz. Auch wenn Software altert mit der Zeit, hat seine Funktionalität nicht.

Beispiel zunächst Unix wurde in Assembler Sprache entwickelt. Wenn die Sprache C kommen in die Existenz, Unix wurde neu entwickelt, in C, weil die Arbeit in Assembler Sprache war schwierig.

Andere als diese, manchmal Programmierer feststellen, dass einige Teile der Software brauchen mehr Pflege als andere, und sie müssen auch Re-Engineering.

Prozess der Re-Engineering

Re-Engineering-Prozess

  • Entscheiden - Was zu re-engineer. Ist es ganze Software oder ein Teil davon?

  • Führen - Reverse Engineering, um Spezifikationen der vorhandenen Software zu erhalten.

  • Restrukturierung Programm - wenn erforderlich. Werden beispielsweise wechselnden die funktionsorientierte Programme in objektorientierten Programmen.

  • Re-Struktur-Daten - nach Bedarf.

  • Übernehmen Forward Engineering - Konzepte, um re-engineered Software zu erhalten.

Es gibt einige wichtige Begriffe in Software-Reengineering verwendet.

Reverse Engineering

Es ist ein Prozess, System-Spezifikation von einer gründlichen Analyse, das Verständnis der bestehenden System zu erreichen. Dieser Prozess kann als Reverse SDLC-Modell gesehen werden, also versuchen wir zu höheren Abstraktionsebene durch die Analyse von niedrigeren Abstraktionsebenen zu erhalten.

Ein bestehendes System wird vorher Design implementiert, über die wir nichts wissen. Designer dann nicht durch Reverse Engineering Blick auf den Code und versuchen, den Entwurf zu erhalten. Mit Design in der Hand, versuchen sie, die Spezifikationen zu schließen. So gehen in umgekehrter von Code-System-Spezifikation.

Reverse Engineering

Programm Restrukturierung

Es ist ein Prozess neu zu Re-strukturieren und neu zu bauen die vorhandene Software. Es geht um die Wieder Anordnung der Source-Code, entweder in derselben Programmiersprache oder von einer Programmiersprache zu einer anderen. Umstrukturierung kann entweder Quellcode-Restrukturierung und Daten-Umstrukturierung oder beides.

Re-Strukturierung hat keinen Einfluss auf die Funktionalität der Software, sondern erhöhen die Zuverlässigkeit und Wartbarkeit. Programmteile, die zu Fehlern führen sehr häufig geändert werden kann, oder mit aktualisierten Umstrukturierung.

Die Zuverlässigkeit der Software auf veraltete Hardware-Plattform kann über Umstrukturierung entfernt werden.

Forward Engineering

Forward Engineering ist ein Prozess der Erlangung der gewünschten Software aus den Spezifikationen in der Hand, die nach unten durch Reverse Engineering gebracht wurden. Er geht davon aus, dass es einige Software-Engineering bereits in der Vergangenheit getan.

Forward Engineering ist die gleiche wie Software-Engineering-Prozess mit nur einem Unterschied. es wird immer nach Reverse Engineering durchgeführt.

Forward Engineering

Komponente Wiederverwendbarkeit

Eine Komponente ist ein Teil der Software-Programmcode, der eine unabhängige Task im System führt. Es kann ein kleines Modul oder Untersystem selbst sein.

Beispiel

Die Login-Verfahren, die im Internet verwendet werden, können als Bestandteile gezogen werden, können Drucksystem in Software als Komponent Bestandteil der Software gesehen werden. ent of the software.

Komponenten haben eine hohe Kohäsion der Funktionalität und unteren Kopplungsrate, dh sie arbeiten unabhängig und können Aufgaben ohne Abhängigkeit von anderen Modulen durchzuführen.

In OOP, sind die Objekte sind so konzipiert, sehr spezifisch für ihre Sorge und haben weniger Chancen, in einer anderen Software verwendet werden.

In modulare Programmierung, die Module sind codiert, um bestimmte Aufgaben, die sich über mehrere andere Softwareprogramme verwendet werden können, durchzuführen.

Es ist eine ganz neue vertikalen, die über die Weiterverwendung der Software-Komponente basiert, und ist als Component Based Software Engineering (CBSE).

Komponenten

Wiederverwendung kann auf verschiedenen Ebenen erfolgen

  • Anwendungsebene - Wo eine gesamte Anwendung wird als Sub-System der neuen Software verwendet.

  • Komponentenebene - Wo Subsystem von einer Anwendung verwendet wird.

  • Module Ebene - Wo Funktionsmodule werden wieder verwendet.

    Software-Komponenten bieten Schnittstellen, die verwendet werden können, um die Kommunikation zwischen den verschiedenen Komponenten zu etablieren.

Wiederverwendung Prozess

Zwei Arten von Verfahren verabschiedet werden kann. entweder, indem sie Anforderungen und Einstellen derselben Komponenten oder Bauteile, indem sie dieselben Anforderungen und Modifizieren Anforderungen.

Wiederverwendung Prozess
  • Requirement Specification - Die funktionalen und nicht-funktionalen Anforderungen sind angegebenen, welche ein Software-Produkt muss erfüllen, mit Hilfe von bestehenden Systems, Benutzereingaben oder beides.

  • Design - Dies ist auch ein Standard-SDLC Prozessschritt, in denen die Anforderungen in Bezug auf Software-Sprachgebrauch definiert. Grundlegende Architektur des Systems als Ganzes und seine Teilsysteme erstellt.

  • Geben Komponenten - Durch das Studium der Software-Design, die Designer trennt, das gesamte System in kleinere Komponenten oder Teilsystemen. Ein kompletter Software-Design verwandelt sich in eine Sammlung von einem riesigen Satz von Komponenten arbeiten zusammen.

  • Suchen geeignete Komponenten - Die Softwarekomponente Repository wird von Designern bezeichnet, für die passende Komponente zu suchen, auf der Basis von Funktionalität und Software-Anforderungen bestimmt.

  • Bestandteile enthalten - Alle abgestimmte Komponenten zusammengepackt, um sie zu gestalten als komplette Software.

Advertisements