What is Software Engineering?

The framework of Software Engineering (Software Engineering) can be summarized as:

  1. goals,
  2. processes and
  3. principles.

(1) Goal: to produce products with correctness, usability and reasonable cost.

  • Correctness refers to the degree to which the software product achieves the expected function.
  • Usability refers to the degree to which the basic structure, implementation, and documentation of the software are available to users.
  • Proper cost refers to the degree to which the entire cost of software development and operation meets user requirements.

There are many problems to be solved in the realization of these goals, both in theory and in practice, and they form constraints on the selection of processes, process models and engineering methods.

(2) Software engineering process: the steps required to produce a software product that can ultimately meet the demand and reach the engineering goal.

The software engineering process mainly includes:

  • Development process,
  • Operation process, and
  • Maintenance process.

They cover requirements, design, implementation, validation, and maintenance activities.

Requirement Process include problem analysis and requirement analysis.

  • Problem analysis to obtain requirements definition, also known as software requirements specification.
  • Requirement analysis generates functional specifications.

Design Process generally include outline design and detailed design. The outline design establishes the entire software system structure, including sub-systems, modules and related levels of description, and the interface definition of each module.

Detailed Design Process produces module descriptions available to programmers, including data structure descriptions and processing descriptions in each module.

Implementation Process converts the design results into executable program code. The confirmation activity runs through the entire development process to realize the confirmation after completion to ensure that the final product meets the user’s requirements.

Maintenance Process include expansion, modification and improvement during use. Along with the above process, there are management process, support process, training process, etc.

(3) Principles refer to the principles that must be followed in the process of software development around engineering design, engineering support, and engineering management.

Software Process Model