Katalog zur professionellen Access-Anwendung | ||
Version 1.01 (2014-05-24) von Karl Donaubauer Direktlink: http://www.donkarl.com/?katalog | ||
|
||
Was macht die professionelle Access-Anwendung aus? Durch die Vielfalt der Anforderungen und Stile gibt es keine eindeutigen Beweise, aber Indizien bzw. Best Practices. Formal geht es nicht um ein weiteres Lehrbuch sondern um einen Stichwortkatalog mit Verweisen, der Grundwissen voraussetzt. Er soll zum einen als Referenz dienen zur Selbsteinschätzung der eigenen Projekte sowie zur Fremdeinschätzung durch technisch informierte Dritte (Kollegen, Kunden, Gutachter). Zum anderen bietet er Richtlinien für die Arbeit von Einzelentwicklern und die Zusammenarbeit im Team. Bei der AEK15 habe ich einen Entwurf mit 200 Kollegen diskutiert und ihre Meinung in einem Fragebogen eingeholt, s.a. die Vortragsfolien Die professionelle Access-Anwendung und Status von Access. Ich arbeite weiter an der Ausformulierung und bin offen für Feedback. Am besten im Feedback-Forum zwecks öffentlicher Diskussion. |
||
1. Datenbank | 2. Anwendung | 3. Programmierung |
1.1 Normalisierung | 2.1 Frontend und Backend | 3.1 VBA vor Makros |
1.2 Primärschlüssel | 2.2 Benennung | 3.2 Benennung |
1.3 Indizierung | 2.3 Versionierung | 3.3 Variablendeklaration |
1.4 Beziehungen und RI | 2.4 Ergonomie | 3.4 Verweise |
1.5 Benennung | 2.5 Eigene Benutzeroberfläche | 3.5 SQL vor DAO/ADO |
1.6 Abfragen optimiert | 2.6 Performance-Maßnahmen | 3.6 Fehlerbehandlung |
1.7 Arbeit mit ODBC-Backend optimiert | 2.7 Komprimierung | 3.7 Kommentare |
2.8 Tote Objekte | 3.8 Formatierung | |
1. Datenbank | ||
1.1 Normalisierung Es werden mindestens die 0. bis 3. Normalform eingehalten. 0. = keine Berechnungen speichern Grund: Datenkonsistenz |
||
1.2
Primärschlüssel Jede Tabelle hat einen Primärschlüssel. Grund: Identifizierung bei allen Gelegenheiten, Aktualisierbarkeit |
||
1.3
Indizierung Jede Tabelle ist adäquat indiziert. - Indizes für alle Felder und Feldkombinationen,
über die verknüpft, gefiltert, sortiert wird
Grund: Performance |
||
1.4 Beziehungen
und RI - Beziehungen für Tabellen sind
gesetzt. Grund: Datenkonsistenz, Überblick, Tabellendesign-Kontrolle |
||
1.5 Benennung Bezogen auf Tabellen, Abfragen, Felder, Spalten, Aliase: - Keine SQL/VBA/Access–Schlüsselworte in
benutzerdefinierten Benennungen Positivliste, d.h. zulässig/sinnvoll: A bis Z, a bis z, 0 bis 9, Unterstrich
Grund:
Wartbarkeit, Fehlerprävention, |
||
1.6
Abfragen sind optimiert
- Indexnutzung wo immer möglich Grund: Performance |
||
1.7
Arbeit mit ODBC-Backend ist optimiert
- Performancekritische Abfragen sind auf den Server verlagert
- bei ODBC-Abfragen wird
lokale Verarbeitung durch JET/ACE vermieden Grund: Performance |
||
2. Anwendung | ||
2.1
Frontend und Backend Die Anwendung ist in Frontend und Backend aufgeteilt.
- Tabellen liegen im Backend (evtl. in mehreren),
alles andere im Frontend Grund: Vermeidung von Datei- und Datenkorruption, Effiziente Wartung des Frontends, weniger Netzverkehr Info: FAQ 1.35 |
||
2.2 Benennung Bezogen auf Access-Objekte, Steuerelemente: - Keine Access/VBA/SQL–Schlüsselworte
in benutzerdefinierten Benennungen Positivliste, d.h. zulässig/sinnvoll: A bis Z, a bis z, 0 bis 9, Unterstrich
Grund: Wartbarkeit, Fehlerprävention |
||
2.3 Versionierung Es gibt ein Versionierungssystem für die Anwendung, an dem unterschiedliche Programmstände für Entwickler und Benutzer erkennbar sind.
- Mindestanforderung: Haupt- und
Nebenversionsnummer für das Frontend Grund: Wartbarkeit |
||
2.4
Ergonomie
ISO 9241 zur Software-Ergonomie ist grundlegend erfüllt |
||
2.5 Eigene
Benutzeroberfläche
Der Anwender arbeitet nur in der für ihn
gestalteten Benutzeroberfläche
Grund: Benutzerfreundlichkeit, Stabilität |
||
2.6
Performance-Maßnahmen
Wichtige und bekannte Performance-Maßnahmen sind berücksichtigt:
Info: Performance-Webseiten von
FMS und
Tony Toews |
||
2.7
Komprimierung
JET/ACE-Backends werden regelmäßig komprimiert,
Frontends werden zumindest ab und zu komprimiert oder getauscht
Grund:
Objekt- und Datenmüll wird gelöscht,
Tabellen defragmentiert,
Abfragestatistiken erneuert
Info: Microsoft Jet Database Engine Programmer's Guide - Chapter 4 |
||
2.8
Tote Objekte
- Nicht mehr in Verwendung stehende Objekte sind entfernt
Grund: Wartbarkeit |
||
3. Programmierung | ||
3.1
VBA vor Makros
- VBA hat Vorrang
Grund: Leistungsumfang, Flexibität, Effizienz von VBA größer |
||
3.2 Benennung Bezogen auf Prozeduren, Variablen, Konstanten: - Keine VBA/Access/SQL–Schlüsselworte
in benutzerdefinierten Benennungen Positivliste, d.h. zulässig/sinnvoll: A bis Z, a bis z, 0 bis 9, Unterstrich Grund: Wartbarkeit, Fehlerprävention Info: Schlüsselwortliste von Allen Browne, Reddick Namenskonventionen |
||
3.3 Variablendeklaration
Alle Variablen sind mit Datentypen deklariert Grund: Wartbarkeit, Fehlerprävention |
||
3.4 Verweise Die Verweise sind auf die tatsächlich im Programm verwendeten reduziert. Grund: Fehlerprävention, Performance Info: FAQ 7.1 |
||
3.5 SQL vor DAO/ADO Für Datenoperationen werden Abfragen/SQL verwendet, außer Programmierung per DAO/ADO ist nötig, z.B. bei Schleifen mit Zwischenspeicherung oder Berechnungen Grund: Performance bei Massenoperationen, Sperrung durch Recordsets, Fehlerprävention – Code ist potentiell fehlerträchtig |
||
3.6 Fehlerbehandlung
Ausreichende Fehlerbehandlung ist vorhanden Grund: Stabilität, Benutzerfreundlichkeit Info: MZ-Tools, vbWatchdog |
||
3.7 Kommentare
Code ist ausreichend kommentiert Grund: Wartbarkeit |
||
3.8 Formatierung
Code ist lesefreundlich formatiert Grund: Wartbarkeit |
||