Software engineering looks into designing and implementing software applications and also modifying them so that they are better suited to client requirements. It is one of the most important aspects of software development and is a must to be implemented in any organization that has undertaken software development activities. Though a basic engineering degree in computer science is enough to work as a software engineer, a better advantage would be to have a license. In the UK, it is the British Software Society that licenses software engineers. In Canada, they have the Professional Engineer (P.Eng) designation, though as per the law, there is no necessity to have such qualifications.
There are several sub-disciplines into which can be divided. These are software requirements, software design, software development, software testing, and software maintenance and software configuration management. The need for software engineering came about because of computing history. Problems such as the 'software crisis', 'complexity barrier' hindered progress which were in course of time resolved through various techniques that came to encompass as a whole.
While a software engineer also takes on the role of a programmer, a programmer will not take on the role of an engineer, which basically involves dealing with theoretical constructs of software and hardware development. There are many job domains and these include programmers, hardware administrators, network specialists and system testers. The overall purpose of this is to develop and maintain systems that work reliably and which can meet up to the expectations of customers and which process information in an efficient manner. A point to be noted about this field is that though it incorporates programming, it also looks into factors such as understanding client requirements, designing principle and testing to ensure that the application conforms to standards that have been set.
Source by Chris Cornell