Designing complex softwares, implementing, testing and doing maintenance these softwares are software engineering.