E-development: a revolution in a software development method
Author: Yu Jia
Email: jia_yu@263.net
I. New challenges facing software development
Complex Digital World (E-World) presents three major states of distribution (Connected) [JIM]. Massive information is scattered in all corners of the world, and a host focuses on all ages. Although users face a whole service system, it hides a huge internet network system; on the one hand "Parallel" is an inevitable product of human activities, whether it is an electronic economic or software development lifecycle, and the "multi-thread" method under network computing control has brought us huge social and economic benefits; another In terms of rapid and convenient networks constitute the social foundation of the information age, collaborative work represents the social characteristics of the digital world, and is a service "supply chain" to closely link people together.
It can be seen that the past dream is the mutual penetration of today's reality, service, network, and economy, promoting the rapid development of the information industry, and also bringing unprecedented difficulties to software development, 2000, grady bags of Rational's chief scientists The first 100 software industry authority's prediction of software under the new economy is [Paul01]:
§ Software will become more complex (Software Will Continue To Become Increase ";
§ Wireless network will have remote acquisition capabilities (The Unwired Web Will Have Far-Reaching Implications);
§ New Economic Requirements Software can continue to update (The New Economy Requires Software That Can Be Continuously Updated);
§ Software is developing without restrictions, and the problem is also constantly appearing (There Arene's Growth - But There is Some Problems, TOO).
Therefore, in the pursuit of the limit interests of the digital revolution, we cannot simply rely on the huge success, technology, economic and social factors that have been made in calculation capacity, bandwidth and accessibility over the past few decades. Maximize the development of software development methods and technologies in endlessly, only in this way can ensure large-scale, software-centric systems, can sustainable and healthy development.
Second, Web services: New understanding of software
In the face of many challenges in the new economic situation, the software industry is undergoing a global transition. Today, the network is calculated to become a mainstream computing platform, software network and service have become the primary sign of technology development [Wang Huai Min 01], only recognizes the software and This change in software development is in order to provide a basis for developing the technical and strategies of the correct software development.
1. Change of software to network services
Network has become the basic environment of development, deployment, use, and managing software systems. The form of software products will change. The software is no longer the information processing tool purchased by the user to the developer, but the information processing service purchased to the service provider. .
2. Distribution characteristics 渗 渗 面 面 面 层
Management Distribution: Software development management is no longer in person, but assigned multiple managers from multiple organizations on the network in the form of capabilities, rights and responsibilities;
Information distribution: information is omnipotent, the software shares data resources for different time spots through the Internet; system distribution: The software system consists of different locations, and user needs are completed by open and distributed business processes.
3. Software development mode of "Plug and Play"
Enterprise-level commercial systems will be integrated with business components. The business finished software COTS will replace business modules in the commercial system. The software development is no longer "everything from scratch" code written, but the selection, adjustment, and assembly process of components. .
4. The software has more and more biological intelligence
With the improvement of biological intelligence mechanism, the artificial intelligence method of neural network, fuzzy logic, genetic algorithm, chaos and fractal science is gradually integrated into software technology, and the rapid development of intelligent agent technology is a typical representative of this trend. .
5. Software reflects economic characteristics
Traditional software industry leading business model is to charge software copying license fee methods, but this business model guides software companies to enclose software source code, which is bound by software productivity. With the rise of open source movements, the software will improve Software services Get a new business model of profit.
It can be seen that the software industry will change from today's production and sales of privileged knowledge to production and sales of original knowledge innovations and services, and the development technology of the corresponding application software is also experiencing a giant change. Traditionally, software developers develop applications by combining local system logic handling capabilities, enabling developers to use rich system resources to accurately control the performance of applications; today, developers are working to build complex structures The N-layer system connects a number of applications in the network. So, software development technologies from study how to develop application system products to provide network service migration, technical perspective, network service is a packaging application software or Heritage system, as independent, self-contained, self-described raw member body, can be understood and communicated on the network, although it does not necessarily have a complete application logic, but can complete the user by co-assist with other services All the features you want, and spread through the network to a variety of digital devices. In a word, the network service truly implements "Let the Internet Work for you, INSTEAD OF You Working the Internet".
In response to the situation and changes, I summarize the new technologies and new trends in the software industry [CD00, DAVE00], see as follows:
§ Software service technology. Service alternative software, become an information entity that generates, deployed, expands, and maintains, software has technical transparency to users, which is more valuable and deeper than software;
§ Communication in communication. Unified description, discovery, and integrated public standard communication languages are used between network services or components, mainly based on UDDI specifications and SOAP specifications based on XML language;
§ Distributed infrastructure framework. Let all computer groups, related devices, and service companies work with the network computing environment, the Internet presents in front of the end user in the form of an overall service.
§ Support for the technology based on the Internet-based software service market. Providers (components) and consumer (applications), competitive mechanisms in the market, are the operational rules of the market; the components are encapsulated by service, and they have been reused in the DISCOVERY service and advocacy service. Component "Replace" becomes a winner of competition; establish a Brokering mode, select the appropriate network service provider to obtain the "best" service (technical critical is the ability to evaluate network services and dynamic replacement services) Establish network service arbitration (Mediated) mechanism, monitoring, and auditing components, ensuring communication security; transition from software purchase to "Pay-per-use); § For complex heterogeneous Environment, penetrate into a wide range of industries. The service components written in different languages are running in different hardware and software platforms, and construct a comprehensive network service system as long as the "chip" areas.
In summary, these technological advances have promoted distributed computing from the Client / Server phase and the Browser-based phase to the third stage service-oriented development, if you think network services is "Some Intertion Office, Across the Internet, That Has meaning and economic value. "(Some, cross-internet interaction information and behavior, it has certain meaning and economic value) [CD00], then distributed object computing will be the theoretical basis of network service technology, while soft As a software entity that provides one or more network services, the component makes a component-based software development model CBD (or component-based software engineering CBSE) becomes the core of future software development methodology and engineering, newly appeared UDDI, SOAP WSDL technology fully proves this, so there is reason to believe that software development theory and technology are moving towards "E-Development" new era.
Third, component-based software development: software development new paradigm
"E-development" cannot be considered just "developing in the dot-com", but the technical practice and engineering method in the Internet environment, it should be such a technical route: modeling in the field knowledge, Based on distributed calculation (or web services), establish a software architecture standard for specific areas, systematically reuse commercial software components, implement an iterative incremental development process, with automated rapid development tools, efficient, High quality development and integration of application software systems based on components or network services.
The main issues that e-development software development theory and practices are:
§ Development technology and engineering methods for software components (or network services);
§ Integrated technology and methods for enterprise-level applications in heterogeneous environments, or synergistic technology and methods for web services;
§ Software intelligent calculation method and implementation technology;
§ Operable, iterative incremental development process control method and standardization;
§ Suitable for tissue structure and management models for distributed development;
§ Visual, strong expression, formal theory support business / field modeling method;
§ Automated, intelligent rapid software development tools and environments;
§ Software economics analysis method, including product strategy, market positioning and competition analysis; § Evaluation and foresee of market environment, technical system and policy framework.
It is essentially analyzed the above problems, which can be said that the software multiplexing problem is the core of all problems, and is the only fundamental way to solve the software crisis. In recent years, software engineering has been combined with the theory and method of computing distributed object computing technology and software multiplexing. Together, it is gradually developing a separate software engineering branch discipline - "component-based software engineering, referred to as", "or" component-based software development method (Component-Based Developments, referred to as CBD ) ", It involves domain analysis, object-oriented analysis and design, distributed computing technology, software architecture and Internet technology, etc., is considered to be the current most broad software development technology practice and research direction.
references
[Jim2000]
Jim Rumbaugh, Trends in Uml And E-Development, The Rational Edge, December 2000
[Paul01]
Paul Levy, Software and The New Business Economy, The Rational Edge - February 2001
[王怀民 01]
Wang Huaimin, the software industry is a global transition, China Computer News, April 9, 2001
[Cd20]
Cecile Peraire and Derek Coleman, Modeling For E-Service Creation, Sri International, 2000
[DAVE00]
Dave Fisco, IBM's Web Services Architecture Overview and interview with rot smith. 2000
http://www-106.ibm.com/developerWorks/library/w-int.html?dwzone=ws