====== Qualität von Software ====== * [[wpde>Softwarequalität]] * [[wpde>Code-Qualität]] * {{https://www.verifysoft.com/de_cmtpp_mscoder.pdf|Komplexität und Qualität von Software}} [(https://web.archive.org/web/20190723123312/https://www.verifysoft.com/de_cmtpp_mscoder.pdf)] ===== Kriterien ===== * [[Fehlerfreiheit]] * [[wpde>Zuverlässigkeit]] * [[wpde>Reliability|Reliabilität]] * [[wpde>Wartbarkeit]] [[http://meiert.com/de/publications/articles/20090907/|Einführung in Wartbarkeit]] * [[wpde>Plattformunabhängigkeit|Portierbarkeit]] ===== Programmierstil ===== * [[wpde>Programmierstil]] * [[wpde>Quelltextformatierung]] * [[wpde>Clean Code]]\\ www.clean-code-developer.de\\ [[http://ganz-sicher.net/blog/programmierung-scripting/programmierung-clean-code-tipps/|Programmierung - Clean Code Tipps]] * [[wpde>Code-Duplizierung]] * [[wpde>Einrückungsstil]] * [[wpde>Programmierparadigma]] * [[wpde>Entwurfsmuster]] * [[wpde>Anti-Pattern]] * [[https://code.tutsplus.com/tutorials/top-15-best-practices-for-writing-super-readable-code--net-8118|Top 15+ Best Practices for Writing Super Readable Code]] [(https://web.archive.org/web/20190824193212/https://code.tutsplus.com/tutorials/top-15-best-practices-for-writing-super-readable-code--net-8118)] ==== Verdächtiger Code ==== * [[wpde>Smell_(Programmierung)|Code-Smell]] * [[http://www.empros.ch/vielfach/faustregeln/502149936a0f4bb0f/codesmell.php|Code Smells]] * {{https://www.mathematik.uni-marburg.de/~swt/ss13/sq/files/Folien130522.pdf|Bad Code Smells}} [(https://web.archive.org/web/20190824134006/https://www.mathematik.uni-marburg.de/~swt/ss13/sq/files/Folien130522.pdf)] * [[soft:prog:Lint]] ==== Prinzipien ==== * [[wpde>Software Craftsmanship]] * [[wpde>Unix-Philosophie]] * [[wpde>Principle of Least Surprise|POLS, engl. ''Principle of Least Surprise'']], dt. //„Prinzip der geringsten Überraschung“'' oder auch ''„Prinzip der geringsten Verwunderung“// * [[wpde>DRY|DRY, engl. ''Don’t Repeat Yourself'']], dt. //„Wiederhole dich nicht“// * [[wpde>YAGNI|YAGNI, engl. ''You Ain’t Gonna Need It'']], dt. //„Du wirst es nicht brauchen“// * [[wpde>KISS-Prinzip|KISS, engl. ''Keep it small and simple'' ]], dt. //„Gestalte es klein und einfach“// * [[wpde>Single_Responsibility_Principle|SRP, engl. ''Single Responsibility Principle'']], dt. //„Eine-Verantwortlichkeit-Prinzip“// * [[wpde>Konvention vor Konfiguration|CoC, engl. ''Convention over Configuration'']], dt. //„Konvention vor Konfiguration“// * [[wpde>Law of Demeter|LoD, engl. ''Law of Demeter'']], dt. //„Gesetz von Demeter“//, beschreibt das //„Prinzip der Verschwiegenheit“// ==== Begriffe ==== * [[wpde>Yoda Conditions]] * [[wpde>Ungarische Notation]] ==== Lesenswert ==== * [[http://www.heise.de/developer/artikel/Clean-Code-1137811.html|Clean Code - Refactoring, Patterns, Testen und Techniken für sauberen Code]] -- //Robert C. Martin// * [[http://www.heise.de/developer/artikel/The-Art-of-Readable-Code-1664655.html|The Art of Readable Code]] -- //Dustin Boswell, Trevor Foucher// * [[http://www.dreamingincode.com|Dreaming in Code - Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software sets out to understand why, through the story of one software project.]] -- //Mitch Kapor's Chandler// * [[http://www.whyprogramsfail.com/|Why Programs Fail - A Guide to Systematic Debugging]] -- //[[http://www.st.cs.uni-sb.de/~zeller/|Andreas Zeller]], professor at [[http://www.st.cs.uni-sb.de/|Saarland University]], 2006// === Diskussion === * [[https://www.mikrocontroller.net/topic/132304|Tutorial für _sauberen_ C-Code]] [(https://web.archive.org/web/20190824193912/https://www.mikrocontroller.net/topic/132304)] -- www.mikrocontroller.net * www.dwheeler.com -- David A. Wheeler’s Personal Home Page ===== Entwicklungsprozesse ===== * [[wp>Software development process]] * [[wpde>Vorgehensmodell zur Softwareentwicklung]] * [[wpde>Agile Softwareentwicklung]] * [[wpde>Extreme Programming]] * [[wpde>Testgetriebene Entwicklung]] * [[https://www.heise.de/developer/artikel/Die-Perversion-agiler-Metaphern-4466436.html|Die Perversion agiler Metaphern]] ==== Refactoring ==== * [[wpde>Refactoring]] * https://sourcemaking.com/refactoring * www.refactoring.com -- Refactoring Home * [[http://www.ssw.uni-linz.ac.at/Teaching/Lectures/Sem/2002/reports/Stelzmueller/index.html|Refactoring]] -- Seminar Softwareentwicklung (Programmierstil), WS 2002, Johannes Kepler Universität Linz * [[https://softwaresanierung.wordpress.com/2010/08/09/das-spaghetticode-dilemma/|Das Spaghetticode-Dilemma]] ===== Richtlinien ===== ==== Leitsätze und Empfehlungen (best practice) ==== * [[:soft:prog:File Formats]] * [[:soft:prog:Codes]] * [[:soft:prog:General Coding Guidelines]] * [[soft:prog:doxygen]] * [[:soft:prog:Common Gui Hotkeys]] * [[..:magic_numbers]] ==== Normen und Standards ==== * [[wpde>ISO/IEC_9126]] (veraltet) * [[wpde>ISO/IEC_25000]] -- Software-Engineering – Qualitätskriterien und Bewertung von Softwareprodukten (SQuaRE) * [[https://wiki.selfhtml.org/wiki/Zeichenkodierung|Zeichencodierung − Bytes und Buchstaben]] [(https://web.archive.org/web/20190824134406/https://wiki.selfhtml.org/wiki/Zeichenkodierung)]