The impact of cloud computing on traditional software engineering

Source: Internet
Author: User
Tags cloud computing platforms

The impact of cloud computing on traditional software engineering

What is cloud computing? The National Institute of Standards and Technology (NIST) gives a definition: cloud computing is a pay-per-use model that provides available, convenient, on-demand network access and access to a configurable pool of computing resources (resources including networks, servers, storage, applications, services) that can be quickly delivered , with little or no management effort, or minimal interaction with service providers.

Cloud computing is the development of parallel computing, distributed computing and Grid computing, or the commercial implementation of these computational science concepts. "1" It has three major forms, namely infrastructure as a service (IaaS), platform as a service (PaaS), and Software as a service (SaaS). Infrastructure-as-a-service refers to services such as renting hardware servers that users can access to infrastructure from the cloud platform. Platform as a service refers to the cloud computing to provide users with platforms such as operating systems or cloud computing services development platform, so that users can reduce hardware investment, thereby reducing costs. Software as a service refers to the cloud computing environment, software vendors to deploy software on the server, users can be required to rent software to vendors, so that users do not need to purchase software, and because the manufacturers will be unified maintenance of software, users will be more convenient to use. Cloud computing has features such as hyper-scale, virtualization, high reliability, versatility, high scalability, on-demand services, and low-cost performance. It sells computing as a resource, allowing users to acquire computing resources just as they would for hydroelectric power, thus avoiding wasted resources due to idle computing resources and facilitating user use. The advent of cloud computing has built different software development environments and changed the way users get services. Traditional software engineering in the cloud environment is bound to make changes, developers can also use the cloud computing environment to improve the software development process, cloud computing has a lot of impact on traditional software engineering, mainly in the following aspects:

Improved software reuse

In traditional software engineering, development time and the credibility of development results are often contradictory. If the development time is short, that is, the software analysis, writing and testing, such as the experience of little time, software may not meet the needs of users, software error rate is likely to rise, software quality is not high. To develop high-quality software, it takes a lot of time to analyze requirements, software design, code writing and software testing. The two seem to be not both. In the software engineering under the cloud computing, the maturity of the component is improved. The component can realize large granularity software reuse at a higher level of abstraction. "2" On the one hand, these reused software is often modified and perfected very mature software, more credible. Using these components to write software can reduce development errors and improve software quality. On the other hand, the development time of software is shortened because there are many ready-made components that can be used without repetitive code writing. Cloud computing has the advantage both ways. At the same time, because of the improvement of the component maturity in the service-oriented software engineering, the developers have more available components to choose when they write the software, and the software objects are more diversified.

The dynamic nature of software process

From the life cycle characteristics, the traditional software life cycle model is serial, the essence is the deformation of the waterfall model, so that the life cycle model is more easy to control, can ensure the determination of the results of time, and in the cloud computing environment, software development is no longer a closed, global control of the process, Instead, there are multiple concurrent and autonomous processes that are organically integrated from bottom-up to top-down in a project. "3" In other words, in the traditional software engineering, in order to ensure the results, the traditional software development must follow the corresponding process, otherwise it may not be able to further develop. In the cloud computing environment, due to a large number of components and structure of the packaging is very good, easy to reuse, software architecture can be from the existing mature architecture directly selected, the detailed part of the software can also use a large number of mature components or code, while the cloud computing environment, the coupling of the components greatly reduced, Each component of the software can be developed independently and concurrently, thus making the software process more free and can be carried out simultaneously by multiple processes.

Socialization of development organizations

Traditional software development is often confined to a single organization. "4" Because of the difficulty of communication and the inability to synchronize development progress in time, people outside the organization often find it difficult to join the project. In the cloud computing environment, the developers of the same project can easily complete the development and deployment of the software by operating the cloud server, so that software development is no longer confined to a single organization. Many organizations can work together to complete a project, and software development becomes more open. At the same time, cloud computing provides great convenience for the development of open source software, and anyone can easily find and optimize open source projects in the cloud, as more people participate in the project.

The popularity of developers

Traditional software development needs a lot of training for developers to master the basic knowledge of software development, at the same time need a lot of money to build the development environment, the threshold for software development is higher. The advent of cloud computing has greatly reduced the threshold for software development, enabling more and more people to develop software on cloud computing platforms. Cloud computing uses a large number of low-cost server and cloud computing is often the result of large-scale effects, as well as the demand-based cloud computing features, making cloud computing resources very cheap. In a cloud computing environment, you can get a lot of computing resources with less money. And, cloud computing allows users to rent software for development, further reducing capital investment. This is very friendly for small and medium-sized businesses and independent developers. They do not require a lot of upfront input to develop software and to bring their products to market via cloud computing platforms, and software development becomes easier. In addition, the cloud Computing Center is responsible for architecting the software development and running environment, the software developer does not need to carry on the hardware facility architecture and the running environment debugging and so on, needs only one browser to start the development, the software development becomes simpler. Also, with a lot of learning resources on the cloud platform, developers can easily learn and communicate with others to improve their development level. There are also a number of mature artifacts that can be used directly on the cloud computing platform, even if people without a lot of development experience can complete their own software by directly using these controls.

Virtualization of resource deployments

Virtualization refers to the abstraction and transformation of various entity resources in a computer, thus breaking down the barriers between physical resources and enabling users to better use these resources. Cloud computing is a feature of virtualization that enables users to access services in any location, using a variety of terminals, without needing to know where the application is running. The lowest-level hardware system and the basic software system run by the computing software are transparent to the users, and are maintained and managed by the providers of cloud computing services. Therefore, in the cloud computing environment without concern for hardware resources, you can focus more attention to the software itself, thereby improving the quality of software. In addition, in traditional software engineering, users need to purchase a large number of servers to cope with the peak use of software resources, these servers in peacetime may be in a state of inactivity resulting in wasted resources and increased costs. In the cloud computing environment, because the resource is virtual, which makes it more scalable, the user can dynamically lease resources according to their own needs. Rent more resources at peak hours and expire. This avoids the waste of resources and lowers the cost.

Cloud computing as a new technology, although has been widely used, but has not reached a very mature level, cloud computing environment How to do software development, but also need constant exploration and research. While it is unclear whether cloud computing can lead to a new phase of software engineering, it does in many ways contribute to the advancement of software engineering. Therefore, the promotion of cloud computing is very important, software engineering may be further changed.

The concept and connotation of "1" cloud computing in China

"2" Sagessa, Jie Jili, Shaohua, "The impact of cloud computing on software Engineering"

"3" Zhang Yong, "The research of software engineering mode in cloud computing environment"

"4" Zhang Qiang, "software reuse in the era of cloud computing"

The impact of cloud computing on traditional software engineering

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.