Wiki source for SoftwareTechnik


Show raw source

=====Softwaretechnik=====

Es gibt viele Namen dafür: Softwaretechnik (Balzert2000), Software-Technologie (ScriptRobra2007), engl. Software Engineering oder etwa die "Projektentwicklung in der Informatik" (Zehnder2003).

==a==Was ist Softwaretechnik?==a==

Wer alleine ein Programm für sich selbst oder einen Bekannten schreiben möchte, 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 [[AnforderungsSpezifikation Anforderungen]] der Kunden. Die Softwaretechnik bietet hier einen Baukasten bewährter Konzepte, um Software-Projekte mit einem interdisziplinären Team erfolgreich durchzuführen. Größere Software-Projekte erfordern eine gründliche Vorbereitung und kontrollierte Durchführung. Der Methoden der Software-Technik dienen vor allem dem Zweck der [[Kommunikation zwischenmenschlichen Kommunikation]]. Das ist besonders dann erforderlich, wenn mehre Personen innerhalb eines interdisziplinären Teams an einem Produkt arbeiten. Eine systematische Vorgehensweise aller beteiligten bei der Erhebung von [[AnforderungsSpezifikation 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 und der systematische Test ist eine Voraussetzung für den Erfolg von Software-Projekten.

Den Einstieg in das umfassende Thema fand ich praktisch und theoretisch durch die [[MasterStudieninhalte Vorlesung Software-Technologie]] bei Prof. Dr. Robra an der Georg-Simon-Ohm Hochschule in Nürnberg. Ein 18 Monate andauerndes Software-Projekt bei dem 24 Entwickler beteiligt waren rundete die Vorlesung ab. 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 vieler Themengebiete der Softwaretechnik liegt im IEEE Guide to the Software [[http://www.swebok.org/ironman/pdf/SWEBOK_Guide_2004.pdf Engineering Body of Knowledge]] vor.


==a==Stak unterschätzt==a==

Ganz Abgesehen von den so genannten [[StrategischeProjekte strategischen Projekten]], wird die Bedeutung der Software-Technik stark unterschätzt, die Implementierung der Konzepte zu knapp oder überhaupt nicht eingeplant oder von den Verantwortlichen gefördert, denn die Fachpresse berichtet permanent über das [[ScheiternVonSwProjekten Scheitern von Software-Projekten]].


==a==Einordnung der Softwaretechnik==a==

{{image url="images/11_sw-technik.dot.png"}}
Einordnung nach Balzert2000


==a==Kernkozepte der SW-Technik==a==

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.



{{col left="DIV"}}{{col left="33"}}====Software-Management====

===Planung===

~-[[UseCase Use-Case-Analyse]]
~-[[AnforderungsSpezifikation Anforderungserhebung]]
~-Projektspezifisches Glossar
~-[[PflichtenHeft Pflichtenheft]]
~-[[AufwandSchaetzung Aufwandsschätzung]]
~-[[ProzessModelle Vorgehensmodell]]
~-[[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]]
~~-[[VersionsKontrolle Versionsverwaltung]]


{{col}}{{col left="33"}}====Software-Entwicklung====

===Analyse===

~-[[SoftwareMockUp Mock-ups]]
~-[[SystemAnalyse Systemanalyse]]
~-[[StrukturierteAnalyse Strukturierte Analyse]]
~-[[ObjektorientierteAnalyse Objektorientierte Analyse]]
~-[[CrcCards CRC-Cards]]
~-[[StoryCards Story-Cards]]


===Entwurf (engl. design)===

~-[[Softwarearchitektur]]
~-[[SoftwareMuster Software-Muster]]
~-[[SoftwareModellierung Software-Modellierung]]
~-[[Zustandsautomaten]]
~-[[StrukturierteEntwurf Strukturierter Entwurf]]
~-[[ObjektorientierterEntwurf Objektorientierter Entwurf]]
~-[[DataBase Datenbankentwicklung]]
~-[[http://www.omg.org/mda/ MDA (Model Driven Architecture)]]


===Implementierung===

~-[[ProgrammierParadigma Programmierparadigma]]
~-[[ProgrammierSprachen Programmiersprachen]]
~-[[CodingRules Programmierrichtlinien]] (engl. coding rules)
~-[[CodeGenerierung Codegenereirung]]
~-[[TestgetriebeneEntwicklung Testgetriebene Entwicklung]]



===Verifikation===

~-[[SoftwareQualitaet Software-Qualität]]





{{col}}{{col left="33"}}====Software-Qualitätsmanagement====

~-[[SoftwareQualitaet Software-Qualität]]
~-[[Usability Software-Ergonomie]]
~-[[http://de.wikipedia.org/wiki/Regressionstest Regressionstest]]
~-[[http://de.wikipedia.org/wiki/Refactoring Refaktorisierung]] (engl. refractoring)
~-[[Sicherheitsstandards]]


{{col}}{{col}}


::c::

[[SoftwareTechnikMehr Mehr zum Thema Software-Technik]]

----
CategoryStudiumSE
Siehe auch {{backlinks}}
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki