Definition Hardware
Die Hardware – wörtlich übersetzt „Eisenwaren“ – umfasst sämtliche Geräte der elektronischen Datenverarbeitung.
Definition Chief-Programmer-Team
Das hierarchische Prinzip wird bei der Software-Entwicklung zum Beispiel durch das „Chief Programmer“-Team8 umgesetzt. Der „Chefprogrammierer“ erledigt alle wichtigen Arbeiten selbst und weist den anderen Entwicklern vor allem unkritische Detailaufgaben zu.
Warum sind Rollenzuweisungen in der modernen Software-Entwicklung zwingend erforderlich?
In der Regel arbeiten bei der Entwicklung mehrere Personen in einem Team zusammen. Über die Rollenzuweisung werden die Aufgaben, Verantwortlichkeiten und Kompetenzen jedes Beteiligten festgelegt.
In einem Projekt mit wenigen Mitarbeitern sollen einige Entwickler gleichzeitig die Rollen Programmierer und Tester übernehmen. Beurteilen Sie diesen Vorschlag. Was muss unbedingt beachtet werden?
Die Zuweisung dieser beiden Rollen ist nur dann sinnvoll, wenn die Programmierer nicht ihre eigene Arbeit überprüfen. Wenn das nicht sichergestellt werden kann, sollte auf die mehrfache Zuweisung der Rollen in jedem Fall verzichtet werden.
Welche Aufgaben hat ein „Ersatzprogrammierer“ im „Chief Programm
Der „Ersatzprogrammierer“ ersetzt im Notfall den „Chefprogrammierer“. Er benötigt daher dieselben Qualifikationen wie der „Chefprogrammierer“.
Grundsätze von Rollenverteilung in Teams
• Im Team arbeiten mehrere Personen mit derselben Rolle zusammen – zum Beispiel nur Tester oder nur Programmierer. Damit jede nötige Rolle abgedeckt wird, sind mehrere Teams erforderlich, die zusammenarbeiten.
• Im Team arbeiten mehrere Personen mit unterschiedlichen Rollen zusammen. Solch ein Team könnte sich um einen ganz bestimmten Bereich der Software kümmern – beispielsweise um die grafische Benutzeroberfläche oder um die Programmierung einer bestimmten Schnittstelle zu einem anderen System.
Definition demokratisches Team
In einem demokratischen Team gibt es keinerlei Hierarchie. Alle Mitglieder sind gleichberechtigt. Entscheidungen werden vom Team gemeinsam getroffen. Das demokratische Team funktioniert allerdings nur dann, wenn kein Mitglied versucht, eine Führungsposition anzustreben.
Definition Pair-Programmer-Team
n der Software-Entwicklung findet sich das demokratische Team zum Beispiel beim „Pair Programmer“-Team7 wieder. Hier arbeiten immer zwei Entwickler gemeinsam und gleichberechtigt an einer Lösung. Der eine Entwickler übernimmt so quasi automatisch die Qualitätssicherung für den anderen Entwickler.
Definitiion hierarchisches Team
Ein hierarchisches Team arbeitet mit einem Team-Leiter, der den anderen Team-Mitgliedern Arbeiten zuweist und diese Arbeiten prüft. Häufig findet sich neben dem eigentlichen Team-Leiter auch noch ein Team-Manager, der vor allem für die Organisation des Teams zuständig ist.
Aufgabe des Designers in der Rollenverteilung in der Software-Entwicklung
Der Designer ist vor allem für die Analyse und den Entwurf zuständig
Aufgaben des Programmierers in der Aufgabenverteilung in der Software-Entwicklung
der Programmierer erstellt die ausführbare Anwendung
Aufgaben des Testers in der Rollenverteilung in der Software-Entwicklung
Der Tester prüft die Software
Definition Rolle in der Software-Entwicklung
Eine Rolle in der Software-Entwicklung definiert die Aufgaben, Verantwortlichkeiten und Kompetenzen einer Person.
Aufgabe des Kunden in der Rollenverteilung in der Software-Entwicklung
Eine mögliche Rolle ist zum Beispiel Kunde. Neben der Definition der Anforderungen an die Software liefert er alle nötigen Fachinformationen, die für die Umsetzung benötigt werden, prüft die Software – zum Beispiel über Prototypen – und nimmt das fertige Produkt schließlich ab.
Aufgabe des Anwenders in der Rollenverteilung in der Software-Entwicklung
Auch die Anwender lassen sich über eine eigene Rolle abbilden. Ihre Aufgabe besteht im Wesentlichen in der Arbeit mit dem System.
Aufgabe des Managers in der Aufgabenverteilung in der Software-Entwicklung
Eine andere Rolle wäre Manager. Er ist für die Organisation der Arbeit verantwortlich.
Rollen, die an der tatsächlichen Entwicklung beiteiligt sind
Entwickler
Designer
Tester
Nachteil des kooperativen Führtungsstils
Als Nachteil des kooperativen Führungsstils können die zeitlichen Verzögerungen bei der Entscheidungsfindung (z.B. infolge von Beratungsgesprächen mit den Mitarbeitern) angesehen werden. Dieser Nachteil wird aber sicher dadurch ausgeglichen, dass die Entscheidungen durch die Einbindung der Mitarbeiter i.d.R. besser werden und die Mitarbeiterzufriedenheit größer ist.
Definition bürokratischer Führungsstil
Die Mitarbeiter sind anonyme Faktoren. Sie erhalten zumeist nur schriftliche Anweisungen. Berichte und schriftliche Überprüfungen kontrollieren die Arbeit.
Patriachialischer Führungsstil
Die Mitarbeiter werden „als Kinder“ behandelt. Sie stehen in einem Abhängigkeitsverhältnis. Informationen kommen als „Geschenk von oben“. Aufsicht und Kontrolle erfolgen nach Gutdünken.
Laisse fairez-Führungsstils
Die Mitarbeiter sind Individuen, denen große Freiheiten eingeräumt werden. Informationen kommen zufällig. Eine Kontrolle erfolgt lediglich durch den Mitarbeiter selbst.
Nachteile des autoritären Führungsstils
• mangelnde Motivation der Mitarbeiter,
• keine Selbstentfaltung des Mitarbeiters,
• möglicherweise ein überforderter Vorgesetzter (qualitativ, quantitativ), was Fehlentscheidungen verursachen kann.
Merkmale des kooperativen Führungsstils
• Der Vorgesetzte beteiligt seine Mitarbeiter am Entscheidungsprozess. Er erwartet von seinen Mitarbeitern eine sachliche Unterstützung.
• Der Vorgesetzte berücksichtigt die Einwände/Anregungen der Mitarbeiter bei seinen Entscheidungen.
• Er delegiert so viel wie möglich und gibt nur die nötigsten Anweisungen. Er berücksichtigt dabei die Fähigkeiten seiner Mitarbeiter und die Tatsache, dass er nicht alles weiß.
• Der Vorgesetzte führt Erfolgskontrollen durch.
• Der Vorgesetzte benötigt keine Statussymbole.
Vorteile des kooperativen Führungsstils
• hohe Motivation
• Entlastung des Vorgesetzten
• Förderung der Mitarbeiter
• sachgerechte Entscheidungen
Welchen Ansatz der Software-Entwicklung berücksichtigt der Rational Unified Process besonders?
Der Rational Unified Process berücksichtigt besonders die objektorientierte Entwicklung.
Definition Personalpolitik
• der Knappheit des Angebots qualifizierter Mitarbeiter; trotz hoher Arbeitslosigkeit fehlt es häufig an qualifizierten Kräften
• der Steigerung von Anforderungen, die durch den technologischen Fortschritt bedingt sind (im DV-Bereich ist es schon seit längerer Zeit äußerst schwierig, Mitarbeiter zu finden, die in der Lage sind, die immer komplexer werdenden Aufgabenstellungen zu lösen)
Aufgaben der Personalpolitik
• Planung des Mitarbeiterbedarfs und Beschaffung der Mitarbeiter,
• Auswahl und Einsatz der Mitarbeiter,
• Förderung der Mitarbeiter im Sinne der Aus- und Weiterbildung,
• Schaffung einer angemessenen Lohn- und Gehaltsgerechtigkeit,
• Schaffung eines angenehmen Betriebsklimas,
• angemessene Berücksichtigung der sozialen Belange der Mitarbeiter.
Unterscheidung Personalplanung
kurzfristige Personalplanung
langfristige Personalplanung
Betrachtung der kurzfristigen Personalplanung
• Altersstruktur
• Krankenstand
• Fluktuation (Wechsel der Mitarbeiter)
Betrachtungspunkte der langrfristigen Personalplanung
• Sollen die Produktionskapazitäten erweitert werden? • Ist mit einschneidenden Rationalisierungsmaßnahmen zu rechnen?
• Wie sehen die Produktionsmethoden in der Zukunft aus? • Welchen Verlauf nimmt die Bevölkerungsentwicklung?
• Wie entwickeln sich die Ausbildungszeiten?
• Wie wirken sich mögliche Arbeitszeitverkürzungen aus?
Hauptaufgabe der Personalauswahl
Die Hauptaufgabe der Personalauswahl ist festzustellen, ob ein Bewerber für eine vorgesehene Position geeignet ist.
Ziel der Personalauswahl
Ziel der Personalauswahl muss es i.d.R. sein, gute, leistungfähige Mitarbeiter langfristig zu gewinnen.
Phasen der Personalauswahl
• Festlegung der Stellenanforderungen
• Erfassung der Bewerber
• Eignungsprüfung/Eignungstest
• Entscheidung über die Einstellung
Definition Motivation
Unter Motivation verstehen wir die Identifikation des Mitarbeiters mit den Unternehmenszielen. Diese Motivation kann mit bestimmten Führungsinstrumenten und Führungsprinzipien verstärkt werden. Deshalb dient eine gute, qualifizierte Mitarbeiterführung immer dem ganzen Unternehmen und trägt zur Verwirklichung der Unternehmensziele bei.
Faktoren des autoritären Führungsstiles
• Der Vorgesetzte trifft seine Entscheidungen ohne den Mitarbeiter und begründet Entscheidungen nicht.
• Den Anordnungen des Vorgesetzten ist widerspruchslos Folge zu leisten, andernfalls drohen Sanktionen.
• Das Verhältnis Vorgesetzter – Mitarbeiter ist distanziert. Der Vorgesetzte gibt nur die Informationen weiter, die der Mitarbeiter zur Arbeitserfüllung benötigt.
• Der Vorgesetzte kontrolliert die Befolgung seiner Anweisungen durch detaillierte Ausführungskontrollen.
• Der Vorgesetzte hat Statussymbole.
Wie wird eine Version im inkrementellen Modell genannt?
Eine Version im inkrementellen Modell wird Build genannt.
Was ist eine besondere Stärke des Spiralmodells?
Das Spiralmodell ermöglicht durch die Risikoanalyse ein schnelles Erkennen möglicher Risiken und eine schnelle Reaktion.
Aktivitäten während der Phasen des
• Planung,
• Analyse,
• Entwurf,
• Implementierung
• Test.
Wann kann das Prototyping zusätzlichen Aufwand bei der Software-Entwicklung bedeuten?
Zusätzlicher Aufwand entsteht vor allem beim Erstellen von „Wegwerf“-Prototypen. Diese Prototypen werden nach dem Einsatz nicht mehr verwendet.
Wofür können Prototypen sehr gut eingesetzt werden?
Prototypen eignen sich sehr gut für die Validierung.
Synonym vollständiger Prototyp
Vollständige Prototypen werden auch Pilotsystem genannt.
Definition unvollständiger Prototyp
Der unvollständige Prototyp setzt nur bestimmte Teile des Systems um – zum Beispiel lediglich einen bestimmten Prozess oder die grafische Benutzeroberfläche. Unvollständige Prototypen lassen sich noch weiter unterteilen in vertikale Prototypen und horizontale Prototypen.
Definition vertikaler Prototyp
Ein vertikaler Prototyp bildet dabei einen bestimmten Prozess durch sämtliche Schichten des Systems ab – zum Beispiel die Ausleihe eines Buchs in unserer Leihbücherei. E
Ein horizontaler Prototyp dagegen bildet eine Schicht des Systems möglichst vollständig nach – zum Beispiel die grafische Oberfläche. Hier wird dann nur demonstriert, wie die Oberfläche aussehen könnte. Die Funktionalität – also zum Beispiel die Reaktion auf einen Mausklick auf eine Schaltfläche – dagegen fehlt.
Schichten eines Software Systems
1. der Präsentation,
2. der Applikation – die Anwendung
3. der Datenhaltung
Definition Präsentation in einem Software System
Zur Präsentation gehört alles, was direkt am Bildschirm passiert – also zum Beispiel die Datenein- und -ausgabe, aber auch die Benutzeroberfläche. Hier erfolgt – wenn Sie so wollen – die Kommunikation zwischen Mensch und Maschine.
Definiton Applikation im Software-System
Zur Applikation gehört die gesamte Logik der Anwendung – also, wenn Sie so wollen, das eigentliche Programm. In der Applikationsschicht erfolgt zum Beispiel die Verarbeitung von Daten durch Berechnungen.
Definition Datenhaltung im Software-System
In der Datenhaltung schließlich erfolgen das Speichern und auch das Abrufen der Daten – meistens über Datenbanken.
Definiton Weg-Werf-Prototyp
Ein „Wegwerf“-Prototyp wird nur zur Demonstration eingesetzt – zum Beispiel, um dem Anwender einen ersten kurzen Eindruck zur vermitteln oder um einem möglichen Kunden eine Vorstellung von der Software zu geben. Nach der Demonstration wird der Prototyp nicht mehr verwendet – er wird „weggeworfen“. Beim „Wegwerf“-Prototyp zählt vor allem di
Synonym Wegwerf-Prototyp
Wegwerf“-Prototypen werden auch Throw-away-Prototypena) genannt. Häufig findet sich auch die Bezeichnung Rapid Prototypingb).
Definition wiederverwendbarer Prototyp
Ein wiederverwendbarer Prototyp schließlich dient zur schrittweisen Entwicklung des vollständigen Systems. Dazu wird in der Regel zunächst ein erster Prototyp erstellt, der einige wenige eindeutig geklärte Basisfunktionen enthält. Dieser Prototyp wird dann von den Anwendern geprüft und beurteilt. Anhand der Beurteilung wird der erste Prototyp verbessert und weiter ausgebaut. Der so entstandene neue Prototyp wird wieder durch die Anwender beurteilt und weiter ausgebaut. So entsteht ein evolutionäres Modell.
Definition Evolution in einem Software System
Eine Evolution ist eine ständig fortschreitende Entwicklung.
Definiiton Inkrement
Inkrement bedeutet so viel wie Zuwachs.
Definiiton Build im inkrementellen System
Hier werden verschiedene aufeinander aufbauende Versionen des Produkts – Build genannt5 – hintereinander entwickelt und ausgeliefert. Den Ausgangspunkt bilden dabei wie beim evolutionären Prototyping eindeutig geklärte Basisfunktionen. Diese Basisfunktionen werden dann in jeder folgenden Ausbaustufe weiter verfeinert beziehungsweise angepasst.
Ablauf Spiralsystem
Die Spirale wird von innen nach außen im Uhrzeigersinn durchlaufen. Der Startpunkt befindet sich links oben im Inneren der Spirale.
Schritte im Spiralsystem
Im ersten Schritt (in der Abbildung links oben) werden jeweils die Ziele und Anforderungen definiert, verschiedene Lösungsvarianten ermittelt sowie die Nebenbedingungen und Einschränkungen ermittelt. Zu den Nebenbedingungen und Einschränkungen gehören zum Beispiel die Kosten und Termine.
Im zweiten Schritt (in der Abbildung rechts oben) werden die verschiedenen Lösungsvarianten im Rahmen einer Risikoanalyse kritisch bewertet. Hier sollen mögliche Risiken bei der Entwicklung möglichst schnell sichtbar gemacht werden und geeignete Maßnahmen zur Beseitigung der Risiken getroffen werden. Ein wichtigstes Hilfsmittel bei der Risikoanalyse sind Prototypen.
Im dritten Schritt (in der Abbildung rechts unten) erfolgen die konkrete Umsetzung und die Prüfung der Umsetzung. Was genau in diesem dritten Schritt geschieht, hängt vom Fortschritt des Projekts ab. Zu Beginn wird zum Beispiel ein Vorgehensmodell ausgewählt (in der Abbildung innen im rechten unteren Bereich), später erfolgen hier zum Beispiel die Systemspezifikation oder der Komponententest.
Im vierten Schritt (in der Abbildung links unten) werden die nächsten Phasen vorbereitet und geplant.
Definition Rational Unified Process
Der Rational Unified Process6 – kurz RUP – ist ein Vorgehensmodell für die objektorientierte Software-Entwicklung.
Phasen des Rational Unified Process
• die Vorbereitung, in der vor allem die Anforderungen an das System erarbeitet werden,
• die Ausarbeitung, in der ein Entwurf für die Umsetzung der Anforderungen erstellt wird,
• die eigentliche Umsetzung – die Konstruktion
• die Einführung des fertig gestellten Systems.
Unterscheidung Prototyp
• der vollständige Prototyp,
• der unvollständige Prototyp,
• der „Wegwerf“-Prototyp
• der wiederverwendbare Prototyp
Definition vollständige Prototyp
Der vollständige Prototyp bildet alle wesentlichen Funktionen des Systems vollständig ab. Er wird damit quasi zur Grundlage für die Systemspezifikation. Da der Aufwand und damit die Kosten für die Erstellung allerdings sehr hoch sind, werden vollständige Prototypen nur sehr selten eingesetzt.
Welche Aufgaben übernehmen die Phasen auf der rechten Seite des V-Modells vor allem?
Sie dienen zur Prüfung der entsprechenden Phasen auf der linken Seite des Modells.
Definiton Prototype
Prototypen sind – allgemein betrachtet – erste Ausprägungen eines Produktes, die wesentliche Eigenschaften des späteren Endprodukts darstellen. So werden zum Beispiel in der Automobilbranche Prototypen gebaut, um das Fahrverhalten eines Autos unter realen Bedingungen zu testen oder einfach nur, um das Auto auf einer Messe präsentieren zu können.
Definition Prototyping
Das Erstellen eines Prototyps wird Prototyping genannt
Warum ist die Analysephase bei allen sequenziellen Modellen besonders wichtig?
Die Analysephase liefert die Vorgabe für alle weiteren Phasen. Werden hier Fehler gemacht, sind in der Regel aufwendige Korrekturen erforderlich.
Was ist der entscheidende Nachteil des Software Life Cycle-Modells?
Es ist keine Rückkoppelung zwischen den Phasen vorgesehen. Bei Fehlern in einer Phase muss im Extremfall ein neuer Zyklus begonnen werden
Welche Phasen dürfen im Wasserfallmodell wiederholt werden?
Es darf nur die Phase wiederholt werden, die unmittelbar vor der aktuellen Phase durchlaufen wurde. Eine Rückkoppelung über mehrere Phasen ist nicht vorgesehen.
Derfiniiton Problemstellung im Software Life Cycle-Modell
Die Problemstellung gibt den Anstoß für die Entwicklung. Hier wird beschlossen, dass ein Prozess durch Software unterstützt beziehungsweise abgelöst werden soll.
Definition Betrieb und Wartung im Software Life Cycle-Modell
In der letzten Phase – Betrieb und Wartung – wird die Software schließlich eingesetzt. Falls dabei noch Fehler auftreten, werden sie durch die Wartung behoben.
Definition Wasserfallmodell
Das Wasserfallmodell geht ebenfalls von mehreren Phasen aus, die nacheinander durchlaufen werden. Es handelt sich also – wie beim Software Life Cycle-Modell – ebenfalls um ein sequenzielles Vorgehen.
Definition Iteration
Eine Wiederholung wird im Fachjargon auch Iteration genannt.
Anwendungsgruppe Beta-Test
Bei diesem Beta-Test erfolgen die Prüfungen nicht mehr durch die Entwickler, sondern durch eine ausgewählte Gruppe von Anwendern. Wenn Sie so wollen, wird hier die Praxistauglichkeit der Software getestet.
Phasen des Wasserfallsystems
Problemanalyse
Systemspezifikation
Grobentwurf
Feinentwurf
Implementierung
Integration
Installation
Betrieb und Wartung
Phasen des Entwicklungsprozess im V-Modell
Anforderungsdefinition
Modulimplementation
Phasen der Testung im V-Modell
Abnahmetest
Systemtest
Integrationstest
Modultest
Definition Validierung
Bei der Validierung wird geprüft, ob ein Ergebnis auch mit einem Sachverhalt übereinstimmt.
Definition Verifikation
Bei der Verifikation wird die Richtigkeit eines Ergebnisses geprüft.
Definition Implementierung und Komponententest im Software Life Cycle-Modell
In der Phase Implementierung und Komponententest werden die einzelnen Komponenten technisch umgesetzt und dann zunächst getrennt getestet. Hier erfolgt also die eigentliche Programmierung
Definition Systemtest im Life Cycle-Modell
Im Systemtest wird dann das System unter möglichst realistischen Bedingungen insgesamt getestet. Hier wird also geprüft, ob die einzelnen Komponenten korrekt zusammenarbeiten.
Definition Problemanalyse im Software Life Cycle-Modell
Bei der Problemanalyse wird festgehalten, welche Aufgaben die Software grundsätzlich erledigen soll. Ausgangspunkt sind dabei die Wünsche der Anwender. Außerdem erfolgt hier eine erste grobe Prüfung der Wirtschaftlichkeit – also „Lohnt sich die Entwicklung überhaupt?“
Definition Systemspezifikation im Software Life Cycle-Modell
In der Systemspezifikation werden die noch groben Angaben zu den Aufgaben der Software konkretisiert. Hier wird also detailliert der genaue Leistungsumfang festgelegt.
Definition System- und Komponentenentwurf im Software Life Cycle-Modell
Beim System- und Komponentenentwurf geht es dann darum: „Wie soll die Funktionalität erreicht werden?“ Dazu wird zunächst das System insgesamt betrachtet und dann in kleinere Teile – die Komponenten – untergliedert. Das System wird also strukturiert, hierarchisiert und modularisiert.
Definition Software Life Cycle-Modell
Das Software Life Cycle-Modell war eines der ersten Vorgehensmodelle für die Software-Entwicklung überhaupt. Es unterteilt die Erstellung in insgesamt sechs Phasen, die strikt hintereinander durchlaufen werden. Die nächste Phase darf erst dann begonnen werden, wenn die vorlaufende Phase abgeschlossen ist.
Schritte des Software Life Cycle-Modell
Problemstellung
System- und Komponentenentwurf
Implementierung und Komponententest
Definiion Software-Lebenszyklus
Alle Phasen zusammen in ihrer zeitlichen Abfolge werden auch als Software-Lebenszyklus oder Software Life Cyclea) bezeichnet. Der Software-Lebenszyklus ist also die Zeitspanne, in der ein Softwareprodukt entwickelt und eingesetzt wird – bis zum Ende seiner Benutzung.
2 Phasen des Code-and-Fix-Zyklus
1. Der Programmierer erstellt die Anweisungen und lässt sie übersetzen.
2. Er testet, ob die Anweisungen das gewünschte Ergebnis liefern.
Synonym des r Code-and-Fix-Zyklus
Build-and-Fix-Zyklus
Phasen der Software-Entwicklung
• die Analyse („Was soll die Software machen?“),
• der Entwurf („Wie soll die Software die Aufgaben lösen?“),
• die Implementierung1 – die eigentliche Programmierung,
• der Test des Systems sowie
• Betrieb und Wartung
Nennen Sie die Prinzipien zur Auflösung komplexer Systeme. Beschreiben Sie auch kurz die wichtigsten Prinzipien.
Zu den Prinzipien gehören • die Voraussicht,
• die Abstraktion – das Konzentrieren auf das Wesentliche,
• die Strukturierung,
• die Modularisierung – die Zerlegung in kleinere Funktionseinheiten – und
• die Hierarchisierung. Hier werden die einzelnen Elemente über mehrere Ebenen in eine Beziehung gesetzt.
Was umfasst der Begriff „Methode“ im Software Engineering?
Der Begriff Methode im Software Engineering umfasst neben dem Vorgehen auch Konzepte und Notationen
Was unterscheidet die Top-Down- und die Bottom-Up-Methode?
Der wesentliche Unterschied liegt in der Richtung. Top-Down arbeitet von oben nach unten – also vom Abstrakten zum Konkreten. Bottom-Up dagegen arbeitet von unten nach oben – also vom Konkreten zum Abstrakten.
Wofür steht der Begriff CASE?
CASE steht für Computer Aided Software Engineering – die computergestützte Software-Technik.
Prinzipien für eine gelungene Softwaremanagement
• die Voraussicht,
• die Abstraktion
• die Modularisierung
• die Hierarchisierung.
Fragestellung Abstraktion Prinzipien
• Was ist überhaupt das Wesentliche?
• Worauf muss besonders geachtet werden?
• Was kann vernachlässigt werden?
Definition Strukturierung
Mit dem Prinzip der Strukturierung wird ein Problem in mehrere kleinere Teilprobleme aufgelöst. Dazu werden die Modularisierung und die Hierarchisierung verwendet.
Definition Moudlisierung
Bei der Modularisierung wird ein System in einzelne strikt voneinander getrennte Funktionseinheiten zerlegt – die Module. Jedes Modul kann weitgehend für sich allein seine spezielle Teilaufgabe bearbeiten. Die Kommunikation der Module erfolgt dabei über fest definierte Schnittstellen.
Definition Hierarchisierung
Bei der Hierarchisierung schließlich werden die einzelnen Elemente eines Systems – zum Beispiel die Module – über mehrere Ebenen in eine Beziehung gebracht. Dabei entsteht häufig eine baumartige Struktur.
Bedeutung Top-Down und Bottom-Up
Bei der Auflösung komplexer Systeme kann man grundsätzlich auf zwei verschiedene Arten vorgehen:
• vom Abstrakten zum Konkreten oder
• vom Konkreten zum Abstrakten. Nimmt man das höchste abstrakte Niveau als Spitze – als Top – und das konkreteste Niveau als Boden – als Bottom, kann man die Wege von oben nach unten (Top-Downa)) und von unten nach oben (Bottom-Upb)) einschlagen.
Definition Dekompension
Bei der Top-Down-Methode erfolgt durch schrittweise Zerlegung in einzelne Teilaufgaben über mehrere Ebenen eine immer feinere Aufgliederung, bis eine weitere Zerlegung nicht mehr sinnvoll ist. In jeder Ebene erfolgt dabei eine weitere Abstraktion der vorhergehenden Ebene. Die Zerlegung wird auch Dekomposition genannt.
Definition Synthese
Die Bottom-Up-Methode schlägt genau den entgegengesetzten Weg ein. Von einer möglichst konkreten Darstellung wird nach oben gegangen. Dabei werden die Teile einer Ebene zu einem Teil der nächsthöheren Ebene zusammengefügt. Dieses Zusammenfügen einzelner Teile zu einem Ganzen wird auch Synthese genannt.
Defintion Notation
Eine Notation ist ein System zur Darstellung von Informationen über Symbole und/ oder Texte.
Definition Werkzeuge
Die Werkzeuge – im Fachjargon auch Tools10 genannt – sollen die Software-Entwicklung unterstützen – zum Beispiel, indem sie den Entwickler von Routinearbeiten entlasten oder ihm die Arbeit erleichtern. Bei sehr vielen dieser Werkzeuge handelt es sich selbst ebenfalls um Software.
Unterscheidung Werkzeuge
Allgemeine Werkzeuge
CASE WErkzeuge
Definition allgemeine Werkzeuge des Software Engeneering
n. Die allgemeinen Werkzeugesind Hilfsmittel, die nicht nur für die Software-Entwicklung eingesetzt werden. Dazu gehören beispielsweise eine Textverarbeitung zum Erfassen und Bearbeiten von Dokumenten und ein Präsentationsprogramm zur Darstellung von Sachverhalten.
Definition CASE-Werkzeuge
Die CASE-Werkzeuge(Computer Aided Software Engineering11) dagegen unterstützen direkt die Software-Entwicklung – zum Beispiel durch die Erstellung und Bearbeitung von Diagrammen oder durch Hilfestellungen bei der Modellierung. Dabei unterstützt ein Werkzeug in der Regel auch nur eine bestimmte Methode beziehungsweise Teilbereiche der Methode.
Definiton Monoliithisch
Monolithisch bedeutet eigentlich „aus einem Stein bestehend“. In der Informationstechnik ist damit aber eine Struktur aus mehreren Komponenten gemeint, die nicht zu trennen ist.
Mögliche Schwierigkeiten in der Software Entwicklung
• Es gibt kaum Grenzen für die Einsatzmöglichkeiten von Software.
• Es gibt keine brauchbaren Modelle für die Entwicklung.
• Es fehlen verbindliche Standards für die Entwicklung
• Software lässt sich scheinbar sehr leicht ändern.
• Software muss in vielen verschiedenen Umgebungen arbeiten.
Software muss sich an Änderungen der Umgebung anpassen können.
• Bei der Entwicklung müssen Kreativität und feste Vorgaben kombiniert werden.
• Software lässt sich nicht am Fließband entwickeln
• Es gibt keine Ersatzteile für Software.
Software muss häufig gegen Widerstände der Anwender kämpfen.
Wichtige Faktoren Anforderungen an die Software
• Die Kommunikation zwischen Anwendern und Entwicklern muss eindeutig und ohne Missverständnisse erfolgen.
• Die Anforderungen an das System müssen so exakt wie eben möglich definiert und dokumentiert werden.
• Ein komplexes System muss in ein handhabbares Modell abgebildet werden.
• Ein komplexes System muss in mehrere Teilsysteme zerlegt werden.
• Die Zusammenarbeit dieser Teilsysteme muss exakt definiert werden.
• Es sollte von vornherein darauf geachtet werden, dass möglichst viele kleine Teile des Systems in anderen Software-Produkten wiederverwendet werden können.
• Das System muss möglichst einfach zu pflegen sein. Das setzt wiederum eine möglichst genaue und vor allem verständliche Dokumentation voraus.
• Das System sollte sich möglichst einfach ändern und erweitern lassen.
• Das System muss in möglichst vielen Umgebungen arbeiten können.
• Die Entwicklung und auch die Wartung müssen durch feste Vorgehensweisen und klar definierte Zuständigkeiten koordiniert werden. Das erfordert eine detaillierte Projektorganisation und ein umfangreiches Projektmanagement.
Wichtige Fähigkeiten Softwaretechniker
• ausgeprägte kommunikative Kompetenzen,
• analytische Denkweise,
• sehr gute Abstraktionsfähigkeiten,
• hohe Flexibilität, • Kreativität,
• Kenntnisse einschlägiger Methoden zur Dokumentation komplexer Vorgänge, •
Voraussicht
• ausgeprägte Fähigkeiten zur Teamarbeit.
Nennen Sie mindestens fünf typische Besonderheiten von Software im Vergleich zu anderen Produkten.
• Die vollständige Beschreibung der Anforderungen ist schwierig.
• Es gibt keine brauchbaren Modelle.
• Es fehlen verbindliche Standards.
• Software muss in vielen unterschiedlichen Umgebungen arbeiten. • Software muss sich an Änderungen der Umgebung anpassen können.
Schritte bei der Entwicklung einer Software
1. Ermittlung und Formulierung des Problems,
2. Analyse des Problems
3. Suche nach Lösungen
4. Bewertung der Lösungen und Auswahl einer geeigneten Lösung
5. Umsetzung der Lösung
Definitonen Software Engineering
„Software Engineering ist die Entwicklung, die Pflege und der Einsatz qualitativ hochwertiger Software unter Einsatz von wissenschaftlichen Methoden, wirtschaftlichen Prinzipien, geplanten Vorgehensmodellen, Werkzeugen und quantifizierbaren Zielen.“ (Kahlbrandt)
„Software Engineering: 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)
„Softwaretechnik: Fachgebiet der Informatik, das sich mit der Bereitstellung und systematischen Verwendung von Methoden und Werkzeugen für die Herstellung und Anwendung von Software beschäftigt.“ (Hesse und andere)
„Software-Technik: Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Software-Systemen. Zielorientiert bedeutet die Berücksichtigung z. B. von Kosten, Zeit und Qualität.“ (Balzert, Lehrbuch der Software-Technik, Band 1).
Definition Quellcode
Der Quellcode sind die Anweisungen einer Programmiersprache für die Ausführung eines Programms.
Warum verursachten die ersten Computerprogramme kaum Probleme?
Es wurden bekannte Lösungswege in eine Form umgesetzt, die für den Computer zu verarbeiten war. Komplett neue Lösungen wurden kaum erstellt.
Die Anforderungen waren aus heutiger Sicht nicht sonderlich komplex.
Der Programmierer war häufig identisch mit dem Anwender. Damit waren Bedienfehler weitgehend ausgeschlossen.
Die Programme wurden vergleichsweise selten eingesetzt.
Was beschreibt der Begriff „Softwarekrise“?
Der Begriff „Softwarekrise“ beschreibt die Probleme, die entstanden, als Computerprogramme immer komplexer wurden und die Anzahl der Fehler dramatisch zunahm.
Warum hat die Bedeutung des Software Engineerings in den letzten Jahrzehnten immer weiter zugenommen?
In den letzten Jahren hat der Computereinsatz bei Unternehmen und auch bei Privatpersonen immer weiter zugenommen. Software hat damit eine immer größere Bedeutung bekommen.
Definition Software
Zwei große Formen der Software
die Systemsoftware
die Anwendungssoftware
Gebiete der Systemsoftware
Betriebssystem
Dienstprogramme
Entwicklungssoftware
Gebiete der ANwendungssoftware
Standardprogramme
Branchenprogramme
Last changeda day ago