Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
0 9 -24 · w w w c o m p u t e r - a u t o m a t i o n d e | 13 Ch a t G P T-Se r i e Te i l 8 es doch überraschend was mit den entsprechenden Prompts erreicht werden kann Zwei Beispiele zur Bewertung der Softwarestrukturen verdeutlichen die Fähigkeiten von gpt-4o • Single Responsibility Principle SRP Eine Klasse sollte nur eine Verantwortung haben das heißt nur einen Grund sich zu ändern Dies verbessert die Wartbarkeit und Verständlichkeit des Codes • Separation of Concerns SoC Dieses Prinzip besagt dass ein Programm in verschiedene Bereiche Concerns unterteilt werden sollte die jeweils eine bestimmte Funktion oder Aufgabe übernehmen Diese beiden Prinzipien helfen Software-Architekturen zu entwerfen die robust wartbar und erweiterbar sind indem sie die Komplexität reduzieren und die Wiederverwendbarkeit erhöhen Der Code für unser Anwendungsbeispiel ist wieder das Backend der quelloffenen Software Chainlit Der verwendete Testprompt analysiert in einem Schritt die gesamte Codebasis und generiert daraus eine Bewertung mit potenziellen Verbesserungsvorschlägen Der ungekürzte Prompt umfasst in unserem Testsetup 6443 Zeilen Der konkrete Test-Prompt der sich für diese Aufgabe bewährt hat lautet wie folgt # RULES OF AN EXPERT ARCHITECTURE ANALYST You are a helpfull architecture analyst who is familiar with be following best practices of software architecture 1 **Separation of Concerns** Divide the system into distinct sections each responsible for a specific aspect or concern to reduce complexity and improve maintainability 2 * *Single Responsibility Principle** Ensure each component or module has one and only one reason to change by focusing on a single responsibility or functionality # GIVENS Testprompt mit der gesamten Codebasis des Chainlit Backends wird aus Platzgründen nicht dargestellt # Intention generate proposals in order to enhance the quality of the given code with respect to follow strictly the „single responsibility principle“ and the „separation of concerns“ # COMMANDS FOR ARCHITECTURE QUALITY ANALYSIS AND IMPROVEMENT Your job is now * Remember you are strictly following your given RULES and SKILLS AS AN EXPERT ARCHITECTURE ANALYST * Silently analyze the intended architectural structure and behavior of the entire given code base in detail and also analyse any further documentation in detail if given * return a table of your five top rated proposed enhancements sorted by the „Architecture enhancement rating“ and formatted in the following way one example line is given as reference | Number | filename | method name | Line of code from - to | Architecture enhancement rating 0 - 1 | explanation of enhancement | | 1 | file py | some method | 30-65 | 0 9 | {here comes an ex-Web-Tipp • Chainlit Framework für Chatbots Github Reposi - tory für die Versuche zur Architekturextraktion und Bewertung https bit ly 4dKBRXp • Radon ein einfaches freies Python Werkzeug für Codemetriken https pypi org project radon • Lizard ein alternatives freies Python Werkzeug für Codemetriken für eine große Bandbreite von Sprachen https pypi org project lizard Dr Hans Egermeier ist Geschäftsführer von talsen team sps 2024 Wir sind dabei computerautomation sps sick AZ SPS 1 8 Satzspiegel pilz indd 1 15 07 2024 14 41 55 planation that on the level of a precise and detailed refactoring prompt} | * In case you think information is missing to generate a sufficiently precise formulation return a warning „WARNING information is missing to correctly fulfill the job “ and then explain what kind of information you think is missing and how it can be easily retrieved Das Ergebnis des Prompts das hier nicht dargestellt wurde ist eine Bewertungstabelle mit Verbesserungsvorschlägen für Refactorings zur Architekturverbesserung Die Vorschläge sind in sehr vielen Fällen berechtigt und führen im Sinne der SRP und SoC zu einer modularen und besser strukturierten Software In einem praktischen Anwendungsszenario würde nun eine Prüfung der Vorschläge durch einen menschlichen Experten stattfinden um dann in einem Refactoring-Schritt den entsprechenden Code händisch zu verändern oder durch eine LLM automatisiert anpassen zu lassen Allerdings ist wie bei LLMs immer zu beachten Ein und derselbe Prompt mehrfach ausgeführt wird unterschiedliche Vorschläge generieren Somit sind die Vorschläge zwar sehr häufig nützlich aber nie als vollständig oder als absolute Wahrheit zu betrachten Was die Ermittlung von Codemetriken anbelangt sollte man sich nicht zu sehr auf die LLM-Ergebnisse verlassen Wer mehr als eine ganz grobe Richtung der Codequalität benötigt sollte die konkrete Analyse und Bewertung nach wie vor mit klassischen Softwarewerkzeugen ermitteln Die mit LLMs generierten Vorschläge sind hingegen in Bezug auf die Verbesserung der Softwarestruktur immer einen Versuch wert Ganz besonders wenn der Kontext nicht zu groß gewählt wird damit die LLM-Antwort nicht zu generische und damit unnütze Antworten liefert hap ah