Software engineer is the one who has the skills to complete a full Software lifecycle from Analysis, design

, development, maintenance, validation & testing, while every phase can has its own specialists, software engineer can do everything or can do one thing but fully understand how every phase in the project is done.