Branches of software engineering I have to decide on which branch of software engineering to focus my studies. In my institute, the branches are not fixed. Each student has the possibility to propose their branch. For example, I could propose to do my specialization in "learning machine". At the institute, there is no person who advises the student on what branches are currently available in software engineering. So I'm a little lost.

I wanted to ask if you can name me branches of software engineering that you know. On the internet I have not found much info about it.

I also appreciate advice on which branch is going to have a better long-term future.

Sorry for my English. I know it's a somewhat ambiguous question, but for me it's very important.
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.