Current location - Education and Training Encyclopedia - Graduation thesis - How much do you know about software engineering?
How much do you know about software engineering?
Some Views on Software Engineering —— Hope to attract more attention.

It is very enlightening to see the comments of many netizens here. Moreover, there are many books on different aspects of software process on the market at present, but I haven't found a practical application method here, so I hope you can correct me now.

In my personal understanding, software engineering is a software system with clear functions organized and planned according to the management mode of the project within a certain quality basis, time limit and cost range. Moreover, software engineering must be supported by enterprise resources and connected with enterprise management, decision-making and management systems in order to be implemented in a down-to-earth manner.

As a service industry, the development of software industry must first form a market that urgently needs software services. Secondly, consumers in this market must have enough purchasing power. The consumer groups of software are relatively simple and can be divided into personal consumption and enterprise consumption. There are a large number of enterprises in China, but the quality is not high. There are few large enterprises in the world. Therefore, the consumption of large-scale software by enterprises in China is definitely limited, and the personal consumption of software, at least in China at present, is not a climate. Therefore, it must be a small software system that can form a relatively large-scale independent market in China at present.

In addition, the quality can not be absolutely said. For example, you spent 500 yuan on a pair of leather shoes, and they broke after only one month. They must be inferior products. However, if you only spend 5 yuan on this pair of shoes, they can last for another month, which is a quality product. The same is true of software.

The other is the software life cycle. Abroad, in many large and medium-sized enterprises, software system has been regarded as the lifeblood of enterprise operation. Of course, these enterprises need long-term and stable software services and development systems as a guarantee. Therefore, relatively speaking, the functional requirements for software are relatively clear, and domestic small and medium-sized enterprises have always regarded flexibility as a survival weapon in operation. Of course, it is impossible to have a long-term business plan, and it is even more impossible to conduct comprehensive enterprise management with software systems. This leads to the short-term demand for software systems, so they are more willing to buy software systems with limited functions at one time rather than long-term continuous software services.

If the above analysis is representative, that is to say, we must now form a set of very effective engineering methods for developing this kind of software:

1。 Small in scale.

2。 low cost

3。 The quality requirements are not high.

4。 Limited after-sales service.

5。 Short life.

I don't think RUP is necessarily a good method for this system. In addition, I also want to talk about my views on the quality of software personnel.

From my personal experience, I think we have a problem with the way of training software engineers. Theoretically, as long as the structure is designed and all technical difficulties are solved, the rest of the code can be solved by high school students. In fact, many computer graduates from our famous universities can't write good codes. Especially now that VB, PB and JAVA are available, everyone seems to think that the computer architecture needs no attention. In several software projects I have handled, many engineers are at a loss when developing Win32 multithreading, event-driven, deadlock and memory allocation in C language. I don't believe that these problems can be solved by good documents. In fact, being able to use OO tools does not mean being able to analyze and design OO systems.

On the other hand, how many people in China have more than 10 software development background? Moreover, their experience in the past 10 years is more about the coding of small projects than the management and system analysis of large projects. And a good system analyst needs to practice, practice and practice again. If there are no large-scale software projects in our business environment, how can there be excellent system analysts?

So, I think, at present, our problem is that the technical level and knowledge of engineers are as important as management awareness and management methods. Under this premise, should we explore a software engineering method that really suits us?