„Entwicklung eines Moduls zur Unterstützung bei der

Werbung
RWTH Aachen
Lehrstuhl für Technische Thermodynamik
„Entwicklung eines Moduls zur Unterstützung bei der Noteneinteilung und statistischen Auswertung von Klausur­ und Übungsdaten in C++ mit Qt“
Seminarvortrag
Hanna Brzonkalik
1
Vortragsübersicht
●
Vorstellung des Instituts
●
Klausurorganisation am Lehrstuhl
●
Programm „Klausurorganisation“
●
Übungsverwaltung
●
Technischer Hintergrund
●
Ausblick auf die Bachelorarbeit:
Implementierung des neuen Moduls
2
Institut
Lehrstuhl für Technische Thermodynamik RWTH Aachen
Klausur: „Thermodynamik I/II“ ­ Organisation und Ablauf
Grundlagenvorlesung im Bereich Maschinenbau und Wirtschaftsingenieur Maschinenwesen
● Anmeldung von bis zu 1300 Studenten pro Semester
● Großer Aufwand bei Organisation und Auswertung von Übungen und Klausur
● Software „Klausurorga“
●
3
Klausurorganisation
Ablauf einer Klausurphase
●
Daten vom ZPA werden in das Programm eingelesen und überprüft
●
Verteilung der Studenten auf Hörsäle
●
Klausur
●
Auswertung der Anwesenheit und Krankmeldungen
●
Einteilung der Klausuren in Mappen
●
Punkteeingabe
●
Festlegung der Szenarios (Notenverteilungen anhand Punktegrenzen)
●
Anmeldung zur Einsicht und Terminvergabe
●
Punkteänderung nach der Einsicht
●
Mündliche Ergänzungsprüfung, Anmeldung und Terminvergabe
●
Mitteilung der feststehenden Noten ans ZPA
4
Programm „Klausurorganisation“
●
orga: Programm zur Verwaltung der Klausur und Studentendaten
●
pkteingabe: Programm zur Eingabe der Punkte. Zentrale Datenbank.
●
einsicht: Vergabe von Terminen für Einsicht
●
Ministercheck
Ansicht von erreichten Punkten für jeweiligen Versuch (Studenten im dritten Versuch)
●
muendlpr:
Vergabe von Terminen für mündl. Prüfung
5
Übungsverwaltung
Kleingruppenübungen für Studenten
maximal 25 Teilnehmer
●
●
●
●
Einteilung der Übungsgruppen auf die vorhandenen Übungsräume
Anmeldung durch die Studenten über ein Webinterface. Auswahl einer Übungsgruppe durch den angemeldeten Studenten
Kontrolle der Anwesenheit und Freigabe von nicht genutzten Plätzen
Auswertung der Übungseffektivität bezüglich Klausurergebnissen
6
Technischer Hintergrund
●
Datenbanken
●
Das Qt­Framework
●
●
Tools und Bibliotheksaufbau
●
GUI­Programmierung
●
Signal­Slot­Konzept
●
Compiliervorgang
Beispiel anhand der Klausurorganisation
7
Datenbanken
Verwendung von MySQL­
Datenbanken für die Klausurorganisation und die Übungsverwaltung.
„Klausurorganisation“:
●
Zugriff über Wrapperklassen
●
Abfangen von Falscheingaben
●
Ausnahmen in speziellen Fällen
8
Das Qt­Framework
●
1991 Beginn der Entwicklung von Qt
●
1994 Gründung von Trolltech (damals Quasar Technologies)
●
2008 Übernahme durch Nokia
●
Framework zur GUI­Programmierung für C++. ●
Bietet Basisklassen zur allgemeinen Programierung. ●
aktuelle Version ist 4.6 (Dezember 2009)
●
Weitere Implementationen für Java (Qt­Jambi, offiziell unterstützt) und mehrere freie Projekte für andere Programmiersprachen
9
Das Qt­Framework
●
●
Für alle gängigen Plattformen (Linux, Mac OS, Windows und portable Plattformen)
Lizenzierung: ●
GPL (GNU General Public License)
●
proprietären Lizenz
●
●
ab Version 4.4 auch LGPL (GNU Lesser General Public License)
Bekannte Projekte: Desktopumgebung KDE (Kool Desktop Enviroment) für Unix­ähnliche Betriebssysteme, Skype, Adobe Photoshop Album, Google Earth oder Opera.
10
Das Qt­Framework
Tools und Aufbau der Bibliothek
Tools:
●
Qt Designer: Zusammenstellung von GUIs. ●
Qt Assistant: Dokumentation zur Qt­Api
●
Qt Linguist: ●
Qt Creator: IDE (Integrierte Entwicklungsumgebung)
für mehrsprachige Programm­Versionen
Bibliothek:
●
Bietet viel mehr als reine GUI­Programmierung
Beispiele:
●
QtCore: Grundklassen zur Entwicklung
●
QtGui: grafische Benutzeroberflächen
●
QtSql: Verwendung von Datenbanken
11
Bildquelle: http://trolltech.com/images/products/qt­logo
Das Qt­Framework GUI­Programmierung
Mit dem 'Qt Designer' wird die GUI­Programmierung
unter Qt sehr vereinfacht.
●
Viele Vorgefertigte Widgets (z.B. Buttons, CheckBoxen, Layouts Eingabefelder, Frames)
●
Bearbeiten von Standard­Signalen und ­Slots
●
Einfache Bearbeitung der Eigenschaften
●
Abspeicherung in *.ui­Dateien (Formdateien), die später im Quelltext eingebunden und in C++­Code übersetzt werden
12
Das Qt­Framework Der Qt Designer
13
Das Qt­Framework Kompiliervorgang
●
Meta­Object­Compiler (moc):
Erstellt bei Fund des Makros ’Q OBJECT’ im Header­File aus Qt­
eigenem Code C++­Code aus
●
Userinterface­Compiler (uic):
Die eingebundenen *.ui­Files werden in C++­Code übersetzt.
Hieraus entstehen ui_*.cpp­ und ui_*.h­Dateien.
●
Ressourcen­Compiler:
Aus den *.qrc­Dateien (XML­Basiert) werden Pfade und Aliase für das *.ui­
File eingebunden.
Übersicht Compiliervorgang
Quelle: wikipedia.de
14
Das Qt­Framework
Signal­Slot­Konzept
●
●
●
●
Jede von 'QObject' abgeleitete Klasse kann Signale und Slots definieren.
Signale werden im Header­File mit dem Makro 'signals' deklariert und im Code mit 'emit signal(parameter)' ausgelöst.
Slots sind normale als 'slots' deklarierte Methoden. Können mit beliebig vielen Signalen Verknüpft werden und werden dann ausgeführt.
Verknüpfungs­Methode:
bool QObject::connect(const QObject * sender, const char *
signal, const QObject * receiver, const char * member)
15
Das neue Modul
Nach dem Eintragen aller Punkte: Einteilung der Notengrenzen
Aktuell:
●
●
Festlegen der Bestehensgrenze (mindestens 50% laut PO)
Tabellarische Übersicht der Auswirkung auf die Notenverteilung
16
Das neue Modul
Aktuelle Ansicht der Notenverteilung
17
Das neue Modul
•
•
•
Hilfe beim Erstellen der Szenarios durch Festlegen der Bestehensgrenze oder Auswählen von angestrebten Verteilungskurven
Übersichtlichkeit bei der Notenverteilung (Balken­ und Kurvendiagramm)
Auswertung der Übungseffizienz
(Teilnahme <=> Klausurnote)
Beispiele zur möglichen grafischen Implementierung
18
Umstrukturierung
der Datenbank
Die Datenbank ist durch veränderte Anforderungen an das Programm teilweise nicht mehr optimal strukturiert.
Verwaltung der Szenarios:
●
Ursprünglich nur ein Szenario in Tabelle ’dpo’
●
Einführung zusätzlicher Szenarios mit neuer Tabelle 'scenarios'
●
Zusammengehörende Daten in verschiedenen Tabellen
●
Fehlende Übersichtlichkeit
=> Verionsbruch
19
Vielen Dank für die Aufmerksamkeit.
Noch Fragen?
20
Herunterladen