1.2: What Is Software Engineering?
As you read this article, pay attention to the trends section, which covers the period from 2000 to about 2020. As you proceed through this course, these items will appear as controversies and opportunities to evaluate other alternatives. Software engineering focuses on software development, utilizing processes and procedures enacted by teams or executed by machines, tools, and methods. As you read about trends, ask how they relate to and impact software engineering problems, development processes and procedures, team/role development activities, and application tools and methods. Software engineering processes and procedures include the SDLC, other models, and numerous activities.
This article separates computer science into six other categories, with software engineering being one of them. How is software engineering like computer science? How is software engineering different?
Each category is further described by a spider web diagram, showing the topics covered and the degree of emphasis on each topic. A comparison of computer science and software engineering shows the overlap and differences in topics and emphasis. It positions software engineering as a category of computer science. This categorization contrasts the STEM categorization of four main disciplines: science, technology, engineering, and math. Science discovers general principles and problem-solving techniques. Engineering uses those principles and techniques to develop solutions to problems. Technology uses practices and tools to deploy, operate, and maintain those solutions in practical applications. Both perspectives are helpful. At a higher level of abstraction, the STEM perspective shows that computer science and software engineering have fundamentally different processes. At a more detailed level of abstraction, the six degrees perspective shows the intersection and difference of topic coverages between computer science and software engineering and the other four disciplines.