Software Engineering
Software Engineering
Aktuell können auf normativer Ebene als zentrale Institutionen des Software Engineerings die "Special Interest Group Software Engineering" (SIGSOFT: http://www.acm.org/sigsoft) der "Association for Computing Machinery" (ACM: http://www.acm.org) und die IEEE Technical Council on Software Engineering (TCSE: http://www.tcse.org) gelten.
Die inhaltliche Entwicklung des SE fokussiert sich im Software Engineering Institute (SEI: http://www.sei.cmu.edu/), dessen bekanntestes "Produkt" das Capability Maturity Model (CMM) ist.
Während die Anfänge des SE noch von der Beschäftigung mit den gravierenden Qualitätsmängeln in der Software-Entwicklung (vgl. hierzu die Berichte der NATO SE Conferences) geprägt waren, treten spätestens ab den 90er Jahren des 20. Jhd. die Aufgaben des Projektmanagements in den Vordergrund. SE kann damit als Mischung zwischen Arbeitstechnik der Software-Erstellung und Management von Software-Projekten angesehen werden. Diese Zwitterposition, verbunden mit der extrem hohen Innovationsrate im IT-Bereich, bewirkt, dass eine einheitliche Definition des Begriffs SE noch schwer fällt.
Der IEEE-Standard 610-1990 definiert SE als:
"(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1)"
Das SEI selbst definiert SE ebenfalls in zwei Schritten als:
- "Engineering is the systematic application of scientific knowledge in creating and building cost-effective solutions to practical problems in the service of mankind.
- Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems."
Aus diesen und einigen anderen Definitionen können folgende Merkmale des SE benannt werden:
- SE umfasst Methoden, Techniken und Instrumente zur Erstellung von auf Maschinen lauffähigen Programmen (Software).
- Ziel von SE ist die Vermeidung von Fehlern, Reduktion von Aufwänden und Erhöhung des Kundennutzens von Software
- SE beinhaltet das Management von Entwicklungsprojekten für Software.
- SE umfasst die Inbetriebnahme, den Betrieb und die Wartung von Software.
- Hierzu beschreibt SE bewährte Vorgehensweisen in Modellen (Vorgehensmodelle) und definiert Qualitätsstufen für den Software-Entwicklungsprozess (CMM, PMMM).
Die aktuellen Entwicklungen des SE werden in der zweijährigen, europäischen Konferenz " European Software Engineering Conference" und der jährlich stattfindenden "International Conference on Software Engineering" (http://www.icse-conferences.org) präsentiert. Publiziert werden sie durch die IEEE in den "Transactions of Software Engineering".
Gemeinsam mit der IEEE TCSE bildet die SIGSOFT das "Software Engineering Coordinating Committee". Das SWECC wurde 1998 gegründet mit dem Ziel, SE als eigenständige Disziplin in der Informationstechnik zu etablieren. Hierfür fördert es eine Reihe von Projekten, deren wichtigstes wohl die Dokumentation des "Software Engineering Body of Knowledge" (SWEBOK) ist. Der SWEBOK hat als Vorbild den PMBOK(R) Guide des Project Management Institutes - der PMBOK(R) Guide ist seinerseits bereits IEEE-Standard. Die aktuelle Version des SWEBOK (Februar 2005) kann unter der URL http://www.sebok.org als PDF-File kostenlos bezogen werden.