GOALS OF SOFTWARE ENGINEERING & SOFTWARE DEVELOPMENT” Software engineering is a discipline that covers the principles of specification, systematic development, management and evolution of software systems. Software engineering is concerned with the application of engineering concepts, techniques, and methods for the development of software.
Software engineering outlines methods and procedures to ensure that appropriate emphasis is laid on each activity of software development process and not just programming. Some important definitions of software engineering are as follows.
Definition 1 Software engineering is a systematization of the process of software development to ensure the best solution most economically. The above definition lays emphasis on two aspects of software engineering: Systematic process of software development Economical solution that results from the use of methods, tools, and procedures
Definition 2 systematic, disciplined, quantifiable approach to the application of development, operation, maintenance of software: that is the application of engineering to software. (IEEE) The above definition is more evolved. It states that software development must also be disciplined that is better controlled through measurement of various software parameters.
Definition 3 Software engineering is the application of science and mathematics by which t capabilities of computer are made useful to man via computer programs, procedures, and associated documentation. (Barry Boehm) The above definition looks at the application of science and mathematics to the process of software development.
Definition 4 The systematic approach to the development, operation, maintenance and retirement of software. (Charette 1986) The above definition includes the retirement of software. Some modules of software become defunct and have to be retired, the others continue to function.
It requires a changed function every now and then. It means that software has to be continuously synchronized with the current business needs of a user.
Components of Software Engineering:-
The important components of software engineering.
- Software Development Life Cycle is as follows: It defines various stages and activities associated with the development of a software system.
- Software Quality Assurance user satisfaction through the development of quality This is the process of ensuring product.
- Software Project Management It is the application of the principles of project management to the process of software development.
- Software Management They maintenance and change control. are the methods and procedures to be followed for effective software
- CASE Computer-Aided Software Engineering They are a set of automated tools that support the process of software development
Difference between Software Engineering & Computer Science:-
The computer is related to theories and methods used in computers and software systems. Software engineering is concerned with the practical problems of producing software. Some knowledge of computer science is necessary for software engineers. Sometimes, software engineers can apply ad hoc approaches to develop software. The elegant theories of computer science cannot be applied to real and complex problems in reality.
Difference between Software Engineering & System:-
Engineering System engineering is concerned with all aspects of the development and evolution of complex systems where software plays a major role. It is basically concerned with hardware development, policy, and process design and system deployment. System engineers are involved in the following.
- Specifying the system.
- Defining its overall architecture.
- Integrating different parts to create the finished system.
They are less concerned with the engineering of system components such as hardware and software etc. System engineering is an older discipline than software engineering.
The percentage of software in systems has increased so software engineering techniques like use- case modeling and configuration management are used in the system engineering process.