The 1998 ACM Computing Classification System
Toggle navigation
Home
Advanced search
About...
My account
Software
Is a meta-term.
Home
Software
Term
Metadata
Software
D.
More specific terms
NT1
D.0 ↓
GENERAL
NT1
D.1 ↓
PROGRAMMING TECHNIQUES (E)
►
▼
NT2
D.1.0 ↓
General
NT2
D.1.1 ↓
Applicative (Functional) Programming
NT2
D.1.2 ↓
Automatic Programming
NT2
D.1.3 ↓
Concurrent Programming
►
▼
NT3
↓
Distributed programming
NT3
↓
Parallel programming
NT2
D.1.4 ↓
Sequential Programming
NT2
D.1.5 ↓
Object-oriented Programming
NT2
D.1.6 ↓
Logic Programming
NT2
D.1.7 ↓
Visual Programming
NT2
D.1.m ↓
Miscellaneous
NT1
D.2 ↓
SOFTWARE ENGINEERING
►
▼
NT2
D.2.0 ↓
General
►
▼
NT3
↓
Protection mechanisms
NT3
↓
Standards
NT2
D.2.1 ↓
Requirements/Specifications
►
▼
NT3
↓
Elicitation methods
NT3
↓
Languages
NT3
↓
Methodologies
NT3
↓
Tools
NT2
D.2.10 ↓
Design
►
▼
NT3
↓
Methodologies
NT3
↓
Representation
NT2
D.2.11 ↓
Software Architectures
►
▼
NT3
↓
Data abstraction
NT3
↓
Domain-specific architectures
NT3
↓
Information hiding
NT3
↓
Languages
NT3
↓
Patterns
NT2
D.2.12 ↓
Interoperability
►
▼
NT3
↓
Data mapping
NT3
↓
Distributed objects
NT3
↓
Interface definition languages
NT2
D.2.13 ↓
Reusable Software
►
▼
NT3
↓
Domain engineering
NT3
↓
Reusable libraries
NT3
↓
Reuse models
NT2
D.2.2 ↓
Design Tools and Techniques
►
▼
NT3
↓
Computer-aided software engineering (CASE)
NT3
↓
Decision tables
NT3
↓
Evolutionary prototyping
NT3
↓
Flow charts
NT3
↓
Modules and interfaces
NT3
↓
Object-oriented design methods
NT3
↓
Petri nets
NT3
↓
Programmer workbench
NT3
↓
Software libraries
NT3
↓
State diagrams
NT3
↓
Structured programming
NT3
↓
Top-down programming
NT3
↓
User interfaces
NT2
D.2.3 ↓
Coding Tools and Techniques
►
▼
NT3
↓
Object-oriented programming
NT3
↓
Pretty printers
NT3
↓
Program editors
NT3
↓
Reentrant code
NT3
↓
Standards
NT3
↓
Structured programming
NT3
↓
Top-down programming
NT2
D.2.4 ↓
Software/Program Verification
►
▼
NT3
↓
Assertion checkers
NT3
↓
Class invariants
NT3
↓
Correctness proofs
NT3
↓
Formal methods
NT3
↓
Model checking
NT3
↓
Programming by contract
NT3
↓
Reliability
NT3
↓
Statistical methods
NT3
↓
Validation
NT2
D.2.5 ↓
Testing and Debugging
►
▼
NT3
↓
Code inspections and walk-throughs
NT3
↓
Debugging aids
NT3
↓
Diagnostics
NT3
↓
Distributed debugging
NT3
↓
Dumps
NT3
↓
Error handling and recovery
NT3
↓
Monitors
NT3
↓
Symbolic execution
NT3
↓
Testing tools
NT3
↓
Tracing
NT2
D.2.6 ↓
Programming Environments
►
▼
NT3
↓
Graphical environments
NT3
↓
Integrated environments
NT3
↓
Interactive environments
NT3
↓
Programmer workbench
NT2
D.2.7 ↓
Distribution, Maintenance, and Enhancement
►
▼
NT3
↓
Corrections
NT3
↓
Documentation
NT3
↓
Enhancement
NT3
↓
Extensibility
NT3
↓
Portability
NT3
↓
Restructuring, reverse engineering, and reengineering
NT3
↓
Version control
NT2
D.2.8 ↓
Metrics
►
▼
NT3
↓
Complexity measures
NT3
↓
Performance measures
NT3
↓
Process metrics
NT3
↓
Product metrics
NT3
↓
Software science
NT2
D.2.9 ↓
Management
►
▼
NT3
↓
Copyrights
NT3
↓
Cost estimation
NT3
↓
Life cycle
NT3
↓
Productivity
NT3
↓
Programming teams
NT3
↓
Software configuration management
NT3
↓
Software process models
NT3
↓
Software quality assurance (SQA)
NT3
↓
Time estimation
NT2
D.2.m ↓
Miscellaneous
►
▼
NT3
↓
Rapid prototyping
NT3
↓
Reusable software
NT1
D.3 ↓
PROGRAMMING LANGUAGES
►
▼
NT2
D.3.0 ↓
General
►
▼
NT3
↓
Standards
NT2
D.3.1 ↓
Formal Definitions and Theory
►
▼
NT3
↓
Semantics
NT3
↓
Syntax
NT2
D.3.2 ↓
Language Classifications
►
▼
NT3
↓
Applicative (functional) languages
NT3
↓
Concurrent, distributed, and parallel languages
NT3
↓
Constraint and logic languages
NT3
↓
Data-flow languages
NT3
↓
Design languages
NT3
↓
Extensible languages
NT3
↓
Macro and assembly languages
NT3
↓
Microprogramming languages
NT3
↓
Multiparadigm languages
NT3
↓
Nondeterministic languages
NT3
↓
Nonprocedural languages
NT3
↓
Object-oriented languages
NT3
↓
Specialized application languages
NT3
↓
Very high-level languages
NT2
D.3.3 ↓
Language Constructs and Features
►
▼
NT3
↓
Abstract data types
NT3
↓
Classes and objects
NT3
↓
Concurrent programming structures
NT3
↓
Constraints
NT3
↓
Control structures
NT3
↓
Coroutines
NT3
↓
Data types and structures
NT3
↓
Dynamic storage management
NT3
↓
Frameworks
NT3
↓
Inheritance
NT3
↓
Input/output
NT3
↓
Modules, packages
NT3
↓
Patterns
NT3
↓
Polymorphism
NT3
↓
Procedures, functions, and subroutines
NT3
↓
Recursion
NT2
D.3.4 ↓
Processors
►
▼
NT3
↓
Code generation
NT3
↓
Compilers
NT3
↓
Debuggers
NT3
↓
Incremental compilers
NT3
↓
Interpreters
NT3
↓
Memory management (garbage collection)
NT3
↓
Optimization
NT3
↓
Parsing
NT3
↓
Preprocessors
NT3
↓
Retargetable compilers
NT3
↓
Run-time environments
NT3
↓
Translator writing systems and compiler generators
NT2
D.3.m ↓
Miscellaneous
NT1
D.4 ↓
OPERATING SYSTEMS (C)
►
▼
NT2
D.4.0 ↓
General
NT2
D.4.1 ↓
Process Management
►
▼
NT3
↓
Concurrency
NT3
↓
Deadlocks
NT3
↓
Multiprocessing/multiprogramming/multitasking
NT3
↓
Mutual exclusion
NT3
↓
Scheduling
NT3
↓
Synchronization
NT3
↓
Threads
NT2
D.4.2 ↓
Storage Management
►
▼
NT3
↓
Allocation/deallocation strategies
NT3
↓
Distributed memories
NT3
↓
Garbage collection
NT3
↓
Main memory
NT3
↓
Secondary storage
NT3
↓
Segmentation
NT3
↓
Storage hierarchies
NT3
↓
Swapping
NT3
↓
Virtual memory
NT2
D.4.3 ↓
File Systems Management
►
▼
NT3
↓
Access methods
NT3
↓
Directory structures
NT3
↓
Distributed file systems
NT3
↓
File organization
NT3
↓
Maintenance
NT2
D.4.4 ↓
Communications Management
►
▼
NT3
↓
Buffering
NT3
↓
Input/output
NT3
↓
Message sending
NT3
↓
Network communication
NT3
↓
Terminal management
NT2
D.4.5 ↓
Reliability
►
▼
NT3
↓
Backup procedures
NT3
↓
Checkpoint/restart
NT3
↓
Fault-tolerance
NT3
↓
Verification
NT2
D.4.6 ↓
Security and Protection
►
▼
NT3
↓
Access controls
NT3
↓
Authentication
NT3
↓
Cryptographic controls
NT3
↓
Information flow controls
NT3
↓
Invasive software
NT3
↓
Security kernels
NT3
↓
Verification
NT2
D.4.7 ↓
Organization and Design
►
▼
NT3
↓
Batch processing systems
NT3
↓
Distributed systems
NT3
↓
Hierarchical design
NT3
↓
Interactive systems
NT3
↓
Real-time systems and embedded systems
NT2
D.4.8 ↓
Performance
►
▼
NT3
↓
Measurements
NT3
↓
Modeling and prediction
NT3
↓
Monitors
NT3
↓
Operational analysis
NT3
↓
Queueing theory
NT3
↓
Simulation
NT3
↓
Stochastic analysis
NT2
D.4.9 ↓
Systems Programs and Utilities
►
▼
NT3
↓
Command and control languages
NT3
↓
Linkers
NT3
↓
Loaders
NT3
↓
Window managers
NT2
D.4.m ↓
Miscellaneous
NT1
D.m ↓
MISCELLANEOUS
►
▼
NT2
↓
Software psychology
Date of creation
30-Dec-2011
Modified
03-Sep-2013
Accepted term
30-Dec-2011
Descendant terms
233
ARK
ark:/99152/t37l45od228w06
More specific terms
6
Alternative terms
0
Related terms
0
Notes
0
Metadata
BS8723-5
DC
MADS
SKOS-Core
VDEX
XTM
Zthes
JSON
JSON-LD
Search
Central terms
SOFTWARE ENGINEERING
OPERATING SYSTEMS (C)
PROGRAMMING TECHNIQUES (E)
PROGRAMMING LANGUAGES
MISCELLANEOUS