I am sharing this for those professional who either not be a part of this industry or a fresher. I feel in my journey that everyone who belongs to this category having a common question, what is software engineering?
They know the answer of this basic question but sometime they can’t express same in their words, so here is the answer. If I’ll split these two words then what they mean individually. I guess in 21st century everyone will understand that what is a software, but when this term sounds with term “Engineering”, it gives an essence of an art, skill, profession, discipline and technology of acquiring and applying scientific, mathematical, economic, social and practical knowledge, in order to design and build structures, systems, and processes.
So now we are in shape to derive the definition of Software Engineering (SE).
This is an application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; i.e. the application of engineering to software. It is the application of engineering to software because it integrates significant mathematics, computer science and practices whose origins are in engineering. It is also defined as a systematic approach to the analysis, design, assessment, implementation, testing, maintenance and reengineering of software, i.e. the application of engineering to software.
In simple words we can say that it is an engineering discipline which is concerned with all aspects of Software Production from the early stages of system requirements through to maintaining the system after is has gone into use. Now here we’ll discuss few terms:
a) Computer Science: It is concerned with the theories and methods which underlie computers and software systems.
b) Software Engineering: SE is concerned with the practical problem of producing Software.
c) Engineering Discipline: Engineers make things work. They apply theories, methods and tools that are appropriate but use them selectively and always try to discover solutions to problems even when there are not applicable theories and methods to support them. Engineers have to work to organizational and financial constraints.
d) Software Engineering View: it is not just concerned with the technical process of software development but also with activities such as software project management and the development of tools, methods and theories to support software production.
At last we can say, Software Engineering is a discipline whose aim is the production of fault – free software that is delivered on time, within budget, and satisfies the user’s needs.
For more on history of Software Engineering please refer below path:
Regards,
Puneet