What are the sub-fields in software engineering?

What are the sub-fields in software engineering?

It was interesting reading the other two (as of this writing) answers. They give a different perspective than what I think of regarding subfields of software engineering. So what follows is my perspective which is more focused on application domains. I suggest reading the other answers to get these other perspectives. It just goes to show that there is more than one way to slice up software engineering.

  • Artificial Intelligence
  • Business and Finance
  • Analytics
    • Data mining
    • Decision support systems
  • Banking
  • Commerce
    • Trading
  • Compilers, Parsers
  • Communications and Networks
    • Protocols
  • Computer graphics and Image Processing
  • Cryptography
  • Cyber-security
    • Hacking
    • Counter-measures
  • Database
  • Embedded systems
    • Automotive software
    • Avionics software
    • Control Systems
    • Medical device software
    • Telephony
    • Telemetry
  • Computer Aided Design (CAD)
  • Games
  • Information systems
  • Logistics
  • Manufacturing
    • Computer Aided Manufacturing (CAM)
    • Distributed Control Systems (DCS)
  • Music
    • Music sequencers
    • Sound effects
    • Music synthesis
  • Numerical Analysis
  • Office applications
    • Word processors
    • Spreadsheets
    • Presentations
  • Operating systems
  • Robotics
  • Signal processing
  • Simulation
  • Testing
  • Visualization
  • Voting
  • World wide web
    • Client-side
    • Server-side

It should be noted that many of these sub-fields overlap. It should also be noted that there is no doubt that this list is incomplete.