Podcast
Questions and Answers
Warum ist Softwaretechnik (SWT) wichtig, wenn man über das Lösen kleiner Probleme hinauswachsen möchte?
Warum ist Softwaretechnik (SWT) wichtig, wenn man über das Lösen kleiner Probleme hinauswachsen möchte?
- Weil SWT es ermöglicht, Computerspiele mit höherer Auflösung zu entwickeln.
- Weil SWT Methoden und Werkzeuge bietet, um auch große und komplexe Softwareprojekte im Team erfolgreich zu bewältigen. (correct)
- Weil SWT die einzige Möglichkeit ist, Software für mobile Geräte zu entwickeln.
- Weil SWT garantiert, dass jede Software fehlerfrei ist.
Welches der folgenden Beispiele verdeutlicht ein Problem, das typischerweise während der Softwareentwicklung auftreten kann?
Welches der folgenden Beispiele verdeutlicht ein Problem, das typischerweise während der Softwareentwicklung auftreten kann?
- Ein Softwareprojekt liefert nicht die erwarteten Ergebnisse oder weist Mängel in der Benutzerfreundlichkeit auf. (correct)
- Das Projektteam hält regelmäßige Treffen ab.
- Ein Entwickler bevorzugt eine bestimmte Programmiersprache.
- Die Software wird pünktlich fertiggestellt.
Was ist das Hauptziel von Requirements Engineering im Kontext der Softwareentwicklung?
Was ist das Hauptziel von Requirements Engineering im Kontext der Softwareentwicklung?
- Das Testen der entwickelten Software auf Fehler.
- Das möglichst schnelle Programmieren von Software.
- Das Erstellen von möglichst wenigen Dokumenten, um Zeit zu sparen.
- Das Sammeln, Analysieren und Dokumentieren der Anforderungen an ein Softwaresystem, um sicherzustellen, dass das entwickelte Produkt den Bedürfnissen der Stakeholder entspricht. (correct)
Warum ist es wichtig, Abstraktionsmechanismen in der Softwareentwicklung zu verstehen?
Warum ist es wichtig, Abstraktionsmechanismen in der Softwareentwicklung zu verstehen?
Welchen Vorteil bietet der Einsatz einer integrierten Entwicklungsumgebung (IDE) gegenüber einem einfachen Editor und Compiler?
Welchen Vorteil bietet der Einsatz einer integrierten Entwicklungsumgebung (IDE) gegenüber einem einfachen Editor und Compiler?
Was bedeutet der Begriff 'Abstraktion' im Kontext der Softwareentwicklung?
Was bedeutet der Begriff 'Abstraktion' im Kontext der Softwareentwicklung?
Warum ist ein fundiertes Fachvokabular in der Softwaretechnik wichtig?
Warum ist ein fundiertes Fachvokabular in der Softwaretechnik wichtig?
Welche der folgenden Aussagen beschreibt am besten die Natur von Software?
Welche der folgenden Aussagen beschreibt am besten die Natur von Software?
Welche der folgenden Entwicklungen hat die Softwareentwicklung in den letzten Jahren maßgeblich beeinflusst?
Welche der folgenden Entwicklungen hat die Softwareentwicklung in den letzten Jahren maßgeblich beeinflusst?
In welchen Bereichen hat der Einsatz von Software in den letzten Jahren besonders an Bedeutung gewonnen?
In welchen Bereichen hat der Einsatz von Software in den letzten Jahren besonders an Bedeutung gewonnen?
Was sind einige der Herausforderungen, die mit zunehmenden Qualitätsanforderungen an Software verbunden sind?
Was sind einige der Herausforderungen, die mit zunehmenden Qualitätsanforderungen an Software verbunden sind?
Welchen Trend beobachten wir bezüglich der Entwicklung von Software in Unternehmen?
Welchen Trend beobachten wir bezüglich der Entwicklung von Software in Unternehmen?
Warum ist Softwaretechnik (SWT) relevant für die Entwicklung von Software, die auf dem Markt erfolgreich sein soll?
Warum ist Softwaretechnik (SWT) relevant für die Entwicklung von Software, die auf dem Markt erfolgreich sein soll?
Welche Randbedingungen sind bei der Entwicklung von Software zu beachten, um ihre Langlebigkeit zu gewährleisten?
Welche Randbedingungen sind bei der Entwicklung von Software zu beachten, um ihre Langlebigkeit zu gewährleisten?
Was ist die Essenz von Software Engineering gemäß der Definition des IEEE?
Was ist die Essenz von Software Engineering gemäß der Definition des IEEE?
Was gehört typischerweise zu den Aufgaben eines Softwareingenieurs?
Was gehört typischerweise zu den Aufgaben eines Softwareingenieurs?
Was sind Beispiele für Softwaresysteme?
Was sind Beispiele für Softwaresysteme?
Welche Aussage beschreibt Software am treffendsten?
Welche Aussage beschreibt Software am treffendsten?
Wie lassen sich Softwareprodukte nach Sommerville kategorisieren?
Wie lassen sich Softwareprodukte nach Sommerville kategorisieren?
Was umfasst ein SW-System im weiteren Sinne?
Was umfasst ein SW-System im weiteren Sinne?
Welche Art von Software dient dazu, die Hardware eines Computers zu betreiben?
Welche Art von Software dient dazu, die Hardware eines Computers zu betreiben?
Was ist der Hauptzweck von Anwendungssoftware?
Was ist der Hauptzweck von Anwendungssoftware?
Was charakterisiert ein Informationssystem?
Was charakterisiert ein Informationssystem?
Welche Qualitätsattribute sind laut Sommerville entscheidend für Software?
Welche Qualitätsattribute sind laut Sommerville entscheidend für Software?
Welche Intention verbirgt sich hinter dem SWEBOK?
Welche Intention verbirgt sich hinter dem SWEBOK?
Wie ist der SWEBOK gegliedert?
Wie ist der SWEBOK gegliedert?
Worin liegt der Hauptunterschied zwischen Software Engineering und Systems Engineering?
Worin liegt der Hauptunterschied zwischen Software Engineering und Systems Engineering?
Was ist das Hauptziel von Softwaretechnik?
Was ist das Hauptziel von Softwaretechnik?
Welche Herausforderungen beeinflussen die Softwareentwicklung heute?
Welche Herausforderungen beeinflussen die Softwareentwicklung heute?
Warum ist es wichtig für Softwareentwickler, mit den neuesten Trends und Technologien Schritt zu halten?
Warum ist es wichtig für Softwareentwickler, mit den neuesten Trends und Technologien Schritt zu halten?
Welche Rolle spielt die Dokumentation in der Softwareentwicklung?
Welche Rolle spielt die Dokumentation in der Softwareentwicklung?
Welchen Einfluss hat die zunehmende Bedeutung von Open-Source-Software auf die Softwareentwicklung?
Welchen Einfluss hat die zunehmende Bedeutung von Open-Source-Software auf die Softwareentwicklung?
Welchen Zusammenhang gibt es zwischen Agilität und klassischer Softwareentwicklung?
Welchen Zusammenhang gibt es zwischen Agilität und klassischer Softwareentwicklung?
Warum ist es notwendig, ethische Aspekte in der Softwareentwicklung zu berücksichtigen?
Warum ist es notwendig, ethische Aspekte in der Softwareentwicklung zu berücksichtigen?
Welches übergeordnete Ziel verfolgt Softwaretechnik?
Welches übergeordnete Ziel verfolgt Softwaretechnik?
Welchen Stellenwert hat die kontinuierliche Verbesserung in der Softwareentwicklung?
Welchen Stellenwert hat die kontinuierliche Verbesserung in der Softwareentwicklung?
Flashcards
Softwaretechnik (Definition)
Softwaretechnik (Definition)
Ein systematischer Ansatz zur Entwicklung, zum Betrieb, zur Wartung und zur Anforderung von Software.
Softwaretechnik (Alternative Definition)
Softwaretechnik (Alternative Definition)
Das ingenieurmäßige Entwerfen, Herstellen und Implementieren von Software. Die ingenieurwissenschaftliche Disziplin, die sich mit Methoden und Verfahren zur Lösung der damit verbundenen Problemstellungen befasst.
Was ist R/3?
Was ist R/3?
Ein Software-System für betriebswirtschaftliche Anwendungen der Firma SAP AG, Mannheim (Anfang des Jahrtausends).
FURPS: Functionality
FURPS: Functionality
Feature Set, Capabilities, Generality, Security.
Signup and view all the flashcards
FURPS: Usability
FURPS: Usability
Human Factors, Aesthetics, Consistency, Documentation.
Signup and view all the flashcards
FURPS: Reliability
FURPS: Reliability
Frequency/severity of failure, Recoverability, Predictability, Accuracy, Mean time to failure.
Signup and view all the flashcards
FURPS: Performance
FURPS: Performance
Speed, Efficiency, Resource consumption, Throughput, Response time.
Signup and view all the flashcards
FURPS: Supportability
FURPS: Supportability
Testability, Extensibility, Adaptability, Maintainability, Compatibility.
Signup and view all the flashcards
Was ist FURPS?
Was ist FURPS?
Eine Anforderungsspezifikation, die funktionale und nicht-funktionale Anforderungen klassifiziert.
Signup and view all the flashcards
Was sind Altlasten (Legacy Systems)?
Was sind Altlasten (Legacy Systems)?
SW wird oft 20 Jahre und länger eingesetzt. Änderungen an der SW resultieren aus sich ändernden Umgebung.
Signup and view all the flashcards
Was bedeutet Funktionstreue?
Was bedeutet Funktionstreue?
Die Übereinstimmung der definierten Produktanforderungen mit dem fertiggestellten Produkt.
Signup and view all the flashcards
Was bedeutet Qualitätstreue?
Was bedeutet Qualitätstreue?
Die Übereinstimmung der definierten Qualitätsanforderungen mit dem fertiggestellten Produkt.
Signup and view all the flashcards
Was bedeutet Termintreue?
Was bedeutet Termintreue?
Die Einhaltung der im Entwicklungsplan festgelegten Termine.
Signup and view all the flashcards
Was bedeutet Kostentreue?
Was bedeutet Kostentreue?
Die Einhaltung des in der Wirtschaftlichkeitsrechnung geplanten Personal- und Sachaufwandes.
Signup and view all the flashcards
Systemsoftware
Systemsoftware
SW, die für eine spezielle Hardware entwickelt wurde, um den Betrieb dieser Hardware zu ermöglichen.
Signup and view all the flashcards
Anwendungssoftware
Anwendungssoftware
SW, die Aufgaben des Anwenders mit Hilfe eines Computersystems löst.
Signup and view all the flashcards
Was ist Software (allgemein)?
Was ist Software (allgemein)?
Computerprogramme und zugehörige Dokumentation wie Anforderungs-, Designmodelle und Benutzerhandbücher.
Signup and view all the flashcards
Was ist ein System?
Was ist ein System?
Ein Ausschnitt aus der realen oder gedanklichen Welt, bestehend aus Gegenständen und Strukturen.
Signup and view all the flashcards
Was ist ein Software-System?
Was ist ein Software-System?
Ein System, dessen Systemkomponenten und Systemelemente aus Software bestehen.
Signup and view all the flashcards
Informationssystem
Informationssystem
Ein System aus Menschen und Maschinen, die Informationen erzeugen, benutzen und durch Kommunikationsbeziehungen verbunden sind.
Signup and view all the flashcards
System-Entwicklung
System-Entwicklung
Bedeutet die Entwicklung von Systemen, die aus Hardware- und Software-Komponenten bestehen.
Signup and view all the flashcards
Software-Entwicklung
Software-Entwicklung
Bedeutet die ausschließliche Entwicklung von Software.
Signup and view all the flashcards
Was ist das Ziel von Softwareentwicklung?
Was ist das Ziel von Softwareentwicklung?
Die Software sollte dem Benutzer die erforderliche Funktionalität und Leistung bieten und wartbar, zuverlässig und akzeptabel sein.
Signup and view all the flashcards
Was bedeutet Maintainability?
Was bedeutet Maintainability?
Die Software muss sich weiterentwickeln, um sich ändernden Bedürfnissen gerecht zu werden.
Signup and view all the flashcards
Was bedeutet Dependability?
Was bedeutet Dependability?
Die Software muss vertrauenswürdig sein.
Signup and view all the flashcards
Was bedeutet Efficiency?
Was bedeutet Efficiency?
Die Software sollte keine Systemressourcen verschwenden.
Signup and view all the flashcards
Was bedeutet Acceptability?
Was bedeutet Acceptability?
Die Software muss von den Benutzern akzeptiert werden, für die sie entwickelt wurde. Dies bedeutet, dass sie verständlich, nutzbar und mit anderen Systemen kompatibel sein muss.
Signup and view all the flashcards
Was ist FURPS?
Was ist FURPS?
Ein Modell zur Klassifizierung von Softwarequalitätsmerkmalen (funktional und nicht-funktional).
Signup and view all the flashcards
Rechnergestütztes Informationssystem
Rechnergestütztes Informationssystem
Ein System, bei dem die Erfassung, Speicherung, Übertragung, Auswertung und/oder Transformation von Informationen durch Computersysteme teilweise automatisiert sind.
Signup and view all the flashcards
SWEBOK Initiative
SWEBOK Initiative
Eine Initiative der IEEE, die das weltweit bekannte und akzeptierte Wissen über die Gebiete der Softwaretechnik zusammenträgt.
Signup and view all the flashcardsStudy Notes
Gründe für die Wichtigkeit von Softwaretechnik (SWT)
- SWT ermöglicht es, komplexe und große Probleme zu bewältigen, nicht nur kleine.
- SWT ist unerlässlich für die Softwareentwicklung in Teams, besonders bei großen Softwaresystemen.
- SWT dient dazu, Software mit hoher Qualität zu erstellen und Softwareprobleme zu vermeiden.
Softwareprobleme
- Softwareprobleme werden durch Fehler und falsche oder schwere Bedienung (MCI) erkennbar.
- Die Ursachen für Softwareprobleme können sehr vielfältig sein.
Beispiele für Softwarefehler
- ARIANE 5: Der Erststart scheiterte aufgrund eines gut dokumentierten Softwarefehlers.
- AIRBUS 320: Im Juni 1998 gab es in Mühlhausen einen Bedienfehler.
- Satelliten können Fehler beim Sonnensegel haben, die bei der Endkontrolle auffallen.
- Bestrahlungsgeräte können zu hohe Dosen abgeben.
Requirements Engineering
- Requirements Engineering umfasst verschiedene Phasen, von den ursprünglichen Vorstellungen bis zur tatsächlichen Umsetzung und Installation beim Benutzer.
- Die größte Herausforderung beim Aufbau eines Softwaresystems ist die genaue Festlegung dessen, was gebaut werden soll.
Lernziele der Softwaretechnik (SWT)
- Das Verständnis von Softwaretechnik (SWT) bzw. Software Engineering (SWE oder SE) ist ein Lernziel.
- Das Verständnis von Abstraktionsmechanismen in der Softwareentwicklung ist ein Lernziel.
- Weitere Lernziele sind CASE (Computer Aided Software Engineering), OOT auf Basis von UML 2.x und Java, sowie das Testen und Debuggen.
IDE (Integrierte Entwicklungsumgebung)
- Ein Editor und ein Compiler reichen manchen zur Programmierung aus.
- Eine umfangreiche IDE kann die Produktivität durch GUI-Builder, Configuration Management, JUnit, Debugger und Modellierungstools steigern.
Abstraktion
- Eine Ausbildung zum Programmierer oder IT-Fachkraft wird empfohlen.
- Der Einsatz von Abstraktion kann die Fähigkeiten in der Programmierung verbessern.
- Das Bilden von Modellen durch Abstraktion ist wichtig um sich auf das für die Applikation Wesentliche zu konzentrieren und somit ein gutes SW-System zu erhalten.
Fachvokabular
- Im Rahmen von SWT werden etwa 200 Vokabeln gelernt.
- Das erlernen von Fachvokabular beinhaltet die Semantik und Einsatzmöglichkeiten.
- Das Fachvokabular beinhaltet Begriffe wie Klasse, Interface, Parametrisierung, Assoziation, Vererbung, Komposition, Aktivität, Anwendungsfall, SW-Architektur und Pattern.
Gliederung der Softwaretechnik (SWT)
- Einführung in SWT
- Systemmodelle
- UML
- Software-Entwicklungsprozesse / Prozessmodelle
- Objektorientierte Analyse mit UML
- Requirements Engineering / Anforderungsanalyse
- Software testen
- Softwareevolution / Softwarewartung und Weiterentwicklung
Charakteristika von Software
- Software ist ein immaterielles Produkt und unterliegt keinem Verschleiß.
- Software wird nicht durch physikalische Gesetze begrenzt und ist im Allgemeinen leichter und schneller änderbar als technische Produkte.
- Für Software gibt es keine Ersatzteile, sie altert anders als Hardware.
- Die Qualität von Software ist schwer zu bewerten, zu messen, definieren und quantifizieren.
Veränderungen der Software in den letzten Jahren
- Zunehmende Bedeutung, wachsende Komplexität und steigende Qualitätsanforderungen sind erkennbar.
- Es gibt einen Nachfragestau und Engpassfaktor.
- Mehr Standardsoftware wird verwendet.
- Zunehmend gibt es „Altlasten“ (Legacy Systems).
- Zunehmend gibt es eine Entwicklung von Software, die Außer-Haus stattfindet.
Zunehmende Bedeutung von Software
- Software entwickelt sich zu einem eigenständigen Wirtschaftsgut und spielt eine entscheidende Rolle in der Gesellschaft.
- Software ist Bestandteil der meisten hochwertigen technischen Produkte und Dienstleistungen.
- In Banken und Versicherungen werden nahezu alle Dienstleistungen durch Software realisiert.
Wachsende Komplexität am Beispiel des Systems R/3
- R/3 ist ein Softwaresystem für betriebswirtschaftliche Anwendungen von SAP AG, Mannheim (Anfang des Jahrtausends).
- R/3 umfasst 7.000.000 LOC (Lines of Code).
- Das System hat 100.000 Funktionsaufrufe und 20.000 unterschiedliche Funktionen.
- Es gibt 21.000 Reports, 17.000 Menüleisten und 14.000 Funktionsbausteine.
Zunehmende Qualitätsanforderungen an Software
- Software soll immer schneller, billiger, perfekter, fehlerfreier und benutzerfreundlicher sein.
FURPS-Modell
- FURPS ist ein Akronym für ein Modell zur Klassifizierung von Software-Qualitätsmerkmalen.
- Functionality: Umfasst den Funktionsumfang, Fähigkeiten, Allgemeinheit und Sicherheit.
- Usability: Bezieht sich auf menschliche Faktoren, Ästhetik, Konsistenz und Dokumentation.
- Reliability: Beschreibt die Häufigkeit/Schwere von Ausfällen, Wiederherstellbarkeit, Vorhersagbarkeit, Genauigkeit und mittlere Ausfallzeit.
- Performance: Betrifft Geschwindigkeit, Effizienz, Ressourcenverbrauch, Durchsatz und Reaktionszeit.
- Supportability: Umfasst Testbarkeit, Erweiterbarkeit, Anpassbarkeit, Wartbarkeit, Kompatibilität, Konfigurierbarkeit, Servicefreundlichkeit, Installierbarkeit, Lokalisierbarkeit und Portabilität.
- Das Modell, entwickelt bei Hewlett-Packard, wurde zuerst von Grady und Caswell öffentlich ausgearbeitet.
- FURPS+ wird heutzutage in der Softwareindustrie verwendet.
Mehr Standardsoftware
- Der Trend geht hin zum Einsatz von Standardsoftware.
- Daimler Benz ersetzte eigene Datenbanken durch ADABAS und DB/2.
- Eigenentwickelte kaufmännische Applikationen werden vermehrt durch das SAP-Produkt R/3 ersetzt.
Zunehmende Altlasten (Legacy Systems)
- Software wird oft 20 Jahre und länger eingesetzt.
- Aktuelle Änderungen an der Software, die aus einer sich ändernden Umgebung resultieren, machen mehr als 90 % aller Softwareentwicklungen aus.
- Es gibt Firmen, die sich auf die Übernahme von Alt-Software spezialisiert haben.
Zunehmend Außer-Haus-Entwicklung
- Outsourcing ist der Trend: Software wird nicht mehr selbst entwickelt, sondern an Firmen vergeben.
- Durch die zunehmende Integration von Software in Produkte bleibt jedoch ein hoher Eigenanteil in der Firma.
- Daimler Benz entwickelt beispielsweise ein Betriebssystem zur Steuerung aller Funktionen in einem KFZ.
- Aktuell geht der Trend eher wieder dahin, Software im eigenen Haus zu entwickeln, um das Know-how im Hause zu behalten.
Schwierigkeiten bei der Entwicklung marktreifer Software
- Funktionstreue: Die Übereinstimmung der definierten Produktanforderungen mit dem fertiggestellten Produkt.
- Qualitätstreue: Die Übereinstimmung der definierten Qualitätsanforderungen mit dem fertiggestellten Produkt.
- Termintreue: Die Einhaltung der im Entwicklungsplan festgelegten und dem Kunden bzw. Marketing zugesagten Fertigstellungstermine.
- Kostentreue: Die Einhaltung des in der Wirtschaftlichkeitsrechnung geplanten Personal- und Sachaufwandes für die Produkt-Erstellung und -Pflege.
Randbedingungen bei der Softwareentwicklung
- Während der Entwicklung ändern sich die Produktanforderungen, die Hardware- und Systemsoftware-Komponenten sowie die Software-Methoden und -Werkzeuge.
- Hohe Anforderungen an Portabilität sind einzuhalten, da Software-Produkte länger leben als die Hardware und oft auf mehreren Plattformen eingesetzt werden.
- Der Lebens-Zyklus von Anwendungssoftware beträgt 10 bis 30 Jahre, von Systemsoftware circa 6 Jahre und von Hardware circa 3 Jahre.
Definition von Softwaretechnik
- Software Engineering ist ein systematischer Ansatz zur Entwicklung, zum Betrieb, zur Wartung und zu den Anforderungen von Software (IEEE Standard Glossary of Software Engineering Terminology, 1983).
- Software Engineering ist das ingenieurmäßige Entwerfen, Herstellen und Implementieren von Software sowie die ingenieurwissenschaftliche Disziplin, die sich mit Methoden und Verfahren zur Lösung der damit verbundenen Problemstellungen befasst (Brockhaus Enzyklopädie).
- Software Engineering ist eine Ingenieurdisziplin, die sich mit allen Aspekten der Softwareproduktion befasst.
- Softwareingenieure sollten einen systematischen und organisierten Ansatz für ihre Arbeit wählen und geeignete Werkzeuge und Techniken verwenden, abhängig von dem zu lösenden Problem, den Entwicklungsbeschränkungen und den verfügbaren Ressourcen (Sommerville, 2004).
Beispielsoftwaresysteme
- Autovermietung
- Kaffeeautomat
- Reservierungssystem Kreuzfahrten
- Notenverwaltungssystem Hochschulen
- Spendensammler
Software definition
- Sammelbezeichnung für Programme, die für den Betrieb von Rechensystemen zur Verfügung stehen, einschließlich der zugehörigen Dokumentation (Brockhaus-Enzyklopädie).
- Unter Software subsumiert man alle immateriellen Teile, d.h. alle auf einer Datenverarbeitungsanlage einsetzbaren Programme (Lexikon der Informatik und Datenverarbeitung, 1986).
- Menge von Programmen oder Daten zusammen mit begleitenden Dokumenten, die für ihre Anwendung notwendig oder hilfreich sind (Hesse: Ein Begriffssystem für die Softwaretechnik, 1984).
Software Engineering versus Systems Engineering
- Software-Entwicklung bedeutet die ausschließliche Entwicklung von Software (Software Engineering).
- System-Entwicklung bedeutet die Entwicklung von Systemen, die aus Hardware- und Software-Komponenten bestehen (Systems Engineering).
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.