Werkzeuge für Software-Engineering

Diese Seite repräsentiert Awesome Software-Engineering, d.h. Werkzeuge unabhängig von meinem Lehrgebiet.

Hinweise:

  • Die Werkzeuge sind im Zweifelsfall für Studierende und private Nutzung, weniger für Unternehmen oder Freelancer (wegen der Lizenzbedingungen/EULA)
  • Die kostenlosen Werkzeuge sind nicht immer Best-in-Class im Vergleich zu kostenpflichtigen/„(€)” Alternativen, dennoch bleiben kostenpflichtige Angebote hier meist Out-of-Scope
  • Ein Windows-zentrischer Ersteindruck durch die Chocolatey-Referenzen kann leicht täuschen, denn die kostenlosen oder quelloffenen Tools gibt es i.d.R. auch für Linux oder MacOS mittels snap/flatpak/brew/etc.
  • Empfehlung zu Chocolatey: choco feature enable -n useRememberedArgumentsForUpgrades

git

  • Git Client: git [choco install git.install -y --params="'/GitAndUnixToolsOnPath /WindowsTerminal /NoAutoCrlf'"]
  • GitHub CLI [choco install gh]: gh is GitHub on the command line, it brings pull requests, issues, and other GitHub concepts to the terminal (gh-Cheatsheet)
  • Utilities: git-sizer [choco install git-sizer --ignore-dependencies]
  • GitHub Education: insbesondere GitHub Pro ist dadurch für Studierende kostenlos
  • GitKraken Client Pro und GitLens+ Pro sind für Studierende kostenlos
  • gitattributes-Generator (Obacht: LF-formatiert)
  • gitignore-Generator (Obacht: LF-formatiert)
  • wget [choco install wget]: im Kontext von git u.a. für: wget -O LICENSE "https://www.apache.org/licenses/LICENSE-2.0.txt" (Obacht: LF-formatiert)
  • eolConverter [npm i -g eol-converter-cli]: Unter Windows benötigen Sie u.a. für das Repo-RampUp meist ein Werkzeug für EOL-Konvertierungen, u.a. für:
    • Ramp-Up: eolConverter crlf "**/.gitattributes" | eolConverter crlf "**/.gitignore" | eolConverter crlf "**/LICENSE"
    • Sporadisch: eolConverter crlf "src/**/*.{txt,js,java,svg}"
  • RepoGraphy: Create graphical dashboards to embed in your README.md
  • gitlog-Hygiene hinsichtlich Autorenliste:
    • A priori: git config --global user.name "Erika Musterfrau" | git config --global user.email e.musterfrau@oth-aw.de
    • A posterio: Überprüfen Sie mittels „git shortlog -se” Ihre Autorenliste und denken Sie über eine .mailmap in Ihrem Repo nach
  • git-Hygiene (#1) hinsichlich Security Credentials (und übergroßer Dateien):
  • git-Hygiene (#2) hinsichtlich Autoren (insb. Eliminierung privater Mail-Adressen und Konsolidierung von Autorennamen):
    • Mit einer manuell erstellten .mailmap und dem Skript git-filter-repo können Sie die Autoren auch hart umschreiben
  • Gravatar: Viele git-Analysewerkzeuge greifen auf Gravatare zurück
  • Weiterführende Quellen: Awesome git

Programmierung

SW-Bibliotheken & -Frameworks

Testing

Fehleranalyse

  • Debugging
  • Netzwerk
    • NETworkManager [choco install networkmanager --ignore-dependencies]: Windows Werkzeug für die Netzwerk-Analyse (ping, traceroute, IP scanner, Portscanner, uvm.)
    • ggf. Wireshark [choco install wireshark] und nmap [choco install nmap]
  • Logging
    • Baretail [choco install baretail]: Windows Werkzeug für Real-time Log-File Monitoring (USP: auch Portable)
    • Tail Blazer [choco install tailblazer]: Windows Werkzeug für Real-time Log-File Monitoring (USP: auch RegExp)
  • Umgebungsvariablen
    • RapidEE [choco install rapidee]: Windows Environment Variables Editor
  • Decompiler
    • dnSpy [choco install dnspy --ignore-dependencies]: .NET assembly editor (und .NET debugger, s. oben)
    • Java-Decompiler [choco install javadecompiler-gui]: Java decompiler

Wireframing & Prototyping & UX

Modellierung & Architektur

  • (Mit draw.io bzw. Microsoft Visio kann man natürlich ein Klassendiagramm zeichnen)
  • Cloudcraft: Visualisierung von Cloud-Architekturen. Als Cloud-WebApp. (Beispiele)
  • Visual ParadigmCommunity Edition: UML, SysML, AWS/Azure/GCP Architekturdiagram, uvm.
  • Modelio: Open-Source und Eclipse-basiert; UML, SysML, BPMN und TOGAF-bezogene Diagrammarten
  • PlantUML: UML / Diagrams-as-Code / git-fähig / Kommandozeilen-Anwendung / auf Basis einer textuellen Notation
  • Kroki Server: u.a. UML / Diagrams-as-Code / git-fähig / URL-Anwendung / auf Basis textueller Notationen
    • Unified API with support for PlantUML, BlockDiag, BPMN, Bytefield, C4, Ditaa, Erd, Excalidraw, GraphViz, Mermaid, Nomnoml, Pikchr, Structurizr, SvgBob, UMLet, Vega, Vega-Lite, WaveDrom
    • Beispiele: Liste verschiedener Diagramme
  • JavaScript UML Generator? (derzeit: nur UML Klassendiagramme)
    • arkit: Kommandozeilen-Werkzeug für JavaScript und TypeScript, das primär PlantUML generiert (und daraus abgeleitet SVG oder PNG)
    • TsUML: Kommandozeilen-Werkzeug für TypeScript (basierend auf yuml.me)
    • JetBrains WebStorm (InteliJ-basiert) mit dem Plugin UML JavaScript and TypeScript
    • Eclipse mit der Extension JS/UML
  • DSM Suite: managing software dependencies using a design structure matrix
  • Camunda Modeler: Für Workflow-Modellierung mittels BPMN, Open-Source
    • (Unter Windos bspw. mittels chocolatey: choco install camunda-modeler)
    • Cloud-Variante: bpmn.io
  • Archi: TOGAF-bezogene Diagrammarten
    • (Archi nicht über chocolatey beziehen; die dortige Version ist schon lange veraltet)
  • Madge: Visualisierung eines JavaScript dependency-trees mittels graphviz
  • Structurizr: C4-Model-bezogene Diagrammarten, bspw. auch für Cloud Architekturen
  • LucidChart: Sehr mächtiges Cloud-basiertes Zeichen- und Modellierungswerkzeug
    • Leider sind nur 3 Dokumente kostenlos
  • Entity/Relationship-Modellierung (ERM):
    • Schöne E/R-Diagramme per draw.io [choco install drawio]
    • Oder Microsoft Visio mittels meiner eigenen E/R Visio-Stencils für die Chen-Notation sowie für erweiterte E/R-Diagramme nach Elmasri
    • Oder per Mermaid
    • Oder im Oracle SQL Developer mittels eines Oracle Accounts [choco install oracle-sql-developer --ignore-dependencies --params "'/Username:{oraUser} /Password:{oraPwd}'"] dabei ist der {oraUser} i.d.R. eine E-Mail-Adresse und die geschweiften Klammern sind nicht Teil der Syntax sondern nur Platzhaltersymbolik
    • Warnhinweis: Fast alle amerikanischen Tools (u.a. MySQL-Workbench, dbdiagram.io, etc. pp.) behaupten fälschlicherweise, Sie würden E/R-Diagramme darstellen, aber oft ist die Notation nur eine Visualisierung von Relationen und diese Tools erlauben keine konzeptionelle Modellierung nach dem E/R-Modell
  • JSON-Modellierung
    • JSON ist zunächst schemalos und die wenigen Sprachen zur Spezifikation von Web-APIs (z. B. Swagger, RAML) erlauben die Spezifikation von API-Diensten und ihren Parametern, aber keine konzeptionelle Visualisierung das vollständige API-Schema
    • ABER: Das konzeptionelle Schema von JSON-Dokumenten kann man genauso mit Entity/Relationship-Diagrammen oder mit UML darstellen!
      • (Auch selten genutzte Spezifikationsmöglichkeiten wie JSON Schema sind m.E. weder durch Modellierungswerkzeuge gestützt noch gibt es Round-Trip support zur Extraktion von Schemainformation aus Dokumentinstanzen rund um JSON Schema)
    • TIPP: Visualisieren Sie das Schema, das sich hinter Ihren JSON-Dokumenten verbirgt, in UML mit JSON discoverer
  • ASCII-basierte Diagramme
    • UML-Klassendiagramm: TextUML
    • UML-Squenzdiagramm: PlantUML
    • Diverse ASCII-Visualisierungen: Diagon (Sequenzdiagramme, Bäume, Tabellen, Graphen, Flowcharts, …)
    • ASCII-Kunst-Generator: rexpaint
  • KI-gestützte Modellierung:
  • Software-Archäologie und -Visualisierung:
  • Weiterführende Quelle: Awesome Software Architecture | AWS Architecture Blueprints | Survey of Architecture Frameworks

DevOps / CI / CD / ITSM

Software-Internationalisierung (I18n) & -Lokalisierung (L10n)

Quantencomputing

Kostenlose Alternativen

Extra: Studentisches Start-Up (Software-Entwicklung)

Bonusliste:

Appendix: App Recommendations & Repos