Jump to content

Finux

Mitglieder
  • Gesamte Inhalte

    27
  • Benutzer seit

  • Letzter Besuch

Letzte Besucher des Profils

516 Profilaufrufe
  1. Also eine Möglichkeit die Aufgabe ohne *JOIN zu lösen gibt es hier nicht?
  2. Wenn ich mich hier anschließen darf (es betrifft dieselbe Aufgabe), bin mir nicht sicher ob meine Lösung akzeptiert werden würde und ob sie überhaupt funktioniert? Meine eigene Lösung sieht so aus: SELECT * (SELECT Laufzeit.Stunden AS Laufzeit FROM Laufzeit WHERE Laufzeit.MaschineID = Maschine.MaschineID AND Laufzeit.Stunden / Maschinentyp.WartungsintervallInStunden > 100 AND Maschinentyp.MaschineTypID = Maschine.MaschineTypID) FROM Kunde WHERE Kunde.KundeID = Maschine.KundeID AND Maschine.DatumLetzteWartung < DATE(TODAY-4); Ich vermute, dass meine Lösung falsch ist, aber wie gehe ich in "meinem Stil" (z.B. ohne das Nutzen von JOINS) an? Und wo liegen meine Fehler? LG
  3. Hier die Lösung: b) SELECT K.KundeID, K.KundeFirma, K.KundeAdresse, M.MaschineID, (SELECT SUM(L.Stunden) FROM Laufzeit AS L WHERE L.MaschineID = M.MaschineID AND L.Datum > M.DatumLetzteWartung) AS Laufzeit FROM Kunde AS K INNER JOIN Maschine AS M ON K.KundeID = M.KundeID INNER JOIN MaschineTyp AS MT ON M.MaschineTypID = MT.MaschineTypID WHERE (SELECT SUM(L.Stunden) FROM Laufzeit AS L WHERE L.MaschineID = M.MaschineID AND L.Datum > M.DatumLetzteWartung) + 100 > MT.WartungsintervallInStunden;
  4. Hallo, mir stellte sich die Frage, ob es nicht möglich ist statt einem Benutzerhandbuch eine README zu schreiben. Begründen würde ich dies mit einem sehr simplen Handling und "wenig nutzerrelevanten" content. Ist sowas generell denkbar, oder könnte dies bei etwaigen Prüfern ggfs. auf etwas Unmut stoßen? Die README ist natülich mit allen Informationen gefüllt, die eine gute README haben sollte. Was eben der Unterschied hierzu ist: Eine .txt ist klein + kann so ziemlich auf allen OS geöffnet werden. Nachteil: Keine Screenshots einer GUI die es zu bedienen gilt. Wie gesagt- meiner Meinung nach wirklich völlig selbsterklärend. Wie seht ihr das? LG
  5. Hallo, ich habe eine Client-Server-Kommunikation in Python 3 (IDE: Pycharm) geschrieben. Nun bin ich sozusagen in der Endphase, dieses abzuschließen. Ich möchte also alle evtl. möglichen Exceptions abfangen. Ist dafür ausschließlich mein Coding-brain zuständig, oder gibt es hier möglicherweise maschinenseitig etwas(z.B. Plugins?), was mir diese Arbeit abnehmen würde? Ihr merkt ich bin noch sehr frisch im Codingbereich. Mir fällt irgendwie auch nicht wirklich ein wie ich mir die Antwort auf meine Frage selbst ergooglen könnte..? Vielen Dank im Voraus! LG, Fin
  6. Ich hab meinen Fehler gefunden Habe in meinem Versuch Threading mit ssl zu verknüpfen nicht bedacht, dass ich die wrap-socket variable auch an die folgenden Funktionen übergeben muss.
  7. Hallo, zunächst kleine Anmerkung: Ich bin Anfänger, mit Netzwerkkommunikation nicht gut vertraut und aktuell noch in der Ausbildung/Umschulung FiAe. Bitte werdet nicht ungemütlich... Ich bin sehr am verzweifeln. Meine aktuelle Aufgabe ist es Server- und Clientsockets in Python3 zu programmieren. Die Voraussetzung, die die aufgebaute Kommunikation erfüllen muss ist folgende: 1. Es sollen mehrere Clients zeitgleich von der server.py bedient werden können. 2. Es müssen Funktionsaufrufe von der client.py auf der server.py möglich gemacht werden 3. Die ganze Kommunikation muss via SSL verschlüsselt sein (hierzu habe ich bereits ein eigenes Zertifikat + Schlüssel von OpenSSL) Einzelne Pythonscripts mit den unterschiedlichen Funktionen habe ich bereits, und sie funktionieren wunderbar (also [1; threading], [2; xmlrpc-multicall], [3; SSL]). Ich schaffe es einfach nicht diese 3 Funktionalitäten übereinander in ein Script zu bekommen. Vielleicht gehe ich das aber auch falsch an, vielleicht ist mein Code nicht aufgeräumt, bzw. so unübersichtlich durch unterschiedliche Namensgebung etc., dass ich einfach nicht mehr durchblicke? Es ist eben leider zusammenkopiert, weil ich zunächst die Funktionalität der einzelnen funktionellen Ansprüche sicher stellen wollte. (Vielleicht ist die Herangehensweise aber schlecht, und man sollte sofort seinen "eigenen Code" also Namensgebung etc. daraus machen?). Mir fehlt vieles an Grundwissen, aber ich bin nicht bereit "aufzugeben"! 👇 Recherchen haben mir leider keinen Aufschluss gebracht, und ich weiß einfach nicht mehr weiter. Zunächst habe ich versucht das xmlrpc-skript mit dem ssl zu vereinen. Fakt ist: xmlrpc kann offiziell mit openssl genutzt werden. Aber wie ich diese 2 Funktionalitäten vereint bekomme- dazu finde ich nichts im Netz. Hier meine bisher noch hilfreichsten Quellen: Python docs zu xmlrpc (client) Python docs zu SSL Hintergrund ist, dass die Clientsockets von einer Homepage geöffnet werden. Hier sollen Funktionsaufrufe für den Nutzer möglich gemacht werden (daher meine Idee mit dem xmlrpc Multicall). Vielleicht sehe ich den Wald vor lauter Baum nicht mehr, aber ich weiß weder wo ich "anfangen" soll, noch ob ich überhaupt auf dem richtigen Weg bin und mich nicht gerade ins Jenseits schleppe. Vielleicht kann jemand helfen. Ich bin wirklich für jeden Tipp dankbar. Greez, Finux Was ich bisher zusammentragen oder programmieren konnte sind hier die Einzelscripts: [1; threading] #################################################################### ################# MULTITHREADING EINFACH SCK ################### ############# + --------- server.py --------- + ############## #################################################################### import socket import argparse import threading parser = argparse.ArgumentParser(description="This is the server for the multithreaded socket demo!") parser.add_argument('--host', metavar='host', type=str, nargs='?', default='xx.xxx.xx.xx') # host ip parser.add_argument('--port', metavar='port', type=int, nargs='?', default=xxxx) # port args = parser.parse_args() print("Running the server on: {} and port: {}".format(args.host, args.port)) sck = socket.socket() #TODO: IPv4 & IPv6 Erkennung sck.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) try: sck.bind((args.host, args.port)) sck.listen(5) except Exception as e: raise SystemExit("We could not bind the server on host: {} to port: {}, because: {}".format(args.host, args.port, e)) def on_new_client(client, connection): ip = connection[0] port = connection[1] print("Client: {} \n Connection: {}".format(client, connection)) print("The new connection was made from IP: {}, and port: {}!".format(ip, port)) while True: msg = client.recv(1024) if msg.decode() == 'exit': break print("The client said: {}".format(msg.decode())) reply = "You told me: {}".format(msg.decode()) client.sendall(reply.encode('utf-8')) #TODO: .send oder .sendall? (Kontrollmöglichkeit der gesendeten Daten) print("The client from ip: {}, and port: {}, has gracefully diconnected!".format(ip, port)) client.close() while True: try: client, ip = sck.accept() threading._start_new_thread(on_new_client, (client, ip)) except KeyboardInterrupt: print("Gracefully shutting down the server!") except Exception as e: print("Well I did not anticipate this: {}".format(e)) sck.close() # ========================================================================== # # ============================ B R E A K =================================== # # ========================================================================== # #################################################################### #################### MULTITHREADING EINFACH SCK #################### ############### + --------- client.py --------- + ################ #################################################################### import socket import argparse parser = argparse.ArgumentParser(description="This is the client for the multi threaded socket server!") parser.add_argument('--host', metavar='host', type=str, nargs='?', default='xx.xxx.x.xxx') # host ip parser.add_argument('--port', metavar='port', type=int, nargs='?', default=xxxx) # port args = parser.parse_args() with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sck: try: print("TRYING to connect to server: {} on port: {}".format(args.host, args.port)) sck.connect((args.host, args.port)) print("Connected to server: {} on port: {}".format(args.host, args.port)) except Exception as e: raise SystemExit("We have failed to connect to host: {} on port: {}, because: {}".format(args.host, args.port, e)) while True: msg = input("What do we want to send to the server?: ") sck.sendall(msg.encode('utf-8')) if msg == 'exit': print("Client is saying goodbye!") break data = sck.recv(1024) print("The server's response was: {}".format(data.decode())) [2; xmlrpc-multicall] #=============================# #=========== CSK Funktionsaufrufe mehrfach ===========# #=============== server.py =================# #===================# from xmlrpc.server import SimpleXMLRPCServer as Server def fak(n): """ Berechnet die Fakultaet der ganzen Zahl n. """ erg = 1 for i in range(2, n+1): erg *= i print(erg) return erg def quad(n): """ Berechnet das Quadrat der Zahl n. """ print(n*n) return n*n def name(): """ Standort: Nirgendwo """ standort = "Irgendwo im Nirgendwo" return standort srv = Server(("xx.xxx.x.xxx", xxxx)) # ip, port srv.register_function(fak) srv.register_function(quad) srv.register_function(name) srv.register_multicall_functions() # ermöglicht mehrfach Funktionsaufruf, Funktionen müssen mit .register_function(funktionsname) registriert sein # srv.register_introspection_functions() # SICHERHEITSLÜCKE! ermöglicht .listMethods, .methodHelp, .methodSignature srv.serve_forever() # ========================================================================== # # ============================ B R E A K =================================== # # ========================================================================== # #=============================# #=========== CSK Funktionsaufrufe mehrfach ===========# #=============== client.py =================# #===================# from xmlrpc.client import ServerProxy, MultiCall cli = ServerProxy("http://xx.xxx.x.xxx:xxxx") # ip, port als ein string! mc = MultiCall(cli) # mc.system.listMethods() # SICHERHEITSLÜCKE! listet alle Funktionen auf # mc.system.methodHelp('name') # SICHERHEITSLÜCKE! gibt Doc-string der jew.Funktion zurück # mc.system.methodSignature('fak') # SICHERHEITSLÜCKE! listet alle Schnittstellen der Funktion auf for i in range(10): mc.fak(i) mc.quad(i) mc.name() for ergebnis in mc(): print(ergebnis) [3; SSL] # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # ~~~~~~~~~~~~~~~~~ SSL Verschlüsselung ~~~~~~~~~~~~~~~ # # ~~~~~~~~~~~~~~~~~~ server.py ~~~~~~~~~~~~~~~~~~# # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # """ To make ur own SSL-certificate on linux type: openssl req -new -days 999 -newkey rsa:4096bits -sha512 -x509 -nodes -out server.crt -keyout server.key Note: CN (Common Name) has to be the server adress (e.g. IP) Don't forget to change rights for server.crt and server.key (chmod -v 777 server.crt) Source: https://wiki.manitu.de/index.php/Server:Selbst-signiertes_SSL-Zertifikat_erstellen/erzeugen """ import socket, ssl def deal_with_client(connstream): data = connstream.recv(1024) while data: if not data: connstream.close() break data = connstream.recv(1024) context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) context.load_cert_chain(certfile="/home/PFADNAME/server.crt", keyfile="/home/PFADNAME/server.key") bindsocket = socket.socket() bindsocket.bind(('127.0.0.1', xxxx)) # zu internen zwecken, da nur 1x linux auf vm vorhanden, port bindsocket.listen(5) while True: newsocket, fromaddr = bindsocket.accept() connstream = context.wrap_socket(newsocket, server_side=True) try: deal_with_client(connstream) finally: connstream.shutdown(socket.SHUT_RDWR) connstream.close() # ========================================================================== # # ============================ B R E A K =================================== # # ========================================================================== # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # ~~~~~~~~~~~~~~~~~ SSL Verschlüsselung ~~~~~~~~~~~~~~~ # # ~~~~~~~~~~~~~~~~~~ client.py ~~~~~~~~~~~~~~~~~~# # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # try: import socket, ssl, pprint except ImportError: pass context = ssl.SSLContext() context.verify_mode = ssl.CERT_REQUIRED context.check_hostname = True context.load_verify_locations("/home/PFADNAME/server.crt") conn = context.wrap_socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM), server_hostname="127.0.0.1") conn.connect(('127.0.0.1', xxxx)) # port cert = conn.getpeercert() pprint.pprint(cert)
  8. Hallo, eine recht knappe Frage: Wann muss/sollte ein Programm Allgemeingültigkeit aufweisen? Woran erkenne ich das? (z.B. in schulischen Aufgabenstellungen, aber auch im Job als FiAe) Die einzigen Dinge die mir einfallen sind hier gewisse Dinge im Vorfeld (z.B. Lastenheft/ anderweitige Absprache oder Kenntnisnahme von "Zuständen" und Umgebung möglicher Einsatzbereiche etc.). Aber gibt es grundlegend Dinge, die mir signalisieren sollten, dass ein allgemeingültiges Programmieren von Vorteil / zwingend erforderlich ist? (Habe dazu iwie im Netz nichts finden können, sry, aber habe glaube mit euch hier gute Ansprechpartner gefunden... 😋) Hinzu meine nächste Frage: In unten stehender Aufgabe habe ich zuerst den Ansatz gehabt die Bedingungen zu programmieren, um dann eine Liste von möglichen Zahlen unter diesen Bedingungen zu generieren. Ich kam jedoch als Neuling nicht wirklich weiter als geschlagene 5 Zeilen Code. Ich wählte diesen Ansatz zu Anfang, weil ich mir dachte "das Programm durchläuft ja unnötig Codezeilen (sozusagen "Verschnitt"), das muss doch performanter gehen...? Mein Ausbilder sagte dann, dass ein anderer Ansatz dafür vorgesehen ist: "Generiere erst die Zahlencodes, und sortiere dann mithilfe deiner Bedingungen aus." Hier die Programmieraufgabe: Ein 5-stelliges Zahlenschloss wurde verstellt. Das Zahlenschloss beseteht aus 5 Ringen mit je 10 möglichen Einstellungen ('0', '1', '2', ..., '9'). Der neue Coode ist leider unbekannt. Aufgrund von Lieblingszahlen und Mustern sind folgende Informationen bekannt: - Der neue Code enthält keine 5. - Er enthält mind. einmal die Ziffer 3. - Er enthält mind. einmal die Ziffer 6. - Er startet nicht mit einer geraden Ziffer, auch nicht mit der '0'. - Er ist fast aufsteigend. Das heißt, die nachfolgenden Ziffern sind nicht kleiner als die vorangehenden (z.B. '23368'). Dies jedoch mit maximal einer Ausnahme. - An einer Stelle darf die Ziffernfolge absteigend sein (z.B. '23326'); aber wie erwähnt, maximal einmal! Lohnt es sich nun von den theoretisch 100.000 Möglichkeiten die verbleibenden auszuprobieren? a) Schreiben Sie ein Programm, dass alle verbleibenden Möglichkeiten ausgibt und die Anzahl. b) Eine Kombination auszuprobieren dauert 3 Sekunden. Angenommen durch manuelles Probieren nach etwa der Hälfte aller Kombinationsmöglichkeiten wurde die richtige Kombination eingegeben- ist dies innerhalb von 60 Minuten möglich? Wie immer- besten Dank! Fin
  9. Und gerade dann doch verstanden. Danke dennoch. Ich arbeite mich fleißig vor, denn ich muss die Kleinigkeiten ja verstehen, wenn ich eine monströse Rekursionsaufgabe lösen muss. (Da werde ich dann ggfs. nochmal hier nachfragen)
  10. Hallo, als Anfänger beschäftige ich mich gerade mit der Rekursion. Was eine Rekursion ist, weiß ich, aber ich verstehe den genauen Ablauf von folgendem Code nicht. Vielleicht hat jemand die Muße mir jeden Schritt der ausgeführt wird zu verschriftlichen.. ich glaube anders verstehe ich es nicht. Die Funktion ist fehlerfrei, mir gehts nur ums Verständnis. 1. Wie sieht jeder einzelne Schritt aus der durchgeführt wird + was ist im Zwischenspeicher? 2. Wofür genau brauche ich das n%10 vor dem sum_func(n//10)? (Ohne komme ich aufs falsche Ergebnis, aber wieso?) Was die Funktion letztlich tut: Übergabe von 4321 an Funktion, diese rechnet dann 4+3+2+1 und gibt 10 als Ergebnis zurück def sum_func(n): if len(str(n)) == 1: return n else: return n % 10 + sum_func(n//10) print(sum_func(4321)) LG, Fin P.S.: Das Debuggen hatte mir keine Erleuchtung bringen können.
  11. Finux

    Rekursion Python

    Hallo, bin gerade dann letztlich doch selbst auf eine Lösung gekommen, aber wer schon dabei geschaut und eine schöne Lösung gefunden hat- ich bin neugierig- postet sie mir bitte hier rein! Meine finale Lösung: # --------------------------------------- Höchste Summer einer Teilfolge von Liste mit Integer --------------------- # """ Aufgabe 4: b) Gegeben sei eine Folge von n ganzen Zahlen in einem Array. Gesucht ist die maximale Summe aller Elemente in einer Teilfolge aufeinanderfolgender Zahlen. Die Eingangsfolge 12 -34 56 -5 -6 78 liefert bspw. die Summe 56 -5 -6 +78 = 123. """ # --------------------------------------- Funktion ----------------------------------------------------------------- # def save_to_dict(k, v): dict_of_num[k] = v def sum_list(num_list): pieces_add1 = num_list[:-1] pieces_add2 = num_list[1:] if len(num_list) > 2: if pieces_add1 not in dict_of_num.values(): add1 = sum(num_list[:-1]) print(add1, pieces_add1, "wurde berechnet!") save_to_dict(add1, pieces_add1) sum_list(num_list[:-1]) if pieces_add2 not in dict_of_num.values(): add2 = sum(num_list[1:]) print(add2, pieces_add2, "wurde berechnet!") save_to_dict(add2, pieces_add2) sum_list(num_list[1:]) else: print("Alrdy in dict!", pieces_add1, pieces_add2) else: print("rdy") # --------------------------------------- Programmstart ------------------------------------------------------------ # dict_of_num = {} num_list = [12, -34, 56, -5, -6, 78] #num_list = [4, 4, 4, 12] # Testliste für Trigger doppelter Berechnung! sum_list(num_list) for result in dict_of_num.keys(): print("DICT", result) #ToDo: Vermeide redundante Berechnungen! (Unterschiedliche Teilfolgen mit gleichem Ergebnis müssen zugelassen sein!) // Kein return, Kein string
  12. Finux

    Rekursion Python

    Hallo, etlche Infoquellen, Erklärungen, Skripte, Buchzeilen bin ich durchgegangen, und dennoch: Ich benötige Hilfe bei einer Aufgabe. Bin angehender FiAe, arbeite aktuell ausschließlich mit Python und bin noch sehr unerfahren was Programmieren (insb. Algor. angeht), daher seht mir evtl. "Dummheiten" bitte nach. Ich schreibe ja hier um zu lernen wie ich es besser mache. Daher wären evtl. Bsp. am meisten für mich von Nutzen wenn ich sie erstmal in Python lesen kann. Vielen Dank! Vorab die Info: Rekursion ist eine sich selbst aufrufende Funktion. Das habe ich verstanden, und in dem folgenden Mini-Programm umgesetzt: (Entwickle Algorithmus welcher rekursiv die Quersumme einer natürlichen Zahl berechnet) def calc_checksum(n): n = sum([int(i) for i in str(n)]) if n > 10: calc_checksum(n) else: print(n) # --------------------------------------- Programmstart ------------------------------------------------------------ # n = 123456789 calc_checksum(n) Nun sitze ich an folgender Aufgabe, die mein Verständnis für rekursive Programmierung absolut zu übersteigen scheint: (Gegeben ist eine Folge von ganzen Zahlen in einem Array. Gesucht ist die maximale Summe aller Elemente in einer Teilfolge aufeinanderfolgender Zahlen. Die Eingangsfolge 12, -34, 56, -5, -6, 78 liefert bspw. die höchste Teilfolgensumme von 123 in der Teilfolge 56-5-6+78) Gegeben: vollständige Liste L [12, -34, 56, -5, -6, 78] <-- eine Teilfolge besteht nicht aus allen Elementen der vollständigen Liste! Es gibt insgesamt 14 Kombinationsmöglichkeiten, wie sich Teilfolgen zusammensetzen können. Hier die möglichen Kombinationen: 23 = [12, -34, 56, -5, -6] 29 = [12, -34, 56, -5] 34 = [12, -34, 56] -22 = [12, -34] 89 = [-34, 56, -5, -6, 78] 11 = [-34, 56, -5, -6] 17 = [-34, 56, -5] 22 = [-34, 56] 123 = [56, -5, -6, 78] 45 = [56, -5, -6] 51 = [56, -5] 67 = [-5, -6, 78] -11 = [-5, -6] 72 = [-6, 78] Ich möchte diese Aufgabe lösen, stoße dabei aber auf unterschiedliche Probleme: 1. Ich verstehe trotz Debuggen den Ablauf der Rekursion (Funktionsaufrufe) nicht. 2. Dadurch ist mir nicht klar, was ich tun muss um alle 14 Möglichkeiten durchlaufen zu lassen 3. Jede durchlaufene Möglichkeit möchte ich in einem Dictionary speichern. Innerhalb der Funktion "addition" überschreibt es sich logischerweise immer wieder selbst. Das Dict. global zu machen hilft mir leider auch nicht. Zumindest funktioniert es nicht. 4. Theoretsich möchte ich ausschließlich Teilfolgen berechnen lassen. Dazu müsste ich die Funktion "addition" allerdings von außen mehr als 1 Mal aufrufen... Mein bisheriger Programmcode zu dieser Aufgabe sieht aktuell so aus: Besten Dank schon mal an alle die sich freundlicherweise mit diesem komplizierten Problem beschäftigen!! LG, Fin
  13. Hallo nochmal! Hier ist also mein aktueller Stand im Punkto Projektantrag! Das in Klammern stehende betrifft explizite Angaben zu meinem Betrieb, und möchte diese daher allgemein gehalten benennen. Mit dem Titel bin ich noch nicht wirklich glücklich, habt ihr evtl. ne Idee? Vielen Dank im Voraus! Fin 1.* Titel / Bezeichnung der betrieblichen Projektarbeit (Auftrag / Teilauftrag) Entwicklung einer Client-Server-Kommunikation zur Informationsübertragung und Visualisierung 2.* Verantwortliche/r im Ausbildungs-/Praktikumsbetrieb (inkl. Telefonnummer) (Angaben) 3.* Geplanter Durchführungszeitraum Geben Sie hier Ihren geplanten Bearbeitungszeitraum an. Die Bearbeitung der Projektarbeit kann frühestens mit bzw. nach der Genehmigung des Prüfungsausschusses beginnen und sollte einen Zeitraum von 4 bis 6 Wochen nicht überschreiten. Der Tag der Genehmigung kann als Startzeitpunkt festgesetzt werden (Bsp. „Tag der Genehmigung bis xx.xx.xxxx). 16.09.2019 bis 11.10.2019 4.* Geplante Hilfsmittel zur Präsentation Die IHK wird dafür Sorge tragen, dass in den Prüfungsräumlichkeiten folgende Hilfsmittel vorhanden sind: - Beamer mit HDMI- / VGA-Kabel - Flipchart Darüber hinausgehende Präsentationstechnik ist von Ihnen zum Prüfungstermin mitzubringen und funktionsfähig vorzubereiten. Für die Funktionsfähigkeit der mitgebrachten Präsentationsmittel sind Sie selbst verantwortlich. Stellen Sie sicher, dass die technische Ausrüstung einsatzbereit ist (Rüstzeit). Tragen Sie hier bitte die Präsentationsmittel ein, die von Ihnen voraussichtlich zur Präsentation mitgebracht werden. Laptop und Laserpointer/Zeigestab 5.* Kurzbeschreibung der betrieblichen Projektarbeit Bitte beschreiben Sie hier kurz und verständlich Ihre geplante betriebliche Projektarbeit und den Geschäftsprozess, sodass auch betriebsfremde Personen die Beschreibung nachvollziehen können. Dabei sollen Sie den Ausgangszustand (Ist-Zustand), die Zielgruppe bzw. den Auftraggeber sowie die Ziele und den Nutzen Ihrer Arbeit darstellen. Ihre persönliche Prüfungsleistung bzw. die von Ihnen auszuführenden Tätigkeiten müssen klar von den Tätigkeiten anderer Personen abgegrenzt werden. Die eingebundenen Schnittstellen (Ansprechpartner) müssen beschrieben werden. Bitte achten Sie bei der Auswahl der Aufgabe darauf, dass das Projekt aus Ihrem Einsatzgebiet stammt und einen IT-Bezug hat. Außerdem muss es als Abschlussprüfung sowohl zeitlich als auch dem Anspruch entsprechend geeignet sein. Bei den kaufmännischen Berufen ist es notwendig, dass die kaufmännischen Aspekte auch deutlich aufgezeigt werden. Bitte achten Sie darauf, dass es sich nicht um einen „ausgedachten“ Auftrag handelt. Nach Möglichkeit sollten Sie Ihr Projekt zeitnah umsetzen und auch in der Art und Weise, in der Sie es in Ihrem Projektantrag planen. Hinweis: Es muss sichergestellt sein, dass weder dieser Antrag noch die spätere Dokumentation schutzwürdige Betriebs- oder Kundendaten enthält und das Urheberrecht beachtet wird. (Kurzeinleitung zur Firma) IST-Zustand: Um eine realistische Einschätzung der maschinellen Zustände verschiedener (Anlagenkomponenten) zu bekommen, werden im laufenden Betrieb Daten erfasst. Diese werden vor Ort bei den Kunden auf einem Server (Programmiersprache) gespeichert und bedürfen ständiger Überwachung. SOLL-Zustand: Um diese Überwachung gewährleisten zu können, ist die Einrichtung der Kommunikation ab dem Abruf der Daten in der „Fog-Computing“-Ebene vonnöten. Sowohl Performance als auch der Sicherheitsaspekt sind besonders zu berücksichtigen, da eine reibungslose und geschützte Kommunikation von grundlegender Bedeutung ist. Meine Aufgabe besteht darin, diese Daten durch Benutzerinteraktion gesteuert darzustellen. Sie sollen befugten Mitarbeitern der (Firma) zugänglich sein. Der zu erwartende Nutzen dieses Projektes lässt sich in verschiedenen Stichpunkten wiederspiegeln: - verbesserte Supportmöglichkeiten - Steigerung der Kundenzufriedenheit - Kostenersparnis durch Reduktion von Dienstreisenden 6.* Projektphasen mit Zeitplanung in Stunden Die einzelnen Projektphasen müssen deutlich herausgearbeitet und ein Soll- / Ist-Vergleich mit Zielsetzung benannt werden. Bitte geben Sie hier aussagekräftige Bezeichnungen der einzelnen Projektphasen mit dem geschätzten Zeitbedarf (in Stunden) Ihrer persönlichen Arbeit an. Bitte achten Sie darauf, dass inklusive der Dokumentation ein Zeitrahmen von 35 Stunden bzw. bei den Fachinformatikern Anwendungsentwicklung 70 Stunden nicht überschritten werden darf. Sie müssen also die technische, wirtschaftliche und zeitliche Durchführbarkeit beachten. Phase 1 – Planung: à 15 Std. - Konkretisierung der Anforderungen - IST – Konzept - SOLL – Konzept - Auswahl geeigneter Werkzeuge und Technologien - Zeitplanung - Kostenbetrachtung Phase 2 – Durchführung: à 38 Std. - Umsetzung SOLL-Konzept (Informationsübertragung, Visualisierung) - Problemmanagement - Test / Kontrollen Phase 3 – Abschluss: à 4 Std - SOLL / IST -Vergleich - Wirtschaftlichkeitsrechnung - Projektabnahme - Fazit / Reflexion Phase 5 – Dokumentation: à 13 Std.
  14. Hallo zusammen, ich bin Neuling was die Programmierung angeht (angehender FiAe). Ich suche seit einigeer Zeit ein Nachschlagewerk/anderes Material, welches einfach (möglichst Sprachenunabhängig!) ganz Grundlegendes beinhaltet unter dem Gesichtspunkt: "Was gehört zum guten Ton eines Programmierers?" Ich meine damit so Dinge wie --> "Man sollte aus Grund X und Y seinen geschriebenen Code möglichst gut dokumentieren. Das kann in etwa so aussehen [Bsp.Abbildung]" --> "Man sollte nie Funktionen und Variablen gleich benennen (Es gibt Programmiersprachen wo das möglich ist)" Es gibt sicherlich eine ganze, ganze Menge dieser Dinge, ich als Frischling habe aber keine Übersicht darüber. Manches kommt mit der Erfahrung, einiges steht auch vielleicht in Sprachenbezogenen Lehrbüchern, aber diese Zeilen in diesen 1.000 Büchern zu finden ist schier unmöglich, und ich möchte mir so früh wie möglich ganz bewusst "den guten Ton" antrainieren, weil ich selbst auch viel Wert darauf lege. Ich hoffe es ist verständlich geworden, was ich suche, möglicherweise gibts den perfekten Suchbegriff- in dem Falle, ich steh aufm Schlauch, helft mir mal runter 😜 P.S.: Dass es natürlich keine zwingende Voraussetzung ist sich "den guten Ton" anzueignen ist mir natürlich klar. Vielen Dank im Voraus! FIN
  15. Ich habe eine Checkliste zum Projektantrag gefunden. Hier habe ich einige Punkte gefunden, die mir in ihrer Notwendigkeit der Nennung nicht ganz klar sind... Wie wichtig/notwendig ist es, auf folgende Punkte einzugehen? (Ich weiß nicht, ob ich die ganze Liste posten darf, daher nur ein kleiner Auszug an Unterpunkten) - Wird eine Kalkulation/Amortisationsrechnung durchgeführt? - Alle Projektphasen detailliert runterbrechen (max. 8 Std.) - Wird die geplante Form des Programms deutlich? (Webanwendung, GUI etc) - Wird die eingesetzte Programmiersprache / Plattform / Datenbank genannt? [- Wird der verwendete Entwicklungsprozess genannt? (Was ist damit genau gemeint? Gibts ein einfaches Bsp.?)] - Ist ein methodisches Vorgehen bei der Softwareentwicklung zu erkennen? - Werden alle zu erstellenden Artefakte und anzuwendenden Methoden genannt? (Was ist hier gemeint? Und notwendig?) Wie gesagt, die Punkte beziehen sich auf eine Checkliste für einen Projektantrag. Ich habe bisher eher grob umrissene Projektanträge gesehen, die aber ohne Probleme "durch gewunken" wurden. Sicher ist das auch eine IHK-abhängige Sache.. Ich könnte z.B. auch die Phasen säuberlich auseinanderfuzzeln, aber es soll ja im Sinne des Antrags eine Grobübersicht des ganzen Projekts geben können. Dass eine Projektphase oder Unterpunkt solchem höchstens in 8 Std. zusammengefasst werden darf höre ich so zum ersten mal.. LG, FIN

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung