Branches of software engineering
There is no fine line that separates the subfields of software engineering and there is a lot of overlap. However, below is a list based on my experience in the software engineering research community (and you can find one or more credible conferences that focuses on each of these):


Formal methods
Program analysis
Software engineering process
Requirements engineering
Models
Automated software engineering
Software maintenance
Testing
Empirical software engineering
Human factors
Program comprehension
End-user software engineering


I'm sure there are more, but this should get you started.