Software-Evolution

Software-Evolution

Software-Evolution ist ein Begriff aus der Softwaretechnik, im Speziellen aus der Softwarewartung, und beschreibt den Prozess, der folgt, nachdem ein Softwaresystem entwickelt und ausgeliefert wurde. Nach Auslieferung und Benutzung kommen neue Anforderungen dazu und alte Anforderungen verändern sich. Teile des Softwaresystems müssen möglicherweise korrigiert werden, da Fehler auftreten, die zuvor nicht bemerkt wurden. Das System muss an eine neue Plattform adaptiert werden. Die Performance muss verbessert werden und andere nicht-funktionale Anforderungen.

Lehmans Gesetze

Software-Evolution ist ein stetiger Prozess, der sich über den gesamten Lebenszyklus einer Software hindurch zieht. Aufgrund von Beobachtung bei großen Softwaresystemen haben die damaligen IBM-Mitarbeiter Meir M. Lehman und Laszlo Belady folgende Gesetzmäßigkeiten zusammengestellt.[1]

Zusammengefasst (die Wichtigsten)
  • Anhaltender Wandel – Ein System, das verwendet wird, unterliegt kontinuierlichen Veränderungen oder verliert an Effektivität.
  • Zunehmende Komplexität – Ein Softwaresystem, das ständig geändert wird, verliert zusehends an Struktur. Die Änderungen erhöhen die Entropie und Komplexität des Programms.
Alle acht Gesetze in ihrer ursprünglichen Form
  1. Anhaltender Wandel – Softwaresysteme müssen kontinuierlich angepasst werden, oder sie werden immer weniger zufriedenstellend.
  2. Zunehmende Komplexität – Die Komplexität von sich entwickelnden Softwaresystemen entwickelt sich exponentiell zur Lebensdauer, zumindest solange dies nicht gewartet oder reduziert wird.
  3. Selbstregulation – Software-Evolution ist ein sich selbst regulierender Prozess mit einer (nahezu) Normalverteilung von Produkt und Prozess-Maßnahmen.
  4. Erhaltung der organisatorischen Stabilität (unveränderlicher Arbeitsrhythmus) – Die durchschnittliche, effektive, globale Effektivitätsquote in einem sich entwickelnden Softwaresystem ist invariant über die Produkt-Lebensdauer.
  5. Erhaltung der Vertrautheit – Um eine zufriedenstellende Entwicklung eines sich weiterentwickelnden Softwaresystems gewährleisten zu können, müssen alle, die mit einem System arbeiten (z. B. Entwickler, Verkaufspersonal, Benutzer), dafür Sorge tragen, dass sie die Inhalte und Verhaltensweisen im Überblick behalten und das Verhalten des Systems genau kennen. Durch Verringerung von übermäßigem Wachstum lässt sich die Kontrolle leichter behalten. Daher sollte das durchschnittliche, zusätzliche Wachstum eines Systems invariant bleiben, da sich das System stetig weiterentwickelt.
  6. Anhaltendes Wachstum – Die funktionalen Inhalte eines Softwaresystems müssen ständig erhöht werden, um die Zufriedenheit der Nutzer während ihrer gesamten Nutzungsdauer zu erhalten.
  7. Sinkende Qualität – Die Qualität von Softwaresystemen scheint rückläufig zu sein, es sei denn, sie werden konsequent gewartet und an betriebliche Veränderungen angepasst.
  8. Feedback-System – Software-Evolutions-Prozesse stellen Multi-Level-, Multi-Schleifen- und Multi-Agenten-Feedback-Systeme dar und müssen als solche, um eine signifikante Verbesserung über eine vernünftige Basis zu erreichen, behandelt werden.

Literatur

Einzelnachweise

  1. Meir Lehman: Metrics and laws of software evolution—the nineties view. METRICS '97, IEEE. 1997.

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Software evolution — is the term used in Software engineering to refer to the process of developing software initially, then repeatedly updating it for various reasons.General introductionSoftware Evolution is the process of initial development of a software product …   Wikipedia

  • Lehman's laws of software evolution — In Software engineering, the Laws of Software Evolution refer to a series of laws that Lehman and Belady formulated in 1980 with respect to Software evolution cite web|url=http://ieeexplore.ieee.org/xpl/freeabs all.jsp?arnumber=637156 |title=… …   Wikipedia

  • Evolution (software) — Evolution Evolution 2.32.0 …   Wikipedia Español

  • Software visualization — [(Diehl, 2002; Diehl, 2007; Knight, 2002)] is concerned with the static or animated 2 D or 3 D [(Marcus et al., 2003)] visual representation of information about software systems based on their structure [(Staples Bieman, 1999), size (Lanza,… …   Wikipedia

  • Software maintenance — In software engineering, software maintenance is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment.”(ISO/IEC 14764). This… …   Wikipedia

  • Evolution (disambiguation) — In biology, evolution is a change in the inherited traits of a population from one generation to the next.Evolution may also refer to:Film* Evolution (film), a 2001 film by Ivan Reitman * , a 2006 filmTelevision* Evolution (TV series), a… …   Wikipedia

  • Evolution (software) — Evolution Evolution s e mail client Evolution s calendar software Developer(s) Novell GNOME …   Wikipedia

  • Evolution (Software) — Evolution Groupware / Mail Basisdaten Entwickler Novell und GNOME Aktuell …   Deutsch Wikipedia

  • Software prototyping — Software prototyping, a possible activity during software development, is the creation of prototypes, i.e., incomplete versions of the software program being developed.A prototype typically simulates only a few aspects of the features of the… …   Wikipedia

  • Evolution robotics — ist ein US amerikanisches Unternehmen für Robotertechnologie aus Pasadena, Los Angeles County, Kalifornien. Zu den Produkten gehören Lösungen für maschinelles Sehen, Lokalisation und autonomes Navigieren. Evolution rob …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”