24.08.2013 Aufrufe

Download - FESG - Technische Universität München

Download - FESG - Technische Universität München

Download - FESG - Technische Universität München

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

14 KAPITEL 1: EINFÜHRUNG<br />

1. Notationserweiterung: Präfix steht direkt vor Bezeichner<br />

An dieser Stelle werden Typinformationen durch vorangestellte eindeutige<br />

Buchstaben codiert (z.B. „c“ für Character, „i“ für Integer, „S“ für Structure,<br />

„C“ für Class usw.)<br />

2. Notationserweiterung: Präfix steht vor 1. Notationserweiterung<br />

An dieser Stelle werden Referenzierungseigenschaften gekennzeichnet (z.B.<br />

„a“ für Array, „az“ für zero-terminated Array, „p“ für C-Pointer, so dass<br />

zusammen mit Präfix 1 z.B. „azc...“ für ein herkömmliche Character- Zeichenkette<br />

mit Nullabschluss steht)<br />

3. Notationserweiterung: Präfix steht vor 2. Notationserweiterung<br />

An dieser Stelle werden Speicherinformationen angezeigt (z.B. „m_“ für<br />

Member-Variablen, „g_“ für globale Variablen, so dass zusammen mit Präfix<br />

1 und 2 z.B. „m_pi...“ für einen Member-Zeiger in C-Notation auf einen<br />

Integerwert steht)<br />

Die Hungarian Notation erzwingt Zudem wird durch die Hungarian Notation die Vergabe von präzisen Namen<br />

präzises Arbeiten vorgeschlagen (Indexvariablen heißen somit nicht mehr nur „i“ sondern z.B. „iIndex“).<br />

Ein gewisser Nachteil ist jedoch, dass Typänderungen eine Vielzahl von<br />

Folgeveränderungen mit sich bringen, was ja eigentlich Sinn und Zweck für die<br />

qualitativ hochwertige Programmierung ist, keine schnellen und evtl. fehlerträchtigen<br />

Veränderungen zuzulassen.<br />

Allgemeingültige Designregeln<br />

für die Fundamentalstation als<br />

ein Ergebnis<br />

Kontrolle von konkurrierenden<br />

Parallelversionen einer Entwicklung<br />

mittels CVS<br />

Dabei kann bereits der erste Erfolg dieser Arbeit genannt werden. Die im Rahmen<br />

der Arbeit erstellten Design- und Umsetzungsvorgaben wurden als Grundlage<br />

der „Design-Rules für die objektorientierte Programmierung in C++ und die strukturierte<br />

Programmierung in C“ 14 verallgemeinert und erweitert und werden in dieser<br />

Form zukünftig auf alle Softwareprojekte mit C und C++ in der Fundamentalstation<br />

Wettzell Anwendung finden.<br />

Versionskontrolle<br />

Versionskontrolle entstand als Koordinierungsschnittstelle bei paralleler Softwareentwicklung<br />

sowohl bei industriellen Großprojekten als auch für Projekte der freien<br />

Softwareentwicklung („Open Source“). Gerade dort, wo zahlreiche Beteiligte<br />

auf der ganzen Welt an denselben Quellen arbeiten und Änderungen einbringen,<br />

ergeben sich unumstrittene Vorteile aus einer Versionskontrolle. Die Organisation<br />

zum Einbringen dieser Rückmeldungen ist manuell unüberwindbar. Zudem<br />

ergibt sich der Bedarf, eingebrachte Veränderungen wieder rückgängig zu<br />

machen, weil sie evtl. fehlerbehaftet sind. In diesem Rahmen entstand der elementare<br />

Einsatz von Dateivergleichsprogrammen (z.B. „diff“) und des Revision<br />

Control System (RCS) . RCS hatte jedoch einige Nachteile. Es stellte keine<br />

Verzeichnisstrukturen bereit, erlaubte nur strikte Sperren kompletter Dateien und<br />

war nicht netzwerkfähig. Die Lösung ergab sich durch das Concurrent Versions<br />

System (CVS) . Es setzte auf RCS auf und löste dessen Probleme. Dadurch<br />

können Dateibäume als komplette Projektbereiche betrachtet und verwaltet<br />

werden. Es ist möglich gleichzeitig an einer Datei zu arbeiten, deren Historie aufgezeichnet<br />

und Veränderungen meist automatisch zusammengemischt („merging“)<br />

14 vgl. dazu die erstellten Designregeln für die Fundamentalstation Wettzell [DASS04]

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!