IEEE Computer Society - Keywords - Software/Software Engineering

D.0General
D.1Programming Techniques
D.2Software Engineering
D.3Programming Languages
D.4Operating Systems

D.0General

back to top

D.1Programming Techniques
D.1.0General
D.1.1Applicative (Functional) Programming
D.1.2Automatic Programming
D.1.3Concurrent Programming
D.1.4Sequential Programming
D.1.5Object-Oriented Programming
D.1.6Logic Programming
D.1.7Visual Programming
D.1.8Distributed programming
D.1.mMiscellaneous

back to top

D.2Software Engineering
D.2.0General
D.2.0.aProtection mechanisms
D.2.0.bSoftware psychology
D.2.0.cSoftware engineering for Internet projects
D.2.0.dStandards
D.2.0.eSurveys of historical development of one
particular area
D.2.1Requirements/Specifications
D.2.0.aAnalysis
D.2.0.bElicitation methods
D.2.0.cLanguages
D.2.0.dManagement
D.2.0.eMethodologies
D.2.0.fProcess
D.2.0.gSpecification
D.2.0.hTools
D.2.0.iValidation
D.2.2Design Tools and Techniques
D.2.2.aCASE
D.2.2.bDecision tables
D.2.2.cDistributed/Internet based software
engineering tools and techniques
D.2.2.dModules and interfaces
D.2.2.eProgrammer workbench
D.2.3Coding Tools and Techniques
D.2.3.aObject-oriented programming
D.2.3.bPretty printers
D.2.3.cProgram editors
D.2.3.dReentrant code
D.2.3.eStandards
D.2.3.fStructured programming
D.2.3.gTop-down programming
D.2.4Software/Program Verification
D.2.4.aAssertion checkers, assertion languages,
performance
D.2.4.bClass invariants
D.2.4.cCorrectness proofs
D.2.4.dFormal methods
D.2.4.eModel checking
D.2.4.fProgramming by contract
D.2.4.gReliability
D.2.4.hStatistical methods
D.2.4.iValidation
D.2.5Testing and Debugging
D.2.5.aCode inspections and walkthroughs
D.2.5.bDebugging aids
D.2.5.cDiagnostics
D.2.5.dDistributed debugging
D.2.5.eDumps
D.2.5.fError handling and recovery
D.2.5.gMonitors
D.2.5.hReliability
D.2.5.iSymbolic execution
D.2.5.jTest levels
D.2.5.kTesting strategies
D.2.5.lTest design
D.2.5.mTest coverage of code
D.2.5.nTest coverage of specifications
D.2.5.oTest execution
D.2.5.pTest documentation
D.2.5.q Test management
D.2.5.rTesting tools
D.2.5.sTracing
D.2.5.tUsability testing
D.2.6. Programming Environments/Construction Tools
D.2.6.aEnvironments for multiple-processor systems
D.2.6.bGraphical environments
D.2.6.cIntegrated environments
D.2.6.dInteractive environments
D.2.6.eProgrammer workbench
D.2.7Distribution, Maintenance, and Enhancement
D.2.7.aConversion from sequential to parallel forms
D.2.7.bCorrections
D.2.7.cDocumentation
D.2.7.dEnhancement
D.2.7.eEvolving Internet applications
D.2.7.fExtensibility
D.2.7.gMaintainability
D.2.7.hMaintenance management
D.2.7.iMaintenance measurement
D.2.7.jMaintenance planning
D.2.7.kMaintenance process
D.2.7.lPortability
D.2.7.mRestructuring, reverse engineering,
and reengineering
D.2.7.nVersion control
D.2.8Metrics/Measurement
D.2.8.aComplexity measures
D.2.8.bPerformance measures
D.2.8.cProcess metrics
D.2.8.dProduct metrics
D.2.8.eSoftware science
D.2.9Management
D.2.9.aCopyrights
D.2.9.bCost estimation
D.2.9.cEnactment
D.2.9.dInitiation and scope definition
D.2.9.eOrganizational management and coordination
D.2.9.fPlanning
D.2.9.gPostclosure activities
D.2.9.hProductivity
D.2.9.iProgramming teams
D.2.9.jProject close out
D.2.9.kProject control & modeling
D.2.9.lReview and evaluation
D.2.9.mRisk management
D.2.9.nSchedule and organizational issues
D.2.9.oSoftware acquisition
D.2.9.pTime estimation
D.2.10 Design
D.2.10.a Design concepts
D.2.10.b Design notations and documentation
D.2.10.c Representation
D.2.10.d State diagrams
D.2.10.e Evolutionary prototyping
D.2.10.fMethodologies
D.2.10.g Object-oriented design methods
D.2.10.h Quality analysis and evaluation
D.2.10.iRapid prototyping
D.2.10.jRepresentation
D.2.11 Software Architectures
D.2.11.a Data abstraction
D.2.11.b Domain-specific architectures
D.2.11.c Information hiding
D.2.11.d Languages
D.2.11.e Patterns
D.2.12 Interoperability
D.2.12.a Data mapping
D.2.12.b Distributed objects
D.2.12.c Interface definition languages
D.2.13 Reusable Software
D.2.13.a Domain engineering
D.2.13.b Reusable libraries
D.2.13.c Reuse models
D.2.14 Human Factors in Software Design
D.2.14.a User interfaces
D.2.15 Software and System Safety
D.2.16 Configuration Management
D.2.16.a Configuration auditing
D.2.16.b Configuration control
D.2.16.c Configuration identification
D.2.16.d Configuration management process
D.2.16.e Configuration status accounting
D.2.16.fSoftware release management and delivery
D.2.17 Software Construction
D.2.17.a Construction planning
D.2.17.b Code design
D.2.17.c Code tuning
D.2.17.d Data design and management
D.2.17.e Error processing
D.2.17.fSource code organization
D.2.17.g Code documentation
D.2.17.h Construction QA
D.2.17.iProgramming paradigms
D.2.17.jSystem integration and implementation
D.2.18 Software Engineering Process
D.2.18.a Life cycle
D.2.18.b Process infrastructure
D.2.18.c Process measurement
D.2.18.d Process definition
D.2.18.e Software process models
D.2.18.fQualitative process analysis
D.2.18.g Process implementation and change
D.2.19SoftwareQuality/SQA
D.2.19.a Quality concepts
D.2.19.b Planning for SQA and V&V
D.2.19.c Methods for SQA and V&V
D.2.19.d Measurement applied to SQA and V&V
D.2.mMiscellaneous
D.2m.aSoftware libraries
D.2m.bSystem issues

back to top

D.3Programming Languages
D.3.0General
D.3.0.aStandards
D.3.1Formal Definitions and Theory
D.3.1.aSemantics
D.3.1.bSyntax
D.3.2Language Classifications
D.3.2.aApplicative (functional) languages
D.3.2.bComponentware
D.3.2.cCompression technologies
D.3.2.dConcurrent, distributed, and parallel languages
D.3.2.eConstraint and logic languages
D.3.2.fDataflow languages
D.3.2.gDesign languages
D.3.2.hDevelopment tools
D.3.2.iExtensible languages
D.3.2.jJava
D.3.2.kMacro and assembly languages
D.3.2.lMicroprogramming languages
D.3.2.mMultiparadigm languages
D.3.2.nNondeterministic languages
D.3.2.oNonprocedural languages
D.3.2.pObject-oriented languages
D.3.2.qQuery languages
D.3.2.rScripting languages
D.3.2.sSpecialized application languages
D.3.2.tVery high-level languages
D.3.3Language Constructs and Features
D.3.3.aAbstract data types
D.3.3.bClasses and objects
D.3.3.cConcurrent programming structures
D.3.3.dConstraints
D.3.3.eControl structures
D.3.3.fCoroutines
D.3.3.gData types and structures
D.3.3.hDistributed objects, components,
containers
D.3.3.iDynamic storage management
D.3.3.jFrameworks
D.3.3.kInheritance
D.3.3.lInput/output
D.3.3.mModules, packages
D.3.3.nPatterns
D.3.3.oPolymorphism
D.3.3.pProcedures, functions, and subroutines
D.3.3.qRecursion
D.3.4Processors
D.3.4.aCode generation
D.3.4.bCompilers
D.3.4.cDebuggers
D.3.4.dIncremental compilers
D.3.4.eInterpreters
D.3.4.fMemory management
D.3.4.gOptimization
D.3.4.hParsing
D.3.4.iPreprocessors
D.3.4.jRetargetable compilers
D.3.4.kRuntime environments
D.3.4.lTranslator writing systems and compiler
generators
D.3.mMiscellaneous

back to top

D.4 Operating Systems
D.4.0General
D.4.1Process Management
D.4.1.aConcurrency
D.4.1.bDeadlocks
D.4.1.cMultiprocessing/multiprogramming/
multitasking
D.4.1.dMutual exclusion
D.4.1.eScheduling
D.4.1.fSynchronization
D.4.1.gThreads
D.4.2Storage Management
D.4.2.aAllocation/deallocation strategies
D.4.2.bDistributed memories
D.4.2.cGarbage collection
D.4.2.dMain memory
D.4.2.eSecondary storage
D.4.2.fSegmentation
D.4.2.gStorage hierarchies
D.4.2.hSwapping
D.4.2.iVirtual memory
D.4.3File Systems Management
D.4.3.aAccess methods
D.4.3.bDirectory structures
D.4.3.cDistributed file systems
D.4.3.dFile organization
D.4.3.eMaintenance
D.4.4Communications Management
D.4.4.aBuffering
D.4.4.bInput/output
D.4.4.cMessage sending
D.4.4.dNetwork communication
D.4.4.eTerminal management
D.4.5Reliability
D.4.5.aBackup procedures
D.4.5.bCheckpoint/restart
D.4.5.cDisconnected operation
D.4.5.dFault-tolerance
D.4.5.eHigh availability
D.4.5.fVerification
D.4.6Security and Privacy Protection
D.4.6.aAccess controls
D.4.6.bAuthentication
D.4.6.cCryptographic controls
D.4.6.dInformation flow controls
D.4.6.eInvasive software
D.4.6.fSecurity kernels
D.4.6.gVerification
D.4.7Organization and Design
D.4.7.aBatch processing systems
D.4.7.bDistributed systems
D.4.7.cHierarchical design
D.4.7.dInteractive systems
D.4.7.eReal-time systems and embedded
systems
D.4.7.fParallel systems
D.4.8Performance
D.4.8.aMeasurements
D.4.8.bModeling and prediction
D.4.8.cMonitors
D.4.8.dOperational analysis
D.4.8.eQueuing theory
D.4.8.fSimulation
D.4.8.gStochastic analysis
D.4.9Systems Programs and Utilities
D.4.9.aCommand and control languages
D.4.9.bLinkers
D.4.9.cLoaders
D.4.9.dWindow managers
D.4.1.0Support for Adaptation
D.4.1.0.a Application-aware adaptation
D.4.1.0.bApplication-transparent adaptation
D.4.1.0.cFidelity, agility, and stability
D.4.1.0.dLow-bandwidth operation
D.4.1.0.eTranscoding
D.4.mMiscellaneous

back to top

This is an extended version of the ACM Computing Classification System
Copyright (c) 2002 ACM, used with permission
         

About Us

Mission, Vision & Goals
History
Awards and Fellows
Volunteer Leadership
Staff Leadership
Nondiscrimination Policy
Browser Support Policy

Contact Us

Member Resources

Volunteer Center

For More Information

Marketing Automation Platform Marketing Automation Tool