Software softening: demand changes and code Quality

Source: Internet
Author: User

1.Static software and hardware Division

About Software and Hardware"Official"The standard definition is:

Software is a collection of computer data and commands organized in a specific order.

The Hardware includes all physical parts in the computer to distinguish the data it includes or executes and the software that provides instructions for the hardware to complete the task.

This is " narrow sense " " broadly " system, under a specific condition, hardware is the unchangeable part; software is the changeable part.

For example"Hotel System"In"Specific costs"Under the constraints, hardware refers to the Hotel infrastructure, and software refers to the management of the hotel.

Now it's time to reclassify the software and hardware in the application development field!

For the application system we developed (ApplicationThe software is written by ourselves.CodeWhat is the hardware? Compared with the code we write, the following items cannot be changed. They are"Hardware":

HOST: hardware.

Operating System: normal applications do not rewrite the operating system;

Database: we can write specific database applications on the database, but for code, both the database and database applications are hardware;

Application Server: normal applications do not rewrite the application server;

Framework: once the framework is designed, it cannot be changed easily;

Code library: Generally, we only call the code library.

Others' code: In team development, different people are responsible for different modules./Layer. This is not absolute."Hard"It can be modified through communication, but it is definitely more difficult than modifying your own code.

In this way, in an application system"Software"(That is, we can change) is actually very few.

2.Dynamic software and hardware Division

Why should we emphasize the division of software and hardware? Because of a common misunderstanding, there are not only customers, but also quite a few developers who think the system can be modified at will. This is actually a problem. The correct view is:"The system can be designed as needed".

This problem can also be viewed from the perspective of software and hardware division. That is, the Code belongs to software and hardware at different stages. For example, after analysis, design, development, testing, and other processes, a set of code is generated to meet specific requirements. When the demand changes, this set of code becomes unchangeable hardware, because our original functions are still needed.

3.Requirement change and ugly code

In fact, most " ugly " code is generated when the requirement is changed. This is related to the problem. When the demand changes, we are based on " existing code " " hardware " the environment is used to consider the problem. In this specific case, the Code is not so ugly. In system maintenance, we are based on all existing requirements, from a global perspective. All codes are considered as " Software " some code looks ugly.


The solution is not included in the summary, because I have no good solutions. There are only two things to pay attention:

First, iterative development, sometimes just add one"Minor features"But the impact on the entire system must be fully considered. Iterative development can complete the process of analysis, design, development, and testing, and consider new features globally to avoid"Partial Optimization"Impact.

Second, restructuring. It takes time to add a plan.1-2Reconstruction steps."Global Optimization".

We hope you can discuss more and better methods.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.