Source 1: "Software Engineering: A Practitioner's Approach" by Roger S. Pressman (Academic, Google Scholar)
In this academic source, the author defines software engineering as the process of analyzing user needs and designing, constructing, testing, and maintaining the software using engineering principles. The book also covers topics such as software development life cycle models, requirements analysis and management, design methodologies, testing, and quality assurance.
Source 2: "Software Engineering" by Microsoft (Non-academic primary)
This non-academic primary source, from Microsoft, defines software engineering as the process of designing, implementing, testing, and maintaining software. It also emphasizes the importance of collaboration and communication among team members, as well as the use of tools and technologies to improve the software development process.
Source 3: "What is Software Engineering?" by Techopedia (Non-academic secondary)
According to this non-academic secondary source, software engineering is the application of engineering principles to the design, development, and maintenance of software. It also mentions that software engineering involves the use of methodologies and techniques for efficient and cost-effective software development, and the use of tools and technologies to improve the development process.
In summary, all three sources agree that software engineering is the process of designing, developing, and maintaining software using engineering principles. However, the academic source also includes the analysis of user needs and testing, while the primary source emphasizes the importance of collaboration and communication among team members. The secondary source mentions the use of methodologies and techniques for efficient and cost-effective software development.