Software Engineering (SE):
SE is concerned along developing and maintaining software systems that behave efficiently and reliably, are affordable to develop and maintain, and satisfy all of the requirements that customers have described for them. It is significant due to the impact of large, costly software systems and the role of software in safety-critical applications. It integrates computer science significant mathematics and practices whose origins are in engineering.
The IEEE definition is: The application of disciplined, systematic and quantifiable approach to the development, operation, & maintenance of software; which means the application of engineering to software.
Why is Software Engineering Important?
In most of the systems, by involving telecommunication systems, software is the overriding component in terms of complexity and cost. Therefore, Good software engineering practices and tools can make a substantial difference, even to the extent that they might be the driving force of the project success.
Three Dimensions of Software Engineering:
SE is a multi-faceted, rich, and evolving field. It is frequently useful to think of it in three dimensions, each dimension being concerned with one specific aspect.
A) The first dimension has all of the tools, methods, techniques and processes needed to develop software.
B) The second has the management techniques required to organize software projects successfully, to monitor the effectiveness of the development, and to develop the development procedure.
C) The third addresses the way in which the non-functional attributes of the software being developed in achieved. Non-functional attributes refer not to what the software does (its function) but in spite to the manner in which it does it (its security, compos ability, dependability, portability and interoperability.
Three Components of Software Engineering: There is also another way of looking at software engineering. It is sometimes referred to as the three Ps: People, Product and Process.
People:
People are an extremely important aspect of software systems and software engineering. People use the system being developed, people design the system, people maintain the system, people make the system, and people pay for the system. SE is as much regarding the organization and management of people as it is regarding technology.
Product:
There are typically two kinds of software product:
Generic products: these are stand-alone systems that are developed by a development organization and sold in the open market to any customer who desire to buy it.
Bespoke (customized) products: these are systems that are commissioned by a particular customer and developed specially by some of the contractor to meet a special need.
Process:The process of software is a structured set of activities needed to develop a software system:
Design->Specification->Validation->Evolution