The concepts, methods and tools of modern software industry appear at an alarming rate, and almost all colleagues are constantly learning new things every day. I believe quite a few of them are looking forward to finding a good way to solve the problems that many industries need to solve for many years, such as standardization of design, effectiveness of management, repeatability of development and so on.
But I also believe that when my colleagues keep learning and trying these new theories and methods with expectations, they find that-although a large number of visual development tools and numerous application supporting environments have appeared, modern application software developers have basically got rid of the past state of focusing on interface, communication and a large number of data management, and can concentrate on developing their own core business content; However, often in a specific project or a specific enterprise, there are many exciting new methods and theories, and even the valuable experience of those successful people, but it is difficult to really play the expected role, or even useless in some cases. I think these may mainly exist in the combination of new design analysis methods and management methods and in specific applications.
With the continuous updating of software development tools, software engineers can now easily build complex graphical user interfaces (many years ago, graphical user interfaces were one of the most workload parts in software development), and manage and debug data conveniently; At the same time, some new software development supporting environments and architectures have emerged, such as C/S structure, J2EE, DCOM, CORBA and so on. On the one hand, it makes programmers get rid of the underlying methods such as RPC and Socket, and easily develop networked information systems, on the other hand, it greatly improves the efficiency and quality of complex system construction. In recent years, the development of software industry in these fields has indeed produced great results, which has been accepted by most people.
However, the actual contribution of other innovative contents in the software industry, as well as their popularity and practicability among software managers, designers and developers, are far less obvious and direct than the new contents of development tools and environments.
The innovation of software analysis and design methods is mainly embodied in object-oriented technology and ideas, and the encapsulation, inheritance, polymorphism and reuse of data and methods enable designers to describe objective things and their relationships and functions more vividly with software, which should be a very great creation and play a huge role in promoting the software industry; However, on the other hand, although the advantages of object-oriented technology and ideas have been recognized by peers, in practical engineering, apart from the extensive use of object-oriented development tools and languages, the practice of using object-oriented ideas to analyze, design systems and describe design results to complete actual projects is far from as popular as expected. Is this because some projects are too simple to use, or because they are too difficult to use, or for other reasons?
The theory of software engineering is constantly building new ideals: the production of software can have standard parts, standard structure, standard process, standard production line and standard assembly, just like the production of a car, a TV set and a building. Theorists are full of creative ideas and confidence, but a large number of front-line software engineers have doubts about this ideal.
The innovation of software enterprise management mode is also the urgent demand of most enterprises. Advanced CMM has appeared, and its theory has been continuously understood by people. Everyone has deep admiration and yearning for those enterprises that have obtained a certain CMM level, and announced with one voice: "We will do it!" At the same time, however, we find that a large number of software enterprises have encountered headache difficulties and doubts on the road of organically combining CMM with their own actual situation. This kind of difficulty and doubt seems to be not just as simple as "suffering for a while and benefiting for a lifetime" in order to accept the new mechanism.
What's the problem? Why is it so difficult to reach the level of electronic and mechanical products on the road of software industrialization? For many years, the author has been thinking about this problem.
This paper holds that "the formulation of a solution to a matter should be based on a correct understanding of the essence of the matter." Then, perhaps the characteristics of software are quite different from other traditional products, perhaps not just in quantity, but in quality.
Perhaps we should re-examine the inspiration, ideals and methods obtained by analogy with traditional industrialization in the past from this perspective.
Here, first of all, thank you for your support! Thanks to my friends Guo and Shi Wenbiao who have worked in Japan for many years for providing me with some information. At the same time, Mr. Yuan and Mr. Gu, the editor of Electrical Industry Press, also put forward many valuable opinions on the publication of this book. Thank you sincerely!
He xiaochao
65438+February 2009