Software Engineering is a systematic approach to the design,
development, operation, and maintenance of a software system. Software engineering is an engineering discipline that’s applied to the development of software in a systematic approach (called a software process).It’s the application of theories, methods, and tools to design build software that meets the specifications efficiently, cost-effectively, and ensuring quality. It is not only concerned with the technical process of building a software, it also includes activities to manage the project, develop tools, methods and theories that support the software production. Not applying software engineering methods results in more expensive, less reliable software, and it can be vital on the long term, as the changes come in, the costs will dramatically increase. Different methods and techniques of software engineering are appropriate for different types of systems. For example, games should be developed using series of prototypes, while critical control systems require a complete analyzable specification to be developed. 1.4 Objectives of Software Engineering • Maintainability – the ease with which changes in a functional unit can be performed in order to meet prescribed requirements. • Correctness – the extent to which software meets its specified requirements • Reusability – the extent to which a module can be used in multiple applications. • Testability – the extent to which software facilitates both the establishment of test criteria and the evaluation of the software with respect to those criteria. • Reliability – an attribute of software quality. The extent to which a program can be expected to perform its intended function, over an arbitrary time period. • Portability – the ease with which software can be transferred from one computer system or environment to another. • Adaptability – the ease with which software allows differing system constraints and user needs to be satisfied by making changes to the software. 1.5 Importance of Software Engineering
• Reduces complexity: Software engineering has a great solution to
reduce the complication of any project. Software engineering divides big problems into various small issues. And then start solving each small issue one by one. All these small problems are solved independently to each other. • To minimize software cost: Software needs a lot of hardwork and software engineers are highly paid experts. But using software engineering, programmers project everything and decrease all those things that are not needed. In turn, the cost for software productions becomes less as compared to any software that does not use software engineering method. • To decrease time: To achieve the requirements of the software, many codes are executed to reach the definite running code. This is a very time-consuming procedure, and if it is not well handled, then this can take a lot of time. So if you are making your software according to the software engineering method, then it will decrease a lot of time. • Handling big projects: Big projects are not done in a couple of days, and they need lots of patience, planning, and management. And to invest many months of any company, it requires heaps of planning, direction, testing, and maintenance. The company has provided many resources to the plan and it should be completed well in time. So to handle a big project without any problem, the company has to go for a software engineering method. • Reliable software: Software should be secure, means if you have delivered the software, then it should work for at least it’s given time or subscription. And if any bugs come in the software, the company is responsible for solving all these bugs. Because in software engineering, testing and maintenance are given, so there is no worry of its reliability. • Effectiveness: Effectiveness comes if anything has made according to the standards. Software standards are the big target of companies to make it more effective. So Software becomes more effective in the act with the help of software engineering.