Types of software engineering
As the software engineering is not just writing codes for the software, it encompasses every phase of the software development lifecycle (SDLC), from planning the budget to analysis, design, development, software testing, integration, quality and retirement.

Operational Software Engineering: It includes all decisions and tasks related to how users will interact with the software i.e. usability, how the software will perform within a computer system i.e. Efficiency, Correctness, and Functionality and what will be the cost to build and operate the software i.e. budget. It may include any potential risks due to results from the defective and outdated software (if any) and dependence of the software on other software.
Transitional Software Engineering: This type of software engineering involves duties related to the software's portability, interoperability, reusability, and adaptability when it's moved from one platform to another.
Software engineering maintenance: It involves activities connected to enhancing and debugging current software to make it fit in the ever changing environment (new technologies, new bugs, new risk factors etc.). Modularity, Maintainability, Flexibility, Scalability are the properties that have to be maintained by the Software engineers.
Statlearner
Statlearner