Software Engineering Glossary

"S" Glossary Content



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

Other topics within the glossary:

sample MIDI files
Files that can be played by a MIDI sequencer when you are using Media Player. The sample MIDI files included with Windows are provided by Passport Designs, Inc.
saturation The purity of a color's hue, moving from gray to the pure color.
scaffolding
Computer programs and data files built to support software development and testing, but not intended to be included in the final product. For example, dummy routines or files, test case generators, software monitors, stubs. See also: programming support environment.
SCE
Acronym for software capability evaluation.
scheduler
A computer program, usually part of an operating system, that schedules, initiates, and terminates jobs.
SCM
Acronym for software configuration management.
SCN
Acronym for specification change notice.
screen elements
The parts that make up a window or dialog box, such as the title bar, the Minimize and Maximize buttons, the window borders, and the scroll bars.
screen fonts
Fonts displayed on your screen. Soft-font manufacturers often provide screen fonts that closely match the soft fonts for your printer. This ensures that your documents look the same on the screen as they do when printed.
screen saver
A moving picture or pattern that appears on your screen when you have not moved the mouse or pressed a key for a specified period of time.
scroll
To move through text or graphics (up, down, left, or right) to see parts of the file that are not displayed on the screen.
scroll arrow
An arrow on either end of a scroll bar that you use to scroll through the contents of a window or list box. Click the scroll arrow to scroll one line at a time, or press and hold down the mouse button while pointing at the scroll arrow to scroll continuously.
scroll bar
A bar that appears at the right and/or bottom edge of a window or list box when its contents are not completely visible. Each scroll bar contains two scroll arrows and a scroll box that enable you to scroll through the contents of the window or list box.
scroll box
In a scroll bar, a small box that shows the position of information currently visible in the window or list box relative to the contents of the entire file or list.
scroll buffer
The area in memory that holds information that does not fit on the screen. You can use the scroll bars to scroll through the information.
SDD
  1. Acronym for software design description.
  2. (DoD) Acronym for software design document.
SDP Acronym for software development plan.
SDR
Acronym for system design review.
Search button
Displays the words you can use to search for related topics. Use this button to look for topics related to a particular word. The Search button is located in the Help button bar, directly below the menu bar.
second generation language (2GL)
See: assembly language.
security kernel
A small, self-contained collection of key security-related statements that works as a privileged part of an operating system, specifying and enforcing criteria that must be met for programs and data to be accessed.
segment
  1. One of the subsystems or combinations of subsystems that make up an overall system; for example, the accounts payable segment of a financial system.
  2. In storage allocation, a self-contained portion of a computer program that can be executed without maintaining the entire program in main storage. See also: page.
  3. A collection of data that is stored or transferred as a unit.
  4. In path analysis, a sequence of computer program statements between two consecutive branch points.
  5. To divide a system, computer program, or data file into segments as in (1), (2), or (3).
select
To mark an item so that a subsequent action is base I/O port addressd out on that item. You usually select an item by clicking it with a mouse or pressing a key. After selecting an item, you choose the action that you want to affect the item.
selection cursor
The marking device that shows what you have selected. The selection cursor can appear as a highlight or as a dotted rectangle around text.
selective choice construct
See: branch.
selective dump
A dump of designated storage location areas only. See also: change dump; dynamic dump; memory dump; postmortem dump; snapshot dump; static dump.
selective trace
A variable trace that involves only selected variables. See also: execution trace; retrospective trace; subroutine trace; symbolic trace; variable trace.
self-descriptiveness
The degree to which a system or component contains enough information to explain its objectives and properties. See also: maintainability; testability; usability.
self-documented
Pertaining to source code that contains comments explaining its objectives, operation, and other information useful in understanding and maintaining the code.
self-relative address
An address that must be added to the address of the instruction in which it appears to obtain the address of the storage location to be accessed. See also: base address; indexed address; offset; relative address.
semantic error
An error resulting from a misunderstanding of the relationship of symbols or groups of symbols to their meanings in a given language. Contrast with: syntactic error.
semantics
The relationships of symbols or groups of symbols to their meanings in a given language. Contrast with: syntax.
semaphore
A shared variable used to synchronize concurrent processes by indicating whether an action has been completed or an event has occurred. See also: flag; indicator.
senior manager
A management role at a high enough level in an organization that the primary focus is the long-term vitality of the organization, rather than short-term project and contractual concerns and pressures. In general, a senior manager for engineering would have responsibility for multiple projects.
sequential
Pertaining to the occurrence of two or more events or activities in such a manner that one must finish before the next begins. Syn: serial (2). See also: consecutive.
sequential cohesion
A type of cohesion in which the output of one task performed by a software module serves as input to another task performed by the module. Contrast with: coincidental cohesion; communicational cohesion; functional cohesion; logical cohesion; procedural cohesion; temporal cohesion.
sequential construct
See: serial construct.
serial
  1. Pertaining to the sequential transfer, occurrence, or processing of the individual parts of a whole, such as the bits of a character, using the same facilities for successive parts. Contrast with: parallel (1).
  2. See: sequential.
serial construct
A program construct consisting of a sequence of steps not involving a decision or loop. Syn: sequential construct.
server
A computer on a network that is used to share resources, such as directories and printers. A server can also function as a computer within a workgroup.
server application
A Windows-based application that can create objects for linking to or embedding in other documents.
set-up time
The period of time during which a system or component is being prepared for a specific operation. See also: busy time; down time; idle time; up time.
severity
See: criticality.
share
To make resources, such as directories, printers, and ClipBook pages, available to other people for their use.
share name
The name that identifies a shared directory or printer to other people. This name can match the name of the directory or printer, or it can be a different name.
The share name appears in the Connect Network Drive and Connect Network Printer dialog boxes.
shared directory
A directory that is being shared with other people. You can connect to another person's shared directory or share one of your local directories.
shared page
A page on the ClipBook that has been made available for other people to use.
shell
A computer program or routine that provides an interface between the user and a computer system or program.
shortcut key
A key or key combination, available for some commands, that you can use to carry out a command without first selecting a menu. Shortcut keys are listed to the right of commands on a menu.
simple buffering
A buffering technique in which a buffer is allocated to a computer program for the duration of the program's execution. Contrast with: dynamic buffering.
simple device
A device that you use without specifying a related media file. An audio compact-disc player is a simple device.
simplicity
The degree to which a system or component has a design and implementation that is straightforward and easy to understand. Contrast with: complexity.
simulation
  1. A model that behaves or operates like a given system when provided a set of controlled inputs. See also: emulation.
  2. The process of developing or using a model as in (1).
simulator
A device, computer program, or system that behaves or operates like a given system when provided a set of controlled inputs. See also: emulator.
simultaneous
Pertaining to the occurrence of two or more events at the same instant of time. Contrast with: concurrent.
simultaneous recursion
A situation in which two software modules call each other.
single-address instruction
See: one-address instruction.
single-level encoding
A microprogramming technique in which different microoperations are encoded as different values in the same field of a microinstruction. Contrast with: two-level encoding.
single-operand instruction
See: one-address instruction.
single-step execution
See: single-step operation.
single-step operation
A debugging technique in which a single computer instruction, or part of an instruction, is executed in response to an external signal. Syn: singlestep execution; step-by-step operation.
sizing
The process of estimating the amount of computer storage or the number of source lines required for a software system or component. Contrast with: timing.
slave state
See: problem state.
snapshot dump
A dynamic dump of the contents of one or more specified storage areas. See also: change dump; dynamic dump; memory dump; postmortem dump; selective dump; static dump.
soft failure
A failure that permits continued operation of a system with partial operational capability. Contrast with: hard failure.
software
Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. See also: application software; support software; system software. Contrast with: hardware.
software architecture
The organizational structure of the software or module.
software baseline audit
An examination of the structure, contents, and facilities of the software baseline library to verify that baselines conform to the documentation that describes the baselines.
software baseline library
The contents of a repository for storing configuration items and the associated records.
software build
An operational version of a software system or component that incorporates a specified subset of the capabilities the final software system or component will provide.
software capability evaluation
An appraisal by a trained team of professionals to identify contractors who are qualified to perform the software work or to monitor the state of the software process used on an existing software effort.
software characteristic
An inherent, possibly accidental, trait, quality, or property of software (for example, functionality, performance, attributes, design constraints, number of states, lines or branches).
software configuration control board
A group responsible for evaluating and approving or disapproving proposed changes to configuration items, and for ensuring implementation of approved changes.
software configuration management
See: configuration management.
software design description (SDD)
  1. A representation of software created to facilitate analysis, planning, implementation, and decision making. The software design description is used as a medium for communicating software design information, and may be thought of as a blueprint or model of the system.
  2. A representation of a software system created to facilitate analysis, planning, implementation, and decision making. A blueprint of model of the software system. The SDD is used as the primary medium for communicating software design information.
software development cycle
The period of time that begins with the decision to develop a software product and ends when the software is delivered. This cycle typically includes a requirements phase, design phase, implementation phase, test phase, and sometimes, installation and checkout phase. Contrast with: software life cycle.
Notes: 1. The phases listed above may overlap or be performed iteratively, depending upon the software development approach used.
2. This term is sometimes used to mean a longer period of time, either the period that ends when the software is no longer being enhanced by the developer, or the entire software life cycle.
software development file (SDF)
A collection of material pertinent to the development of a given software unit or set of related units. Contents typically include the requirements, design, technical reports, code listings, test plans, test results, problem reports, schedules, and notes for the units. Syn: software development folder; software development notebook; unit development folder.
software development folder
See: software development file.
software development library
A software library containing computer readable and human readable information relevant to a software development effort. Syn: project library; program support library. Contrast with: master library; production library; software repository: system library.
software development notebook
See: software development file.
software development plan (SDP)
A project plan for a software development project. It governs the management of the activities performed by the software engineering group for a software project. It is not limited to the scope of any particular planning standard.
software development process
The process by which user needs are translated into a software product. The process involves translating user needs into software requirements, transforming the software requirements into design, implementing the design in code, testing the code, and sometimes, installing and checking out the software for operational use. Note: These activities may overlap or be performed iteratively. See also: incremental development; rapid prototyping; spiral model; waterfall model.
software diversity
A software development technique in which two or more functionally identical variants of a program are developed from the same specification by different programmers or programming teams with the intent of providing error detection, increased reliability, additional documentation, or reduced probability that programming or compiler errors will influence the end results. See also: diversity.
software engineering
  1. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
  2. The study of approaches as in (1).
software engineering environment
The hardware, software, and firmware used to perform a software engineering effort. Typical elements include computer equipment, compilers, assemblers, operating systems, debuggers, simulators, emulators, test tools, documentation tools, and database management systems.
software engineering group
The collection of individuals (both managers and technical staff) who have responsibility for software development and maintenance activities (i.e., requirements analysis, design, code, and test) for a project. Groups performing software-related work, such as the software quality assurance group, the software configuration management group, and the software engineering process group, are not included in the software engineering group.
software engineering process group
A group of specialists who facilitate the definition, maintenance, and improvement of the software process used by the organization. In the key practices, this group is generically referred to as "the group responsible for the organization's software process activities."
software engineering staff
The software technical people (e.g., analysts, programmers, and engineers), including software task leaders, who perform the software development and maintenance activities for the project, but who are not managers
software feature
  1. A distinguishing characteristic of a software item (for example, performance, portability, or functionality
  2. A software characteristic specified or implied by requirements documentation (for example, functionality, performance, attributes, or design constraints).
software integration
A process of putting together selected software components to provide the set or specified subset of the capabilities the final software system will provide.
software item
Source code, object code, job control code, control data, or a collection of these items.
software library
A controlled collection of software and related documentation designed to aid in software development, use, or maintenance. Types include master library, production library, software development library, software repository, system library. Syn: program library.
software life cycle
The period of time that begins when a software product is conceived and ends when the software is no longer available for use. The software life cycle typically includes a concept phase, requirements phase, design phase, implementation phase, test phase, installation and checkout phase, operation and maintenance phase, and, sometimes, retirement phase. Note: These phases may overlap or be performed iteratively. Contrast with: software development cycle.
software maintenance
See: maintenance (1).
software manager
Any manager, at a project or organizational level, who has direct responsibility for software development and/or maintenance.
software monitor
A software tool that executes concurrently with another program and provides detailed information about the execution of the other program. See also: hardware monitor; monitor.
software plans
The collection of plans, both formal and informal, used to express how software development and/or maintenance activities will be performed. Examples of plans that could be included: software development plan, software quality assurance plan, software configuration management plan, software test plan, risk management plan, and process improvement plan.
software process
A set of activities, methods, practices, and transformations that people use to develop and maintain software and the associated products (e.g., project plans, design documents, code, test cases, and user manuals) .
software process assessment
An appraisal by a trained team of software professionals to determine the state of an organization's current software process, to determine the high-priority software process-related issues facing an organization, and to obtain the organizational support for software process improvement.
software process assets
See: organization's software process assets.
software process capability
See: process capability.
software process description
The operational definition of a major software process component identified in the project's defined software process or the organization's standard software process. It documents, in a complete, precise, verifiable manner, the requirements, design, behavior, or other characteristics of a software process. See also: process description.
software process element
A constituent element of a software process description. Each process element covers a well-defined, bounded, closely related set of tasks (e.g., software estimating element, software design element, coding element, and peer review element). The descriptions of the process elements may be templates to be filled in, fragments to be completed, abstractions to be refined, or complete descriptions to be modified or used unmodified.
software process improvement plan
A plan, derived from the recommendations of a software process assessment, that identifies the specific actions that will be taken to improve the software process and outlines the plans for implementing those actions. Sometimes referred to as an action plan.
software process improvement proposal
A documented suggestion for change to a process or process-related item that will improve software process capability and performance. See also: action proposal.
software process maturity
The extent to which a specific process is explicitly defined, managed, measured, controlled, and effective. Maturity implies a potential for growth in capability and indicates both the richness of an organization's software process and the consistency with which it is applied in projects throughout the organization.
software process performance
See: process performance.
software process-related documentation
Example documents and document fragments, which are expected to be of use to future projects when they are tailoring the organization's standard software process. The examples may cover subjects such as a project's defined software process, standards, procedures, software development plans, measurement plans, and process training materials.
software product
The complete set, or any of the individual items of the set, of computer programs, procedures, and associated documentation and data designated for delivery to a customer or end user.
Contrast with: software work product.
software project
An undertaking requiring concerted effort, which is focused on analyzing, specifying, designing, developing, testing, and/or maintaining the software components and associated documentation of a system. A software project may be part of a project building a hardware/software system.
software quality assurance
  1. A planned and systematic pattern of all actions necessary to provide adequate confidence that a software work product conforms to established technical requirements.
  2. A set of activities designed to evaluate the process by which software work products are developed and/or maintained.
See: quality assurance.
software quality goal
Quantitative quality objectives defined for a software work product.
software quality management
The process of defining quality goals for a software product, establishing plans to achieve these goals, and monitoring and adjusting the software plans, software work products, activities, and quality goals to satisfy the needs and desires of the customer and end users.
software quality metric
See: quality metric.
software repository
A software library providing permanent, archival storage for software and related documentation. Contrast with: master library; production library; software development library; system library.
software requirement
A condition or capability that must be met by software needed by a user to solve a problem or achieve an objective.
software requirements review (SRR)
  1. A review of the requirements specified for one or more software configuration items to evaluate their responsiveness to and interpretation of the system requirements and to determine whether they form a satisfactory basis for proceeding into preliminary design of the configuration items. See also: system requirements review. Note: This review is called software specification review by the U.S. Department of Defense.
  2. A review as in (1) for any software component.
software requirements specification (SRS)
Documentation of the essential requirements (functions, performance, design constraints, and attributes) of the software and its external interfaces.
software specification review (SSR)
See: software requirements review.
software test incident
Any event occurring during the execution of a software test that requires investigation.
software tool
A computer program used in the development, testing, analysis, or maintenance of a program or its documentation. Examples include comparator, cross-reference generator, decompiler, driver, editor, flowcharter, monitor, test case generator, timing analyzer.
software work product
Any artifact created as part of defining, maintaining, or using a software process, including process descriptions, plans, procedures, computer programs, and associated documentation, which may or may not be intended for delivery to a customer or end user.
Contrast with: software product.
software-related group
A collection of individuals (both managers and technical staff) representing a software engineering discipline that supports, but is not directly responsible for, software development and/or maintenance. Examples of software engineering disciplines include software quality assurance and software configuration management.
source address
The address of a device or storage location from which data is to be transferred. Contrast with: destination address.
source code
Computer instructions and data definitions expressed in a form suitable for input to an assembler, compiler, or other translator. Note: A source program is made up of source code Contrast with: object code.
source code generator
See: code generator (2).
source directory
The directory that contains the file or files you intend to copy or move.
source document
The document from which a linked or embedded object originates.
source language
The language in which the input to a machine-aided translation process is represented For example, the language used to write a computer program. Contrast with: target language.
source program
A computer program that must be compiled, assembled, or otherwise translated in order to be executed by a computer. Contrast with: object program.
SPA
Acronym for software process assessment.
special cause (of a defect)
A cause of a defect that is specific to some transient circumstance and not an inherent part of a process. Special causes provide random variation (noise) in process performance.
Contrast with: common cause.
specific address
See: absolute address.
specific code
See: absolute code.
specification
A document that specifies, in a complete, precise, verifiable manner, the requirements, design, behavior, or other characteristics of a system or component, and, often, the procedures for determining whether these provisions have been satisfied. See also: formal specification; product specification; requirements specification.
specification change notice (SCN)
A document used in configuration management to propose, transmit, and record changes to a specification. See also: configuration control; engineering change; notice of revision.
specification language
A language, often a machine-processible combination of natural and formal language, used to express the requirements, design, behavior, or other characteristics of a system or component For example, a design language or requirements specification language. Contrast with: programming language; query language.
specification tree
A diagram that depicts all of the specifications for a given system and shows their relationships to one another See also: documentation tree.
spiral model
A model of the software development process in which the constituent activities, typically requirements analysis, preliminary and detailed design, coding, integration, and testing, are performed iteratively until the software is complete Contrast with: waterfall model. See also: incremental development; rapid prototyping.
split bar
Divides a window into two parts. For example, in a File Manager directory window, the directory tree is displayed on the left, and the contents of the current directory are displayed on the right.
spool
To read input data, or write output data, to auxiliary or main storage for later processing or output, in order to permit input/output devices to operate concurrently with job execution. Derived from the acronym SPOOL for Simultaneous Peripheral Output On Line
spooler
A program that initiates and controls spooling
SQA
Acronym for software quality assurance.
SRR
  1. Acronym for software requirements review.
  2. (DoD) Acronym for system requirements review.
SRS
Acronym for software requirements specification.
SSR
Acronym for software specification review. See: software requirements review.
staff
The individuals, including task leaders, who are responsible for accomplishing an assigned function, such as software development or software configuration management, but who are not managers.
stage
A partition of the software effort that is of a manageable size and that represents a meaningful and measurable set of related tasks which are performed by the project. A stage is usually considered a subdivision of a software life cycle and is often ended with a formal review prior to the onset of the following stage.
stand-alone
Pertaining to hardware or software that is capable of performing its function without being connected to other components; for example, a stand-alone word processing system.
standard
Mandatory requirements employed and enforced to prescribe a disciplined uniform approach to software development.
standard software process
See: organization's standard software process.
standards
Mandatory requirements employed and enforced to prescribe a disciplined uniform approach to software development, that is, mandatory conventions and practices are in fact standards See also: practices.
standby redundancy
In fault tolerance, the use of redundant elements that are left inoperative until a failure occurs in a primary element. Contrast with: active redundancy.
standby time
See: idle time.
starting address
The address of the first instruction of a computer program in main storage. Note: This address may or may not be the same as the program's origin, depending upon whether there are data preceding the first instruction. Contrast with: origin. See also: assembled origin; loaded origin.
state
  1. A condition or mode of existence that a system, component, or simulation may be in; for example, the pre-flight state of an aircraft navigation program or the input state of given channel.
  2. The values assumed at a given instant by the variables that define the characteristics of a system. component. or simulation.
state data
Data that defines an internal state of the test unit and is used to establish that state or compare with existing states.
state diagram
A diagram that depicts the states that a system or component can assume, and shows the events or circumstances that cause or result from a change from one state to another.
state transition diagram
See: state diagram.
statement
In a programming language, a meaningful expression that defines data, specifies program actions, or directs the assembler or compiler. See also: assignment statement; control statement; declaration.
statement of work
A description of all the work required to complete a project, which is provided by the customer.
statement testing
Testing designed to execute each statement of a computer program. Contrast with: branch testing; path testing.
static
Pertaining to an event or process that occurs without computer program execution; for example, static analysis, static binding Contrast with: dynamic.
static analysis
The process of evaluating a system or component based on its form, structure, content, or documentation. Contrast with: dynamic analysis. See also: inspection; walk-through.
static binding
Binding performed prior to the execution of a computer program and not subject to change during program execution. Contrast with: dynamic binding.
static breakpoint
A breakpoint that can be set at compile time, such as entry into a given routine. Contrast with: dynamic breakpoint. See also: code breakpoint; data breakpoint; epilog breakpoint; programmable breakpoint; prolog breakpoint.
static dump
A dump that is produced before or after the execution of a computer program. Contrast with: dynamic dump. See also: change dump; memory dump; postmortem dump; selective dump; snapshot dump.
static error
An error that is independent of the time-varying nature of an input. Contrast with: dynamic error.
static object
Information that has been pasted into a document. Unlike embedded or linked objects, static objects cannot be changed from within the document. To change a static object, you must delete it from the document, change it in the application used to create it, and then paste it into the document again.
status bar
A line of information usually located at the bottom of a window. For example, in File Manager, the status bar shows information about the disk, such as the number of bytes available on the disk and the total disk capacity. Not all windows have a status bar.
status code
A code used to indicate the results of a computer program operation. For example, a code indicating a carry, an overflow, or a parity error Syn: condition code.
step-by-step operation
See: single-step operation.
stepwise refinement
A software development technique in which data and processing steps are defined broadly at first and then further defined with increasing detail. See also: data structure-centered design; input-process-output; modular decomposition; object-oriented design; rapid prototyping; structured design; transaction analysis; transform analysis.
stop
To terminate the execution of a computer program. Syn: halt (1). Contrast with: pause.
storage allocation
An element of computer resource allocation, consisting of assigning storage areas to specific jobs and performing related procedures, such as transfer of data between main and auxiliary storage, to support the assignments made. See also: buffer; contiguous allocation; cyclic search; memory compaction; overlay; paging; virtual storage.
storage breakpoint
See: data breakpoint.
storage capacity
The maximum number of items that can be held in a given storage device; usually measured in words or bytes. See also: channel capacity; memory capacity.
storage efficiency
The degree to which a system or component performs its designated functions with minimum consumption of available storage. See also: execution efficiency.
store
  1. To place or retain data in a storage device.
  2. To copy computer instructions or data from a register to internal storage or from internal storage to external storage. Contrast with: load (2). See also: fetch; move.
straight-line code
A sequence of computer instructions in which there are no loops.
straight-line coding
A programming technique in which loops are avoided by stating explicitly and in full all of the instructions that would be involved in the execution of each loop. See also: unwind.
stratified language
A language that cannot be used as its own metalanguage. Examples include FORTRAN, COBOL. Contrast with: unstratified language.
stress testing
Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements. See also: boundary value.
strong typing
A feature of some programming languages that requires the type of each data item to be declared, precludes the application of operators to inappropriate data types, and prevents the interaction of data items of incompatible types.
structural testing
Testing that takes into account the internal mechanism of a system or component. Types include branch testing, path testing, statement testing. Syn: glassbox testing; white-box testing. Contrast with: functional testing (1).
structure chart
A diagram that identifies modules, activities, or other entities in a system or computer program and shows how larger or more general entities break down into smaller, more specific entities. Note: The result is not necessarily the same as that shown in a call graph. Syn: hierarchy chart; program structure chart. Contrast with: call graph.
structure clash
In software design, a situation in which a module must deal with two or more data sets that have incompatible data structures. See also: data structure-centered design; order clash.
structured design
  1. Any disciplined approach to software design that adheres to specified rules based on principles such as modularity, top-down design, and stepwise refinement of data, system structures, and processing steps. See also: data structure centered design; input-process-output; modular decomposition; object-oriented design; rapid prototyping; stepwise refinement; transaction analysis; transform analysis.
  2. The result of applying the approach in (1).
structured program
A computer program constructed of a basic set of control structures, each having one entry and one exit. The set of control structures typically includes: sequence of two or more instructions, conditional selection of one of two or more sequences of instructions, and repetition of a sequence of instructions. See also: structured design.
structured programming
Any software development technique that includes structured design and results in the development of structured programs.
structured programming language
A programming language that provides the structured program constructs, namely, single-entry-single-exit sequences, branches, and loops, and facilitates the development of structured programs. See also: blockstructured language.
stub
  1. A skeletal or special-purpose implementation of a software module, used to develop or test a module that calls or is otherwise dependent on it.
  2. A computer program statement substituting for the body of a software module that is or will be defined elsewhere.
subcontract manager
A manager in the prime contractor's organization who has direct responsibility for administering and managing one or more subcontracts.
subcontractor
An individual, partnership, corporation, or association that contracts with an organization (i.e., the prime contractor) to design, develop, and/or manufacture one or more products.
subprogram
A separately compilable, executable component of a computer program. Note: The terms "routine," "subprogram," and "subroutine" are defined and used differently in different programming languages; the preceding definition is advanced as a proposed standard. See also: coroutine; main program, routine; subroutine.
subroutine
A routine that returns control to the program or subprogram that called it. Note: The terms "routine," "subprogram," and "subroutine" are defined and used differently in different programming languages; the preceding definition is advanced as a proposed standard. Contrast with: coroutine. See also: closed subroutine; open subroutine.
subroutine trace
A record of all or selected subroutines or function calls performed during the execution of a computer program and, optionally, the values of parameters passed to and returned by each subroutine or function. Syn: call trace. See also: execution trace; retrospective trace; subroutine trace; symbolic trace; variable trace.
subsystem
A secondary or subordinate system within a larger system.
subtype
A subset of a data type, obtained by constraining the set of possible values of the data type. Note: The operations applicable to the subtype are the same as those of the original data type. See also: derived type.
supervisor
See: supervisory program
supervisor state
In the operation of a computer system, a state in which the supervisory program is executing. This state usually has higher priority than, and precludes the execution of, application programs. Syn: executive state; master state; privileged state. Contrast with: problem state.
supervisory program
A computer program, usually part of an operating system, that controls the execution of other computer programs and regulates the flow of work in a computer system. Syn: control program; executive; executive program; supervisor. See also: supervisor state.
support
The set of activities necessary to ensure that an operational system or component fulfills its original requirements and any subsequent modifications to those requirements. For example, software or hardware maintenance, user training. See also: software life cycle; system life cycle.
support manual
A document that provides the information necessary to service and maintain an operational system or component throughout its life cycle. Typically described are the hardware and software that make up the system or component and procedures for servicing, repairing, or reprogramming it. Syn: maintenance manual. See also: diagnostic manual; installation manual; operator manual; programmer manual; user manual.
support software
Software that aids in the development or maintenance of other software; for example, compilers, loaders, and other utilities. Contrast with: application software. See also: system software.
swap
  1. An exchange of the contents of two storage areas, usually an area of main storage with an area of auxiliary storage. See also: roll in; roll out.
  2. To perform an exchange as in (1).
swap file
A hidden file on a hard disk that Windows uses for swapping information from memory to the disk or drive.
symbol table
A table that presents program symbols and their corresponding addresses, values, and other attributes
symbolic address
An address expressed as a name or label that must be translated to the absolute address of the device or storage location to be accessed Contrast with: absolute address.
symbolic execution
A software analysis technique in which program execution is simulated using symbols, such as variable names, rather than actual values for input data, and program outputs are expressed as logical or mathematical expressions involving these symbols.
symbolic language
A programming language that expresses operations and addresses in symbols convenient to humans rather than in machine language Examples are assembly language, high order language. Contrast with: machine language.
symbolic trace
A record of the source statements and branch outcomes that are encountered when a computer program is executed using symbolic, rather than actual, values for input data See also: execution trace; retrospective trace; subroutine trace; variable trace.
syntactic error
A violation of the structural or grammatical rules defined for a language; for example, using the statement B + C = A in FORTRAN, rather than the correct A = B + C. Syn: syntax error. Contrast with: semantic error.
syntax
The structural or grammatical rules that define how the symbols in a language are to be combined to form words, phrases, expressions, and other allowable constructs Contrast with: semantics.
syntax error
See: syntactic error.
synthetic address
See: generated address.
system
A collection of components organized to accomplish a specific function or set of functions.
system design review (SDR)
A review conducted to evaluate the manner in which the requirements for a system have been allocated to configuration items, the system engineering process that produced the allocation, the engineering planning for the next phase of the effort, manufacturing considerations, and the planning for production engineering See also: critical design review; preliminary design review.
system development cycle
The period of time that begins with the decision to develop a system and ends when the system is delivered to its end user Note: This term is sometimes used to mean a longer period of time, either the period that ends when the system is no longer being enhanced, or the entire system life cycle Contrast with: system life cycle. See also: software development cycle.
system disk
A disk that contains the MS-DOS system files necessary to start MS-DOS.
system engineering group
The collection of individuals (both managers and technical staff) who have responsibility for specifying the system requirements; allocating the system requirements to the hardware, software, and other components; specifying the interfaces between the hardware, software, and other components; and monitoring the design and development of these components to ensure conformance with their specifications .
system flowchart (flow chart)
See: flowchart.
system library
A software library containing system-resident software that can be accessed for use or incorporated into other programs by reference; for example, a macro library Contrast with: master library; production library; software development Library, software repository.
system life cycle
The period of time that begins when a system is conceived and ends when the system is no longer available for use See also: system development cycle; software life cycle.
system model
In computer performance evaluation, a representation of a system depicting the relationships between workloads and performance measures in the system. See also: workload model.
system profile
A set of measurements used in computer performance evaluation, describing the proportion of time each of the major resources in a computer system is busy, divided by the time that resource is available.
system requirement
A condition or capability that must be met or possessed by a system or system component to satisfy a condition or capability needed by a user to solve a problem.
system requirements allocated to software
The subset of the system requirements that are to be implemented in the software components of the system. The allocated requirements are a primary input to the software development plan. Software requirements analysis elaborates and refines the allocated requirements and results in software requirements which are documented.
system requirements review (SRR)
A review conducted to evaluate the completeness and adequacy of the requirements defined for a system; to evaluate the system engineering process that produced those requirements; to assess the results of system engineering studies; and to evaluate system engineering plans. See also: software requirements review.
system resources chart
See: block diagram.
system software
Software designed to facilitate the operation and maintenance of a computer system and its associated programs; for example, operating systems, assemblers, utilities. Contrast with: application software. See also: support software.
system testing
Testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. See also: component testing; integration testing; interface testing; unit testing.