LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

What is Software Engineering

Internet has been playing an increasingly important role in our day-to-day life. As an indispensable part of the Internet, software plays an important role in various fields. And Software Engineering has

Software Engineering is a discipline that applies computer science theories and technologies as well as engineering management principles and methods to realize the definition, development, release and maintenance of software products that meet user requirements according to budget and schedule.

Software Engineering Theories

B. Weohm proposed seven basic theories of Software Engineering in 1983. These seven theories are the minimum set that ensure software product quality and development efficiency.

  1. Manage rigorously with a phased lifecycle plan
  2. Insist on stage reviews
  3. Implement strict product control
  4. Adopt modern programming technologies
  5. The results should be reviewed clearly
  6. Members of the development team should be less and more proficient
  7. Acknowlege the need for continuous improvement in Software Engineering

Goals of Software Engineering

The goal of Software Engineering is to develop software products, that can be modified, effective, reliable, understandable, maintainable, reusable, adaptable, portable, traceable, interoperable and meet the needs of users, under the premise of given cost and schedule.

Modifiability

Allows modifications to the system without increasing the complexity of original system.

Efficiency

The software system can make the most efficient use of the computer’s time and space resources.

Reliability

Can prevent the failure of software system caused by the imperfection of concept, design and structure.

And has the ability to recover the failure of software system caused by improper operation.

Understandability

The system has a clear structure that directly reflects the requirements of the problem.

Maintainability

After the software product is delivered to users, it can be modified to correct latent errors, improve performance and other attributes, and adapt the software product to changing environments.

Reusebility

One or a group of related modules that are relatively independent of concept or function is defined as a component.

The degree to which component can be used in diversified situations is called component reusability.

Adaptability

The difficult degree to which software to satisfy users’s needs under different system constraints.

Portability

The difficult degree to which software is moved from one computer system or environment to another.

Tracebility

The ability to track software design and program forward according to software requirements, or track software requirements backward according to program and software design.

Interoperability

The ability of multiple software elements to communicate with each other and work together to accomplish tasks.

Software Engineering Principles

In order to achieve the goal of software system development, the following principles must be followed in the process of software development:

  • Abstraction

  • Modularity

  • Information Hiding

  • Localization

  • Completeness

  • Consistency

  • Verifiability