HTML5 Icon 10 Jahre Thailand 

Projekt kalkulierter thailändischer Kalender Tag (1-10)

by Nudels


Posted on Mittwoch Mai 06, 2020 at 09:45PM in Technik - Programmierung


Die Chronologie systematischer Software-Entwicklung


Ein Projektüberblick - Die Vorbereitungen


Die Entwicklungsphase ist abgeschlossen und die Fehler werden ausgewertet und berichtigt. Das Wunschdesign wird in Form gebracht und in einem überschaubaren Zeitrahmen wird das Release in der Nähe des Wörterbuches seinen festen Platz finden. Die Projektdokumentation wird ebenfalls aufbereitet und abschnittsweise in gekürzter Form an dieser Stelle veröffentlicht. Während all dieser Arbeiten ist die Beta-Version, online erreichbar. Es gibt noch einige Problemchen, wie die Grenzwertbetrachtungen,  einige unfertigen Punkte, wie den Metonzyklus und einen großen Ausreisser, wie Sat Thai, mit einer deutlichen Differenz von 120 Tagen. Freuen wir uns auf ein ausgereiftes und belastbares Release, denn das ist zum greifen nahe.


Die ersten 10 Tage im Zeitraffer


Die ersten Tage in einem neuen Projekt beinhalten viel auspacken, begreiffen und ausprobieren von neuen Werkzeugen und Algorithmen. Ich gönne mir 10 Tage. Mein neues Spielzeug ist das Spring Framework und ich bin begeistert. Beim ausloten der vielen Möglichkeiten ist dann auch der erste Prototyp entstanden und ich hatte bis hier nur einen winzigen Teil der technischen Möglichkeiten ins Auge gefasst. Es ist jetzt schon klar, das wird der Rahmen der Architektur des Projekts. Das strikte und bedingunslose Trennen von User-Interface, Businesslogik und Daten überzeugt. Dependency-Injection, frei nach dem Hollywood-Prinzip: Don't call us - we call you - ist noch ein Sahnehäubchen. Mehr zu allem, folgt dann in dem Umfang, wie er für das Projekt notwendig war später. Die Ideen für die Algorithmen sind schon im Artikel "Feiertage - Hintergründe" entstanden. Es waren allerdings nur die Ideen. Algorithmen entwickeln ist kein leichter Prozess. Ich würder sogar sagen die Entwicklung von effizienten und belastbaren Algorithmen ist die Königsdiziplin in der Softwareentwicklung. Algorithmen und Architektur zusammen waren dann auch das Ergebnis, was in der Betaphase hier online geschaltet war. Hierbei kam es gar nicht so sehr auf die präzisen Ergebnisse an, viel mehr Stand der reibungslose Ablauf zwischen Architektur und Intelligenz im Vordergrund. Zur Intelligenz gehört dann auch der Grobentwurf eines Daten-Models. 3 Komponenten machen also die Prototypen-Entwicklung aus. Ein paar Bilder aus dieser Phase folgen:



Die ersten Ergebnisse mit dem Spring-Framework





Algorithmenentwicklung Old-Style am Schreibtisch - ich bin 58 Jahre alt :-)





Meine universelle Test-Konsole





Die Definition der Anforderung


Es gibt in der Software-Entwicklung viele Modelle des Vorgehens. Eines dieser Modelle ist auch in anderen Ingenieursdiziplinen gängige Praxis, und es heißt, wen wundert es: Vorgehens-Modell. Ich habe in meinem 35-jährigen IT-Leben einige Entwicklungsmodelle kommen und gehen sehen. Sie hatten zum Zeitpunkt ihres hellsten Strahlens auch eine spezifische Berechtigung. Das Vorgehensmodell lebt immer noch und führt bei angemessener Diziplin zum erfolgreichen Projektabschluss. Was jetzt folgt ist ein sehr winziger Krümel des Projektmodells, aber ein Krümel mit einer enormen Bedeutung und explosiver Kraft, wenn es darauf ankommt. Das was jetzt folgt, ist die Leistungsbeschreibung des fertigen Produktes.Ich kann nur jedem Entwickler empfehlen, der Definition der Anforderungen entsprechende Achtung zu zollen. Es geht los:


Definition:


Eine internetfähige Anwendung, die aus der Eingabe einer 4-stelligen Jahreszahl nach dem System der  gregorianischen Zeitrechnung die folgenden Ergebnisse ermittelt:





  1.    Das Datum

  2.    Den Wochentag

  3.    Den Namen auf deutsch und auf  thailändisch

  4.    Einen mögliches Ersatzfeiertagsdatum,

  5.    Ja/Nein-Anzeige Ruhetag für Banken und Geschäfte

  6.    Ja/Nein-Anzeige Alkoholverkauf



Diese Ergebnisse werden für alle 22 bekannten thailändischen Feiertage als Ausgabe im Format der gregorianischen Zeitrechnung erwartet. Die Reihenfolge ist vom 1.Jannuar an aufsteigend. Jedes Datum erhält eine eigene Zeile. Zusätzlich wird als Ausgabe erwartet:





  1.    Das Jahr in buddhistischer Zeitrechnung

  2.    Eine Schaltjahrberechnung nach gregorianischer Zeitrechnung.



Die Eingabe der Jahreszahl unterliegt der Einschränkung des Starttermins vom gregorianischen Kalender, der am 15.Oktober 1582 war. In Richtung Zukunft gibt es als Grenze das Jahr 9999.
Die Ein- und Ausgabe wird in 3 (drei) Ansichten abgearbeitet. Die Eingabe-Ansicht führt eine Datenvalidierung für die beschriebenen Grenzen durch. Fehler werden aussagekräftig in einer eigenen Ansicht ausgegeben. Die Ansicht des Ergebnisses ist in 3(drei) getrennten Absätzen dargestellt, die auch visuell so zu erkennen sind. Die Absätze von oben nach unten:





  1.    Einleitungstext – frei wählbar

  2.    Das gewählte Jahr plus die Jahresanforderungen(s.o.)

  3.    Ergebnisse in Tabellenform mit Überschriften



Das Design ist responsive, damit auf Smartphones und auf Desktops ein angenehmer Bedienkomfort sichergestellt ist. Der Gesamthintergrund, der Absatzhintergrund und die Textfarbe ist in den thailändischen Nationalfarben dargestellt. Die Farben der Hintergründe haben eine geringe Saturierung und wirken eher hell. Die Farben des Textes hingegen sind kräftig saturiert. Muster der Ansichten befinden sich im Anhang.
Zum Leistungsumfang gehören umfassende und aussagefähige Tests mit Protokollen. Eine Bereitstellung der fertigen Software auf der sicheren Domain https://niweau.de als link: „thai_kalender“ schließt den Leistungsumfang ab. Wartungen und Ergänzungen sind optional, aber in diesem Leistungsumfang nicht enthalten. Für das gesamte Projekt werden 21 Tage veranschlagt. Dieses beinhaltet: Recherchen, Planung, Entwicklung, Tests und Dokumentation.   


Damit haben wir die Anforderung exakt beschrieben. Es ist wohl bemerkt, nur ein sehr winziges Kapitel der Projektdokumentation.Betrachtungen der Kritikalität und die Ist-Aufnahme, Zeitpläne, Fallback-Szenarien, Prüfpläne,  und und und und ...............vieles mehr gehören zu einer vollständigen Dokumentation. Wenn der Kunde dann alles gelesen hat und vorbehaltlos den Vertrag gezeichnet hat, können wir loslegen.


Die theoretischen Grundlagen zur Aufgabe


Die Grundlagen werden an dieser Stelle nur noch in Stichworten aufgeführt, da sie bereits im Beitrag: "Feiertage - Hintergründe" , detailiert beschrieben sind. Als Grundlage aller Berechnungsstrategien stehen die Kalendersysteme: lunissolar und gregorianisch. Kern der Wochentagsberechnung ist der Algorithmus von Carl-Friedrich Gauß. Die Mondphasen werden in dieser Version durch eine eindeutige Ordnungsrelationen bestimmt, und zwar in 2 Richtungen vom Ankerelement. Theoretisch haben beide Richtung keine Grenzen, was für die Praxis, aufgrund der Fehlertoleranz von 7 Stunden, nicht durchführbar ist. Das gleiche gilt für die Sonnenperiode der Tierkreise. Eine astronomische Berechnung wird für folgende Versionen nicht ausgeschlossen. Da unsere gebräuchlichen Zeiteinheiten eine wechselnde Basis haben, verdienen die Umrechnungen in das dezimale System und anders herum eine besondere Aufmerksamkeit.  Mehr zur Theorie im verlinkten Beitrag.


Die Auswahl der Werkzeuge


Die Auswahl der Werkzeuge wird an 3 Maßstäben bewertet:





  •    Monetär – Die Kosten müssen im Verhältnis zum Projektvolumen stehen.

  •    Funktional – Die beste mögliche Realisierung des Projektes muss schnell. einfach und sicher möglich sein

  •    Kritikalität – Der sichere Einsatz des fertige Produkts darf nicht durch den Einsatz von ungeeigneten Werkzeugen gefährdet sein



In den ersten Schritten der Projektplanung haben sich schon Werkzeuge hervor gehoben. Aus monetärer Sicht prüfen wir unseren Bestand und aus funktionaler Sicht vertrauen wir unserer Erfahrung und unserem „know how“ nach bestem Wissen und Gewissen. Das Ergebnis sieht dann wie folgt aus:


Die Laufzeitumgebung



Ein bestehender Linux-Server, der als Web-Server konfiguriert ist, stellt die Betriebssystem Plattform. Zur Realisierung des sicheren Übertragungsprotokolls https, ist die Domain: niweau.de bei einer Zertifizierungsstelle registriert und die Zertifikate sind eingerichtet. Auf dem Server laufen bereits produktive Anwendungen. Ein Apache Tomcat Servlet-Container wird unser dynamisches Web-Modul verarbeiten und präsentieren. Für notwendige Datenvorhaltung und Datenaustausch der Anwendung steht ein Datenbank-Management-System von MySQL zur Verfügung.
Die Versionen stehen im kausalen Zusammenhang. Die initiale Vorgabe ist hierbei die Java-Version.





  •    Apache-Tomcat: Version 7 oder höher

  •    MySQL: Version 5.7 

  •    Java Runtime Version 1.8 oder höher




Die Auswahl der Entwicklerwerkzeuge



Der größte Part der Werkzeugauswahl betrifft die Architektur des geplanten Produkts. Aus diesem Grund sind hier keine Kompromisse möglich. Die Entwicklungsumgebung ist allerdings ein Punkt, der individuell auf den Entwickler abgestimmt sein muss.





  •    Java: 1.8 oder höher

  •    Spring: 4.1.4

  •    Maven: m2e 1.6

  •    Bootstrap  4.4.1

  •    Eclipse Neon.3




Die nächsten Schritte sind dann:





  •    Die Auswahl des Entwickler-Teams

  •    Festlegung des Dokumenten Systems inklusive Versionierung

  •    Die Auswahl und Einbindung der Sourcen in ein Version-Controll-Systems und Fehler-Managements

  •    Die Festlegung eines Projektplanungs- und Management-Systems

  •    Die Definition eines Konfigurations-Managements

  •    Die Bestimmung der Kritikalität des fertigen Produkts



Diese Details überspringen wir in dieser Präsentation und gehen direkt zum Datenmodell und der Algorithmen Entwicklung (Tag 11-12). Eine Bemerkung zum Ende dieses Abschnitts: In den übersprungenen Details befindet sich der Punkt Fehlermanagement. Dieser verdient eine hohe Priorität, da die Bereitstellung bekannter Fehler jeden Typs den Entwicklungsprozess enorm beschleunigen kann.








Thailändisch Lesen & Schreiben Eine Einführung







 Die aktuelle Kalenderversion findest Du hier



Das waren die ersten 10 Tage ..... hier geht es demnächst weiter ;-)














No one has commented yet.

Leave a Comment

HTML Syntax: Ausgeschaltet