Change and Breakth - How to Know Companies-Based Software Development Method
Compared with traditional software development methods, what is the breakthrough of components?
First, architecture
The software architecture represents the high-level abstraction of the system, which is the key to the success or failure of the system. The core of its design is whether it can use duplicate system models. The traditional application system architecture is from the host-based centralized framework, and the framework of accessing the server through the network on the client's client is unable to adapt the business environment where the current business is:
Enterprises have excessively dependent on a supplier's software and hardware products. This single supplier makes the company difficult to use the compute provider's free market, and will give the important decision to calculate the infrastructure to third-party processing, which is clearly not conducive to the company's share information between partners.
It is not possible to adapt to the distributed, multi-level heterogeneous system of remote access.
The packaged application system is difficult to maintain the system with customization when there is a certain organization, so that it is difficult to meet the multi-variety of needs.
You cannot achieve analysis, design core functions, you can only realize code reuse.
Today, the application system has developed into a distributed, multi-level heterogeneous system that can be remotely accessed remotely on intranet and Internet. CBSD provides a new system architecture for developing such applications. It is a standard defined, distributed, modular structure, enabling the application system to be developed into several separate parts, available in incremental ways.
Such an architecture implements the following points of the CBSD:
The application software system can be integrated and customized by internal development, third-party existing components, or the existing components purchased in the market.
Encourage reuse of core functions in various application systems, and strive to achieve analysis and design.
The system should have flexible and convenient upgrades and system modules update maintenance capabilities.
The best practices in the package can be used in the case of commercial conditions, and the existing resources can be retained. As a result, CDSD solves the reuse and heterogeneous interoperability from the system's high level abstraction, which is the problem that the distributed network system is desirable.
Second, the development process
Traditional software development processes are very different from CBSD in reuse elements and development methods. Although object-oriented technology promotes software reuse, only reuse of classes and class inheritance. There is also a large gap between the entire system and the class. In order to fill this gap, people have thought of many methods, such as system architecture, framework, design patterns, etc.
Since the emergence of components, the reuse of software has been fundamentally changed. CBSD achieves multiple levels of analysis, design, and class. Figure 1 shows its reuse element hierarchical implementation. On the analysis of the abstraction layer, reuse the element has a subsystem, class; re-use the element system architecture, subsystem architecture, design mode, frame, container, component, class, template, abstract class, etc.
On the software development method, CBSD boot software development is transformed from application system to application system integration. Building an application requires a lot of existing components modules that may be developed by different people, and have a variety of applications. In this case, the development process of the application system becomes a gradual exploration process for the consistency of the component interface, component context, and framework environment. For example, on the J2EE platform, use the EJB framework to develop application systems, mainly working on application logic, press Session Bean, Entity Bean, and utilizing JTS transaction processing services to implement application. Its main difficulties are transactional division, and components deployment and development environment configuration. In summary, the traditional software development process is a process of serial waterfall, and the CBSD is concurrent, and the process of continuously upgrading a perfect process. Figure 2 shows the differences in them.
Third, software methodology
Software methodology is from a variety of different perspectives, different ideas to understand the nature of the software. Traditional software methodology reflects the essence of the problem from the viewpoint of the machine, data, oriented, facing function, data stream, orientation, and the like. The development of the entire software makes people more and more realize that the software methodological problem should be solved according to the objective world law. Until the appearance of an object-oriented method, the software methodology has taken a big step. However, high-level reuse, distributed heterogeneous interoperability is not resolved. CBSD has developed to today's software methodology provides opportunities to solve this problem. It separates the application business and the implementation of logic and data, providing standard interfaces and frames, making software development methods into components. Therefore, software methodology is based on interface, facing behavior. Figure 3 is a process of development. Incident, the software development methodology of CBSD should include the following aspects:
It has a clear definition to the components.
The component-based concept requires a description of the components, such as UML, JavaBean, EJB, servlet specification, and more.
The development application system must be classified according to the component, including allocating different roles.
There is a tool for supporting the feature and generating documents to ensure the implementation and quality test of component specifications.
In short, traditional software methodology is carried out from drafts, and there is no more assist in reuse. The software methodology of CBSD is much more, it is plug-and-play, based on architecture, interface-centered, combining the component organic combination, which combines the top down and bottom-up method.
Fourth, the development organization
The development of traditional software is generally composed of analysts, designers, programmers and testers. For a small application system, a skilled developer may take care of the above multiple characters. But for CBSD, because component development and application system integration is often separated, the entire development process is completed by six roles, they are:
Components developers are also components suppliers, most of them are middleware components providers.
Application member integrators combine existing components into a larger component module or container for a system deployment for a system deployment.
Application system deployers deploy the basic unit to the selected platform environment or the basic framework to complete the requirements of the software customization.
Development platform server suppliers provide basic software such as servers, operating systems, and databases.
Application system development tool supplier provides component public facilities services.
System administrators configure hardware, network, and operating system, monitor and maintain application system.
These six roles have a strong professionalism, and it is not easy to make a multi-face. Currently formed components open market, but also very flaming. This is also a confusion that today's software talent war. Therefore, in the CBSD, how to organize the development team is especially important, and must organize according to the company. It is particularly important that the initial development of the development must be selected, and the unified development guidelines will ensure that each role can communicate at any time during the entire development process. In general, the Quality of CBSD determines the reuse rate of the component.
V. Structure
The construction of traditional applications is to use white box method, and the application system is fully implemented, and the application logic and data are bonded together. The configuration of the CBSD is a method of combining a white box and a black box. Component-based frames are used to support evolution: the first concept is a strong performance interface that enables component logic functions and component models to hide. Thus, the component can be replaced as long as the interface is the same.
The second concept is implicitly called, that is, in the component-based frame, the interface never distributes the address to the member, only the address is allocated after the component user is identified. Therefore, the component user may be a component agent as long as the component user is understood and returned after the reference to the component interface (the reference may be a component, or the component user, the component agent is the component, no distinguishing). The information of the component interface is not stored in the component, but is stored in a component warehouse or registration. This will ensure that the component replacement is flexible and it is easy to re-deploy the component with implicit calls. Since the implementation of the component is transparent to the user, the component can also adapt the components to various different personalized requirements. To this end, the component provides two mechanisms of self-testing and standardization. Self-inspection ensures that component interface information can be obtained without understanding the specific implementation of the component. For example, the self-test mechanism provided by JavaBean is REFLECTION and BeanInfo, and all methods of the bean component can be directly obtained by Reflection, and many of the complex information of the component can be directly obtained by BeanInfo. Standardization allows no access to the component to modify it, such as the normalization of JavaBean is the Property Sheet and Customizer (customizer). Provide a set of simple parameters through the Property Sheet to modify the properties of the bean. Complex modifications are done by the user through customizer setting parameters.