The full text of this article has been published in programmer magazine no. September.
The main body of this article is to discuss the future development trend of software engineering, but the development of software engineering cannot be isolated. Therefore, we need to first consider the changes and trends of computing models and software development, then we can speculate on the Development Trend of software engineering.
In terms of computing models, the traditional von noriman is still in use. However, from the perspective of computing power, we have noticed three changes:
LCPUThe computing capability is rapidly improved according to Moore's Law.However, it is increasingly difficult to increase the computing power of a single CPU;
LParallel Computing Technology and multi-core and multi-thread technology enable rapid increase in server processing capabilitiesThe server's processing capability is no longer a bottleneck, resulting in a large number of migration of computing power to the server, the C/S structure is relentlessly abandoned, and the thin client (B/S structure) has become the trend of the times;
LThe rapid popularization of the Internet makes cloud computing possibleServer clusters connected through the Internet provide more powerful computing capabilities on the server side;
Based on the above changes in computing power, we have noticed the following six trends in the software development model:
L high parallel computing capability and availabilityMiddleware technology is widely usedAnd has even become a required option for building large-scale software systems;
L because of the middleware technology, the software development team can focus more on the business logic, but can hand over many details to the middleware for management, thus greatly reducing the number of lines of code to be written, also directly causedThe scale of the software development team has become smaller and smaller, but the role has become more and more professional.(For example, understanding industry demand analysts and architects of middleware technologies and domain architectures );
L The enhancement of computing capability makes the software more and more easy to use, so that the software becomes ubiquitous, and the number of software developers needed increases dramatically (the organization form is a large number of small-scale development teams ); with this factor and the pressure to reduce costs,Development outsourcing has become very popular;
L in order to allow systems distributed on the Internet to collaborate with each other,SOABecome a hotspot;
L the popularity of the Internet brings together scattered developers. As long as there is a suitable foundation and a good framework, they can develop tools and software of production grade (using Eclipse, JBoss, mySQL, Subversion as an example ),Open source has become a trend;
L B/S structure system is very easy to upgrade, which makesSoftware Delivery and upgrade are greatly accelerated(From month to year, To day of week );