"UML practical" preamble

xiaoxiao2021-03-06  40

"UML practical" preamble

Cao Wei (from China System Analyst) March 03, 2003

I have something to say……

The road is long and the road is long, I will go up and down - Qu Yuan "Liu Sao"

The readers of this book are very broad, but there is no restriction, but it should be noted that the book is not to introduce the specific software development to the reader, but tell the reader a development process or idea to let the reader know how to use the programming language. Realize this process or ideas.

Before writing such a book related to the software engineering, I thought of the software process (cmm) proposed by the University of Software Engineering, Carnegun, and I just met this new name. But I have known the fourteenth point of Dynasty's fourteenth point on the management of the company. I also recognize it as "motto".

How to develop and manage the relationship with management, in fact, software and what all pull the relationship, can't pull the neighbors, the recent human wisdom is also activated, thinking about the problem of software, and proposes to solve it.

The only human common wisdom: standing in software development to see software development.

Now, the book has not started, then we will talk about software development.

I used to learn nuclear physics. Because it is amateur, there is no stress, I want to learn to learn, don't want to learn to do other, very good! There is no way to learn thermodynamics, about the formula of entropy is more complicated, I have always had a point of view: "Things are complicated is a good thing", I want to have a simple method in mathematics, I start learning mathematics, from the foundation The start of mathematics, aggregation, group theory, topology, chart ... chaos, anyway, it's okay, just learn something, learn, you can't figure it out, you can't ignore (ignore).

Later, others said that the collection is a mathematical basis. I began to pay attention to the aggressionism. I found that there is a group of people like it. One to listen to the computer system, there is this section in the discrete mathematics, I know that I haven't worry: For the exam.

What is the relationship between computers and discrete mathematics? Don't mention this relationship first, I want to discuss with you to discuss the highest deeper theory of modern physics, because I have learned, so I said it is very simple.

Simple there? At our point of view, it feels that the problem is unchanged in people, and the problem is changing in it. Einstein's common example is a list of open trains, people standing on the train feel that the train is not moving, people standing outside the train think the train is moving. Therefore, relativity brings us a theory: standing on different angles to observe the same object to get different results. Now we will observe a cabinet based on this theory: We naturally know that we are still on the front of the cabinet, now we take the door of the cabinet as a face, we can also know the top, below about. If you take us, we will observe the door, and the situation has changed. Ok, let's take a look at this whole cabinet, put us in different edges, different directions, we get different results from the observer. If we are in the cabinet, we turn over, the cabinet is followed, although there is no change.

Back to computer and discrete mathematics? Simple, let's talk about software development and collection (SET): there is a simple relationship in the collection (I think that people who see the book know, of course, we also know that the collection is simple and mutual mutual mutual mutual mutual mutual mutual mutual mutual intervals Relationship.): A few relationships such as intersection, parallel set, difference set and replenishment.

Look at the software development programming language, whether it is BASIC, C or JAVA or assembly has a commonality: attribute, method, and procedure (not called in compilation, but the meaning), this commonality and collection are compared: such as an array, It is an orderly collection, operates to the array, takes out the number of numbers in the array (orderly) or set (disorder), which is implemented. The function operation is a combination of a series of machine operations (operation set), the machine operation has a transfer instruction, which is not transferred from the register, which is moved, and now the memory used by the advanced operating system, the hard disk, it is coming Playing a series of data, then take the data from it, then put it in another place (where there is an identification code address code). We take the operation of an orderly collection, which is the integration of the collection, the mathematical algorithm is just a law, just as the addition is the two sets of pane, multiplication is based on the rules of the addition. Mathematical rules, there is nothing more basis more than the collection.

Do not figure out whether the collection is the basis of mathematics, this is not important, or there is no relationship with our book now in hand, but I want to ask now: What is the purpose of this book? Is it to learn how to write a programming language design language, or to learn the software design language of design software? Then you will be disappointed, I just introduce what kind of ideas we need to design our software. There is such two books in books "Thinking in Java" and "Thinking In C ", I have two books, one placed on the bookshelf (collection), one placed on the case (), computer practical technology The development is so fast, but the principle and foundation have not changed, but it is not the mathematics foundation we mentioned earlier. If it is that, there is nothing to do, and this foundation is what we see in this book.

The software industry is divided in the information industry, the technology of software development and services is widely referred to as IT technology. From the manufacturing of electronic pipe, its so-called IT industry is packaged by high-tech industries, wrapped things It is rare to see its kernel, but when we are studying software, it is necessary to know that the technology we face is the gods?

When we turn down the door to discuss the core technology of the software, we have already packaged ourselves in a so-called marginal problem in the computer.

The marginal problems I have been different are different from the marginal science in the field of engineering technology, but it is said that there is no explanation of the document (document) can be expressed, and the procedure in the program is not defined, unless It is a axiom, otherwise it may have a lot of disputes. In this way, my point of view is different from you is a reasonable existence.

About the core problem of software is that each programmer is concerned, on the one hand, the software core problem caused by human psychology is very mysterious due to technical issues.

This mysterious problem is not a smile of "Mona-Lisa" with historians. I have a long time from the day of the school. It is a very long time to be in this question and psychologically. I am a idleman. Basically, I have a few hours a day in thinking about life. The results of thinking are very simple - I wrote the only novel in my life (I decided not to write like this kind of interest).

Computer industry personnel believe that the core technology of the software uses what kind of way software produces software. I said that all people all in the world can't refute, I have no objection, and I will give my hands! I like thinking, I just like to take a question, think about it, why is I agree? What is it in favor? Why is it?

I have turned over the 2000 historical artifact - computer software engineering specification, internal explanation of the 1995 Information-Technology (book on the information technology) software survival process in 1995, I haven't thought of "The old" society has the technology of world synchronization.

Others have got gold in the pyramid, and I got the "martial arts secret" in it, although it is the foundation of Kung Fu, but it can achieve the gods of the gods.

Those, the activities in the survival period can be divided into seven basic, the main survival process, I will explain:

The process is 1. Management Process: From the air to the end of the mechanism constraint to the hole. 2. Get the process: software demanders and software developers give each other to each other. 3. Supply process: Software developers provide software products or services from demanders to obtain funds. 4. Development process: write a document and code process. 5. Operation process: Software requirements use the process. 6. Maintenance process: Change the process of deficiency in software. 7. Support process: Training and guiding the process of user use.

I have seen it for a long time, I don't understand, the first sort does not understand, I don't understand the second process. THE INVENTION: Three processes such as operational processes, maintenance processes, and support processes, they are delivered to users during software. What is the most important thing such as the current demand analysis of the current software? We can't find new things in old antiques (although omg has been established? Year), on IT, I now think that I and T are equivalent. Regardless of the previous things, we must have a process of establishing, evaluating and improving.

The original process is as follows:

Drawing this picture, I think of last year I did engineering, because of the fact that the construction of the software, the Department of Engineering, the Department of Engineering, Running the legs, more than a package, why there are so many things, listen to me slowly . The project does not want to maintain it, change the ERP, which can hurt our original customers, every time a colleague talks, I feel that it is a project management software to coordinate those messy things.

ERP: I personally think that our ERP is to sell management solutions to others. Development from IBM's transformation computer has begun to transition to serviceability, of course, this is not IBM, but at least a staged sign, and ERP is one of such services.

However, due to emotional plus other issues, a fixed mode is formed in our brain: doing software development than demand analysis, engineering management and technical support are high. Since this pattern is formed in the brain, it is expressed in daily life, of course, first in office conditions and salary.

Not me, it is the leader who did not expect that due to the idea of ​​the level, each type of person is only internally communicated, and the development of the system has been severely connected and the market and engineering norms are not connected, and the reality is separated. Everyone has emphasized the support and coordination of each other when the meeting, but will start "closed the door" again. First of all, I should think of: The core issue of software development is people, people who are coordinated.

I want to be the most embarrassing!

One of the software development perspectives: people coordinated with each other have made an orderly manner.

Thinking is the root of the problem. From the system's demand analysis process, the implementation and control of each process of software is analyzed. (Still analyzing in 1995, it is difficult to analyze, but it is easy to analyze the essence of UML from this evolution of UML).

1. Management process

What do we need to do? We must set a range for our work. What do you need? : How does the plan (this period is Plan Phase) How to implement a plan? : How to start in modeling. Review implementation results? : Various mechanisms of management. Complete delivery? : Problems and projects during the contract.

There is also a problem is something on the details. In the early days of the design, many problems are not necessarily visible: Is it the level of our plan? The level of the step of the facility process? The level of review?

The things on this detail need to be quantified, requiring time to specify the time to regulate the implementation details to an extremely tiny module. Say a case: I originally developed from the communication software, there is a big project, our technical officers cannot be fully grasped in macro, so this project has been dragging, the reason is too simple, he does not come out It is not possible to start implementation, things are said, but not completely wrong, 1: The technical director is not a management person, it is a master code, the design is his program framework; two: He is not written program code However, it is impossible to grasp how to write, write a little, discover and enter the system, come back, then come back ...

This problem is not what we can't write, but we are thinking about a problem. What system is we compiled, how big is the system, the association between each module, how to associate, what interfaces have been left after upgrading, So, we are a misty water, this is what we should know what is missing?

Procedure: I still explain first, in China, there is no way, and there is a difference between the program and source or documentation, but all documents regarding software design will be full Documentation, may also contain tips for writing program source code.

2. Acquisition process

Starting and scope definition: Calling a group of people ready to work, how much. Provide a feasible reasonable design. Preparation for tendering: Contact the needs of yourself and our customers and statistically relevant funds. Preparation, Negotiation and Modification of Contracts: Plan details and contract terms and inventories, including sub-contract terms and inventories. Develop service content and develop content related to the content of the service and the charges charged. Supervision of suppliers: To mention the requirements for you to meet your requirements, that is, a reasonable demand document from software needs. Provide software running soft environment and hard environments. Acceptance and completion: The implementation status of software use. Detailed information according to the detailed acceptance of the contract or protocol. How to get it? What is obtained?

This process is so important (I said in my heart: In fact, every process is very important), my own experience is a lot of time as the developer, the main code writer, the specific direction and overall idea of ​​work. What project is coming, no matter what, just tell a question, the programmer immediately starts to write the code he thinks to write, writing, writing, is not very right, only to ask about the details of the project.

"Workers must have a good fault, must be aware of this," there are two explanations, one is: What to do? The second is: What do you do? For example, one monk cut the firewood, one of the instruments is the knife, the second understanding of the device is to cut wood, how to understand? The result of cutting wood is a pile of firewood. If you are not ready to cut wood, such as a car, then he can't return Chai Shun, of course, you can carry a little bit, the software development is also the same, everyone is not Do you know what you want to encode? It is like a knife, starting to cut wood, cut a lot of firewood (write a lot of code), look back, don't go back (this code is not related to the project). The annoying programmer begins, why no one tells him that there is no? Quot; car "! 3. Supply process

Prepare bidders? : Software preparatory, what is the economic feasibility plan we think is based on technical feasibility; intended to cooperate with this basis. Sign an agreement? : Both sides or more parties believe that each feasibility program (technical solutions and economic solutions). Preparation plan? : Develop a variety of programs, analyze plan, design plans, development plans, implementation planning and maintenance programs, and control of the above programs. Implementation and control? : The implementation of the plan, personnel, projects and progress controls. Review and evaluation? : Item indicators. Delivery and completion? Can you have time to rest?

In the process of supply, you should pay attention to the following: Provide a reasonable framework for the project. (CONSTRUCTER). Develop software and service based on contracts and internal resources. Weighing internal mechanisms for reasonable division of labor, solving technology, control, and implementation. Quality assurance and quality-related risks. staff training.

The process is preparation before the code is, when we go to cut wood, we think of "car", now we are "technical transformation" for the car, let the running, more, and do not leave on the road. To this end, we must also think of preparing a spare tire, and repair tools, you must also prepare enough oil (if it is an old-fashioned carriage, you will bring more horses).

During the implementation of the project, the risk management is the heavy weight of the success or failure of the project. Recently, various risk analysis of related defense crises is frequently mentioned, and the crisis management training can be seen everywhere, perhaps the "9.11 incident" prompt.

In addition, we should also pay attention, you have thought about it, now we may need to have a few hundred stocks in the car (that is, the user's demand is very low), but after a while, we need a car to load a few Jack, we need to consider if there is a thousand pounds of the car.

In the "The Unified Software Development Process" of the UML Trinity (G. Booch and J. Rumbaugh), the dog's nest should be changed in the near future. Cheng Building? I think that there are two kinds in the dog's needs, one is to turn the dog's nest into the building, and the other will lose the dog's nest and don't have to ask.

Software development is not the same, everyone wants to develop, but you have to have a development and good preparation, otherwise the dog nest will always be a dog nest, it is impossible to become a building.

4. development process

Establishment process: Develop a reasonable software operating environment based on the user and develop software based on this environment, the software environment is the software operating environment that users can provide or willing to provide, as this may increase the cost of the user. System Demand Analysis: This requirement includes staff, funds, equipment, and related test environments. Software demand analysis: the environment developed by software. Software Structure Design: Structural designers design the software architecture based on system analysts, including interface designers interface design. Software Detailed Design: System Modeling, Document Writing (Development Process, Development Mun News, System Test). Software code: Document writing, mainly the program source code. Software Integration: Merge each module. Software Test: Software tester is tested according to the test document.

The development process should pay attention to the following: User documents, design documents, development documents and test documents. Data definitions and database requirements and design. User operation and execution requirements. Coordinate external demand. Structural design and integration, guarantee consistency. System testing includes and modifying records, updating documents.

Software developers in the world agree that the process is extremely important, I also, in the development of software, the process of technological combination management, is the birth process of the product (from not yes), no matter how software is developed Good and bad, but a little is affirmed, the project is implemented and end.

The program designer and system designer also should cheer, we go to cut wood "car" back, we now never take much firewood (not there is no firewood, must have), it finally returns the firewood As for how much the contract is signed at the time, it is a problem with software developers; as for if there is no on time, it is the project schedule error; but how to guarantee the number of "car" and return within the specified time. We need two kinds of people, one is to cut wood, driving, the other is let who go to cut wood, who go to the car. We use two people to develop such two people as: Programmer Analyst and Coder (System Analyst).

5. Operation process

System Operation: Doing things yourself yourself. User support: If the user needs to do, if not? How to do? Track user implementation, provide services in real time: a package of business units. Real-time modification interface: convenient to operate.

The operation process is already a matter of engineering (project implementation). It is necessary to use different interfaces for different users. The simplest is the language of the use of each country, then multiple languages ​​must be supported. This process is related to more users, and it is not described.

6. Maintenance process

Problem Modification / Modification Report: Transforming. Implementation modification: treatment of disease. Records of maintenance: Let others know that avoiding heavy commissions. System transplantation and upgrade: Establish "sustainable development" process. Select the modified implementation on the analysis basis.

In order to have a few hundred pounds of cars, there are no thousands of kilograms of cars, not to re-engineering a few kilograms of cars, but in the car of hundreds of pounds, let it have the ability to pull thousands of kilograms. In more than 90% of the case, a few thousand kilograms of the festival province funds and time are made. Similarly, we can also combine a few hundred pounds of cars to pull thousands of pounds, this way is that there is no problem when establishing a hundred pounds, if there is a few hundred pounds of things. Let me, then I suggest it to do a car. Of course, this metaphor is not very cut. Once the software is developed, the value of its copy is almost equal to zero. It means that we have made a car, and the latter car will come from the car.

7. Support process

Production and sales: This and technology have no major relationship, but guarantees the continued development of the process, hears the most words in the past few years: "Sustainable Development".

Also add a process: support process, this process is especially necessary for mass software, which does not require a specific interface or interface according to the user's personalized demand, but provides a general platform for users. The platforms of this platform are configured as needed to configure their software application architecture as needed.

The book talks about software development. What you need to know is that the software is developed, so the process is very important. When the acquisition process is completed or during completion, you need to do some simple but detailed analysis. Decision issues (this question refers to the feasibility of software development), which is necessary to provide good analytical design for software feasibility. Finally? Of course, the documentation is written (including source code writing).

Note: Some of the software engineering sometimes referred to as part of the software. In the basic chapter of the software engineering, we will detail the software development documentation.

The engineering ideology of software development is beneficial to the management experience of industrial production, but it may also enter a historical death alley, and the management of industrialized production is the 20th century economics (being scaled in economic management), etc. Crystallization of wisdom. However, the software industry is also slightly different from the management of industrial processes.

Industrial management objects are machines and software development management objects.

CMM's idea proposes four levels of interpersonal relationships in software development. These four levels are adjusted according to various companies' frameworks, not universal methods.

UML is a language, in the perspective of mathematics, language is a symbol, since we are symbol we are rationality, publicity, and versatility, because such symbols will might need to be identified by billion people . In 1998, C became industry standards. In the last two years, I think UML will also become industrial standards.

From the standard, the development process of its software is already more confusing. I have to explain it. Why do I choose the standard of China Information Industry to analyze:

1. UML is a tool for software development process documents. We have a certain process. Natural will be prepared before going to cut wood. Domestic standards also tell us that we need a car, but we will cut what car needed to do so The explanation, there is no problem if the current car does not meet the requirements.

2. We are engaged in software development in China. Although everyone is shouting software outsourcing, I have seen every company, I remember that my friend and I said, the customer asked us what, I told it, What do you buy, what I do, you do it. I don't want to hit the person, although the software development standard in front of us simply said that in the order of the book, in the same comparison with UML, I can find out how much we have behind software, find a difference, follow the international Shuttle.

3. The computer books and related educational software are not unified in the name of the name. I am very angry that some translators use "translation software" to translate foreign excellent books, and the terms are everywhere. I saw the word "use", I didn't want to solve their words for a long time, turned from comments, found that "use case", the term "case" is basically interpretation in Chinese. It seems that there is a translation of "use case" before this book, and the people of the post-translation will not see it, but they are closed "car". I will explain the standard, tell everyone, UML is also a standard, so the standard must be cautious when it is introduced to China, and it is necessary to translate foreign standards as China's information industry according to the standards defined by the National Standards Bureau. Standard, you can't do it, misunderstood your child.

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

New Post(0)