Software Engineering - Subdisciplines

Subdisciplines

Software engineering can be divided into ten subdisciplines. They are:

  • Software requirements: The elicitation, analysis, specification, and validation of requirements for software.
  • Software design: The process of defining the architecture, components, interfaces, and other characteristics of a system or component. It is also defined as the result of that process.
  • Software construction: The detailed creation of working, meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging.
  • Software testing: The dynamic verification of the behavior of a program on a finite set of test cases, suitably selected from the usually infinite executions domain, against the expected behavior.
  • Software maintenance: The totality of activities required to provide cost-effective support to software.
  • Software configuration management: The identification of the configuration of a system at distinct points in time for the purpose of systematically controlling changes to the configuration, and maintaining the integrity and traceability of the configuration throughout the system life cycle.
  • Software engineering management: The application of management activities—planning, coordinating, measuring, monitoring, controlling, and reporting—to ensure that the development and maintenance of software is systematic, disciplined, and quantified.
  • Software engineering process: The definition, implementation, assessment, measurement, management, change, and improvement of the software life cycle process itself.
  • Software engineering tools and methods: The computer-based tools that are intended to assist the software life cycle processes, see Computer Aided Software Engineering, and the methods which impose structure on the software engineering activity with the goal of making the activity systematic and ultimately more likely to be successful.
  • Software quality: The degree to which a set of inherent characteristics fulfills requirements.

Read more about this topic:  Software Engineering