Revision [8739]
This is an old revision of SoftwareTechnik made by ToBo on 2009-06-01 22:50:49.
Softwaretechnik
1. Vorwort
Es gibt viele Namen dafür: Softwaretechnik (Balzert2000), Software-Technologie, Software-Engeneering oder etwa die "Projektentwicklung in der Informatik" (Zehnder2003). Den Einstieg in das umfassende Thema fand ich praktisch und theoretisch durch die Vorlesung Software-Technologie bei Prof. Dr. Robra an der Georg-Simon-Ohm Hochschule in Nürnberg und ein begleitendes Software-Projekt bei dem 24 Entwickler beteiligt waren. Prof. Dr. Balzert von der Universität Bochum hat Methoden der Softwaretechnik in seinem Werk Balzert2000 strukturiert und didaktisch gekonnt beschrieben. Eine umfassende und auch gut strukturierte Sammlung der Themengebiete der Softwaretechnik liegt im IEEE Guide to the Software Engineering Body of Knowledge vor.
Wer alleine ein Programm für sich selbst oder einen Bekannten schreiben möchte, der kann auf Softwaretechnik getrost verzichten. In der Industrie gibt es heute keine Aufträge, die mit einem Entwickler zu lösen wären. Man spricht von steigender Komplexität und höheren Anforderungen der Kunden. Deshalb wird heute in einem Team entwickelt. Mehrere Personen sind an einer Entwicklung beteiligt, dabei müssen nicht alle Entwickler sein. Ganz nebenbei angemerkt, die Zeiten des Entwicklers, der eigenwillig handelt, sich an keine Regeln hält, eine nicht nachvollziehbare Herangehensweise bei der Problemlösung hat, sich in dunklen Räumen hinter dem Computer verbarrikadiert, Menschen und vor allem Vorgesetzte meidet, sind vorbei! Entwickler sind kommunikativ und arbeiten gerne mit anderen zusammen - von den üblichen zwischenmenschlichen Problemen ganz abgesehen. Aber mit dem Team ist es nicht getan. Ein erfolgreiches Team zeichnet gute Kommunikation und eine eingespielte Vorgehensweise aus, innerhalb des Teams und mit der Aussenwelt (Kunde, Projektmanager etc.) . Die Softwaretechnik bietet hier bewährte Methoden. Welche Methoden eingesetzt werden kann zum Teil vorgegeben sein oder von Team selbst beschlossen werden.
Größere Software-Projekte erfordern eine gründliche Vorbereitung und kontrollierte Durchführung. Der damit verbundene Formalismus dient vor allem dem Zweck der Kommunikation zwischen allen Beteiligten und der Nachvollziehbarkeit der Schritte bei der Problemlösung. Das ist besonders dann erforderlich, wenn mehre Personen an einem Produkt arbeiten. Eine systematische Vorgehensweise aller beteiligten bei der Erhebung von Anforderungen des Kunden, eine gründliche Planung der Vorgänge, der Entwurf einer Architektur und der einzelnen Komponenten, der Einsatz bewährter Methoden bei der Entwicklung, der systematische Test und das Bewusstsein bei allen Beteiligten, dass all die genannten Vorgänge Geld kosten und das diese bezahlt werden müssen, ist eine Voraussetzung für den Erfolg von Software-Projekten.
Scheinbar werden all diese Vorgänge stark unterschätzt, zu knapp oder überhaupt nicht eingeplant oder von den Verantwortlichen gefördert, denn die Fachpresse berichtet permanent über das ScheiternVonSwProjekten Scheitern von Software-Projekten.
Definition der Universität Siegen.
2. Einordnung der Softwaretechnik
3. Kernkozepte der SW-Technik
Die folgenden Konzepte werden der Übersicht wegen nach Themen strukturiert. Während der Projektlaufzeit werden diese Konzepte jedoch losgelöst oder in Kombination in unterschiedlichen Projektphasen je nach eingesetzten ProzessModelle Vorgehensmodell und Anforderungen an das Produkt eingesetzt werden.
Unknown action ""col""Unknown action ""col""
Software-Management
Planung
- UseCase Use-Case-Analyse
- AnforderungsSpezifikation Anforderungserhebung
- Projektspezifisches Glossar
- PflichtenHeft Pflichtenheft
- AufwandSchaetzung Aufwandsschätzung
- ProzessModelle Vorgehensmodell
- Projektplan
- ProjektManagement Projektmanagement
- Software-Akquisition (fremde SW einkaufen)
- Wahl der Technologie
- Wahl der Werkzeuge (Tools)
- SoftwareEntwicklungWerkzeuge Werkzeuge zur Unterstützung der SW-Entwicklung
- CodeGenerierung CASE-Tools
- Konfigurationsmanagement
Unknown action ""col""Unknown action ""col""
Software-Entwicklung
Analyse
- SoftwareMockUp Mock-ups
- SystemAnalyse Systemanalyse
- StrukturierteAnalyse Strukturierte Analyse (SA)
- Objektorientierte Analyse (OOA)
- CrcCards CRC-Cards (Class Responsibility Collaboration Cards)
- Story-Cards
Entwurf (engl. design)
- Softwarearchitektur
- SoftwareMuster Software-Muster
- SoftwareModellierung Software-Modellierung
- Zustandsautomaten
- StrukturierteEntwurf Strukturierter Entwurf (SD)
- ObjektorientierterEntwurf Objektorientierter Entwurf (OOD)
- DataBase Datenbankentwicklung
- Model Driven Architecture MDA
Implementierung
- SoftwareMuster Software-Muster
- ProgrammierParadigma Programmierparadigma
- ProgrammierSprachen Programmiersprachen
- Programmierrichtlinien (coding rules)
- CodeGenerierung Codegenereirung
- Testgetriebene Entwicklung
- Paarprogrammierung
- Objektorientierte Programmierung
Verifikation
Unknown action ""col""Unknown action ""col""
Software-Qualitätsmanagement
- SoftwareQualitaet Software-Qualität
- Usability Software-Ergonomie
- Regressionstest
- Refaktorisierung (engl. refractoring)
- Review
Unknown action ""col""Unknown action ""col""
SoftwareTechnikMehr Mehr zum Thema Software-Technik
CategoryStudiumSE
Siehe auch • • • • • • • • • • • •