Objektorientierte Programmierung MPM M13

Slides:



Advertisements
Ähnliche Präsentationen
Mikrocomputertechnik
Advertisements

mit Entwicklungsumgebungen (Eclipse) Software verbessern
C Tutorium – Fehlerbehandlung – Knut Stolze. 2 Grundsatz Also ist auch nach jedem Funktionsaufruf auf Fehler zu prüfen!! Jeder(!) Funktionsaufruf kann.
Zusammenfassung der Vorwoche
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Dr. Andreas Winter Sommersemester 2007 Einführung in die Software-Entwicklung © Institut für Informatik Programmier-Richtlinien vgl. auch
10. Grundlagen imperativer Programmiersprachen
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Statischer Druck (Aufgabe 3) Projektübung Klimamodellierung ( ) – A. Paul.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Einführung XML XML Einführung Andreas Leicht.
Programmieren mit JAVA
Programmieren mit JAVA
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zusammenfassung Vorwoche
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Batch-Programmierung Grundlagen
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Klassen und Objekte
Wizards & Builders GmbH Programmierstil Hinweise zum Programmierstil unter Microsoft Visual FoxPro.
Marcus Haller & René Schulze
Objektorientierte Modellierung
Delphi II - OOP IFB Fortbildung
Objektorientierte Programmierung
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Präsentation C Tutorium von Daniel J. Nowak Folie 1 C Tutorium.
Wie schreibe ich eine Diplom- bzw. Masterarbeit ?
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Style Guidelines für Java und .NET
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
HORIZONT 1 XINFO ® Das IT - Informationssystem Assembler HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
Konzept einer Programmiersprache!
Die Grundidee Funktionsaufruf Funktionsname (Kopf) Code der Funktion
PHP Basic.
Programmierung 1. Einführung Seite 1
EPROG Tutorium #4 Philipp Effenberger
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Programmieren in C Grundlagen C 2
Variablen. var meineZahl:Number = 7; meineZahl 7 Name TypWert = Zuweisung von Variablen.
Hochschule Fulda – FB ET Sommersemester 2014
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Objektorientierte (OO) Programmierung
Programmieren mit Variablen
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
C++ FÜR cOMPUTERSPIELENTWICKLER
Hello World! Javakurs 2013 Arne Kappen
Die Struktur einer Java-Klasse
 Präsentation transkript:

Objektorientierte Programmierung MPM M13 Programmierstil Objektorientierte Programmierung MPM M13

Grundlagen “If builders built buildings the way programmers write programs, then the first woodpecker that came along would destroy civilization. “ ~ Gerald Weinberg

Tipps für Jeden Programmierer Programmierstil Tipps für Jeden Programmierer

Übersichtlichkeit des Quelltextes reduzieren. Problem: Andere Programmierer wollen Änderungen im Quelltext so schnell und einfach wie möglich umsetzen! Übersichtlichkeit des Quelltextes reduzieren. Funktionen mit mehreren Zwecken! So lange Codeabschnitte wie möglich!

Namenskonventionen Verwenden Sie sehr lange, zusammengesetzte Namen für Variablen. Unterschiedliche Variablen sollten sich um einzelne Zeichen unterscheiden! So viele Abkürzungen wie möglich. Jeder vernünftige Programmierer hat einen angeborenen Instinkt, was die Abkürzung CAPIAT heißt! Verwenden Sie Zahlen und Buchstaben als Variablen. In der Kürze liegt die Würze!

Programmfluss Alle Variablen und Funktionen werden öffentlich deklariert. Dies minimiert den Aufwand beim Datenaustausch. Löschen Sie nie!!! ungenutzten Code aus dem Programm. Man kann nicht wissen, wann man ihn noch mal braucht. Greifen Sie möglichst häufig auf Inhalte anderer Objekte zu. Dies verkürzt den Aufbau der Zielfunktion. Goto erleichtert den Sprung zwischen Programmteilen. Verwenden Sie Copy&Paste so viel wie möglich. Jede Funktion sollte etwas mehr oder weniger tun als ihr Name verspricht. Die Verwendung von Ausnahmebehandlungen macht Lücken im Code sichtbar. Vermeiden Sie das!

Ein Kunde, der weiß was er tut, braucht keine Dokumentation! Wenn Sie ein Feature nicht umsetzen konnten, schreiben Sie trotzdem in die Doku, dass Sie es umgesetzt haben! Verhindern Sie, dass man erkennen kann auf welchen Softwarestand Sie sich beziehen! Verwenden Sie Kommentare wie */1 zu i addieren/*, schwierigere Sachverhalte nicht kommentieren!

Sauberer Programmierstil MPM M13

Grundlagen Unter Programmierstil wird ein Satz von Regeln verstanden, denen sich ein Programmierer bei der Erstellung von Code unterwirft. Programmierstil dient der Kommunikation im Team und der schnellen Erfassbarkeit des Quelltextes. Lesbarkeit Verständlichkeit Wartbarkeit

Programmierrichtlinien Große Softwareprojekte hängen maßgeblich von der Kommunikation im Projekt ab. Im Projekt werden deswegen oft Regeln als Richtlinien vorab aufgestellt. Aus Richtlinien können Stereotypen und Entwurfsmuster abgeleitet werden. Entwurfsmuster?

Abwesenheit von Kommentaren ist schlechter Programmierstil! Kommentare erhöhen die Lesbarkeit für Andere! Kommentare verwenden: Kopf einer Datei Übergabewerte einer Funktion Beschreiben einer Funktion Beschreiben von Attributen

Verschachtelung von Codeelementen. Positionierung von Syntaxelementen. Einrückstil Verschachtelung von Codeelementen. Positionierung von Syntaxelementen. Einsatz von Leerzeichen und Leerzeilen.

Namen werden nach Notationen, z.B. der ungarischen Notation vergeben. Namenskonventionen Der Name einer Variable weist auf ihren Zweck hin oder deutet ihn zumindest an. Namen werden nach Notationen, z.B. der ungarischen Notation vergeben. Eine Variable wird für einen Zweck und nicht für mehrere verwendet. Variablenrecycling vermeiden.

Beschränkung der Zeilenlänge ist manueller Aufwand. Kurze Zeilenlänge fördert die Menschenlesbarkeit und Vergleichbarkeit durch Textprogramme. Beschränkung der Zeilenlänge ist manueller Aufwand. Generell gilt, nicht mehr als eine Anweisung pro Zeile.

Keine Sprünge zwischen Programmteilen, z.B. mit GoTo, verwenden. Programmfluß Keine Sprünge zwischen Programmteilen, z.B. mit GoTo, verwenden. Unkontrollierten Zugriff auf globale Variablen durch definierte Schnittstellen zwischen Funktionen ersetzen.

Objektorientierte Programmierung Anwendung der objektorientierten Programmierung kapselt Funktionen und somit die Fehleranfälligkeit. Bauweise im Model erhöht die Wieder-verwendbarkeit und Unabhängigkeit. Vererbung erhöht die Übersichtlichkeit im Projekt.

Fehlerbehandlung durch expliziten Aufruf aller möglichen Werte. Robustheit Fehlerbehandlung durch expliziten Aufruf aller möglichen Werte. Ausnahmebehandlung durch Meldung von Ausnahmewerten.

Verhältnismäßigkeit Sauberer Programmierstil soll ein Hilfsmittel sein, keine zusätzliche Hürde.

Ungarische Notation Programmierstil MPM M13

Grundlagen Die ungarische Notation ist eine Richtlinie zur Benennung von Codeelementen. In der Notation werden sprechende Variablennamen verwendet und um Präfixe und Modifikatoren erweitert.

short, int, long char used as an integer int nValue; s struct Präfix Präfix Bedeutung Beispiel b boolean bool bHasEffect; c (or none*) class Creature cMonster; ch char (used as a char) char chLetterGrade; d double, long double double dPi; f float float fPercent; n short, int, long char used as an integer int nValue; s struct Rectangle sRect; str C++ string std::string strName;

Modifikation nach Typ Wenn anwendbar, werden die folgenden Modifikationen vor den Präfix gesetzt. Modifikation Bedeutung Beispiel a array on stack int anValue[10]; p pointer int* pnValue; r reference int rnValue;

Präfixe der Sichtbarkeit Wenn anwendbar, werden die folgenden Präfixe vor die Modifikation gesetzt. Präfix Bedeutung Beispiel g_ global variable int g_nGlobalValue; m_ member of class int m_nMemberValue; s_ static member of class int s_nValue;

Guter Programmierstil Literatur und QUellen

http://www.cs.purdue.edu/homes/jv/510s05/unmaint.pdfI (24.06.2010) Literatur und Quellen www.learncpp.com (24.06.2010) http://www.cs.purdue.edu/homes/jv/510s05/unmaint.pdfI (24.06.2010) Helmut Balzert, Lehrbuch der Software-Technik, Software-Entwicklung, 3827400422, Spektrum Akad. Vlg Helmut Erlenkötter, C++: Objektorientiertes Programmieren von Anfang an, 3499600773 , rororo