Glossary

Collection of abbreviations and things that I've come across in my daily work. Just as a reminder to myself.

A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z

2PC
two-phase commit
5S
a set of principals, focussing on maintenance instead of production, one of the major pillars of TPM.
  • Seiri (sort), know where things are, suitable naming
  • Seiton (systematize), stuff where you expect to find it
  • Seiso (shine), clean crap up
  • Seiketsu (standardization)
  • Shutsuke (self-discipline), follow guidelines, reflex on your work, be willing to change
A
AAT
Agile Acceptance Testing
ACID
Atomicity, Consistency, Isolation, Durability. Are transactional properties of database management systems.
ADM
Anemic Domain Model, considered an anti-pattern by some, (data) objects contain state and setters and getters, all logic implemented in higher layer ("Service" layer). See RDM and Procedural programming. See also here.
AES
Advanced Encryption Standard, uses a a symmetric-key algorithm. Seems to be a good current standard (19/01/2014).
aggregation
ordinary composition, but it does not imply ownership. For example duck-pond.
AIM
Access and Identity Management, see idM.
Ajax
Asynchronous JAvascript and XML, though people prefer JSON to XML nowadays. JavaScript (on client) calls server resource using XMLHttpRequest, uses the response to dynamically alter the dom. Also AJAX.
Allman, Eric
I prefer his curly bracing and indentation style, that's all
ANSI
American National Standards Institute
AOP
Aspect Oriented Programming, handles cross-cutting concerns preventing boiler-plate code. A good example are Java Annotations. See also AspectJ.
ARM
Automatic Resource Management, official name for the JDK7 resource declaration in the try of a try-catch-finally block that makes the resource automatically close neatly upon completion or errors.
API
Application Programming Interface
ASCII
American Standard Code for Information Interchange, a coded character set (e.g., hexadecimal value 41 is assigned to “A”).
ASN.1
Abstract Syntax Notation One, a standard and flexible notation that describes rules and structures for representing, encoding, transmitting, and decoding data
AST
Abstract syntax tree, a tree representation of the abstract syntactic structure of source code written in a programming language, see concrete syntax trees (also called parse tree) for the more general version.
AST
Andrew Stuart (Andy) Tanenbaum, American computer scientist and professor emeritus, author of MINIX. His debate with Linus Torvalds is famous. See MINIX and Linus Torvalds.
ATDD
Acceptance Test-Driven Development, also called BDD, SBE, AAT, ST. See SBE for a more general term.
B
B2B
business to business
backwards compatible
it means the new stuff is new, but can still work with old stuff. See also "deprecated".
BASE
Basically Available Soft-state (or Scalable) Eventually Consistent, replaces ACID for Internet systems
BCD
Binary Coded Decimal, use 4 bits to express a decimal digit, from 0000 (0) to 1001 (9) effectively not using numbers 10-15.
BDD
Behaviour Driven Development, see SBE for a more general term.
BDFL
Benevolent dictator for life
bit
binary digit
BMP
Bean Managed Persistence, deprecated, use JPA instead. Though JDO might be an option.
BMT
bean-managed transactions
BNF
Backus Normal Form or Backus–Naur Form, a syntax for describing the grammar of computer languages. See EBNF.
Böhm-Jacopini theorem
See structured programming theorem.
Boyscout Rule
we should leave the code cleaner than we found it (paraphrased from "Leave the campground cleaner than you found it."). See Uncle Bob.
BPM
Business Process Management
branch predictor
a digital circuit that tries to guess which way a branch (e.g. an if-then-else structure) will go before this is known for sure. The purpose of the branch predictor is to improve the flow in the instruction pipeline. Branch predictors play a critical role in achieving high effective performance in many modern pipelined microprocessor architectures such as x86.
broken windows theory
a criminological theory of the norm-setting and signaling effect of urban disorder and vandalism on additional crime and anti-social behavior. The theory states that maintaining and monitoring urban environments to prevent small crimes such as vandalism, public drinking and toll-jumping helps to create an atmosphere of order and lawfulness, thereby preventing more serious crimes from happening. Applies to source code as well. Well structured, insightful source code will bring the best out in fellow programmers, who have a need to change it. See "Boyscout rule".
BSP
Basic Security Profile, was defined by the WS-I organization as an extension to the Basic Profile of web service interoperability.
Bureaucrazy
Any process or organization that sacrifices intelligence and rational thought in favour of administrative red tape.
C
CA
Certificate Authority or Certification Authority, an entity that issues digital certificates
callback hell
trying to write asynchronous code imperatively, causes a pyramid shape with lots of nesting.
CamelCasing
words or phrases, without spaces, where each new word starts with a capital. The first letter is either lower or uppercase.
CAP (Theorem)
Consistency, Availability, Partition tolerance. Only two out of three are possible. (Brewer)
Cargo cult programming
a style of computer programming that is characterized by the ritual inclusion of code or program structures that serve no real purpose
CD
Continuous Delivery. Continuous Integration extended to the Deployment activity. See CI.
CDI
Context and Dependency Injection, puts a dependency (some object/resource) which an object requires into the object, without the objects knowledge, with a contract that it behaves in a way that the object expects. Promotes loose coupling. See IoC.
CI
the practice, in software engineering, of merging all developer working copies with a shared mainline several times a day. It was first named and proposed as part of extreme programming (XP).
Class
blueprint or prototype from which objects are created (instantiated).
Class Invariant
an invariant used to constrain objects of a class. Methods of the class should preserve the invariant. The class invariant constrains the state stored in the object. In other words, class invariants make sure the state of an object stays consistent during the lifetime of the object.
clothesline paradox, the
If you put your clothes in the dryer, the energy you use is measured and counted. But if you hang them on the clothesline to be dried in the sun, the energy saved disappears from our accounting. Hence, when you see a graph showing that only a measly 1% (or so) of energy created is solar energy, remember the clothesline.
CMM
Capability Maturity Model. See CMMI.
CMMI
Capability Maturity Model Integration. Five levels, level 1 Initial, level 2 Managed, level 3 Defined, level 4 Quantitatively Managed, level 5 Optimizing
CMP
Container Managed Persistence, deprecated. Replaced by JPA
CMT
Container Managed Transactions, like the name says.
code smell
any symptom in the source code of a program that may indicate a deeper problem. Not necessarily bugs, but likely indicative of bad design.
cohesion
the degree to which each program module relies on each one of the other modules. Contrasted with Coupling. Always strive for low coupling and high cohesion. See Coupling.
composition
a class that contains other (different) classes. There is a direct relationship between the two, in that the owner has ownership and the classes owned cannot exist without the owner. For example car-steeringwheel. See aggregation.
composition over inheritance
HAS-A relationship gives more flexibility over an IS-A relationship. Though the inheritance strategy can simply use the methods from the superclass, without having to redefine them.
contract oriented programming
software development based on Hoar triples (:{P} A {Q}). Meaning that state P must hold before executing method A. State Q most hold after executing method A.
contravariance/contravariant
In those cases where a certain class can be used, or one of its Superclasses, for example where a Cat class is used, one can also use the Animal superclass. See covariance.
convention over configuration
yes, you can configure and tweak every little bit you want, however, if you don't, there's the sane defaults that work out-of-the-box. Also known as Configuration by Exception
Conway's Law
organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations. Named after computer programmer Melvin Conway, who introduced the idea in 1968.
CORBA
Common Object Request Broker Architecture
CORS
Cross-origin Resource Sharing, the "official" version of JSONP
coupling
the degree to which the elements of a module belong together. Thus, it is a measure of how strongly related each piece of functionality expressed by the source code of a software module is. Contrasted with Cohesion. Always strive for low coupling and high cohesion. See Cohesion.
covariance/covariant
means a subclass can be substituted for a class. A Cat class can be used where an Animal class is expected. See Liskov Substitution and contravariance.
CPS
Certification Practice Statement, legal document that describes how the Certificate Authority manages the certificates it issues
CPS
continuation-passing style, asynchronous programming by providing callbacks.
CQRS
Command Query Responsibility Segregation, means that the storing of information and the reading of information are separated in the implemention by two different modules.
CRUD
Create - Read - Update - Delete, the four universal things to do to a data object.
D
DAO
data access object
DAS
Domain Administration Server, an instance of Glassfish for example.
database normalization
The process of organizing the fields and tables of a relational database to minimize redundancy. A typical example of normalization is that a unique ID is stored everywhere in the system but its name is held in only one table.
DBMS
database management system
DCL
Data Control Language, access rights (GRANT/REVOKE)
DCL
Double Checked Locking, used in singletons to prevent having to synchronise. Avoid! Either synchronise or initialise at start of application.
DD
deployment descriptor
DDD
Domain-Driven Design, primary focus is on the domain and the domainmodel/logic. Requires domain experts.
DDL
Data Definition Language, for defining data structures in a database (CREATE TABLE as an example)
DDoS
distributed DoS. See DoS.
De Morgan's Laws
a pair of transformation rules applicable to boolean logic. To be specific, an "AND" operation ("conjunction") can be transformed in an "OR" operation ("disjunction"), and vice versa.
Deadlock
describes a situation where two or more threads are blocked forever, waiting for each other.
Declarative programming
describes what computation should be performed and not how to compute it. See Imperative programming.
delegation
one object relying upon another to provide a specified set of functionalities. In research, this is often referred to as consultation or as aggregation in modeling. It has been argued that delegation may in some cases be preferred for inheritance to make program code more readable and understandable.
Demeter, Law of
See 'Law of Demeter'.
deprecated
an attribute applied to a computer software feature (characteristic or practice) to indicate that it should be avoided, often because it has been superseded. Support for this computer software feature will soon be dropped. In new versions the computer feature might not even be present.
DES
Data Encryption Standard, deprecated. See TDES.
design pattern
software design pattern, a general reusable solution to a commonly occurring problem within a given context in software design.
DevOps
(a portmanteau of "development" and "operations") a concept dealing with, among other things: software development, operations, and services. It emphasizes communication, collaboration, and integration between software developers and information technology (IT) operations personnel. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services.
DI
See CDI.
DIP
Dependency Inversion Principle, high and low-level classes should depend on abstractions (interfaces). See also IOC. It's the D in SOLID. See also SOLID.
DML
Data Manipulation Language, for managing data in a database (UPDATE TABLE as an example)
DMZ
Demilitarized zone, a physical or logical subnetwork that contains and exposes an organization's external-facing services to a larger and untrusted network, usually the Internet. The purpose of a DMZ is to add an additional layer of security to an organization's local area network (LAN)
dogfood
you buy food for the dog, you have no idea if he likes it. If you're a programmer of Frameworks/Libraries/etc 'Eat your own dogfood.'
DOM
Document Object Model, convention for interacting and representing objects in xhtml, html and xml. Very heavily used by javascript.
DoS
Denial-of-service attack, an attempt to make a machine or network resource unavailable to its intended users. Usually by swamping the machine with bogus requests
dotadiw
"Do One Thing And Do It Well". One of the core tenets of the Unix Philosophy.
DRY
Don't Repeat Yourself (also known as DIE - Duplication Is Evil)
DSDM
Dynamic systems development method, one of a number of Agile methods for developing software and non-IT solutions, and it forms a part of the Agile Alliance
DSL
Domain Specific Languages
DTAP
Development, Testing, Acceptance and Production.
DTO
Data Transfer Object, an object that carries data between processes in order to reduce the number of method calls. No behaviour, only storage and retrieval. Advantages are that data can be prefetched in session/transaction before delivering it to the presentation layer, and it also adds the benefit that changes made to the data in the presentation layer have no effect. See DAO.
DTP
distributed transaction processing
ducktyping
"When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.", addendum from me: even if it isn't a duck, because I don't care, as long as it has the functionality I need.
E
EA
Enterprise Architecture
  1. a method and an organizing principle that aligns functional business objectives and strategies with an IT strategy and execution plan. (Oracle Enterprise Architecture)
  2. A formal description of a system, or a detailed plan of the system at component level, to guide its implementation (source: ISO/IEC 42010:2007).
  3. The structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time. (The Open Group)
EAFP
Easier to Ask Forgiveness than Permission, see ducktyping
EAI
Enterprise application integration, the use of software and computer systems architectural principles to integrate a set of enterprise computer applications.
EAR
Enterprise ARchive, package of a JEE Application.
EAV
Entity–attribute–value model, a data model to describe entities where the number of attributes (properties, parameters) that can be used to describe them is potentially vast, but the number that will actually apply to a given entity is relatively modest (high "attribute volatility")
EBNF
Extended Backus Backus–Naur Form, a syntax for describing the grammar of computer languages. Less lengthy than BNF. See BNF.
ECM
Enterprise Content Management, management of unstructured information within an enterprise, usually comprised of a large variation of possible documents/records/archives/etc.
EIS
Enterprise Information System, a resource for your application, usually a database
EJB
Enterprise Java Bean, an JEE application component
emergent design
the mistaken idea that without planning up front, but by delivering small pieces of well-tested functionality and afterwards refactoring/merging of common areas, magically an efficient design will emerge.
EL
Expression Language
elvis operator
"?:", a binary operator that returns its first operand if that operand is true, and otherwise evaluates and returns its second operand. It is a variant of the ternary conditional operator, ? :, found in those languages (and many others): the Elvis operator is the ternary operator with its second operand omitted. So named because it resembles an Elvis emoticon.
ERD
entity–relationship diagram of an entity–relationship model, a data model for databases
ERP
enterprise resource planning
ESB
Enterprise Service Bus, software architecture model, special case client-server, promotes asynchronous message oriented design between applications in complex networks. See SOA. Also jokingly referred to as Enterprise Spaghetti Bus.
ETL tools
Extraction, Transformation and Load, used for moving/copying data from one place/format to another.
Execute Around Method
software pattern, where several pieces of arbitrary code need to be executed within some boilerplate-like code. Usually implemented using boilerplate code that accepts a lambda/closure.
expression problem, the
in object oriented languages it is easy to extend/create new objects, in functional languages it is easy to extend/create new methods. Both have advantages and disadvantages. Combining the two characteristics in one programming language is a problem though.
F
facelets
an open source Web template system under the Apache license and the default view handler technology (aka view declaration language) for JavaServer Faces (JSF)
feature creep
Also known as creeping featurism or featuritis. The ongoing expansion or addition of new features in a product, such as in computer software. Has the negative connotation of over-complicating the original design, adding features that are not part of the function of the software or provide no additional value to the users of the software.
fibers
threads in userspace, prevents inefficient context switching when some fibers are blocked
FLOSS
Free and open-source software
fluent interface
expressive coding technique, see FluentInterface
FOUC
Flash of Unstyled Content, instance where a web page appears without style briefly, because stylesheet hasn't been loaded yet.
Fowler, Martin
a British software engineer, author and international speaker on software development, specializing in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.
FTP
File Transfer Protocol
FUD
Fear, Uncertainty, and Doubt, spreading of rumour, lies or misinformation regarding a product due to poor knowledge of said product and/or because it's a competing product. Usually in an attempt to influence perception.
Functional programming
uses functions instead of state/data.
G
GA
General Availability, software version that is live in the field and in production. See also RC.
GIS
geographic information systems (think Google maps)
glob
glob patterns specify sets of filenames with wildcard characters, particular in a Unix-like environment.
God Facade
A Facade(Boundary/Gateway) that cannot make up its mind if it's SOA oriented or Domain object oriented. Usually identified by a huge number of methods, of which some are almost but not entirely alike and where several methods need to be called to complete a single process.
GoF
Gang of Four, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, best known for their book "Design Patterns: Elements of Reusable Object-Oriented Software"
googol
10100
Guava
Google core java library (http://code.google.com/p/guava-libraries/)
GUI
Graphical User Interface, the whole point-clicky thing
H
hashbang
"#!", character sequence at the beginning of a file identifying the file as a script. The file can be run directly, if set to executable.
HATEOAS
Hypermedia as the Engine of Application State, no fixed interface or IDL defined, decouple client and server. Basically, the server returns URLS that allow the client to "dig deeper" without knowing specifics and allow the server to expand functionality without influencing the client. Part of the REST architecture (See REST, IDL). Do people actually use this acronym?
HCI
Human-Computer Interface
Heisenbug
Bug that disappears when changing code to add print/log statements
heuristic
experience-based techniques for problem solving, learning, and discovery that give a solution which is not guaranteed to be optimal. See design pattern.
Hoare logic/triple
{P} C {Q}, where P and Q are assertions and C is a command. P is named the precondition and Q the postcondition: when the precondition is met, executing the command establishes the postcondition. Developed initially by C.A.R. Hoare.
Hofstadter's Law
Self-referential law regarding the time it takes to do stuff. "It always takes longer than you expect, even when you take into account Hofstadter's Law."
Hollywood Principle
"Don't call us, we'll call you", because implementations typically rely on callbacks. See IoC.
HQL
Hibernate Query Language, a superset of JPQL.
HTML
HyperText Markup Language
HTTPS
HTTP over Secure Socket Layer (SSL) protocol
HTTP
Hyper-Text Transfer Protocol
Huffman encoding
an entropy encoding algorithm used for lossless data compression
Hypervisor
a piece of computer software, firmware or hardware that creates and runs virtual machines.
I
i18n
internationalization, where 18 stands for the number of letters between the first i and last n in internationalization. Making software suitable for multiple languages. See NLS and L10n.
IDL
Interface Definition Language
idM
Identity management, describes the management of individual identities, their authentication, authorization, roles and privileges within or across system and enterprise boundaries with the goal of increasing security and productivity while decreasing cost, downtime, and repetitive tasks.
if it hurts, do it more often.
a phrase used in agile methodology, referring to putting things off will increase the pain many fold (because more needs to be done).
IIFE
Immediately-invoked function expression, design pattern in javascript to make use of function scope to prevent polluting the global namespace.
IIOP
Internet Inter-ORB Protocol. See CORBA.
inheritance
classes can inherit attributes and behavior (i.e., previously coded algorithms associated with a class) from pre-existing classes called superclasses or parent classes. The new classes are known as subclasses or child classes. The relationships of classes through inheritance gives rise to a hierarchy. See delegation.
IMAP
Internet Message Access Protocol
Imperative Programming
define sequences of commands for the computer to perform. See Declarative programming.
interleaving
spreading out stuff among multiple things, in an alternating fashion. Used to improve the performance of forward error correcting codes. Interleaving creates a more uniform distribution of errors, given the fact that pockets of errors can occur together if the single medium at that point becomes weak.
invariant
if neither covariance nor contravariance is supported. See covariance, contravariance.
IoC
Inversion of Control, no central control, business knowledge incorporated by the responsible entity and preferably nowhere else.
IoT
Internet of Things.
IPA
Identity, Policy and Audit (basically authentication and authorisation of users, primarily linux/unix based)
ISO
International Organization for Standardization, see OSI.
ISP
Interface segregation principle, several interfaces is better than one big interface. I find it similar to SRP. The I of SOLID. See also SOLID.
ITIL
Information Technology Infrastructure Library, 5 books on ITSM, Service Strategy, Service Design, Service Transition, Service Operation, Continual Service Improvement
ITSM
Information Technology Service Management
J
JAAS
Java Authentication and Authorization Service, Java implementation of PAM.
JAR
Java ARchive, for packaging resources/classes/xmlfiles and the like.
JavaScript
aka Mocha, aka LiveScript, aka JScript, aka ECMAScript, a programming language. JavaScript's popularity is due entirely to its role as the scripting language of the WWW.
JAXB
Java Architecture for XML Binding
JAXP
Java API for XML Processing, fairly low-level adaptable XML parser API, can work with multiple parsers.
JAXR
Java API for XML Registries, a standard API for Java platform applications to access and programmatically interact with various kinds of metadata registries over the Web via XML.
JAX_RPC
Java API for XML-based RPC, deprecated. The new name is JAX-WS. See also JAX-WS.
JAX-RS
Java API for RESTful Web Services, see REST
JAX-WS
Java API for XML Web Services, so SOAP XML like etc using JAXB. Also provides Client APIs.
JCA
Java EE Connector Architecture, Java-based technology solution for connecting application servers and EIS as part of EAI solutions
JCE
Java Cryptography Extension
JDBC
Java DataBase Connectivity, but not really.
JDK
Java Development Kit
JDO
Java Data Objects, POJOs with Persistence without ORM.
JEE
Java Enterprise Edition
JLS
Java Language Specification
JMM
Java Memory Model, seriously complicated stuff
JMS
Java Message Service, supports Point-to-point and Publish and subscribe. Not Request and Reply. See MOM.
JMX
Java Management Extensions, Java technology that supplies tools for managing and monitoring applications, system objects, devices (e. g. printers) and service oriented networks. Those resources are represented by objects called MBeans (for Managed Bean)
JNDI
Java Naming and Directory Interface
JNI
Java Native Interface, used to call and be called to/from other applications not necessarily java.
JNLP
Java Network Launching Protocol, 'Java Web Start'
JPA
Java Persistence API
JPQL
Java Persistence Query Language, SQL for OO
JRE
Java Runtime Environment
JRMP
Java Remote Method Protocol, the Java technology-specific protocol for looking up and referencing remote objects. It is a wire level protocol running at the level under Remote Method Invocation (RMI) and over TCP/IP.
JSDK
Java Software Development Kit
JSF
Java Server Faces, web app framework on top of jsp, though Facelets are now the default. Creates templates and descriptions using xml. See JSP
JSL
Job Specification Language used for Java Batch
JSR
Java Specification Request, new feature requests in the Java and JEE language/frameworks.
JSON
Java Script Object Notation
JSONP
JSON with Padding
JSP
Java Server Pages, java servlets in template form
JSTL
Java Standard Tag Library
JTS
Java transaction service, a specification for building a transaction manager that maps onto the Object Management Group (OMG) Object Transaction Service (OTS) used in the Common Object Request Broker Architecture (CORBA) architecture
JTA
Java Transaction API, enables distributed transactions to be done across multiple X/Open XA resources in a Java environment
JUL
java.util.Logging
JVM
Java Virtual Machine, runs a java bytecode program.
K
Kaizen
Japanese for "good change". The word Kaizen in English is typically applied to measures for implementing continuous improvement.
KDD
Knowledge Discovery in Data, a better known name is Data Mining
Kernighan, Brian Wilson
Canadian computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie, one of the first Prophets
KISS
Keep It Simple, Stupid
K&R
Kernighan & Richie, also known as the first Prophets
KVM
Kernel-based Virtual Machine
L
L10n
localization, where 10 stands for the number of letters between the first L and last n in localization. Making software suitable for multiple locations (with different languages/dialects/etc). See NLS and i18n.
Lambda
an operator used to denote anonymous functions or closures, following the usage of lambda calculus
Law of Demeter
loose coupling, only talk to direct friends, don't talk to strangers
LCD
Lowest Common Denominator, pick the one with the fewest features, so it works on everything.
LeBlanc's Law
"Later equals never". The law is attributed to Dave LeBlanc.
LIFT
According to the Angular guidelines, it stands for:
  • Locating code is easy
  • Identify code at a glance
  • Flat structure as long as we can
  • Try to stay DRY (Don't Repeat Yourself) or
    T-DRY
Linus Torvalds
a Finnish-American software engineer, who is the creator of the Linux kernel and for a long time, principal developer. He also created the distributed revision control system git.
Livelock
A thread often acts in response to the action of another thread. If the other thread's action is also a response to the action of another thread, then livelock may result. As with deadlock, livelocked threads are unable to make further progress. However, the threads are not blocked — they are simply too busy responding to each other to resume work.
Liveness
A concurrent application's ability to execute in a timely manner
LOC
Lines of Code, meaningless statistic to impress people, used to be used to measure developer productivity, but now deprecated (by me).
LRU
Least Recently Used, caching algorithm
LSD
Lean Software Development. See TPS.
LSP
Liskov substitution principle, L in SOLID. See also SOLID.
LZW
Lempel–Ziv–Welch, a universal lossless data compression algorithm created by Abraham Lempel, Jacob Ziv, and Terry Welch.
M
magic
hidden program complexity (of a sort that makes the way the source code works very hard to understand.) begind a simple interface. I do not approve of magic.
Maven
a software project management and comprehension tool, can manage a project's build, reporting and documentation from a central piece of information.
MBeans
Managed Beans, see JMX
MCC
See MVCC.
Method Chaining
methods of an object return the object itself, enabling methods to be chained together, like customer.newOrder().with(6, "TAL").with(5, "HPK").skippable().with(3, "LGV").priorityRush(); See also fluent interface.
MINIX
a POSIX-compliant, Unix-like computer operating system based on a microkernel architecture created by Andrew S. Tanenbaum for educational purposes.
Mixin
a class that provides some functionality to be inherited or used by its subclasses, but is not meant for instantiation, also known as an abstract class. It is a means to collect common functionality at a higher level.
MOLAP
Multidimensional On Line Analytical Processing, uses "cubes".
MOM
Message-Oriented Middleware, a common reliable way for programs to create, send, receive and read messages in any distributed Enterprise System.
monkey patch
a way for a program to extend or modify supporting system software locally (affecting only the running instance of the program).
MOSCOW
Must Have, Should Have, Could Have, Won't Have
MRU
Most Recently Used, caching algorithm
MTBF
Mean Time Between Failures, MTTF + MTTD + MTTR, but an average ofcourse.
MTOM
Message Transmission Optimization Mechanism, a more efficient way of sending binary data to/from webservices. Usually SOAP uses conversion to tekst, which is inefficient for large files. See XOP.
MTTD
Mean Time Till Diagnose
MTTF
Mean Time Till Failure
MTTR
Mean Time Till Repair
mushroom management
keep them in the dark, feed them ...dung, watch them grow
MVC
Model–view–controller, is often seen in web applications where the view is the HTML or XHTML generated by the application. The controller receives GET or POST input and decides what to do with it, handing over to domain objects (i.e. the model) that contain the business rules and know how to carry out specific tasks such as processing a new subscription, and which hand control to (X)HTML-generating components such as templating engines, XML pipelines, Ajax callbacks, etc.
MVCC
Multiversion concurrency control, in databases it means that updates/deletes on a table, obsoletes the old values and creates the new (timestamped) version. It allows for PITR and snapshots and ACID (without many locks).
MVP
Model–view–presenter, software engineering design and architectural pattern
MVVM
Model View ViewModel, an architectural pattern used in software engineering that originated from Microsoft as a specialization of the Presentation Model design pattern introduced by Martin Fowler.
MVW
Model-View-Whatever, AngularJS is such a framework that uses it. See also, ha ha only serious.
N
nanodijkstra
measurement unit for arrogance, in computer science. See Edsger W. Dijkstra
NFR
Non Functional Requirements, for example security.
NLS
National Language Support or Native Language Support. Making software suitable for multiple locations/different languages. See i18n and L10n.
non-reifiable type
non-reifiable types are types where information has been removed at compile-time by type erasure. See reifiable and type erasure.
(Database) normalization
a database schema to minimize redundancy and dependency, for example by using autoincrement keys as pks, and not storing the same data in several tables. For the reverse, see OLAP.
NoSQL
not a RDBMS, but more a 'structured storage' system of which RDBMSes are a subset. Usually not totally ACID. (See RDBMS, ACID)
NPE
NullPointerException, the Bane of Existence for any Java Programmer.
O
Object
an instance of a class containing both state (attributes/properties) and logic (methods), as a coherent entity.
OCP
Open - Closed Principle. The O in SOLID. See also SOLID.
Odersky, Martin
Professor at EPFL and creater of the Scala programming language.
OLAP
On Line Analytical Processing, de-normalized data in a database, periodic in nature, for management and trends
OLTP
Online transaction processing, basically what an RDBMS can do.
OMG
Object Management Group, responsible for the CORBA standard.
OOAD
Object Oriented Analysis and Design. Managing complexity of software systems by modelling real life objects.
OOD
Object Oriented Design, see OOAD
OOP
Object Oriented Programming, see OOAD
ORB
Object Request Broker
ORM
Object-relational mapping (ORM, O/RM, and O/R mapping), mapping between tables/columns/rows (SQL) and objects/attributes/fields/lists (OOD)
OS
Operating System
OSI
Open Systems Interconnection (OSI) model (ISO/IEC 7498-1), a concept of a communication model using 7 layers.
OSGi
Open Services Gateway initiative framework, a module system and service platform for the Java programming language that implements a complete and dynamic component model
OTAP
Ontwikkeling Test Acceptatie and Productie, the Dutch equivalent of the English DTAP.
OWASP
Open Web Application Security Project, a 501c3 not-for-profit worldwide charitable organization focused on improving the security of application software.
P
PAM
the standard Pluggable Authentication Module, information security framework
path dependence
the set of decisions one faces for any given circumstance is limited by the decisions one has made in the past, even though past circumstances may no longer be relevant. See "backwards compatible".
Peter principle
the selection of a candidate for a position is based on the candidate's performance in their current role, rather than on abilities relevant to the intended role. Thus, employees only stop being promoted once they can no longer perform effectively, a.k.a. "managers rise to the level of their incompetence."
PGPD
Post - Get - Put - Delete, http request types mirroring CRUD. See CRUD. (Made this one up myself)
PITR
Point-In-Time Recovery, data or a particular setting can be restored or recovered from a(ny) time in the past.
POJO
Plain Old Java Object
POLA
principle of least astonishment, user interface or software design should be created in such a way to align with peoples expectations, people should not be "astonished" or "surprised" if the system behaves in a certain way. This minimizes the learning curve, among other things.
polymorphism
a programming language feature that allows values of different types to be handled by a uniform interface.
  • ad hoc polymorphism - function overloading
  • parametric polymorphism - generics
  • (inclusion) polymorphism - subtyping
pom
Project Object Model, an XML representation of a Maven project held in de file name pom.xml. See Maven.
POSIX
Portable Operating System Interface, a family of standards specified by the IEEE for maintaining compatibility between operating systems.
PRINCE, PRINCE2
PRojects IN Controlled Environments, a project management method
Principle of least astonishment
"If a necessary feature has a high astonishment factor, it may be necessary to redesign the feature."
Q
QA
Quality assurance
QBC
Query By Criteria, create a query via Java syntax. Advantage is in the type checking and the like. See ORM.
QBE
Query By Example, find what you need based on an example, finds the objects that are similar. See ORM.
QoS
Quality of Service
quine
a non-empty computer program which takes no input and produces a copy of its own source code as its only output. Basically a selfreplicating program.
R
race condition
a flaw in an electronic system or process whereby the output or result of the process is unexpectedly and critically dependent on the sequence or timing of other events. The term originates with the idea of two signals racing each other to influence the output first.
RAR
resource (adapter) archive
RC
Release Candidate, software version before GA. See GA.
RDBMS
Relational database management system
RDM
Rich Domain Model, business logic resides in the objects themselves, see ADM.
reifiable type
a reifiable type is a data type whose type information is fully available at runtime. See non-reifiable.
reification
See "reifiable type".
Release early, release often
emphasizes the importance of early and frequent releases in creating a tight feedback loop between developers and testers or users, contrary to a feature-based release strategy
REPL
interactive shell called the Repeat-Eval-Print Loop
REST
REpresentational State Transfer
RIA
Rich Internet Applications
Richardson Maturity Model
A model (developed by Leonard Richardson) that breaks down the principal elements of a REST approach into three steps. See HATEOAS.
Ritchie, Dennis MacAlistair
American computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Brian Kerighan, one of the first Prophets. Created programming language C.
RMI
Remote Method Invocation
RMI-IIOP
Remote Method Invocation over IIOP
ROLAP
Relational On Line Analytical Processing, but still in a relational database
RPC
Remote Procedure Call
RSN
Real Soon Now, don't hold your breath
rubber duck debugging
informal term used in software engineering for a method of debugging code. In short, explain your problem thoroughly to a rubber duck. Chances are you find out at that time what you are doing wrong/what the problem is.
RUP
Rational Unified Process
S
SAAJ
SOAP with Attachments API for Java, a standard way to send XML documents over the Internet from the Java platform. SAAJ enables developers to produce and consume messages conforming to the SOAP 1.1 and 1.2 specifications and SOAP with Attachments note.
salt
A random byte array added to a password that is about to be hashed to prevent dictionary attacks, see https://www.owasp.org/index.php/Hashing_Java
SAM
Single Abstract Method, functional interface, an interface with a single abstract method. Can be instantiated using lambdas. See Lambda.
SAML
Security Assertion Markup Language, an XML-based open standard data format for exchanging authentication and authorization data between parties, in particular, between an identity provider and a service provider. SAML is a product of the OASIS Security Services Technical Committee.
SAX
Simple API for XML, event-based XML Parser
SBE
Specification By Example, use realistic examples instead of abstract statements.
Scala
Scala is a programming language with both object oriented aspects as well as functional aspects, and static type checking running on the JVM. It began life in 2003, created by Martin Odersky and his research group at EPFL, next to Lake Geneva and the Alps, in Lausanne, Switzerland. Scala has since grown into a mature open source programming language, used by hundreds of thousands of developers, and is developed and maintained by scores of people all over the world.
SCN
System change number, a stamp that defines a committed version in an Oracle Database
Scrum
A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value. Scrum is:
  • Lightweight
  • Simple to understand
  • Difficult to master
SDLC
Systems Development Life-Cycle also Software Development Life-Cycle
seagull management
Seagull managers fly in, make a lot of noise, dump on everyone, then fly out.
Seam
JBoss webframework, on top of Java/JSP/Facelets. Uses EL (See EL) and finer grained webcontexts (like long "conversations", spanning multiple webrequests.)
second-system effect
when an architect designs a second system, it is the most dangerous system he will ever design, because he will tend to incorporate all of the additions he originated but did not add (due to inherent time constraints) to the first system. Thus, when embarking upon a second system, an engineer should be mindful that he is susceptible to over-engineering it.
security role
a semantic grouping of permissions that a given type of users of an application must have in order to successfully use the application.
SEI
service endpoint interface, defines the interface/business methods of the EJB when exposing the EJB as a Web service
shebang
see hashbang.
SIB
Service Implementation Bean, a Java object implementing a web service
short-circuit evaluation
the idea that in boolean logic, the right side need not always be evaluated. This happens when in an "and", the left side evaluates to false and in an "or", the left side evaluates to true.
Skeleton
a server side object participating in distributed object communication.
SLF4J
Simple Logging Facade For Java - functions as an interface that can delegate requests for logging to different logging frameworks.
SLSB
Stateless Session Bean
SMART
Specific, Measurable, Attainable, Relevant, Time-bound
Sneakernet
refers to the use of someone wearing sneakers as the transport mechanism for the data, instead of networking cable of somekind.
SOA
Service Oriented Architecture
SOAP
Simple Object Access Protocol, web services via verbose XML, usually over HTTP.
SoC
Separation of Concerns
Software entropy
also called software decay, software erosion, code rot. Basically two laws.
  1. A computer program that is used will be modified
  2. When a program is modified, its complexity will increase, provided that one does not actively work against this.
In other words, any software program that keeps getting modified will descend into a big mess, unless programmers actively work against this.
SOLID
  • Single responsibility - the notion that an object should have only a single responsibility
  • Open-closed - the notion that “software entities … should be open for extension, but closed for modification”.
  • Liskov substitution - the notion that “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program”.
  • Interface segregation - the notion that “many client specific interfaces are better than one general purpose interface.”
  • Dependency inversion - the notion that one should “Depend upon Abstractions. Do not depend upon concretions.”
SONAR/SonarQube
an open source platform for continuous inspection of code quality
spaceship operator
"<=>"a three-way comparison, usually returning -1, 0 and 1 to indicate smaller, equal or bigger. So named as it resembles a kind of spaceship.
SPI
service provider interface, LDAP/database/flatfile/etc for JNDI
Spolsky's Law of Leaky Abstractions
implementation details will always leak through, regardless of how good you try to model the abstraction
SQALE
Software Quality Assessment based on Lifecycle Expectations, a method to support the evaluation of a software application source code. See SONAR.
SQL
Standard Query Language, for talking to relational databases (RDBM)
SRP
Single Responsibility Principle, don't try to do too much. Split it up into independent entities. Is the S in SOLID. See also SOLID.
SRS
System Requirements Specification
SSL
secure socket layer
SSO
Single Sign On, pattern for providing credentials to users upon sign on, so they do not require to re-authenticate themselves for every little thing
ST
Story Testing
Starvation
describes a situation where a thread is unable to gain regular access to shared resources and is unable to make progress. This happens when shared resources are made unavailable for long periods by "greedy" threads.
StAX
Streaming API for XML
STL
Standard Template Library, a software library for the C++ programming language
STONITH
"Shoot The Other Node In The Head", make sure the master node, after failure and takeover by the slave node cannot be started again. To prevent multiple masters in the system.
structured programming theorem
states that only three specific control structures should be used:
  1. Executing one subprogram, and then another subprogram (sequence)
  2. Executing one of two subprograms according to the value of a boolean expression (selection)
  3. Executing a subprogram until a boolean expression is true (iteration)
Stub
a client side object participating in the distributed object communication.
Sun Microsystems, Inc.
Sun Microsystems, Inc. was a company that sold computers, computer components, computer software, and information technology services and that created the Java programming language, and the Network File System (NFS). Was acquired by Oracle in 2010.
SUT
System Under Test
T
TANSTAAFL
There ain't no such thing as a free lunch
TCL
Transaction Control, database, commit and rollback and the like
TCP
Transmission Control Protocol
TDD
Test Driven Design (does anyone really use that?) See BDD also.
TDES
Triple DES, 3DES. See DES. Not yet deprecated, but it's not going to take long. See AES.
technical debt
a metaphor referring to the eventual consequences of any system design, software architecture or software development within a codebase.
Tell, Don't Ask
tell an object to do something, do NOT ask (values) of an object and do it yourself.
TLS
Transport Layer Security, an upgrade of SSL Version 3.0. No longer SSL, due to breaking interoperability with older versions.
TO
transfer object
TPM
Total Productive Maintenance, see 5S
TPS
Toyota Production System
two pizza team
small groups can innovate and test their visions independently of everyone else. Jeff Bezo, founder of Amazon.com, came up with the notion of the 'two-pizza team': If you can't feed a team with two pizzas, it's too large. That limits a task force to five to seven people, depending on their appetites. (source)
type erasure
removal of type information at compile time. So type checking can only be done at compile time, never at runtime. The opposite of type erasure is called reification
U
UDDI
Universal Description Discovery and Integration, XML based registry for companies to indicate to other companies what kind of web services they provide
UDP
User Datagram Protocol
UI
user interface
UID
user identification (number)
UML
Unified Modelling Language, a standardized general-purpose modeling language in the field of object-oriented software engineering, created by Grady Booch, James Rumbaugh and Ivar Jacobson
Uncle Bob
Robert Cecil Martin. Always ask yourself, what would Uncle Bob do.
Unit of Work
a design pattern described by Martin Fowler as “[maintaining] a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems.”
URI
Universal Resource Identifier, for example http://example.org/absolute/URI/with/absolute/path/to/resource.txt.
URL
Universal/Uniform Resource Locator (See URI). for example scheme://domain:port/path?query_string#fragment_id
URL rewriting
Instead of creating a GET-string or POST data, put data inside the url. So, instead of http://www.somestuff.com/products.jsp?productid=7&overview=complete, use http://www.somestuff.com/products/7.
URN
Uniform Resource Name, for example urn:ietf:rfc:2648. (See URI)
User expectations
the consistency that users expect from products. See "Principle of least astonishment".
UTF
Unicode Transformation Format. Various UTF encodings have been devised, with the variable-length UTF-8 and UTF-16 encodings being commonly used.
UUID
Universally unique identifier, for use in distributed systems, for example
V
VM
Virtual Machine
VMM
virtual machine monitor, see Hypervisor.
VO
Value Object
von Neumann, John
Hungarian-American pure and applied mathematician, physicist, and polymath. Was involved with one of the first computers in 1945.
von Neumann bottleneck
unavoidable latency due to transfer times between the processor and the memory. Hence, as processors become faster, they're idling more as they're waiting for memory. See Von Neumann.
W
WADL
Web Application Description Language, describes api containing HTTP REST services
WAR
Web Archive, jar file. For packaging a Web module.
WIMP
windows, icons, menus, pointer
WSDL
Web Services Description Language, describes api containing Web services
WSIT
Web Services Interoperability Technology is an open-source project started by Sun Microsystems to develop the next-generation of Web service technologies. It provides interoperability between Java Web Services and Microsoft's Windows Communication Foundation (WCF).
WTF/s
unit of measurement for code quality, number of wtf per second during code reviews
WYSIAYG
What You See Is All You Get. See Sarcasm. See Kernighan.
WYSIWYG
what you see is what you get (wizz-zee-wig)
X
XA
eXtended Architecture
XHR
See XMLHttpRequest.
XML
eXtensible Markup Language. Advantage often mentioned is that it is readable by both humans as well as computers. Not often mentioned is that both humans and computers have a hard time reading it.
XMLHttpRequest
an API available to web browser scripting languages such as JavaScript. It is used to send HTTP or HTTPS requests to a web server and load the server response data back into the script. See Ajax.
xmlns
XML Name Space. (See XML)
XMPP
Extensible Messaging and Presence Protocol
XOP
XML-binary Optimized Packaging. See MTOM.
XP
eXtreme Programming
XSLT
Extensible Stylesheet Language Transformations, schemas used for transforming xml docs into other xml docs or other formats like xhtml and pdf, an example is Apache Xalan.
Y
YAGNI
You Ain't Gonna Need It, also known as 'When in doubt, leave it out.'
Z