Component technology "application" first
Zhong Quehao
(This article is reproduced from Software Engineering Expert Network www.21cmm.com)
Software component technology developed by an object-oriented-based, get rid of object-oriented theory, the current theory is not perfect, but actual applications have large progress. Based on software component technology, this paper proposes application software development models and methods from the cognitive system. The definition, classification, supporting language and environment, technical characteristics, and practical application effects of components are also discussed.
in principle
Software development is a comprehensive discipline, including the four knowledge levels of philosophy, basic science, technical science and engineering management. Philosophy determines the guiding ideology, epistemology and worldview of the entire discipline. Epistemology is the law and method of people to understand the objective world, we call it a cognitive system. When the application software is developed, there must be a philosophical and cognitive thing that you must follow. It plays a guiding role in basic theory, research direction, and the technical measures adopted. It is in line with the discipline, otherwise it will encounter various problems, and even lead to failure. . As can be seen from several milestones from software development, the recognition has played a decisive role. In the early stage of software development, we call the program design era, software development is in small workshop individual production mode. By the mid-1960s, there were some large complex software systems, and people realized that they were difficult to complete a large system. W.E.Dijkstra first proposes a solution that uses a structural programming method, which is to develop software development as a mathematical solution, and simplify the problem along a mathematical enumeration, abstraction, summation, and ratio such as thinking. Developing and maintaining software using engineering concepts, methods, principles, and technologies, producing structural analysis and design methods. This development method has a long-term software development in my country, and there is no doubt that there is still a cognitive defect, such as the development cycle, high cost, poor quality, especially the software developed, can not adapt to the system. Constantly evolve. By the 1970s, people realized that only the context of the software structure is not enough, this is just "table", not "in", software should also adapt to the natural structure of the objective world. M.a.jackson believes that application software should be loyal to reality, higher than reality, proposing JSD system development methods, and its guiding ideology is "Simulating Objective World", using the designs steps from the bottom. The JSD method reveals the relationship between objective world and software system, so the software developed is good and practical. However, the JSD method also has inherent defects: how to simulate the entities and activities to determine the system, it does not give the criteria can be followed; there is no difference between the objective world, the software system model, cannot directly map the past, the result is the system structure confusion Low efficiency, poor software ingredients. By the 1980s, object-oriented renewed, object-oriented understanding, the system consists of multiple objects, forming a system through communication between objects, providing a way for objective world to software systems to provide ways and programming methods. Its main feature is: (1) Class and encapsulation, implementation of data abstraction and information, give object type and parameterization, provide a means of achieving multiplexing by generating instance post-assembly systems. (2) Inheritance, improved code reuse. (3) Polymorphism. Object-oriented gives the architecture of the software system, introducing a way of thinking of software multiplexing. In recent years, more and more people have attracted more interest, proposing a variety of object models, languages, and designing various base type libraries, making the object-oriented programming gradually become hot.
problem
Object-oriented technology is accepted by everyone, it is recognized as current development mainstream, but there is still a series of problems in practical applications. (1) Models and concepts have not been uniform. Different people are inconsistent with the understanding of systems and objects, resulting in a lot of differences in various object languages, and there are many inconsistent places that are inconsistent with pure faces to object theory, it is difficult to form a uniform Standards and development specifications. (2) Requires the use of object-oriented technologies with high quality, there are many things to master. If you want to master C , you must understand a large number of MFC class libraries and to understand the details of each class. (3) Object-oriented multiplex is just in the primary stage, no modes and specifications and corresponding management mechanisms. (4) It is difficult to implement it. At present, it is limited to objects that can be used very well (such as VB interface design, multimedia software design). There are not many large software to develop large software with pure object-oriented technologies. The reasons are: how to refine the object class, use OOA to be Durable; dedicated components in the actual application are lack of special components; because there is no uniform standard, there is still a reuse of programmers, it is difficult to share, and it will not be reused under distribution; pure object-oriented To abandon the original many technologies. The root cause of the above problem is due to incomplete in the cognitive system. Thereby, it is born to the object-oriented member software. concept
Component is a reused software composition component that can be used to construct other software. It can be packaged object classes, class trees, some functional modules, software frameworks (FRMWORK), software architectures (or architecture architectural, documents, analyzers, design modes, etc.). The components are divided into components and components examples, and the corresponding application software is constructed by giving an instance, generating an instance, by instance of the parameters. After several years of development, the model of the component itself and its norms have been proposed, and there is more impact that OLE COM and CORBA SOM. It has been developed to the segmentation component specification, mainly CORBA, OLE / ACTIVEX and JAVEBEANS, and its development is increasing, and will eventually be unified.
classification
In order to better understand the nature of the component, we will classify it by multiple sides: (1) divided into analyzers, design parts, program parts and data parts according to the development process component. (2) According to the function, it is divided into three layers: the base layer is the basic data class component and the system support member; the intermediate layer is a variety of universal middleware, the top layer is a dedicated component or subsystem component for the field, from the particle size , Usually the particle size of the underlayer is smaller, and the particle size of the top layer is large. (3) Divide the dynamics and static by use. (4) The structure of the component is divided into an atomic member and a combination member that is aggregated by a plurality of structures.
Language
For multiplexing, it is necessary to follow certain specifications, and achieve specifications through language functions. According to the application software development process, the following language can be provided. (1) Component Description Language, used to describe a specifications of the component, that is, description of the desired component; can also be used to retrieve existing reusable components, which is the basis for designing components to retrieve language. (2) Component programming language. Various compilers, such as VC, VB, Java, etc. (3) Process control language and system integration. By process control, special components, subsystem components, and application software are created. To provide connection and embedding, it is necessary to include facility development functions, management and instance generation of component libraries, to provide database design and database connection functions, Provide a large number of basic components, intermediate components and APLs. Such as PB, Delphi, etc. Since PB is easy to master, in addition to providing the above functions, it can be used for programming and component management, which can keep up with new technologies, so it is generally favored by software developers. model
The two cores of the research component software are: How to extract the reused components and how to assemble the system and implement interoperability. The software architecture, component model, which is currently discussed, is to resolve the interface between the components to achieve interoperability. In recent years, various component libraries have been provided, such as MFC, PBL, VBL, and more. However, most of this type of class library belongs to the basic data class library, the control of the interface, various middleware, support, and system parts. But there is still a big distance from the components needed to integrate application software. Although various software companies are developing various middleware products or domain components, they often use the FORM operating components, query statistical components, and report survival components, especially those in the development of MIS systems. The relevant special components must be developed in our country. So how to extract the domain components, there is no one in the world, that is to say, it is difficult to form the corresponding domain components while developing applications, in order to adapt to the system itself or can be used in the same field. System development. For components-based application software development process, we propose three life cycles, namely software development models. Database design is divided into three stages of concept design, logical design and physical design, and application software development process is also divided into three phases. The first phase is acquisition, using the simulation method to describe the objective system of the objective world. At the eighth day, we tried successfully "Role Law" description, designing the domain demand report reused components, using the HIPO diagram, semi-shape, and the objective system. The second phase is to analyze objective systems, design logic systems, we call regional analysis. Due to the concept, structure, function, and communication methods in the concept, structure, function, and communication. Although it is formed to form an object-oriented concept, the objective world is an entity, there is no concept; the objective world is a kind Functional model, and the software system is a packaged object composition. To convert from objective systems to the software system, it is conducive to reuse, and we propose a transition software system that separates the invariant part and variable parts associated with the domain to design the field software. Framework, extract the domain software, design the theme database, thereby forming a logical system related to the field, and the above part of the above results are collectively referred to as designs. After the specifications of the assembly can be prepared, they can be prepared for all documents to develop all documents to realize population development in the field. The third stage is integrated, finding the appropriate component class, generates an example, describes the subsystems in the system; configure the user's favorite operation interface; generate various input and output components instances, etc. Finally, the integrated system is constantly modified by actual operation until the user is fully satisfied, and this method can adapt to the future system evolution. Once the field software system is formed, it is only the third phase of the application in the development of the application software in the same field, and the user can do itself, and the maintenance work is also greatly reduced. During the above development, software developers can divide labor. First completed the first, second phase of the consulting company or software, complete the logical system, providing the design parts, field-specific or general component libraries, and system integrated dedicated platforms, and system integration companies. Or users themselves to complete the third phase. The component software is based on object-oriented development, but it gets rid of the shackles of object-oriented theory. Although it is not complete in theory, the actual application progresses quickly. In China, the theory and practical projects of component software have been widely concerned. In theory, Peking University, Chinese Academy of Sciences Software, Jilin University, Nanjing University, Fudan University, Sun Yat-sen University, etc. have published a lot of valuable academic papers.