1. Einleitung

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Die Größe von Softwaresystemen nimmt tendenziell ab.

False (B)

Welche der folgenden Aussagen beschreibt ein Problem, das durch den wachsenden Umfang und die Komplexität von Softwaresystemen entsteht?

  • Fehler in Sicherheitskritischer Software haben weniger schwere Folgen.
  • Software ist einfacher wiederverwendbar.
  • Softwareprojekte werden oft teurer und dauern länger als geplant. (correct)
  • Die Heterogenität von Softwaresystemen nimmt ab.

Ein Grund für die Bedeutung der Softwaretechnik ist, dass Software oft [BLANK] ist.

lange in Betrieb

Nennen Sie zwei Gründe, warum die Softwaretechnik wichtig ist.

<p>Die Softwaretechnik hilft, Software effizienter, zuverlässiger und sicherer zu entwickeln. Sie ermöglicht es, die Komplexität von Softwaresystemen zu bewältigen und Fehler zu vermeiden.</p> Signup and view all the answers

Ordnen Sie die folgenden Probleme mit Software den entsprechenden Ursachen zu:

<p>Fehler in Sicherheitskritischer Software verursachen große Schäden = Menschenleben sind in Gefahr Größe der Systeme wächst = Komplexität der Systeme steigt Heterogenität nimmt zu = Software ist lange in Betrieb Softwareprojekte scheitern, kosten mehr als geplant, werden später fertig = Software ist nicht wiederverwendbar, nur schwer erweiterbar</p> Signup and view all the answers

Welches der folgenden Ziele wird NICHT explizit im Manifest der Softwaretechnik von 2006 genannt?

<p>Vermarktung von Softwaresystemen (B)</p> Signup and view all the answers

Software Engineering berücksichtigt ausschließlich die Kosten eines Projekts.

<p>False (B)</p> Signup and view all the answers

Nennen Sie zwei Aspekte der Softwarequalität, die bei Software Engineering berücksichtigt werden.

<p>Korrektheit, Zuverlässigkeit</p> Signup and view all the answers

Software Engineering zielt auf die ingenieurmäßige Entwicklung, Wartung, Anpassung und ______ großer Softwaresysteme.

<p>Weiterentwicklung</p> Signup and view all the answers

Ordnen Sie die folgenden Aussagen den entsprechenden Vorteilen des Software Engineerings zu:

<p>Entwicklung großer komplexer Softwaresysteme = Einsatz an entscheidender Stelle Sichere Jobs = Große Auswahl an Stellenangeboten Gute Bezahlung = Viel Geld verdienen Spannende Arbeit = Spaß an erfolgreicher Arbeit</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt keine Eigenschaft von Software?

<p>Software ist durch physikalische Gesetze begrenzt. (B)</p> Signup and view all the answers

Ein Software-Produkt ist immer eine Einzelanfertigung für einen bestimmten Auftraggeber.

<p>False (B)</p> Signup and view all the answers

Welche der folgenden Eigenschaften ist KEIN primäres Ziel im Software Engineering?

<p>Kostensenkung um jeden Preis (B)</p> Signup and view all the answers

Nennen Sie eine Art von Systemsoftware.

<p>Betriebssystem, Compiler, Editor</p> Signup and view all the answers

Die Anzahl der Fehler in Software pro 1000 Zeilen Quellcode ist im Laufe der Jahre gestiegen.

<p>False (B)</p> Signup and view all the answers

Um welchen Faktor hat sich die Programmkomplexität in etwa alle 5 Jahre erhöht?

<p>10</p> Signup and view all the answers

Defekte in der Software sind immer ______.

<p>Konstruktionsfehler</p> Signup and view all the answers

Software muss anpassbar an neue Anforderungen sein, was auch als ______ bezeichnet wird.

<p>Wartbarkeit</p> Signup and view all the answers

Ordnen Sie die folgenden Software-Klassifikationen ihrer Beschreibung zu:

<p>Systemsoftware = Software, die für den Betrieb des Computersystems notwendig ist Anwendungssoftware = Software, die spezifische Aufgaben für den Benutzer ausführt Embedded Software = Software, die in ein Gerät eingebettet ist Generisches Produkt = Software, die für eine breite Masse entwickelt wurde</p> Signup and view all the answers

Ordne folgende Phasen der Fahrzeugentwicklung den geschätzten relativen Abstellkosten je Softwarefehler zu:

<p>Konzept = 1,05 T€ A-Muster = 3,5 T€ B-Muster = 3,6 T€ C-Muster = 6,2 T€ PVS = 68,0 T€ 0-Serie = 75,0 T€ Serie = 87,0 T€</p> Signup and view all the answers

Was sind die drei Aspekte, die im Software Engineering berücksichtigt werden müssen?

<p>Kosten, Termine, Qualität (B)</p> Signup and view all the answers

Software Engineering bezieht sich ausschließlich auf das Programmieren von Software.

<p>False (B)</p> Signup and view all the answers

Nennen Sie eine der Prinzipien, die im Software Engineering eine Rolle spielen.

<p>Modularisierung</p> Signup and view all the answers

Ordnen Sie die folgenden Aufgaben den entsprechenden Bereichen im Software Engineering zu:

<p>Anforderungsanalyse = Vorgehensmodelle Systementwurf = Softwareentwurf Test = Wartung und Weiterentwicklung Änderungsmanagement = Management großer Projekte</p> Signup and view all the answers

Flashcards

Steigende Komplexität von Software

Software wird immer komplexer, da sie größere Systeme mit unterschiedlichen Komponenten umfasst.

Langlebigkeit von Software

Software wird oft über Jahre hinweg verwendet, was Anpassungen und Erweiterungen erforderlich macht.

Probleme bei Softwareprojekten

Softwareprojekte scheitern oft, werden teurer und später fertiggestellt als geplant.

Mangelnde Wiederverwendbarkeit von Software

Software ist oft schwer wiederzuverwenden oder zu erweitern, was die Entwicklung neuer Systeme erschwert.

Signup and view all the flashcards

Gefahr von Fehlern in Softwaresystemen

Fehler in Sicherheitskritischer Software können zu großen Schäden und sogar Menschenleben führen.

Signup and view all the flashcards

Was ist Software Engineering?

Software Engineering zielt darauf ab, große Softwaresysteme mithilfe bewährter Methoden, Prinzipien und Werkzeugen systematisch zu entwickeln, zu warten, anzupassen und weiterzuentwickeln.

Signup and view all the flashcards

Welche wichtigen Aspekte müssen bei der Softwareentwicklung berücksichtigt werden?

Softwareentwickler sollten die drei Aspekte Kosten, Termine und Qualität bei der Entwicklung von Software berücksichtigen.

Signup and view all the flashcards

Welche Qualitätsmerkmale sind bei Software wichtig?

Software Engineering umfasst Aspekte wie Korrektheit, Zuverlässigkeit, Performanz, Sicherheit, Nutzbarkeit, Verständlichkeit, Weiterentwickelbarkeit, Anpassbarkeit und Wartbarkeit.

Signup and view all the flashcards

Was können Software-Ingenieure entwickeln?

Die Entwicklung großer und komplexer Softwaresysteme ist ein wichtiger Einsatzbereich für Software-Ingenieure.

Signup and view all the flashcards

Welche Karriereoptionen bietet Software Engineering?

Software Engineering bietet eine Vielzahl an Stellenangeboten und die Möglichkeit, ein hohes Gehalt zu verdienen.

Signup and view all the flashcards

Immaterielle Natur von Software

Software ist nicht materiell, kann beliebig oft kopiert werden, ist nicht durch physikalische Gesetze begrenzt und verschleißt nicht. Defekte entstehen in der Regel durch Konstruktionsfehler.

Signup and view all the flashcards

Änderbarkeit von Software

Software ist relativ leicht zu ändern, im Vergleich zu materiellen Produkten.

Signup and view all the flashcards

Anpassungsdruck auf Software

Software verändert sich stetig, da sie an neue Anforderungen angepasst werden muss.

Signup and view all the flashcards

Software-Produkt

Software kann wie ein Produkt betrachtet werden, das in sich abgeschlossen ist und für einen bestimmten Kunden entwickelt wurde.

Signup and view all the flashcards

Zuverlässigkeit von Software

Software muss zuverlässig funktionieren, um Schäden zu vermeiden - wie in einem Flugzeug.

Signup and view all the flashcards

Wachstum der Codegröße

Die Größe des Programmcodes wächst exponentiell mit der Zeit, was die Komplexität von Softwaresystemen erhöht.

Signup and view all the flashcards

Fehler in großen Softwaresystemen

Die Anzahl der Fehler in einem Software-System steigt mit der Größe des Codes. Je größer das System ist, desto schwieriger ist es, alle Fehler zu finden.

Signup and view all the flashcards

Kosten von Softwarefehlern

Die Kosten für die Behebung von Fehlern steigen, je später sie im Softwareentwicklungsprozess entdeckt werden. Fehler, die früh entdeckt werden, sind viel günstiger zu beheben als solche, die erst spät gefunden werden.

Signup and view all the flashcards

Herausforderungen in Softwareprojekten

Softwareentwicklungsprojekte werden immer komplexer und die Anforderungen sind oft schwierig zu definieren. Das erhöht die Wahrscheinlichkeit von Fehlern und Problemen.

Signup and view all the flashcards

Erfolgsstatistik von Softwareprojekten

Viele Softwareprojekte scheitern oder werden verspätet abgeschlossen. Die Gründe dafür liegen oft in mangelnder Planung, unrealistischen Erwartungen und unzureichender Kommunikation.

Signup and view all the flashcards

Was sind die wichtigen Aspekte im Software Engineering?

Software Engineering berücksichtigt Kosten, Termine und Qualität als zentrale Aspekte bei der Softwareentwicklung. Diese drei Aspekte müssen in Einklang gebracht werden.

Signup and view all the flashcards

Was gehört zur Softwareentwicklung?

Die Gestaltung der Softwarearchitektur, der Entwurf von Benutzeroberflächen und die Verwendung von Softwaremustern sind wichtige Aufgaben in der Softwareentwicklung.

Signup and view all the flashcards

Wie unterscheidet sich Software Engineering von Programmieren?

Software Engineering befasst sich mit der Entwicklung großer und komplexer Softwaresysteme, die oft in Teams und mit verschiedenen Komponenten entwickelt werden.

Signup and view all the flashcards

Welche Prinzipien prägen Software Engineering?

Software Engineering umfasst Prinzipien wie Abstraktion, Strukturierung, Hierarchisierung, Modularisierung, Wiederverwendung und Variabilität, um komplexe Softwaresysteme zu entwickeln und zu verwalten.

Signup and view all the flashcards

Study Notes

Gründe für die Softwaretechnik

  • Systeme werden immer größer und komplexer.
  • Systeme umfassen verschiedene, heterogene Komponenten.
  • Software ist oft über einen langen Zeitraum in Betrieb.
  • Softwareprojekte scheitern häufig, überschreiten das Budget und dauern länger als geplant.
  • Software ist oft nicht wiederverwendbar und nur schwer erweiterbar.
  • Fehler in sicherheitskritischer Software können zu großen Schäden führen, bis hin zu Gefährdung von Menschenleben.
  • Software Engineering zielt auf die ingenieurmäßige Entwicklung, Wartung, Anpassung und Weiterentwicklung großer Softwaresysteme unter Verwendung bewährter systematischer Vorgehensweisen, Prinzipien, Methoden und Werkzeuge.
  • Die drei zentralen Aspekte sind Kosten, Termine und Qualität.
  • Qualität umfasst Korrektheit, Zuverlässigkeit, Performanz, Sicherheit, Nutzbarkeit, Verständlichkeit, Weiterentwickelbarkeit, Anpassbarkeit und Wartbarkeit.
  • Software umfasst Programme, Prozeduren, Regeln und ggf. zugehörige Dokumentation und Daten für den Betrieb eines Computersystems (IEEE Standard).
  • Software ist ein Sammelbegriff für Programme, Quellcode, ausführbaren Objektcode, Dokumentation für Entwickler, Betreiber und Nutzer, inklusive Installations- und Compilations-Skripte, sowie die Testumgebung und Software-Tests, die für Weiterentwicklung, Installation und Nutzung erforderlich sind (RWTH Software Verträge).
  • Ein Softwaresystem ist ein System (oder Teilsystem), dessen Komponenten aus Software bestehen.
  • Ein Software-Produkt ist ein in sich abgeschlossenes Ergebnis eines erfolgreichen Projekts oder Herstellungsprozesses, i. A. für einen Auftraggeber bestimmt.
  • Software ist immateriell und nicht durch physikalische Gesetze begrenzt.
  • Software unterliegt keinem Verschleiß. Defekte sind immer Konstruktionsfehler.
  • Software ist schwer zu vermessen.
  • Software gilt als relativ leicht änderbar (im Vergleich zu materiellen technischen Produkten).
  • Software unterliegt einem ständigen Anpassungsdruck.
  • Software veraltet.
  • Zuverlässigkeit bedeutet, dass die Software im Fehlerfall keine Schäden verursacht.
  • Benutzbarkeit: Die Software muss sich nach den Bedürfnissen der Benutzer richten. Die Benutzerschnittstelle muss ergonomisch und selbsterklärend sein; Dokumentation muss in allen Detaillierungsgraden ausreichend zur Verfügung stehen.
  • Wartbarkeit: Software muss anpassbar an neue Anforderungen sein. Software sollte möglichst plattformunabhängig sein.
  • Effizienz: Software muss den ökonomischen Gebrauch der Ressourcen des zugrundeliegenden Systems gewährleisten.
  • Die Komplexität von Softwaresystemen wächst exponentiell.
  • Die Fehlerrate nimmt mit der Komplexität zu.
  • Es sind Qualitätsverbesserungen erforderlich, um die Komplexitätssteigerung zu kompensieren.
  • Relative Abstellkosten je Softwarefehler in der Fahrzeugentwicklung variieren.
  • Die Anzahl der gefundenen Defekte pro 1000 Codezeilen ist von 1977 bis 2003 deutlich gesunken.
  • Die Komplexität nimmt ca. alle 5 Jahre um den Faktor 10 zu.
  • Anwendungssoftware wird oft über 20 Jahre eingesetzt.
  • In manchen Betrieben entfallen bis zu 60-70% der Softwarekosten auf Anpassungen an Altsoftware.
  • Die Erfolgsquote von IT-Projekten ist gering (CHAOS Report, Standish).

Definition von Software Engineering

  • Software Engineering ist die Anwendung von fundierten Ingenieurprinzipien, um wirtschaftlich zuverlässige Software zu erstellen, die auf realen Maschinen läuft. (F.L. Bauer, NATO-Konferenz Software-Engineering 1968)
  • Software Engineering zielt auf die ingenieurmäßige Entwicklung, Wartung, Anpassung und Weiterentwicklung großer Softwaresysteme unter Verwendung bewährter systematischer Vorgehensweisen, Prinzipien, Methoden und Werkzeuge. (Manifest der Softwaretechnik, 2006)
  • Berücksichtigung der folgenden drei Aspekte: Kosten, Termine und Qualität. Die Qualität umfasst Korrektheit, Zuverlässigkeit, Performanz, Sicherheit, Nutzbarkeit, Verständlichkeit, Weiterentwickelbarkeit, Anpassbarkeit und Wartbarkeit.

Aufgabenstellungen der Softwaretechnik

  • Softwareentwicklung ist mehr als nur Programmieren!
  • Dazu gehören auch: Vorgehensmodelle, Analyse von Anforderungen, Modellierung, Systemmodellierung, Muster, Softwareentwurf (Design), Systementwurf, Oberflächen, Generative Entwicklung, Test.
  • Weitere Aufgaben sind: Management großer und komplexer Projekte, Schätzung von Terminen und Kosten, Erfassung von Kunden- und Marktanforderungen, Änderungsmanagement, Sicherstellung eines hohen Qualitätsniveaus, Wartung und Weiterentwicklung von Altsystemen, Softwareproduktlinien, Guter Programmierstil, Entwicklungswerkzeuge, Prinzipien wie Abstraktion, Strukturierung, Hierarchisierung, Modularisierung, Wiederverwendung und Variabilität.

Softwaretechnik vs. Programmieren

  • Softwaretechnik befasst sich mit der Größe und Komplexität der Entwicklungsprojekte, Teams, Zusammenarbeit, Komponenten und Qualität.
  • Margaret Hamilton, Direktorin der Softwareentwicklungs-Abteilung des Instrumentation Laboratory des MIT, war an der On-Board-Flugsoftware für das Apollo-Raumfahrtprogramm beteiligt (420.837 Zeilen Code).
  • Große Software-Beispiele: Windows 7 (40 Millionen), Facebook (61 Millionen) Zeilen Code.

Portfolio der SE-Techniken

  • Vergleichbar mit einem Werkzeugkasten: Das richtige Werkzeug für jedes Problem, in der Hand eines Experten.
  • Nicht jeder muss alle Werkzeuge beherrschen, aber mehr Wissen ist vorteilhafter.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Software Engineering Methods Quiz
10 questions
Software de Simulación de Sistemas Complejos
10 questions
Abstraction in Software Engineering
16 questions
Use Quizgecko on...
Browser
Browser