OO, OO, and its limit (3)

zhaozj2021-02-08  316

OO, OO, and its limit (3) Please contact us (this article reprinted from the Software Engineering Expert Network www.21cmm.com, does not represent Gigix perspective) 4. What is it after OO? I. From the development history of software engineering, after the 1969 Nato meeting, the "software crisis" became the focus of attention. In order to meet the challenge of the software crisis, people have made unremitting efforts. These efforts are mostly carried out simultaneously along both directions. First, from the perspective of management, I hope to implement the engineering of the software development process. The most famous results in this regard are the "waterfall" life cycle model of everyone who is familiar with. It is the first lifecycle model that appears after the "Software Crisis" in the late 1960s. As follows. Analysis → Design → Encoding → Test → Maintenance Later, some people are in the shortcomings of the model, and the rapid prototyping method, spiral model, fountain model, etc. are supplemented by the "waterfall" lifecycle model. Now they are widely adopted in the practice of software development. The efforts in this regard also enable people to recognize the standards of the documentation and the development of the developer and the user's communication. Standards for some important document formats are determined, including variables, symbol naming rules, and normative format of the original code. It is worth mentioning that in terms of the communication between developers, developers and users, because the Internet has provided a new communication method, there is also a new new development method based on Internet. That is, OSS (Open Source Software). Its representative as Linux (operating system), Apeche (Web Server), Sendmail (Mail Server), etc. OSS is a very promising development method, with an internet development tide, it will inevitably produce difficult to estimate over software development models. The recent IEEE Software Engineering Special Issue will be a secondary special issue. An international seminar on Linux / OSS will also be held in January 1999. All computer companies have responded to this, and Microsoft also realized the huge threats from OSS. At the end of August, Microsoft put forward an internal confidential document, specializing in their own response strategies, it can be said that the mountain rain is full of wind. Interesteders should keep this attention. The Second Direction of Software Engineering Development, focusing on the study of analyzing and designing in software development. The first important results in this regard are the structured development methods that are popular in the 1970s, that is, the PO (the process of development or structural methods). Po is the result of pursuing a process, modular, package, and higher abstract when using the computer world to express the real world. When people use a computer to map the real world, the minimum level of the minimum layer is nothing more than the high level and low level signal generated by digital circuit technology. The language of mathematics is represented by a binary string like 010101000010111. Such abstract hierarchies are extremely low, away from natural language, is unacified to ordinary people. People put these binary strings, propose bytes, and a higher abstraction of the ASCII code, so that corresponds to a letter from the natural language. This is based on some form of language, abstract variables, expressions, operations, statements, etc. At this level, generally trained programmers can be more difficult to develop. The next step is PO. In PO, people pay attention to how to use functions and processes to realize simulations of the real world and map them into the computer world. OO is the natural development result of this abstract hierarchy, which uses the concepts of classes and objects, and encapsulates the variables and the variables to the variables together, and use this higher level abstraction to express objective. world.

Typically, an object contains some properties and methods, which corresponds to a meaningful noun in the natural language, describes an object (physical entity) or concept (abstract entity) in the real world. This abstraction is as shown in the following figure: Abstract Hierarchy in the Computer World * XO (X? -Oriented) The highest abstract level * oo (object, class) * PO (process, function, variable) * variables, calculations, expressions, Statement * byte (4-bit, 8-bit, 16-bit, 32-bit, 64-bit) * Two-input string 0101011110001 The lowest abstraction level discussed from above and above We know that the development history of software engineering is that people continue to pursue higher Abstract, packaging and modular history. O is of course not the end of history. Although what is not an accurate to get OO, we can at least know that OO's XO will inevitably be higher than the OO level. The core concept it relies on will inevitably be higher than the concept of objects. As the object is higher than and inclusive, the function is equipped with the variable. Second, from Wittgenstein in the "Logic Philosophy" book, we already know that Wittgenstein puts forward the following ideas in the book "Logic Philosophy": * The world can decompose (The World) Divides Into Facts.) * The fact is consisting of atomic facts. * An atom fact is a combination of multiple objects (Objects). * Object is simple (basic) The Object is Simple. * Objects form the foundation of the world. That is: the world - the fact ---- Atom's fact ---- Objects such a chain from the whole to the part, from abstraction to specific awareness. In this level, the object as the most basic module constitutes the cornerstone of the entire acquaintance. The object consists of the entire world by complex associations with each other. This view is also the cornerstone of object-oriented theory. In the last paragraph, through the analysis of the computer world, OO will have to produce abstract concepts than the OO higher level of abstraction. According to Vitgenstein's ideas, it can be naturally concluded: this concept is fact (FACT). That is, it is an object-oriented fact that OO is fo (Fact-Oriented). So what is the fact (FACT)? Let us revisit Titgenstein again. First, the world is the sum of all facts. The world can be broken down into fact. Any fact or true, or is not true. (That is, the fact should return a Boolean variable, or True, or false. Second, those true facts, is made up of atomic facts. The relationship between atomic facts and simple objects is this: an atom fact is a combination of multiple objects (OBJECT). In the atomic fact, the subject is connected in a certain way. The object of the object is connected to each other in the atom facts is the structure of atomic facts. That is, the atom's fact is structured, which is considered to be a real world mode (FORM) by Vitgenstein. Here, Vitgenstein proposes several important concepts: facts (fact), atomic factments (ATOMIC FACT) and Modes. If we have the above reasoning process, we will draw a conclusion: object-oriented (OO) is a fact (FO), in fact (FO) analysis, design, and programming, we will focus on facts (Fact) Atomic Fact and Mode (FORM) These basic concepts organize our software development activities. These concepts are abstract than objects (Object) and class (Class) higher.

5. If the last limit is OO, if we are, then we must ask, what is the fo? Where is it? Is there a last limit? If so, what is the limit? This is a very difficult problem, but let us continue to think about it, see what the result can be, although it may be very stupid and childish. We know that the essence of the software is that people are mapped in computer programming languages ​​to the computer world to solve problems in the world to solve in the world. Here, three major categories: objective perceived world -------- Computer programming language ---------- Computer World (1) Computer World In the computer world, you can imagine, unit The number of transistors can be integrated on a piece of chip will have a maximum, and the law of Moore's Law will be invalidated earlier. In addition, the von used by most computers now. Nocman structure needs to be broken. (, Such as parallel computing) (2) Computer programming language now computer programming language is a type of form. To solve a problem, we must first construct an algorithm for it. In other words, we are helpless without algorithms. Such problems are becoming "uncapable". They cannot be generated by the map spirit. This is a limit we face. Then a problem has an algorithm, is it possible to solve it? Unfortunately, the answer is not. For those NP (non-polynomial) issues, especially NP complete problems, despite the existence algorithms, we are still unable to solve in a polynomial time. The famous "Hamilton Line Issues" and "Travel Sales" are all such problems. Their common feature is that when the size of the problem (or complexity) is increased, the time to solve this problem will rise in an index, so that although it is in theory, it is actually impossible. . Because the time to spend may already exceed the life of the universe. This is also a limit we face. It also needs to be pointed out that the current computer language is one of the form language, and it must also have all the limitations of all of the form language itself. In the history of mathematics, there have been three crises, and the third crisis is a paradox crisis that Russell's "佯佯". In order to solve this crisis, Hilbert put forward a grand form of formulation, attempted to make mathematics one for all the security of uncomfortable security. However, 1931 Austrian 25-year-old genius mathematics logico, Germany, proposed an epoch-era, smashed the formal dream of Hilbert. The Gödel Theorem showed us that the coordinated statement of the axiom system itself will become such a proposition that cannot be decided to "cannot decide" after being encoded into an appropriate arithmetic proposition. Imagine an expression is neither true or false, it's true and false to a form system (computer). It is not determined. So in this regard, Gödel Theorem is another limit we face. (3) Objective perceived the world now let us assume that software engineering has developed into such an ideal realm. One day we have achieved natural language programming, is there all things? In other words, can the natural language describe well, express objective sense of world? Vitgenstein has pointed out in "Logical Philosophy". * The meaning of the world must exist in the world; * Obviously, ethics cannot be expressed. Ethics is beyond reality; * There is actually something that is not expressed; this shows its existence; it is mysterious. (See "The Sound of Logic Philosophy" is that there are some things we can perceive in the outside world, but they can't express them. He then said: "For those who are unbearable, they must be kept silent.

转载请注明原文地址:https://www.9cbs.com/read-611.html

New Post(0)