Software change
"In the history of prehistoric, there is no other scene than the beast. The scene is more shocking in the tar pit. God witnessed the dinosaur, fierce, the sword tiger struggles in the tar. The more violent, the more fierce Tight, there is no beast to strong enough or have enough skills, you can break away. They finally sinked the bottom ... The large system development of the past few decades is like such a tar, a lot of large and strong animals in it. Struggle. Most of them have developed a running system - however, only very small number of projects meet the requirements of goals, time progress and budgets. Various teams, large and small, pumored and descent A picking one drown in the taro pit ... "
Brooks "Moon Myth"
Structural change
Let's anatomy a large application software system. In a business that has thousands of employees, a business-level business support system just launched in line after investing thousands of funds and two years. However, the organizational structure, process, and personnel have changed in software development, and it is still changing! Software developers must modify the software. The software has a thousand pages of design documents, and millions of lines of code. "Experience" programmers skip the design ideas and directly write program source code. Over time, the software design document is still "engraved the boat as sword" stopped in place, and the source code has been in the original picture. In fact, after anything has the factor of "Million", there is no way to manage directly. Military software source code is almost no one can understand, and it is extremely difficult to modify and maintain, so the software has become a huge monster that struggled in the tar pit.
To solve the problem of large-scale applications, you must first solve the structure of the software. The emergence of assembly language makes the software say goodbye to "Tianshu" consisting of "0" and "1". The wheels of the software have passed through high-level language, object-oriented, service-oriented, and more. Software technicians will break away from the quagmires of large segment of software technology until the components. In a component-oriented software, an application system is not composed of a code of millions of lines, but by several thousand components, it is visualized. The complexity of the system has a decline in order, while graphical assembly makes software and application design in one.
As the subversion and innovation of the code software system, the component-oriented software system first fills the difference between the expression and the graphical knowledge expression, completely eliminating the fault between software source code and software design ideas. . The main advantage is that the user's demand changes can be reflected directly through the components assembled graphical design; the permanent shielding software code layer allows software architects and programmers to jump out of the limitations of traditional development models, only need to graphically The components are dealt, while thoroughly evolving software expression, it also makes it easy to change and maintain.
Under the software idea facing the component, the concise expression brings a simple software update - "The response" is no longer just a slogan. The component-oriented software system, loosely coupled component assembly, and the low correlation between the system different components. Repeatedly used the test-tested component, visual knowledge expression, the quantity of the system complex index decline, which also makes enterprise applications more mature and more stable.
The trend facing the components is optimistic about the prophet of the software industry. In the book "Software Successful Mystery", McKinsey four senior experts Detlev Hoch, Cyriac Roeding, Gert Purkert, Sandro Lindner After the world's most successful software company, 450 top leadership, think Component technology is the core part of the future prospect of the software industry, and the software industry improves the main source of productivity. Quote Software Experts Brad Cox says that the component-oriented technology is a silver bomb in the software industry!
Take back historical, the technical idea for components has been a long time. In 1968, MCLLROY submitted the "Software Components" of a large number of software components in 1968, the idea of "software assembly production line" was put forward. As early as early in the early 1990s, the Academician of Yangfuqing, the Chinese Academy of Sciences, proposed the idea of componentization software system. After that, the components technology implemented software reuse, using the "grades" mode production software, it has become a dream that software developers have long been unable to implement. At home and abroad, he is in a large number of explorations of components technology, and the final analysis is to solve the problem of "repeating inventions" during software development, how to make the same wheel can also be used for different cars. This is just confirming an old saying in China: the same way. Change of production mode
China is manufacturing everything. This is true in Americans, Europeans, Japanese people. From lighter, children's toys, clothing shoes, the piano, computer motherboard, aircraft accessories, our government never gone manufacturing has become the pillar industry of China's economic development. Imagine that if you can fully learn from and draw the development experience of the manufacturing industry, the software industry will not be another "strong engine" that drives China's economic growth in the near future.
In fact, it is like manufacturing a car, and the development of software can be constructed above the "component assembly" mode; so that software technicians can get rid of the inefficiencies of "one line of writing code", directly enter "block matching components" Higher stage. Not only that, the technology-oriented technology completely broke the original software based on the inherent mode development. "Components" replaces "code" becomes the "information atom" of the software (basic structural unit). With the continuous enormous and perfect, flexible components of the component library, the integrated software structure will turn the wood "assembly software" from the dream to reality.
Components-oriented products are not only in the customer's demand anastomosis, online time, and software quality leading to similar products, which greatly improves the success rate of the project. Moreover, the development and maintenance of the software becomes unprecedentedly simple, and customers can obtain the latest information scheme respond to commercial environmental changes and IT technology changes anytime, anywhere, and truly implement "agile custom".
From the perspective of software applications - Enterprise application definitions in the Internet age are being revolutionary changes. Software is serving a sector in traditional enterprise application model, and is also based on the functions that have been completed. From subjective, enterprise applications can be divided into personnel, finance, administration, ERP, CRM, SCM, BI, etc. In the application, in the Internet, the horizontal department interacts, real-time enterprises interaction, diverse interaction channels, flexible business rules, make it unpredictable in the original sense. Changes in customer application modes have fundamentally requested higher requirements for software companies and their products.
As mentioned above, the components are not lost as a software enterprise - as a collection of software code, the component can complete a specific service of one or more functions, and provide a number of interfaces for users. Through the component assembly, all software functions that are fitted with the application needs of the Internet age are realized. This solution will have a historic bid to draw the current large enterprise application product. Soon, the company solution we see will be new, no longer solid; it is a group or more group-oriented modules, according to the company itself needs flexible assembly, and continuously recombine, dynamically matches as the company changes.
The idea of components, the first time gives the wings of the software, can be] Fast implementation of any assembly customization like hardware. In the past, some people defined the software as "encoded knowledge", and now, the software under the new system has become the "component's knowledge" - even if it is "component technology rewriting software definition" is not too late.
Industrial change
Development efficiency is corporate productivity. Software companies worldwide are exploring the feasible ways of "improving software development efficiency". Summary, the key to improving software development efficiency is to improve software reuse capabilities and multiplexing levels.
The research report shows that "60% -70% of the software can be multiplexed." However, the actual situation is that different companies are always constantly developing a few "wheels" for their customers - In a sense, the "continuous re-repeating invention" is the most appropriate description of the current software production mode. There is no doubt that only the components can allow the company to drive the chariot (including software companies and customers), "Software Reuse Road" is more rapid, more stable. In the long-term software sky, the idea of the components seems to be a dawn, tearing the old software system of Chen Yu - believe in evolutionary, ultimately, the old everything will be abandoned, and the replacement will be a new component Software structure. This is a flexible software replaces the process of replacing the rigid software, and it is also a new system that starts industrialization. According to incomplete statistics, there are currently a considerable part of the forward-looking manufacturers at home and abroad, start to try new software systems.
Chart: Software Industrial Structure under Software System for Components
?
So, what changes will the software structure that bring to the software industry and the application model? There are mainly the following two aspects:
On the one hand, it will be highly eye-oriented - the platform will become a "pyramid base" for application software components, which provides development and operational environment and infrastructure for the application software.
On the other hand, the application member of the hierarchical application member will replace the application software coding - complex, rigid application software will end, and replaced by "agile components integrated era".
In addition, the technology-oriented technology will also greatly promote the development of the application market. In the future, the software industry-based software industry will have a large number of application component manufacturers to form social division of labor and exchange. The significant benefit of this division of labor is that component-oriented applications will far-beyond the application software under traditional software architecture in cost, quality, delivery period.
Analyze the life cycle of the component-oriented software industry, which can be roughly divided into five stages: innovation period, receiving period, early maturity, late and recession during maturity. Today, the component-oriented software production has across the acceptance period, and its mark is a component-oriented software production idea to start commercialization, and a single manufacturer begins to use a component-oriented software production method. However, the industrial gap between the accepted and maturity periods still exists. The component concept has evolved early from the accepted period, and there is a lot of breakthroughs, but there is no ecological chain. It is foreseeable that once across the industrial gap, the overall industrial development will experience the giant change, we will face an avalanche development stage - according to Gartner Group: "New applications from at least 70% of 2005 will mainly establish such as software components and Application Frames This type of 'Constructing Block'. "- China has also quietly traveling in the exploration of component software, and in the Information Technology Office of the State Council in the" Revitalizing Software Industry Operations (2002-2005) ", Many referred to promotion application software components and multiplexing technologies, speeding up the goal requirements of the development of components. Some manufacturers have begun to promote the development of a component-oriented software system through the league. Undoubtedly, the new system will provide a valuable opportunity for the Chinese software industry!
The curtain of software industry has opened, and the components are more software technology that is increasingly domestic and foreign industry experts to promote the one of the one. It can be convinced that in the next decade, we will have a fortunate to develop the software under the guidance of a component's idea and mature. The code-style software will eventually become history, and the software will be expressed in a more beautiful form, a better way in production and get a more perfect experience during use.
Please pay attention to "The Software of the Nirvana" three songs of the "Software Beauty".
?