Software Engineering Glossary

"M" Glossary Content



Press the "Letter" button to view the glossary contents for that specific letter.

Other topics within the glossary:

machine code
Computer instructions and data definitions expressed in a form that can be recognized by the processing unit of a computer. Contrast with: assembly code; compiler code; interpretive code.
machine dependent
Pertaining to software that relies on features unique to a particular type of computer and therefore executes only on computers of that type Contrast with: machine independent.
machine independent
Pertaining to software that does not rely on features unique to a particular type of computer, and therefore executes on computers of more than one type. Contrast with: machine dependent. See also: portability.
machine language
A language that can be recognized by the processing unit of a computer. Such a language usually consists of patterns of 1s and 0s, with no symbolic naming of operations or addresses. Syn: first generation language; machine-oriented language. Contrast with: assembly language; fifth generation language; fourth generation language; high order language; symbolic language.
machine readable
Pertaining to data in a form that can be automatically input to a computer; for example, data encoded on a diskette.
machine-oriented language
See: machine language.
macro
In software engineering, a predefined sequence of computer instructions that is inserted into a program, usually during assembly or compilation, at each place that its corresponding macroinstruction appears in the program Syn: macro definition. See also: macroinstruction; macrogenerator; open subroutine.
macro definition
See: macro.
macro generating program
See: macrogenerator.
macro library
A collection of macros available for use by a macrogenerator. See also: system library.
macroassembler
An assembler that includes, or performs the functions of, a macrogenerator
macrogenerator
A routine, often part of an assembler or compiler, that replaces each macroinstruction in a source program with the predefined sequence of instructions that the macroinstruction represents. Syn: macro generating program.
macroinstruction
A source code instruction that is replaced by a predefined sequence of source instructions, usually in the same language as the rest of the program and usually during assembly or compilation See also: macro; macrogenerator.
macroprocessor
A routine or set of routines provided in some assemblers and compilers to support the definition and use of macros.
macroprogramming
Computer programming using macros and macroinstructions
main program
A software component that is called by the operating system of a computer and that usually calls other software components See also: routine; subprogram.
maintainability
  1. The ease with which a software system or component can be modified to correct faults, improve performance or other attributes, or adapt to a changed environment. See also: extendability; flexibility.
  2. The ease with which a hardware system or component can be retained in, or restored to, a state in which it can perform its required functions
maintenance
  1. The process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment Syn: software maintenance. See also: adaptive maintenance; corrective maintenance; perfective maintenance.
  2. The process of retaining a hardware system or component in, or restoring it to, a state in which it can perform its required functions See also: preventive maintenance.
maintenance manual
See: support manual.
man-machine interface (MMI)
See: user interface.
managed and controlled
The process of identifying and defining software work products that are not part of a baseline and, therefore, are not placed under configuration management but that must be controlled for the project to proceed in a disciplined manner. "Managed and controlled" implies that the version of the work product in use at a given time (past or present) is known (i.e., version control), and changes are incorporated in a controlled manner (i.e., change control).
managed level
See: maturity level.
manager
A role that encompasses providing technical and administrative direction and control to individuals performing tasks or activities within the manager's area of responsibility. The traditional functions of a manager include planning, resourcing, organizing, directing, and controlling work within an area of responsibility.
manufacture
In software engineering, the process of copying software to disks, chips, or other devices for distribution to customers or users.
manufacturing phase
The period of time in the software life cycle during which the basic version of a software product is adapted to a specified set of operational environments and is distributed to a customer base
map program
A software tool, often part of a compiler or assembler, that generates a load map.
mask
A pattern of bits or characters designed to be logically combined with an unknown data item to retain or suppress portions of the data item; for example, the bit string "00000011" when logically ANDed with an eight-bit data item, gives a result that retains the last two bits of the data item and has zero in all the other bit positions. See also: interrupt mask.
master library
A software library containing master copies of software and documentation from which working copies can be made for distribution and use. Contrast with: production library; software development library; software repository; system library.
master state
See: supervisor state.
maturity level
A well-defined evolutionary plateau toward achieving a mature software process. The five maturity levels in the SEI's Capability Maturity Model are:
  • initial - The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort.
  • repeatable - Basic project management processes are established to track cost, schedule, and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications.
  • defined - The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software.
  • managed - Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled.
  • optimizing - Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.
maturity questionnaire
A set of questions about the software process that sample the key practices in each key process area of the CMM. The maturity questionnaire is used as a springboard to appraise the capability of an organization or project to execute a software process reliably.
maximize
To enlarge a window to its maximum size by using the Maximize button (to the right of the title bar) or the Maximize command on the Control menu.
Maximize button
The small button containing an up arrow to the right of the title bar. Mouse users can click the Maximize button to enlarge a window to its maximum size. Keyboard users can use the Maximize command on the Control menu.
mean time between failures (MTBF)
The expected or observed time between consecutive failures in a system or component. See also: up time.
mean time to repair (MTTR)
The expected or observed time required to repair a system or component and return it to normal operations. See also: down time.
measure
A unit of measurement (such as source lines of code or document pages of design).
measurement
The dimension, capacity, quantity, or amount of something (e.g., 300 source lines of code or 7 document pages of design).
measurement standard
A standard that describes the characteristics of evaluating a process or product.
Media Control Interface (MCI)
A standard control interface for multimedia devices and files. Using MCI, a multimedia application can control a variety of multimedia devices and files.
memory capacity
The maximum number of items that can be held in a given computer memory; usually measured in words or bytes. See also: channel capacity; storage capacity.
memory compaction
  1. A storage allocation technique in which the contents of all allocated storage areas are moved to the beginning of the storage space and the remaining storage blocks are combined into a single block. Syn: garbage collection.
  2. A storage allocation technique in which contiguous blocks of nonallocated storage are combined to form single blocks.
memory dump
A display of the contents of all or part of a computer's internal storage, usually in binary, octal, or hexadecimal form. See also: change dump; dynamic dump; postmortem dump; selective dump; snapshot dump; static dump.
memory map
A diagram that shows where programs and data are stored in a computer's memory.
memory-resident program
A program that is loaded into memory and is available even when another application is active. Also called TSR.
menu
A list of commands in an application window. Menu names appear in the menu bar near the top of the window. You open a menu by selecting the menu name. The Control menu, represented by the Control-menu box to the left of the title bar, is common to all Windows-based applications.
menu bar
The horizontal bar containing the names of all the menus for an application. The menu bar appears below the title bar.
menu by-pass
In a menu-driven system, a feature that permits advanced users to perform functions in a command-driven mode without selecting options from the menus
menu-driven
Pertaining to a system or mode of operation in which the user directs the system through menu selections. See also: menu by-pass. Contrast with: command driven
metacompiler
See: compiler generator.
metalanguage
A language used to specify some or all aspects of a language; for example, Backus-Naur form. See also: stratified language; unstratified language.
method
A reasonably complete set of rules and criteria that establish a precise and repeatable way of performing a task and arriving at a desired
method standard
A standard that describes the characteristics of the orderly process or procedure used in the engineering of a product or performing a service
methodology
A collection of methods, procedures, and standards that defines an integrated synthesis of engineering approaches to the development of a product.
metric
A quantitative measure of the degree to which a system, component, or process
MFLOPS
Acronym for millions of floating point operations per second. A measure of computer processing speed. See also: KOPS; MIPS.
microarchitecture
The microword definition, data flow, timing constraints, and precedence constraints that characterize a given microprogrammed computer.
microcode
A collection of microinstructions, comprising part of, all of, or a set of microprograms.
microcode assembler
A computer program that translates microprograms from symbolic form to binary form.
microinstruction
In microprogramming, an instruction that specifies one or more of the basic operations needed to carry out a machine language instruction. Types include diagonal microinstruction, horizontal microinstruction, vertical microinstruction. See also: microcode; microoperation; microprogram
microoperation
In microprogramming, one of the basic operations needed to carry out a machine language instruction. See also: microinstruction.
microprogram
A sequence of instructions, called microinstructions, specifying the basic operations needed to carry out a machine language instruction.
microprogrammable computer
A microprogrammed computer in which microprograms can be created or altered by the user.
microprogrammed computer
A computer in which machine language instructions are implemented by microprograms rather than by hard-wired logic. Note: A microprogrammed computer may or may not be a microcomputer; the concepts are not related despite the similarity of the terms. See also: microarchitecture; microprogrammable computer.
microprogramming
The process of designing and implementing the control logic of a computer by identifying the basic operations needed to carry out each machine language instruction and representing these operations as sequences of instructions in a special memory called control store. This method is an alternative to hard wiring the control signals necessary to carry out each machine language instruction. Techniques include bit steering, compaction, residual control, single-level encoding, two-level encoding. See also: microcode; microinstruction; microprogram.
microword
An addressable element in the control store of a microprogrammed computer.
MIDI
Acronym for Musical Instrument Digital Interface, an interface that enables several devices, instruments, or computers to send and receive messages for the purpose of creating music, sound, or lighting.
MIDI setup
Specifies the type of MIDI device you are using, the channel and patch settings needed to play MIDI files, and the port your device is using.
milestone
A scheduled event for which some individual is accountable and that is used to measure progress.
minimize
To reduce a window to an icon by using the Minimize button (to the right of the title bar) or the Minimize command on the Control menu.
Minimize button
The small button containing a down arrow to the right of the title bar. Mouse users can click the Minimize button to reduce a window to an icon. Keyboard users can use the Minimize command on the Control menu.
minimum delay programming
A programming technique in which storage locations for computer instructions and data are chosen so that access time is minimized.
MIPS
Acronym for million instructions per second. A measure of computer processing speed. See also: KOPS; MFLOPS.
mistake
A human action that produces an incorrect result. Note: The fault tolerance discipline distinguishes between the human action (a mistake), its manifestation (a hardware or software fault), the result of the fault (a failure), and the amount by which the result is incorrect (the error).
mixed mode
Pertaining to an expression that contains two or more different data types. For example, Y := X + N, where X and Y are floating point variables and N is an integer variable. Syn: mixed type.
mixed type
See: mixed mode.
MMI
Acronym for man-machine interface. See: user interface.
modular
Composed of discrete parts. See also: modular decomposition; modular programming.
modular decomposition
The process of breaking a system into components to facilitate design and development; an element of modular programming. Syn: modularization. See also: cohesion; coupling; demodularization; factoring; functional decomposition; hierarchical decomposition; packaging.
modular programming
A software development technique in which software is developed as a collection of modules. See also: data structure-centered design; input-process-output; modular decomposition; object-oriented design; rapid prototyping; stepwise refinement; structured design; transaction analysis; transform analysis.
modularity
The degree to which a system or computer program is composed of discrete components such that a change to one component has minimal impact on other components. See also: cohesion; coupling.
modularization
See: modular decomposition.
module
  1. A program unit that is discrete and identifiable with respect to compiling, combining with other units, and loading; for example, the input to, or output from, an assembler, compiler, linkage editor, or executive routine.
  2. A logically separable part of a program. Note: The terms module," "component," and "unit" are often used interchangeably or defined to be sub-elements of one another in different ways depending upon the context. The relationship of these terms is not yet standardized.
module strength
See: cohesion.
module testing.
See: component testing.
monadic selective construct
An if-then-else construct in which processing is specified for only one outcome of the branch, the other outcome resulting in skipping this processing. Contrast with: dyadic selective construct.
monitor
A software tool or hardware device that operates concurrently with a system or component and supervises, records, analyzes, or verifies the operation of the system or component. Syn: execution monitor. See also: hardware monitor; software monitor.
move
  1. To read data from a source, altering the contents of the source location, and to write the same data elsewhere in a physical form that may differ from that of the source. For example, to move data from one file to another. Contrast with: copy.
  2. Sometimes, a synonym for copy.
See also: fetch; load; store.
MS-DOS interrupt
A signal that the MS-DOS operating system uses to communicate with the computer microprocessor. See: interrupt request.
MS-DOS--based application
An application that is designed to run with MS-DOS, but not specifically with Windows, and that may not be able to take full advantage of all Windows features (such as memory management). Also known as non-Windows application.
MTBF
Acronym for mean time between failures.
MTTR
Acronym for mean time to repair.
multiaddress instruction
A computer instruction that contains more than one address field. Syn: multiple-address instruction. Contrast with: one-address instruction.
multilevel address
See: indirect address.
multilevel storage.
See: virtual storage.
multiple exclusive selective construct.
See: case.
multiple inclusive selective construct.
A special instance of the case construct in which two or more different values of the control expression result in the same processing. For example, values 1 and 2 cause one branch, 3 and 4 cause another, and so on.
multiple-address instruction.
See: multiaddress instruction.
multiprocessing
A mode of operation in which two or more processes are executed concurrently by separate processing units that have access (usually) to a common main storage. Contrast with: multiprogramming. See also: multitasking; time sharing.
multiprogramming
A mode of operation in which two or more computer programs are executed in an interleaved manner by a single processing unit. Contrast with: multiprocessing. See also: multitasking; time sharing.
multitasking
A mode of operation in which two or more tasks are executed in an interleaved manner. See also: multiprocessing; multiprogramming; time sharing.
mutation testing.
A testing methodology in which two or more program mutations are executed using the same test cases to evaluate the ability of the test cases to detect differences in the mutations.
mutation.
See: program mutation.
possesses a given attribute
See also: quality metric.