kramann.info
© Guido Kramann

Login: Passwort:










Informatik3
1 Vom_struct_zur_Klasse
..1.1 Vom_struct_zur_Klasse
..1.2 struct_Programm
..1.3 Klassen_Programm
..1.4 Offene_Fragen
..1.5 Historie
..1.6 Objektabstraktion
..1.7 OO_Kundenverwaltung
..1.8 Objektfaehigkeiten
..1.9 Formatierung
..1.10 Motivation
..1.11 Uebung1
..1.12 Uebung2
2 UML
..2.1 Volumenberechnung
..2.2 UML_Klassendiagramm
..2.3 Konstruktor
..2.4 Statische_Variable
3 Strings
..3.1 Klassenbibliotheken
..3.2 stringUML
..3.3 Uebung3
4 Initialisierungen
4 bluej
5 Zeiger_und_Arrays
..5.1 Zeiger
..5.2 Zeiger_und_Funktion
..5.3 Uebung4
6 Vererbung
..6.1 MesswerteUML
..6.2 MesswerteProgramm
..6.3 VererbungsProgramm
..6.4 Vector
..6.5 Uebung
7 Modifikatoren
..7.1 public_Vererbung
..7.2 protected_Vererbung
8 Listen_und_Templates
..8.1 Containertypen
....8.1.1 ListeUML
....8.1.2 ListeProgramm
..8.2 Templates
....8.2.1 Listentemplate
....8.2.2 STLvectorTemplate
..8.3 Uebung5
..8.4 Uebung6
..8.5 Uebung7
9 Java
..9.1 Uebung
..9.2 GettingStarted
..9.3 Animation
..9.4 Hybrid
..9.5 Threads
10 Delegation
11 LayoutProjekt
12 Fenster
13 Uebung
14 Zwischenprojekt
..14.1 Befehle
..14.2 Planung
..14.3 JNI
..14.4 JNIumsetzen
..14.5 Anwendungsklasse
..14.6 GUI01
..14.7 GUI02
15 Rasterlayout
..15.1 Bilder_Packages
..15.2 interfaces
..15.3 ArrayList
..15.4 clone
..15.5 Uebung
16 Nuetzliches
..16.1 Threads
..16.2 Animation
..16.3 RungeKutta
..16.4 Loesungsansatz
..16.5 Internetprogrammierung
....16.5.1 Codegenerierung
....16.5.2 PHP_Programmierung
....16.5.3 PHP_OOP
....16.5.4 Java
17 Algorithmen
..17.1 RungeKutta
..17.2 Loesungsansatz
..17.3 Evoopt
..17.4 Uebung12
..17.5 Uebung8_2014
..17.6 Ausdruecke
18 Uebung10
19 UML_ALT
..19.1 Flaechenberechnung
..19.2 UML_Flaechenberechnung
..19.3 Implementierung
..19.4 ListeUML
..19.5 ListenImplementierung
..19.6 Anwendung

11 Layout-Projekt

11 Layout project (EN google-translate)

11 projekt układ (PL google-translate)

Hintergründe

backgrounds

tło

Die Basiskonzepte objektorientierter Programmiersprachen lassen sich am besten anhand konkreter Beispiele erklären und motivieren. Deshalb sollen sie im Verlauf der weiteren Vorlesungen im Rahmen eines konkreten Software-Entwicklungs-Projekts dargestellt werden.

The basic concepts of object-oriented programming languages ​​can be found on best explained and motivated by concrete examples. Therefore, they should in the course of further lectures in the context of a concrete software development project.

Podstawowe pojęcia programowania obiektowego można znaleźć na najlepiej wyjaśnione i zmotywowane konkretnymi przykładami. Dlatego powinni oni w trakcie dalszych wykładów w ramach a konkretny projekt rozwoju oprogramowania.

Layout-Programme für elektronische Schaltungen

Layout programs for electronic circuits

Układ programów dla układów elektronicznych

Layout-Programme für elektronische Schaltungen sollen den Entwurf elektronischer Schaltungen erleichtern. Bauteilbibliotheken helfen, die richtigen Maße und Rasterungen für Bauelemente zu verwenden und zu vermeiden, dass sich Bauelemente überlappen. Autorouting hilft, optimale Verbindungen der Bauteile unterinander zu realisieren. Export-Werkzeuge helfen, den Entwurf direkt in Anweisungen z.B. für einen Fräsbohrplotter umzusetzen. Beispiele für solche Layout-Programme sind KiCad, Eagle oder Sprint-Layout.

Layout programs for electronic circuits are designed to be more electronic Facilitate circuits. Component libraries help to use the correct dimensions and grids for components and to avoid components overlapping. Autorouting helps to realize optimal connections between the components. Export tools help direct the design into instructions, e.g. implement for a circuit board plotte Examples of such layout programs are KiCad, Eagle or Sprint layout.

Programy układowe układów elektronicznych mają być bardziej elektroniczne Ułatwiaj obwody. Biblioteki komponentów pomagają w użyciu prawidłowych wymiarów i siatek dla komponentów i aby uniknąć nakładania się komponentów. Funkcja Autorouting pomaga uzyskać optymalne połączenia między komponentami. Narzędzia eksportu pomagają zaprojektować projekt w instrukcjach, np. narzędzie do plotera z obwodam Przykładami takich programów układowych są układ KiCad, Eagle lub Sprint.

Mit KiCad erstelltes Layout einer kleinen Mikrocontroller-Schaltung.

Bild 11-1: Mit KiCad erstelltes Layout einer kleinen Mikrocontroller-Schaltung.

Raster-Layout

Raster-Layout

Układ rastrowy

Im Rahmen dieser Vorlesung soll ein spezielles Layout-Programm entwickelt werden, das eine Teilmenge an möglichen Layout-Aufgaben in besonderem Maße unterstützt, nämlich das Layout für vorgefertigte Lochrasterplatinen mit Kupferkaschierung in vorgegebenen Dreierketten.

In the context of this lecture a special layout program will be developed, which supports a subset of possible layout tasks in particular, namely the layout for prefabricated perforated boards with copper lamination in predefined triples.

W ramach tego wykładu zostanie opracowany specjalny program układowy, który obsługuje w szczególności podzbiór możliwych zadań układu, a mianowicie Układ prefabrykowanych perforowanych desek z laminacją miedzianą w danych potrójnych.

Bestückungsseite einer Platine mit Lochraster und Dreierketten, bestückt mit einer 40-Pin-IC-Fassung für einen ATmega32, einem Widerstand und einer Drahtbrücke.

Bild 11-2: Bestückungsseite einer Platine mit Lochraster und Dreierketten, bestückt mit einer 40-Pin-IC-Fassung für einen ATmega32, einem Widerstand und einer Drahtbrücke.

Kupferseite der gleichen Platine.

Bild 11-3: Kupferseite der gleichen Platine.

Anforderungsliste "Must"

Requirement list Must

Lista wymagań Must

An das zu entwickelnde Programm werden folgende Anforderungen gestellt

The following requirements are set for the program to be developed

Dla programu, który ma zostać opracowany, określono następujące wymagania

  • Vorgabe einer Bestückungsfläche mit wählbarer Rasterbreite und -höhe.
  • Alternative zu Dreierketten als Vorgabe-Verknüpfung soll möglich sein, um z.B. geeignetere Laborplatinen für ATmega32-Anwendungen vorgeben zu können.
  • Verfügbarkeit einer Bauteilbibliothek.
  • Repräsentation der Bauteile über eine grafische Beschreibungssprache, d.h. man muß keine neue Klasse schreiben, um ein neues Bauteil zu bekommen, sondern nur eine Textdatei erweitern.
  • Verfügbarkeit von Drahtbrücken zwischen beliebigen Rasterpunkten.
  • Bestücken über eine GUI.
  • Drehen, Spiegeln und Verschieben von Bauteilen auf der Bestückungsfläche.
  • Bauteile sollen mit Freitext versehen werden können.
  • Laden und Speichern eines laufenden Projektes auf die Festplatte, Daten-Repräsentation über ASCII-Datei.
  • Export als Postscriptdatei.

Anforderungsliste "Nice to have"

Request list Nice

Lista życzeń Nice

  • Automatische optimierte Bestückung anhand eines Stromlaufplanes.

Die Anzahl der notwendigen Drahtbrücken und deren Länge sollte möglichst gering gehalten werden. Ein entsprechender Optimierer soll Variationen für die Bestückung durchspielen, um nach einer optimalen Lösung zu suchen.

The number of necessary wire bridges and their length should be kept as low as possible. An appropriate optimizer should play through variations for the assembly in order to search for an optimal solution.

Liczba niezbędnych mostów drutu i ich długość powinny być utrzymywane na jak najniższym poziomie. Odpowiedni optymalizator powinien odegrać różne warianty zespołu, aby znaleźć optymalne rozwiązanie.

Der "Stromlaufplan" muss allerdings nicht als grafischer Verbindungsplan vorliegen, sondern es reicht in einer Liste anzugeben, welches Bauteil mit welchem anderen wie verbunden ist.

However, the circuit diagram does not have to exist as a graphical connection diagram, but it is sufficient to specify in a list which component is connected to which one.

Schemat obwodu nie musi jednak istnieć jako graficzny schemat połączeń, ale wystarczy podać w liście, do którego komponentu jest podłączony.

Verzicht

waiver

zrzeczenie się

Auf einige für solche Programme typische Eigenschaften soll im Rahmen dieses Entwicklungsprozesses verzichtet werden, um das Programm schlank und übersichtlich zu halten:

On some typical features for such programs is intended in the context This development process will be waived to the program slim and clear:

Niektóre typowe funkcje takich programów są przeznaczone w kontekście Ten proces rozwoju zostanie zniesiony do programu szczupła i przejrzysta:

  • Keine Zoom-Funktion, sondern einfache Größenentsprechung zwischen GUI und Postscript.
  • Kein Greifen von Elementen über die Maus (sondern nur über Tab- und Pfeiltasten).
  • Keine Exportfunktionalität zu anderen Formaten, als zu Postscript.

Agile Softwareentwicklung

Agile software development

Zwinne tworzenie oprogramowania

  • Das Projekt soll im Sinne einer agilen Softwareentwicklung gehandhabt werden.
  • Das bedeutet insbesondere, dass nach jeder Arbeitsphase lauffähiger Code entstanden sein muß, der eine Teilaufgabe des Projekts löst.
Übung P1 (Erste Übung zum Layout-Projekt)
Exercise P1 (first exercise on the layout project)
Ćwiczenie P1 (pierwsze ćwiczenie w projekcie układu)
  • Entwerfen Sie eine textuelle Beschreibungssprache für elektronische Bauelemente.
  • Entwerfen Sie ein Testprogramm, das in der Lage ist einen solchen Text einzulesen und eine grafische Repräsentation zu erzeugen.
  • Wie könnte eine sinnvolle Objekt- bzw. Klassen- und Vererbungsstruktur für dieses Teilprojekt aussehen?
  • Kann die textuelle Repräsentation einfacher ausfallen, als die Postscriptsprache?

Die Rasterung der Löcher beträgt in der Realität 2,54mm. Eine "Bounding-Box" um die Bauteile herum muß also nicht viel feiner ausfallen. Welches wäre eine sinnvolle kleinste Längeneinheit, um ein Bauteilschema oder auch eine "Bounding-Box" um die Bauteile herum zu beschreiben? Wie kann man die Syntax für die textuelle Beschreibung so einfach halten, dass möglichst selten Bauteilbeschreibungen durch falsche Benutzereingaben unbrauchbar werden?

The grid of the holes is in reality 2.54mm. A bounding box around the components does not have to be much finer. Which would be a sensible smallest unit of length, to a component scheme or a bounding box to describe around the components? How to keep the syntax for the textual description as simple as possible Component descriptions become unusable due to incorrect user input?

Siatka otworów jest w rzeczywistości 2,54 mm. Obwiednia wokół komponentów nie musi być o wiele lepsza. Która byłaby rozsądną najmniejszą jednostką długości, schematem części lub ramką ograniczającą opisać wokół komponentów? Jak zachować składnię opisu tekstowego tak prostą, jak to tylko możliwe Opisy komponentów stają się bezużyteczne z powodu niewłaściwego wprowadzania danych przez użytkownika?

Hinweise

Hints

Uwagi

  • Die Aufgabe ist in Java zu lösen.
  • Jedoch soll zunächst der zu verarbeitende Text als String vorgegeben werden und die Ausgabe als Postscriptdatei erfolgen.
  • Eine GUI-Umsetzung und grafische Darstellung in Java wird in der kommenden Vorlesung ergänzt.