Skip to main content

12 - Related Fields for Software Engineering

Agile Documentation

  • Technical writing - A type of writing where the author is writing about a particular subject that requires direction, instruction, or explanation
  • Divio Documentation System - A framework that proposes that all documentation should be explicitly structured according to its purpose, into four distinct types: tutorials, how-to guides, technical reference and explanation

Knowledge Management

Architecture Description

  • Models and Languages
    • ISO/IEC/IEEE 42010: Systems and software engineering — Architecture description
    • Flowchart - A type of diagram that represents a workflow or process
    • 4+1 architectural view model - A view model used for "describing the architecture of software-intensive systems, based on the use of multiple, concurrent views"
    • The C4 model - An easy to learn, developer friendly approach to software architecture diagramming
    • UML - The graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system
  • Diagramming Tools
    • draw.io - A technology stack for building diagramming applications, and the world's most widely used browser-based end-user diagramming software
  • Diagramming as Code
    • D2: Declarative Diagramming - A modern diagram scripting language that turns text to diagrams
    • Diagrams - A Python package for drawing cloud system architectures in Python code
    • PlantUML - A tool that allows you to create diagrams from a simple textual description
    • Mermaid - A Javascript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically
    • Kroki - A free and open source service that converts plain text diagrams to images
    • Graphviz - An open source graph visualization software
      • DOT language - A plain text graph description language
      • haphviz - A Haskell library for representing, manipulating, and pretty-printing graphs in the DOT format
    • ditaa - A small command-line utility that can convert diagrams drawn using ascii art into proper bitmap graphics
  • Architectural Decision Records (ADRs) - A document that captures an important architectural decision made along with its context and consequences
    • adr-tools - A command-line tool to help you manage your architectural decision records

Lightweight Markup

  • Markdown - A lightweight markup language for creating formatted text using a plain-text editor
    • CommonMark - A rationalized version of Markdown syntax, with a spec and BSD-licensed reference implementations in C and JavaScript
    • GFM (GitHub Flavored Markdown) - A formal specification, based on the CommonMark Spec, that defines the syntax and semantics of GitHub's dialect of Markdown
    • markdownlint - A Node.js style checker and lint tool for Markdown/CommonMark files
    • Glow - A terminal based markdown reader
    • Grip - A command-line server application that renders local README files before you push them to GitHub
    • markmap - A combination of Markdown and mindmap
    • Marp - The simplest Markdown presentation writer with plain Markdown
    • Guides
      • Markdown Guide - A free and open-source reference guide that explains how to use Markdown
  • DocUtils - An open-source text processing system for processing plaintext documentation into useful formats, such as HTML, LaTeX, man-pages, open-document, or XML
    • reStructuredText - An easy-to-read, what-you-see-is-what-you-get plaintext markup syntax and parser system
  • Asciidoc - A lightweight markup language for writing notes, documentation, articles, books, ebooks, slideshows, web pages, man pages and blogs
    • Asciidoctor - A fast, open source text processor and publishing toolchain for converting AsciiDoc content to HTML5, DocBook 5 (or 4.5) and other formats
  • Org Mode - An authoring tool and a TODO lists manager for GNU Emacs
  • Wikitext - The markup language that consists of the syntax and keywords used by the MediaWiki software to format a page

Writing Styles

  • Style Guides
  • Prose Linters
    • vale - A linter for natural language/prose
    • retext - An extensible natural language processor
    • alex - A tool that helps you find gender favoring, polarizing, race related, religion inconsiderate, or other unequal phrasing in text
    • write-good - A naive linter for English prose
    • textlint - The pluggable linting tool for text and markdown

Other Tools

  • Typesetting Systems
    • Troff/Groff - A typesetting system that reads plain text mixed with formatting commands and produces formatted output
    • LaTeX - A high-quality typesetting system; it includes features designed for the production of technical and scientific documentation
      • TexLive - A cross-platform, free software distribution for the TeX typesetting system
      • PGF/TikZ - A TeX macro package for generating graphics
    • KaTeX - The fastest math typesetting library for the web
      • sphinxcontrib-katex - A Sphinx extension which allows you to use KaTeX to render math in your Sphinx documentation
  • Validation & Maintenance
    • lychee - A fast, async link checker written in Rust
  • Converters
    • Pandoc - A universal document converter
      • Eisvogel - A pandoc LaTeX template to convert markdown files to PDF or LaTeX

Psychology & Sociology

Personal Performance

  • Mental Health
    • Mindfullness - The basic human ability to be fully present, aware of where we are and what we're doing, and not overly reactive or overwhelmed by what's going on around us
      • Zen - A school of Mahayana Buddhism that originated in China during the Tang dynasty
    • Flow - The mental state in which a person performing some activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity
    • Defence mechanism - Unconscious psychological processes that protect the self from anxiety-producing thoughts and feelings related to internal conflicts and external stressors
    • Psychological resilience - The ability to cope mentally and emotionally with a crisis, or to return to pre-crisis status quickly
    • Occupational burnout - A work-related phenomenon resulting from chronic workplace stress that has not been successfully managed
  • Cognitive Performance / Decision Making
    • Maslow's Hierarchy of Needs - A conceptualisation of the needs (or goals) that motivate human behavior
    • Cognitive bias - A systematic pattern of deviation from norm or rationality in judgment
    • Default mode network - A large-scale brain network; known for being active when a person is not focused on the outside world and the brain is at wakeful rest
    • Situation awareness - The understanding of an environment, its elements, and how it changes with respect to time or other factors
      • 1: Perception of the elements in the environment.
      • 2: Comprehension or understanding of the situation.
      • 3: Projection of future status.
  • Related Philosophies
    • Three Virtues - The qualities of a great programmer: Laziness, Impatience, and Hubris
  • Related Books

Social Performance

  • Social Psychology
    • Psychological safety - The belief that one will not be punished or humiliated for speaking up with ideas, questions, concerns, or mistakes
    • Trust - The belief that another person will do what is expected
    • Collective intelligence - The shared or group intelligence that emerges from the collaboration, collective efforts, and competition of many individuals and appears in consensus decision making
    • Groupthink - A psychological phenomenon that occurs within a group of people in which the desire for harmony or conformity in the group results in an irrational or dysfunctional decision-making outcome
    • Bystander effect - A social psychological theory that states that individuals are less likely to offer help to a victim when there are other people present
    • Dunbar's number - A suggested cognitive limit to the number of people with whom one can maintain stable social relationships
  • Illustrative Concepts
    • Broken windows theory - A criminological theory that states that visible signs of crime, anti-social behavior, and civil disorder create an urban environment that encourages further crime and disorder, including serious crimes
    • Stone soup story - A European folk story in which hungry strangers convince the people of a town to each share a small amount of their food in order to make a meal
    • Boiling frog apologue - An apologue describing a frog being slowly boiled alive

Economics & Game Theory

  • Market - A composition of systems, institutions, procedures, social relations or infrastructures whereby parties engage in exchange
  • Inflation - An increase in the general price level of goods and services in an economy over a period of time
  • Prospect theory - A theory of behavioral economics and behavioral finance which states that people make decisions based on the potential value of losses and gains rather than the final outcome
  • Sunk cost
  • Information asymmetry - A situation in which one party in a transaction has more or better information than the other
  • Induced demand - The phenomenon that after supply increases, more of a good is consumed
  • Metcalfe's law - The value of a telecommunications network is proportional to the square of the number of connected users of the system (n2)
    • Network effect - The phenomenon by which the value or utility a user derives from a good or service depends on the number of users of compatible products
  • Braess's paradox - The observation that adding one or more roads to a road network can slow down overall traffic flow through it
  • Nash equilibrium - A solution concept of a non-cooperative game involving two or more players in which each player is assumed to know the equilibrium strategies of the other players, and no player has anything to gain by changing only their own strategy
  • Pareto efficiency - A state of allocation of resources from which it is impossible to reallocate so as to make any one individual or preference criterion better off without making at least one individual or preference criterion worse off

Finance & Accounting

  • Currency - A standardization of money in any form, in use or circulation as a medium of exchange
  • Interest - The payment from a debtor or deposit-taking financial institution to a lender or depositor of an amount above repayment of the principal sum (that is, the amount borrowed), at a particular rate
  • Central bank - An institution that manages the monetary policy of a country or monetary union
  • Revenue model - A framework for generating financial income
  • Financial capital - An economic resource measured in terms of money used by entrepreneurs and businesses to buy what they need to make their products or to provide their services
    • Venture capital - A form of private equity financing that is provided by venture capital firms or funds to startups, early-stage, and emerging companies that have been deemed to have high growth potential
  • Contracts
    • Credit - The trust which allows one party to provide money or resources to another party wherein the second party does not reimburse the first party immediately
    • Debt - An obligation that requires one party, the debtor, to pay money or otherwise return value to another party, the creditor
      • Discounting - A mechanism in which a debtor obtains the right to delay payments to a creditor, for a defined period of time, in exchange for a charge or fee
      • Bond - A type of security under which the issuer (debtor) owes the holder (creditor) a debt, and is obliged – depending on the terms – to repay the principal of the bond at the maturity date and pay interest over a specified time
    • Spot - A contract of buying or selling a commodity, security or currency for immediate settlement
    • Futures - A standardized legal contract to buy or sell something at a predetermined price for delivery at a specified time in the future
    • Option - A contract which conveys to its owner, the holder, the right, but not the obligation, to buy or sell a specific quantity of an underlying asset or instrument at a specified strike price on or before a specified date
  • Cryptocurrency - A type of currency which uses digital files as money
    • Blockchain - A distributed ledger with growing lists of records
  • Financial accounting
    • Return on investment - The ratio between net income (over a period) and investment (costs resulting from an investment of some resources at a point in time)
    • Cash flow statement - A financial statement that shows how changes in balance sheet accounts and income affect cash and cash equivalents
    • Income statement - One of the financial statements of a company and shows the company's financial performance for a specific period of time
    • Balance sheet - A summary of the financial balances of an individual or organization
    • Net present value - A way of measuring the value of an asset that has cashflow by adding up the present value of all the future cash flows that asset will generate
    • EBITDA

Logic

  • Logic - The study of correct reasoning
    • Logical reasoning - A mental activity that aims to arrive at a conclusion in a rigorous way
      • Deductive, Inductive, Abductive and Analogical
  • Branches of Logic
    • Informal Logic - A broad term for any of the various methods of analyzing and evaluating arguments used in everyday life
    • Formal logic

Informal Logic

  • Argument - The central object of study in informal logic; a series of statements (premises) intended to determine the degree of truth of another statement (the conclusion)
    • Enthymeme - An argument in which one premise is not explicitly stated, a common feature of real-world reasoning
  • Criteria for Argument Evaluation
    • Fallacy - The use of invalid or otherwise faulty reasoning in the construction of an argument that may appear to be well-reasoned if unnoticed
    • Category mistake - The broader application of informal logic and other skills (like analysis and self-reflection) to decide what to believe or do
  • Related Fields
    • Rhetoric - The art of persuasion
    • Critical Thinking - The process of analyzing available facts, evidence, observations, and arguments to make sound conclusions or informed choices

Formal Logic

  • Foundational Concepts
    • Formal system - An abstract structure and formalization of an axiomatic system used for deducing, using rules of inference, theorems from axioms by a set of inference rules
    • Gödel's incompleteness theorems - The two theorems of mathematical logic that demonstrate the inherent limitations of every formal axiomatic system capable of modelling basic arithmetic
    • Logic Principles
      • De Morgan's laws - A pair of transformation rules that are both valid rules of inference
      • Law of noncontradiction - The law that states that for any given proposition, the proposition and its negation cannot both be simultaneously true
      • Law of excluded middle - The principle that for every proposition, either this proposition or its negation is true
      • Proof by contradiction - A form of indirect proof that establishes the truth of a proposition by showing that assuming the proposition to be false leads to a contradiction
  • Logical Systems
    • Propositional calculus - A branch of logic that deals with propositions (which can be true or false) and relations between propositions, including the construction of arguments based on them
      • conjunction, disjunction, implication, biconditional and negation
      • Tautology - A formula that is true regardless of the interpretation of its component terms, with only the logical constants having a fixed meaning
    • First order logic - A collection of formal systems used in mathematics, philosophy, linguistics, and computer science
      • universal quantification and existential quantification
    • Higher order logic - A form of logic that is distinguished from first-order logic by additional quantifiers and, sometimes, stronger semantics
    • Modal logic - A type of logic that is used to represent statements about possibility and necessity
  • Branches of Mathematical Logic
    • Set theory - The branch of mathematical logic that studies sets, which can be informally described as collections of objects
    • Naive set theory
      • Set - A collection of different things; these things are called elements or members of the set and are typically mathematical objects of any kind
      • Function (a.k.a. Map) - A binary relation between two sets that associates every element of the first set to exactly one element of the second set
      • Operation - A function from a set to itself
        • Idempotence - The property of certain operations in which they can be applied multiple times without changing the result beyond the initial application
      • Partition of a set - A grouping of a set's elements into non-empty, disjoint subsets (called "blocks" or "cells") such that every element is in exactly one subset
      • Equivalence relation - A binary relation (reflexive, symmetric, and transitive) that partitions a set into disjoint equivalence classes
    • Axiomatic set theory
      • Zermelo–Fraenkel set theory - An axiomatic system that was proposed in the early twentieth century in order to formulate a theory of sets free of paradoxes such as Russell's paradox
        • Ordinals & Cardinals
    • Type Theory - A formal system that provides an alternative foundation for mathematics (like Set Theory) and is the basis for typed functional programming and proof assistants.
    • Proof Theory - A major branch of mathematical logic that represents proofs as formal mathematical objects, facilitating their analysis by mathematical techniques
      • Sequent calculus - A deductive system for proving theorems
      • Natural deduction - A kind of proof calculus in which logical reasoning is expressed by inference rules closely related to the "natural" way of reasoning
    • Computability Theory - A branch of mathematical logic, computer science, and the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees
      • Lambda calculus - A formal system in mathematical logic for expressing computation based on function abstraction and application
      • Turing machine - A mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules
    • Model Theory - The study of the relationship between formal theories (collections of sentences in a formal language) and their models (structures in which the sentences are true)
  • Applications
    • Constraint satisfaction problem - Mathematical questions defined as a set of objects whose state must satisfy a number of constraints or limitations
    • Satisfiability modulo theories - The problem of determining whether a mathematical formula is satisfiable
    • Automated theorem proving - A subfield of automated reasoning and mathematical logic dealing with proving mathematical theorems by computer programs
    • Formal verification - the act of proving or disproving the correctness of a system with respect to a certain formal specification or property, using formal methods of mathematics
      • Hoare logic - A formal system with a set of logical rules for reasoning rigorously about the correctness of computer programs
  • Tools and Resources
    • Stanford Encyclopedia of Philosophy - A reference work that organizes scholars in philosophy and related fields from around the world to create and maintain up-to-date content
    • SMT-LIB - A command language for interacting with SMT solvers via a textual interface
    • MiniZinc - A free and open-source constraint modeling language
    • P - A state machine based programming language for formally modeling and specifying complex distributed systems
    • Lean - An interactive theorem prover and programming language based on the Calculus of Constructions