Software Design & Development Definitions
-
#
12 factor app (twelve-factor app)
Twelve-factor app is a methodology for building distributed applications that run in the cloud and are delivered as a service. The approach was developed by Adam Wiggins, the co-founder of Heroku, a platform-as-a-service which is now part of Salesforce.com.
-
3-tier application architecture
A 3-tier application architecture is a modular client-server architecture that consists of a presentation tier, an application tier and a data tier.
-
A
application
An application, also referred to as an application program or application software, is a computer software package that performs a specific function directly for an end user or, in some cases, for another application.
-
application platform
An application platform is a framework of services that applications rely on for standard operations.
-
B
behavior-driven development (BDD)
Behavior-driven development (BDD) is an Agile software development methodology in which an application is documented and designed around the behavior a user expects to experience when interacting with it.
-
best practice
A best practice is a standard or set of guidelines that is known to produce good outcomes if followed.
-
bug
In computer technology, a bug is a coding error in a computer program.
-
build
In a programming context, a build is a version of a program that, as a rule, is a pre-release version and is identified by a build number rather than by a release number.
-
C
citizen development
Citizen development is a business process that encourages non-IT-trained employees to become software developers, using IT-sanctioned low-code/no-code (LCNC) platforms to create business applications.
-
continuous integration (CI)
Continuous integration (CI) is a software development practice in which frequent, isolated changes are immediately tested and reported on when they're added to a larger codebase.
-
cookie
A cookie is information that a website puts on a user's computer.
-
D
debugging
Debugging, in computer programming and engineering, is a multistep process that involves identifying a problem, isolating the source of the problem and then either correcting the problem or determining a way to work around it.
-
development environment
In software, web and mobile application development, the development environment is a workspace with a set of processes and programming tools used to develop the source code for an application or software product.
-
software documentation
In the software development process, software documentation is the information that describes the product to the people who develop, deploy and use it.
-
E
exception handling
Exception handling is the process of responding to unwanted or unexpected events when a computer program runs.
-
F
feature-driven development (FDD)
Feature-driven development (FDD) is an Agile software development framework that organizes work around product features.
-
functional programming
Functional programming is a programming paradigm that uses functions to construct programs and control how those programs operate.
-
G
garbage in, garbage out (GIGO)
Garbage in, garbage out, or GIGO, refers to the idea that in any system, the quality of output is determined by the quality of the input.
-
green software
Green software, also known as sustainable software, is software that is designed, developed and implemented to limit energy consumption and have minimal environmental impact.
-
H
histogram
A histogram is a type of chart that shows the frequency distribution of data points across a continuous range of numerical values.
-
hybrid application (hybrid app)
A hybrid app is a software application that combines elements of both native apps and web applications.
-
I
iterative
In the world of IT and computer programming, the adjective iterative refers to a process where the design of a product or application is improved by repeated review and testing.
-
J
Jenkins
Jenkins is an open source continuous integration/continuous delivery and deployment (CI/CD) automation software DevOps tool written in the Java programming language.
-
joint application development (JAD)
Joint application development, frequently shortened to JAD, is a methodology that involves the client or end user in the design and development of a software application through a succession of collaborative workshops called JAD sessions.
-
L
LDAP injection
LDAP (Lightweight Directory Access Protocol) injection is a type of security exploit that is used to compromise the authentication process used by some websites.
-
Lean software development
Lean software development is a concept that emphasizes optimizing efficiency and minimizing waste in the development of software.
-
low-code and no-code development platforms
Low-code/no-code development platforms are software development tools and environments that allow enterprise developers and citizen developers to create new applications using drag-and-drop components, linking them together and creating mobile or web apps.
-
M
model-driven development
Model-driven development (MDD) is a format to write and implement software quickly, effectively and at minimum cost.
-
N
native app
A native application is a software program developers build for use on a particular platform or device.
-
NIST (National Institute of Standards and Technology)
NIST (National Institute of Standards and Technology) is a nonregulatory government agency located in Gaithersburg, Md.
-
no-code
No-code is a software development approach that requires few, if any, programming skills to quickly build an application, website or module that links into an existing system.
-
P
polyglot programming
Polyglot programming is the practice of writing code in multiple languages to capture additional functionality and efficiency not available in a single language.
-
program
In computing, a program is a specific set of ordered operations for a computer to perform.
-
Q
quality assurance (QA)
Quality assurance (QA) is any systematic process of determining whether a product or service meets specified requirements.
-
R
requirements analysis (requirements engineering)
Requirements analysis (requirements engineering) is the process of determining user expectations for a new or modified product.
-
runtime
Runtime is a piece of code that implements portions of a programming language's execution model.
-
S
software toolchain
A software toolchain is a set of software development tools used simultaneously to complete complex software development tasks or to deliver a software product.
-
source code analysis
Source code analysis is the automated testing of source code for the purpose of debugging a computer program or application before it is distributed or sold.
-
static testing
Static testing is a software testing method that examines a program -- along with any associated documents -- but does not require the program to be executed.
-
structured programming (modular programming)
Structured programming, or modular programming, is a programming paradigm that facilitates the creation of programs with readable code and reusable components.
-
U
Unified Modeling Language (UML)
Unified Modeling Language (UML) is a standard notation for modeling real-world objects as a first step in designing an object-oriented system.
-
use case
A use case is a methodology used in system analysis to identify, clarify and organize system requirements.
-
UX research
User experience (UX) research is the study of learning what end users of a system or product need and want, then employing those insights to enhance the design process for products, services or software.
-
V
versioning
Versioning is the creation and management of multiple releases of a product, all of which have the same general function, but are improved, upgraded or customized.
-
W
web application (web app)
A web application (web app) is an application program that is stored on a remote server and delivered over the internet through a browser interface.