1, intangible, without physical form, can only know the function, characteristics and quality through the running state.
2. Software permeates a lot of mental work, and people's logical thinking, intelligent activities and technical level are the keys to software products.
3. Software will not be worn like hardware, but there are defects in maintenance and technical update.
4. The development and operation of software must depend on the specific computer system environment and hardware. In order to reduce dependence, the portability of software is put forward in the development.
5. The software is reusable, and it is easy to be copied when it is developed, thus forming multiple copies.
Definition of software
Software, pinyin is runjà n, and the definition of software in national standards is: computer programs, programs and rules related to the operation of computer systems, and possible files, documents and data.
Other definitions:
1. A collection of instructions or computer programs that can provide the required functions and performance at runtime.
2. The program can handle the data structure of information satisfactorily.
3. Describe the functional requirements of the program and how the program operates and uses the required documents.
Taking the development language as the description language, we can think that software = program+data+document.
Software classification
Application category
Generally speaking, software is divided into system software, application software and middleware between them.
system software
System software provides the most basic functions for computer use, which can be divided into operating system and system software, among which the operating system is the most basic software.
The system software is responsible for managing all kinds of independent hardware in the computer system and making them work in harmony. System software enables computer users and other software to regard the computer as a whole, regardless of how each underlying hardware works.
1. Operating system is a program that manages computer software and hardware resources, and it is also the kernel and cornerstone of computer system. Operating system is responsible for managing and configuring memory, determining the priority of supply and demand of system resources, controlling input and output devices, operating network, managing file system and other basic affairs. The operating system also provides an operating interface for users to interact with the system.
2. Supporting software is software that supports all kinds of software development and maintenance, also known as software development environment (SDE). It mainly includes environmental database, various interface software and tool sets. Famous software development environments include IBM and Microsoft's Web Sphere.
Including a series of basic tools (such as compiler, database management, memory formatting, file system management, user authentication, driver management, network connection, etc.).
application software
System software is not aimed at a specific application field, while application software is the opposite. Different applications provide different functions according to users and service fields.
Application software is software developed for a specific purpose. It can be a specific program, such as an image browser. It can also be a group of programs with closely related functions that can cooperate with each other, such as Microsoft Office software. It can also be a huge software system composed of many independent programs, such as a database management system.
Nowadays, smart phones have been greatly popularized, and the application software running on mobile phones is called mobile phone software for short. The so-called mobile phone software is the software that can be installed on the mobile phone to improve the deficiency and personalization of the original system. With the development of science and technology, the functions of mobile phones are becoming more and more powerful. It is no longer as simple and rigid as it used to be, but it has developed to be comparable to PDA. Mobile phone software is the same as computer. When downloading mobile phone software, you should consider the system installed in this mobile phone to decide which software to download. The mainstream mobile phone systems are as follows: Windows Phone, Symbian, iOS, Android.
Authorization category
Different softwares generally have corresponding software licenses, and software users can legally use the software only if they agree to the license of the software they use. On the other hand, the license terms of specific software cannot violate the law.
According to different licensing methods, software can be roughly divided into several categories:
Proprietary software: This authorization usually does not allow users to copy, research, modify or distribute software at will. Violation of this authorization usually entails serious legal responsibility. Traditional commercial software companies will adopt this license, such as Microsoft's Windows and office software. The source code of proprietary software is usually regarded as private property by companies and is strictly protected.
Free software: This kind of authorization is just the opposite of proprietary software, giving users the right to copy, research, modify and distribute the software, and providing the source code for users to use freely, with only a few other restrictions. Linux, Firefox and OpenOffice can all be representatives of this kind of software.
* * * Enjoy the software: You can usually get and use the trial version for free, but the function or use period is limited. Developers will encourage users to pay for a fully functional commercial version. According to the authorization of the author of * * * software, users can get their copies free of charge from various channels, and can also spread them freely.
Free software: you can get and copy it for free, but you can't modify it without providing source code.
Public software: the original author has given up his rights, the copyright has expired, or the author is no longer elegant. There are no restrictions on use.
Employment prospect of software major
The demand of enterprises is large, and the employment competition is small.
At present, the talent gap of software testing in China has exceeded 200,000, and it has reached 300,000 with the increasing demand. It is reported that in foreign mature software enterprises, 1 software development engineers correspond to 1-2 software testing engineers, while in domestic software enterprises, the average of 8 software development engineers corresponds to 1 software testing engineers, which is seriously unbalanced. However, the total supply of software testing talents in IT vocational training institutions all over the country does not exceed 10000 people every year. So the shortage of software testing talents will last at least 5- 10 years. Because the training of software testing talents in China started late, there are no related majors in colleges and universities. At present, the demand of enterprises is far greater than the supply, and the competitive pressure faced by testing majors will be far less than that of other majors.
Good pay and great room for development.
It is understood that the scarcity of software talents also incited the leverage of salary and benefits. According to some surveys, the starting salary of test engineers ranges from 3000 yuan/month to 5000 yuan/month. If you have two to three years of work experience, the annual salary can reach 10 to150,000 yuan, even higher than the salary level of many developers with the same service years. It is predicted that in 2009, the imbalance between talent supply and demand will continue, and the salary of software testing engineers still has a lot of room for improvement.
Long career, no gender preference.
Software testing engineers pay attention to the accumulation of testing experience, similar to the profession of doctors. The older you get, the more valuable you are. Software testing has no preference for gender, and the work pressure and intensity are relatively small. Software testing is a rare choice for women who are interested in working in the IT industry.
According to relevant post statistics, there is a huge gap in software testing talents in Shenzhen. Many large and medium-sized software companies began to recruit a large number of professionals to take charge of software testing, and the proportion of software testers and developers increased significantly. Software testing engineers have become the top four in the new IT talent list.
A "well-trained" background is more popular.
The serious imbalance between supply and demand of software testing talents has led to the prosperity of related education and training industries in China. As early as two years ago, several well-known IT vocational training institutions in China accurately grasped the demand trend of market talents, invited well-known software testing experts at home and abroad to develop systematic training courses, and delivered a large number of professional software testing talents for enterprises in the past two years. At present, vocational training accounts for about 12% of the supply channels for professional software testers in China. With the strengthening of enterprise talent cost control, this proportion is expected to continue to grow. Most enterprises welcome such professionally trained software testing talents. They come from "training courses" and don't need to spend much time on training. They are quick to use and efficient, and are favored by enterprises.