Software - Implementierung:   Ihr Wunsch, meine Aufgabe!

 

Sie möchten gern:

  • Änderungen an bestehenden Programmen?
  • neue Software programmiert haben?
  • die Performance von Programmen erhöhen?
  • Informationen, welche Angaben zur Implementierung erforderlich sind?
    (siehe u.a. nachfolgende Übersicht)

Ich biete Ihnen:

  • praxiserprobte Kenntnisse zu vielen Programmier­sprachen und Tools(siehe bitte: Profil, Website, Optimierung)
  • die Erstellung strukturierter und nachvollziehbarer Software
  • performante Software
  • Kenntnisse aus der PC- und Großrechnerwelt

Informationen aus dem Pflichtenheft zum ausgewählten Abschnitt:

 

Daten

  • Aufbewahrungsorte (zentr. Server, Host, Archiv, Feuerfestes Archiv, Tresor)
  • Aufbewahrungsmedien (HDD, DVD, Bänder, Microfiches, nicht wiederbeschreibbare Datenträger)
  • Aufbewahrungsfristen (gesetzl., organisatorische, Revisionsbelange)
  • Berücksichtigung der Internationalisierung (z.B. Buchstabe "e" oder "e`" im Namen sowie DBCS (double-Byte Character-Set) für fernöstliche Sprachen
  • Betriebssystem-Abhängigkeiten (Datums-Formate, Umgebungs-Variablen, Zugangs-Daten)
  • Datei-Blocklänge, -Versionierung
  • Daten-Haltung (in sequentiellen Dateien, Datenbanken)
  • Datei-Namen incl. variabler Namensteile, unterschiedl. Namensstrukturen für Input-/ Output-Dateien
  • Daten-Architektur (Stammdaten, hierarchische Anordnung, Schlüsselwerte)
  • Daten-Darstellung (Listen-Form, scrollbares Fenster, Pivot-Tabelle)
  • Daten-Empfangsquittung für den Daten-Anlieferer
  • Datenfeld-Trenner (CSV-Dateien, ...)
  • Daten-Bereitstellung (automatisierte Aktualisierung von Bezugsgrößen - Finanzwerte, Einkaufspreise)
  • Daten-Gruppierung (Stammdaten, Bewegungsdaten)
  • Daten-Gültigkeits-Zeitraum (keine alten Prozessdaten verarbeiten, wenn aktuellere vorhanden sind)
  • Daten-Klassen (Pflichtdaten, optionale Daten)
  • Daten-Konvertierung (unterschiedl. Zeichensätze und Datenstrukturen (PL/1, Cobol)
  • Datenmenge je Satzart und Anzahl optionaler Satzarten
  • Daten- (Datenbank-) Normalisierung (eine Information möglichst nur einmal speichern - Vermeidung von Inkonsistenzen und Verringerung des Pflegeaufwands)
  • Datensatz-Länge (fest, variabel)
  • Daten-Schlüssel pro Satzart
  • Daten-Schlüssel-Verzeichnis
  • Datensperren (keine alten Daten in Buchhaltung verarbeiten, Daten nicht doppelt verarbeiten)
  • Datenstrukturen (Tabellen, Tablespaces, Filler für Erweiterungen)
  • Datentypen (feste, variable)
  • Daten-Verschlüsselung
  • Daten-Volumen (pro Zeiteinheit, pro Datei, pro Verarbeitungsfall)
  • Default-Werte (Erkennung bei Inputdaten, Definition bei Outputdaten)
  • doppelte Daten (Kriterien für das Auffinden)
  • durchschnittliche Datenmenge (Abschätzung der Verarbeitungsdauer)
  • eindeutige Eingabeformate festlegen (deutsche Umlaute, Sonderzeichen, Wildcards)
  • Satzende-Kennzeichen
  • Initialisierung bei Erst-Anlieferung von Daten (Zeitpunkt, Default-Startwerte für lfd. Nummern)
  • Kennzeichnung des Anlieferer-Systems (ID im Anfangssatz)
  • Kennzeichnung des erwarteten Eingabeformats (Hinweistext neben dem Eingabefeld)
  • Klassifizierung (priorisierte Verarbeitung von Daten)
  • Komprimierungs- / De-Komprimierungs-Verfahren
  • Komprimierungs- / De-Komprimierungs-Zeitpunkt (nach/vor der Übertragung)
  • Kriterien für Löschung Alt-Daten
  • Migrations-Vorschriften für Daten
  • optionale Daten (Pflicht-/Wahl-Eingabefelder)
  • parallele Datensatz-Bearbeitung durch mehrere Benutzer sperren (Cursor-Stability, repeatable Read)
  • Performance-Belange (Datumsformate ohne Punkte speichern)
  • Plausi-Prüfungen (Input-/Output-Daten, Schlüsselwerte)
  • Programmiersprachen-Auswahl (spezialisierte Unterstützung von Datenstrukturen)
  • Prüfsummen für Daten (CRC-, MD5-Prüfsumme)
  • Satzanzahl-Protokollierung
  • Satzarten (Anfangs- und Schluss-Satz, Mandantensatz, …)
  • Daten-Schnittstellen-Vereinbarungen (fachl./technisch)
  • Selektion-Kriterien (pro Datei, Mandant, Berechnungsfall)
  • Sicherung der Eingangsdaten (mit Datumsqualifier, Versions-Nr.)
  • Trigger-Daten (Start der Verarbeitung beim Auftreten markanter Daten)
  • Testdaten-Generierung (per Programm, manuell)
  • Testdaten-Bereitstellung (anonymisierte Produktionsdaten)
  • Testfälle (umfassend bzw. per Schwerpunkt)
  • Übertragungsverfahren (gesichert, ungesichert, protokolliert)
  • Versionierung der Datenstrukturen
  • Wieder-Aufsetzpunkt nach Abbrüchen incl. Löschung evtl. bereits erstellter Datei-Sicherungen
  • Zeichensatz (ASCII, EBCDIC, …)
  • Zeitpunkt und Häufigkeit der (ersten) Daten-Anlieferung
 

Berechnungen

  • Berechtigungen zum Lesen/ Schreiben von Daten (je Benutzer, Uhrzeit-abhängig)
  • Gültigkeitsbereiche (untere/ obere Grenzen als Konstanten definieren)
  • Modularisierung (Übersichtlichkeit, Wiederverwendbarkeit)
  • Rechenvorschrift (fachl./ gesetzl. Vorgaben)
  • Plausi-Prüfungen (Input- und Output-Daten)
  • Testfall-Vorgaben
  • in Prozessumgebungen Definition von max. Ausführungszeiten für die Durchführung von Berechnungen
  • Fehler- und Hinweistexte (für Datenbereichs-Überschreitungen, Daten-Inkonsistenzen)
  • Werte-Bereiche (durchgehende Berechnung in einem Bereich, z.B. Gramm, Euro, TEuro)
  • Vorgaben, wann Default-Werte verwendet werden sollen
  • gesetzl. Vorgaben prüfen
  • Ergebnis-Rundungen definieren
  • statistische Auswertungen zum Erkennen von Daten-Trends, Daten-Ausreißern, Zeiträumen, regionalen Besonderheiten
  • max. zulässige obere / untere Abweichungen definieren
  • Verwendung passender Datentypen (wg. Performance und Rechengenauigkeit)
  • Rechengenauigkeit (so genau wie möglich, aber nur so genau wie erforderlich - Performance)
  • Ermittlung von Durchläufen je Berechnungsvorschrift (welches Modul kostet am meisten Zeit - muss die beste Performance haben)
  • Verwendung aktueller/gesetzl. Bezugsgrößen (Umrechnungskurse, Steuersätze)
  • Verwendung von Kalender-Modulen zur einheitl. Vorgehen, automat. Berücksichtigung regionaler Besonderheiten)
  • Verwendung konsistenter Daten (Cursor-Stability, Datensatz-Sperren)
  • Verwendung von Programm-Generatoren
  • wiederholte Berechnung von Grenzwerten in Schleifen vermeiden (for i = anz/2 +1 to y ==>besser grenze = anz/2+1; for grenze to y)
  • Verwendung zentraler Berechnungsmodule (vermeidet Mehrfach-Entwicklung)
  • Rechenungenauigkeiten durch wechselnde Rechengenauigkeiten (in Teilschritten) vermeiden
 

Abhängigkeiten

  • Prototyping-Modell (nur zur Abstimmung noch vorhandener Unklarheiten, wird danach gelöscht)
  • Aufsetzpunkt (nach Programm-Wiederanläufen)
  • Indizie (welche Schlüsselfelder)
  • Job-Reihenfolge (fachl./zeitl. Erfordernisse)
  • Rücksetzen (beim automat. Erkennen von Fehlern, Dead-Locks)
  • Start-Zeitpunkt (fester/variabler Zeitpunkt, spätester Zeitpunkt)
  • Wiederanlauf (welche Folgesysteme sind davon betroffen - Kettenreaktion)
  • Wiederholbarkeit (bei erneuter Datenanlieferung am gleichen Tag)
  • Zustandsdiagramm (Abhängigkeit von Verarbeitungszuständen)
  • Lösch-Vorschriften (hierarchisches Löschen - Delete Constraints)
  • Tablespace, Tabellen, Indizie (Einfluss auf Performance, Speicherbedarfe, Erweiterbarkeit)
  • Unterprogramme (Modularisierung, Wiederverwendung, zentrale Pflege/Aktualisierung)
  • Programm-ID's
  • Timestamps (Bearbeitungsfolge in Reihenfolge des Daten-Eingangs)
  • Löschung Alt-Daten (automatisiert, manuell)
  • Aufbewahrungsfristen für Daten (Revisions-Sicherheit, gesetzl. Vorgaben)
  • Zeit-Synchronisation zwischen Systemen
  • Dateinamen (Input, Output - Erkennung der Erstellungs-Reihenfolge)
  • Daten-Anlieferung oder -Abholung?
  • Verhalten bei fehlenden Input-Daten
  • Wiederholbarkeit des Programmlaufs
  • erneute Datenanlieferung möglich (überhaupt möglich?, Zeitpunkt)
  • mehrfacher Programmstart am Kal.Tag möglich?
  • regionale Abhängigkeiten (Steuer, Zinsformeln, Feiertage)
  • Zugangsberechtigung zu Daten je nach Mitarbeiter-Funktion (getrennt nach Online-/Batch-Betrieb)
  • automatische Generierung von DUMMY-Outputdaten zu einem spätesten Zeitpunkt, um den Fortgang der Prozesskette zu ermöglichen
  • parallele Programm-Ausführung (bessere Reaktionszeiten)
  • automatisierte Benachrichtigung beim Ausbleiben von Ereignissen
  • Datei-Abhängigkeiten (Gewährleistung einer lückenlosen Reihenfolge)
  • fortlaufende Nummerierung der Bearbeitungsabläufe (Buchungs-, Rechnungs-Nr.)
  • Funktionsdiagramm (Sperren von Buttons je nach Bearbeitungsstand)
  • Gewährleistung der Datenkonsistenz (Herstellung der Ursprungsdaten bei einem Abbruch, Rollback, Transaktionsorientierte Verarbeitung)
  • Default-Werte und Konstanten nur an einer Stelle definieren (bessere Wartbarkeit)
  • Auflösung von Dead-Locks definieren (Datenbanken)
  • Festlegung eines Zeitraums für manuelle Eingaben (Buchungsbeginn 8 Uhr, Buchungsende 17:30Uhr)
 

Design

  • Buttons definieren (Beschriftung, Farbe für aktiv/nicht-aktiv-Status, Rahmen-Typ/-Breite)
  • Farben (harmonische Auswahl, Kennzeichnung von Informationen, Ausnahmewerten)
  • Rahmen-Farbe, Breite, -Art (erhaben, vertieft, durchgezogen, gestrichelt ...)
  • Prototyping (Rapid-Prototyping)
  • Farb-Kontrast (bessere Lesbarkeit)
  • Corporate Design (Anordnung von Firmen-Logos, Hintergrundgestaltung)
  • Schriftgrößen durch Benutzer änderbar gestalten
  • Rechtschreibprüfung (automatisiert, manuell, Vier-Augen-Prinzip)
  • Schriftart (serif, sans-serif, Lesbarkeit bei unterschiedl. Bildschirm-Auflösungen, Verfügbarkeit auf unterschiedl. Systemen)
  • Bildschirm-Auflösung (möglichst keine Programmerstellung für eine einzige Auflösung)
  • Fenster-Größe (feste Vorgabe für Info-Fenster, variable Größe für Daten-Darstellungen)
  • Fenster-Scrolling
  • Menüleisten (ein-/ausblendbar, Anordnung Menüpunkte, Definition Short-Key-Tasten, andockbar)
  • Buttons + Eingabefenster in Bearbeitungsreihenfolge anordnen
  • Legende zu Kurzbezeichnern (auf Listen)
  • Experten- / Anfängermodus für Programme
  • Kontext-Hilfe für Felder
  • Kennzeichnung von Pflichtfeldern
  • Link-Kennzeichnung (bereits besucht, Hover-Effekt)
  • Kennzeichnung des aktuellen Eingabefeldes (Hintergrundfarbe, Rahmen, Schriftgröße)
  • Kennzeichnung des ausgewählten Menüpunktes
  • Gestaltung einer Online-Funktionsübersicht
  • Verknüpfung zu Tel./ eMail-Verzeichnissen
  • Kennzeichnung des Verarbeitungsfortschritts (Laufbalken, Prozentangabe, voraussichtliche Dauer)
  • Markierung bereits abgearbeiteter / besuchter Punkte
  • farbliche Markierung unplausibler Eingaben
  • farbliche Markierung von Eingaben, die vom Standard abweichen, Prüfung der Maske für e-Mail-Adressen
  • Unterstützung der Eingabe durch Trennfelder (statt "37ie54" -->37 ie 54") zur besseren Lesbarkeit
  • Suche-Funktionen für Daten, für Verarbeitungsfunktionen
  • Sprache einstellbar
  • farbliche Unterscheidung von Fehlern, Hinweisen, Informationen
  • Ein- u. Ausblendung von Feldern, Menüpunkten je nach Bearbeitungsfortschritt bzw. Daten-Abhängigkeit
  • Anzeige der relevanten Daten, nicht aller möglichen Daten
  • Verwendung von Options-Auswahlfeldern zur Vermeidung von Tippfehlern und nicht zulässigen Daten-Typen, -Bereichen
  • zentrale Speicherung und Änderungsmöglichkeit für Konstanten und Stammwerte
  • Aufmerksamkeitsbereiche bei Bildschirmgestaltungen berücksichtigen
 

Output

  • Änderungsnachweis (Kennzeichnung mit Timestamp, Mitarbeiter-Namen)
  • Filler in Datenstrukturen für Erweiterungen
  • Programme ohne GoTo's (geordneter und nachvollziehbarer Programmablauf)
  • sichere Programmierung (Set schalter statt MOVE x to schalter)
  • sprechende Bezeichner
  • max. mögl. Datenbreite berücksichtigt?
  • Kommentare in Software-Modulen
  • Löschung von Test-Modulen
  • Löschung nicht verwendeter Variablen
  • Optimierung (von Modulen, parallele Job-Abarbeitung, Aufgaben-Priorisierung)
  • Berücksichtigung unterschiedlicher Bildschirmgrößen
  • Versions-Kennzeichnung der Software (Marker im Programm)
  • Wartbarkeit (Halstead-Metriken)
  • Wieder-Verwendbarkeit von Modulen gewährleistet
  • Backup (vollständig, inkrementell)
  • Betriebshandbücher
  • Hinterlegung von personellen Zuständigkeiten / Erreichbarkeiten
  • Datensicherung (Vorgehensweise und Zeitpunkte zur Erstellung)
  • Dokumentation von Fehler-/Hinweistexten
  • Dokumentation Vorgehensweise Störungsfälle
  • Installations-Beschreibung, -Hinweise
  • Migrations-Beschreibungen, -Software
  • Performance-Erwartungen für ein geschätztes Input-Volumen
  • Software-Versionierung
  • Test-Dokumentation (detaillierte erwartete Ergebnisse, Testfall-Dokumentation)
  • Versionierung der Daten
  • Qualitätsstandards (Einhaltung)
  • Return-Codes (Auflistung, Beschreibung, Vorgehensweisen)
  • Dokumentation in Druckform
  • einheitliche Listengestaltung
  • Statistik-Zähler
  • Tippfehler-Prüfung (Listen-Texte, Fehler- u- Hinweistexte)
  • Protokollierung der Verarbeitung gewünscht (Mitarbeiter-Kennzeichen, Uhrzeit)
  • automatisierte Rückantworten zur Quittierung von Datenanlieferungen (Quittierungs-Datei, e-Mails)
  • Verwendung von Qualitäts-Sicherungs-Tools (Einhaltung Programmierstandards, W3C)
  • keine Compiler-Warnings (weisen häufig auf Unverträglichkeiten hin, die technisch zulässig sind, aber zu CPU-Mehraufwand führen)
  • Quittierung von Eingaben/ Ausgaben ("Dateneingabe vollständig", "Daten wurden weitergeleitet")
  • Standard-Textvorgaben
  • zu quittierende Meldungen zu Vermeidung automatisierter Datenweiterleitungen
  • Ausgabe von Größen-Einheiten (einheitlich), internat. Unterschiede
  • Anzeige des aktuellen/ des vorherigen Bearbeitungsdatums
  • Kennzeichnung schon bearbeiteter Datensätze
  • automat. Generierung von Marker-Daten, wenn z.B. zu einem Datum keine regulären Daten vorhanden sind
  • grafische Daten-Aufbereitungen (Diagramme statt Listen - bessere Übersicht)
  • Unterscheidung der Fehlermeldungen, Informationen am Fehler-Code (1xx = Info, 9xx = Abbruch)
  • Verständlichkeit / Detailliertheit der Meldungen ("Es ist ein Fehler aufgetreten", "im Modul xy bei Kunde ab Datum yx ungültig")
  • selektierte Anzeige von Daten
  • kumulierte Anzeige von Daten
  • Belegung von Funktionstasten für den Aufruf von Verarbeitungsfunktionen
  • Änderungssperren kenntlich machen (keine rückwirkende Datenänderung)
 

Vorgehensmodell

  • V-Modell: Jede Stufe der Implementierung ist detailliert beschrieben und entspricht einer Testphase.
    Die in allen Projekten angewendeten Vorgehensbausteine (V-Modell-Kern) sind:
    • PM: Projektmanagement
    • QS: Qualitätssicherung
    • KM: Konfigurationsmanagement
    • PA: Problem- und Änderungsmanagement
  • Spiral-Modell: Prozess der Software-Implementierung wird mehrfach (iterativ) durchlaufen, dabei erfolgt jeweils eine Verfeinerung der Softwarekomponenten.
  • Wasserfall-Modell: Prozess der Software-Implementierung wird einmal durchlaufen.
 

Aufwandschätzung

  • Ermittlung der Inhalte, die im Leistungsumfang genau gefordert sind, und derjenigen Inhalte, die zwar sinnvoll, nützlich oder auch nahe liegend sind, aber nicht gefordert werden (und somit nicht implementiert werden).
  • Geschätzter Personalaufwand
  • LOC - Größenordnung (lines of code)
  • Berücksichtigung von Erschwernissen und Restriktionen (zeitliche Zugangs-Vorgaben des Unternehmens, Rücksichtnahme auf bestehende Software-Systeme)





  • aktuelle fachliche Vorgaben
  • neue Betriebssystem-Parameter
  • neue gesetzliche Vorgaben
  • Erkenntnisse aus Prototyping-Modell
  • Anpassungen wg. erkannter Performance-Engpässe
  • Anpassungen wg. neuer Daten-Konstellationen
  • Anpassungen wg. neuer zeitlicher Abhängigkeiten
Software
  • "fehlerfrei"
  • gut wartbar
  • modular
  • zeitgemäß
Dokumentation
  • verfügbar
  • vollständig
  • aktuell + übersichtlich
  • anschaulich
Installation
  • gut beschrieben
  • nachvollziehbar
  • wiederholbar
Performance
  • erwartungsgemäß
  • nachvollziehbar
  • parametrisierbar
Bookmark:
 
Hinweise zur Suche:
  • Es kann nach einem ganzen Wort oder Wortteil gesucht werden.
  • Klein- und Großbuchstaben werden nicht unterschieden.
  • Platzhalter (Wildcards) sind nicht erforderlich. Mit der Eingabe von "date" werden z.B. "Daten", "Zugangsdaten" und "Update" gefunden.
  • Mehrere Suchbegriffe können durch ein Leerzeichen getrennt werden. Es werden dann alle Stellen gefunden, an denen mindestens einer der Suchbegriffe vorkommt.
  • Zwischen mehreren Suchbegriffen kann auch in Großbuchstaben das Wort AND stehen.
    Es werden dann nur die Stellen gefunden, an denen alle Suchbegriffe zugleich vorkommen.
Bernd Köppen
mail (at) fit-for-bit.de
030 - 47 20 343
Such-Maschine
MetaGer
aufrufen
Linksammlung
„Interessantes“
aufrufen
Einheiten-
Konverter
aufrufen
Liste Web-

sicherer Farben

aufrufen
VNC-Programm

für
PC-Fernwartung
Bernd Köppen
www.fit-for-bit.de