White Paper Software Engineering Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen
Die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Software-Systemen steht im Vordergrund des Software Engineering. Software Engineering umfasst eine Vielzahl von Teilgebieten, die in ihrer Gesamtheit die Softwareentwicklung begleiten. Die aktuellen Entwicklungen des Fachgebiets werden im Software Engineering Body of Knowledge (SWEBOK) beschrieben. Die bei einem Software Projekt zu implementierende Software kann entweder eine Individualsoftware oder eine Kombination und Konfiguration einer Standard ERP Software sein. Das Thema Software Engineering kann in die beiden Bereiche Kernprozesse und Unterstützungsprozesse eingeteilt werden. Kernprozesse Planung Anforderungserhebung Lastenheft (Anforderungsdefinition) Pflichtenheft (mit technischen Ansätzen verfeinertes Lastenheft) Aufwandsschätzung (z.b. mittels Function-Point-Verfahren oder COCOMO) Vorgehensmodell Analyse Auswertung Mock-up Prozessanalyse/Prozessmodell Systemanalyse Strukturierte Analyse (SA) Objektorientierte Analyse (OOA) Entwurf Softwarearchitektur Strukturiertes Design (SD) Objektorientiertes Design (SD) Unified Modeling Language (UML) Fundamental Modeling Concepts (FMC) 2
Programmierung Normierte Programmierung Strukturierte Programmierung Objektorientierte Programmierung (OOP) Funktionale Programmierung Validierung und Verifikation Modultests (Low-Level-Test) Integrationstests (Low-Level-Test) Systemtests (High-Level-Test) Akzeptanztests (High-Level-Test) Unterstützungsprozesse Anforderungsmanagement Projektmanagement Risikomanagement Projektplanung Projektverfolgung und steuerung Management von Lieferantenvereinbarungen Qualitätsmanagement Capability Maturity Model Spice (Norm, Software Process Involvement and Capability Determination) Incident Management Problem Management Softwaremetrik (Messung von Softwareeigenschaften) Statische Analyse (Berechnung von Schwachstellen) Softwareergonomie Konfigurationsmanagement Versionsverwaltung Änderungsmanagement/Veränderungsmanagement Release Management Application Management (ITIL) Softwareeinführung 3
Dokumentation Technische Dokumentation Software-Dokumentation Software-Dokumentationswerkzeug Systemdokumentation (Weiterentwicklung und Fehlerbehebung) Betriebsdokumentation (Betreiber/Service) Bedienungsanleitung (Anwender) Geschäftsprozesse (Konzeptionierung der Weiterentwicklung) Verfahrensdokumentation (Beschreibung rechtlich relevanter Softwareprozesse) Wissen Der Aufbau des SWEBOK orientiert sich an der Einteilung der Softwaretechnik in 10 Wissensgebiete (engl. Knowledge Areas, KA) Die 10 Wissensgebiete sind: Software requirements: Anforderungsanalyse Software design: Software-Entwurf Software construction: Programmierung Software testing: Software-Test Software maintenance: Wartung Software configuration management: Konfigurationsmanagement Software engineering management: Projektmanagement Software engineering process: Vorgehensmodell Software engineering tools and methods: Entwicklungswerkzeuge und Methoden Software quality: Qualität Als elftes Wissensgebiet werden die Wissensgebiete verwandter Bereiche aufgeführt. Dazu gehören: Computer engineering: Technische Informatik Computer science: Informatik Management: Unternehmensführung Mathematics: Mathematik Projekt management: Projektmanagement Quality management: Qualitätsmanagement Software ergonomics: Software-Ergonomie Software engineering: System-Engineering 4
Kontakt Lynx-Consulting GmbH Frank Dunkel frank.dunkel@lynx.de Johanniskirchplatz 6 33615 Bielefeld Telefon: +49 521/52 47 0 Telefax: +49 521/52 47 250 www.lynx.de 5