UML Interpretation (3)

zhaozj2021-02-08  454

UML Interpretation (3) - Start modeling Error.cao (this article reprinted from Software Engineering Expert Network www.21cmm.com) From the beginning of the design program, I didn't intend to put the model to others, I am not selfish. Quote Two famous words to explain my point of view: One Napoleon: "The soldiers who don't want to be the general are not a good soldier"; two Mr. Wu Chang's "economic interpretation" "to maximize the interests of the company, it will inevitably make the company maximize the company The person came to be a row. " Although I didn't pay attention to modeling since birth, I also started to learn to take a wood. Everyone is looking forward to the designer of the software model, but how to do it, start from that? When I write something to the UML column, I have been engaged in software development. It is the operation of Chinese traditional way - workshop, the company's three or fifty individuals, even a software team is not called. Although I am not the team leader of the software development group, I am the only person who puts the document to others. I tell my colleagues, I will deal with customers; I will write a detailed document; I will organize, so that a complex thing is simplified. One. I don't know which thing can be generated in addition to the use of useless philosophy. The software we have developed is for others. I have learned three elements that economics know the economy: Who is producing? What is produced? How to produce? We can focus on these three factors to discuss software modeling: A: Who is producing the software in the field of software, I simply investigate the process as: software demand analysis (in recent period "programmer" magazine Detailed discussion of Mr. Gao Zhan). Standing at the customer's perspective (the customer is the object of our production), there are two needs: First, the software product meets the operating specifications; Second, the software product is simple and convenient, friendly interface. Many people know that many of the problems in the software development process are due to collecting, writing, negotiating, modifying the software product code, document (some people put the code into documentation) due to mistakes, horses and tiger, not sure or not Clearly caused by factors. I found the interpretation of the two words "Customer" on the software engineering: refers to individual or organizations that have been brought directly or indirectly from the product, including request, payment, specific instructions or project risk bearers using software products or People get the results generated by the product. In fact, such two words that customers do not explain that we produce the production objects, as software developers have known the differences in software development, if the customer is a machine (of course, the machine is also human operation?), We develop drivers, operating systems, etc .; if it is commercial software for business software such as CRM, ERP or financial software related to it. This means that we are building a business building or a living room. Of course, it is not important for the essence of production because they are achieved. B: What didn't produce, I am an idiot, talking about the software for half a day, still asking what is producing? This is correct, but if you want to know the answer to this question, it is difficult to answer, although this is Microsoft style but must also explain it. In the issue of producing, there is some explanation, what is produced, of course, the user said, what we produce, I tell you: "We need users". " But what do users need? In the demand for software, we give users some rights: software can be required to use the customer language specification; require software to track the system business target of the customer; require the software to make a detailed description of the result or data; require the software to meet the quality requirements.

According to the software species, we can list a lot of examples of examples to analyze what our software developers produce what: operating system, driver, or media play software. . . . . . In fact, I have produced software production based on the design of the software designated by the user. C: How to produce the difference between the analysis and design: "Analysis is a science, design is an art", the speaker means that there is only one "correct" analysis model in all "correct" analysis models. It can fully meet the needs of a specific problem; of course, the modeling of software is equally determined. Demand analysis requires meticulous, accurate completion, while software design can play creativity and imagination, otherwise the world has not progress. During the actual operation, the software designer (I can't include it) often encounters a problem is: the understanding of the software is getting more and more in the process of development, the designer of the initial software designed and There is no such understanding of the software, so that there is an imagination: It seems that it is often changed. In fact, it is not that the customer's demand for software has not changed, but due to the communication or otherwise contact, the software designer has deepened the software understanding, and we have changed the understanding of the demand rather than demand. According to the requirements of the software, we know the purpose of software development. With the goal, we must find a road to go, and how this road is produced. First, the software design is inevitable to write documentation, according to software design specifications, there are 13 software documents, each of the periods corresponding to software development (Talk later). Second, according to the software's documentation, the code is the source code of the software, the development of source code is still the main share of current domestic software development (in fact, this problem is basically disappearing on me). Further, software testing, statistics, very few people are willing to do such activities, although everyone knows that this is important, in front of the interpretation (2) I have talked about my mentality. Finally, put the developed software in the power supplied equipment, and add hardware and software environment support to make it run. Software maintenance during operation. two. Do something about preparing for work, don't take the way. The model is also a Document (brothers using MFC should have a deep understanding), but how to make Document narrative detailed, complete, and organizational, for this purpose, us (of course, excluding me) uses UML to define a set of standards. Standardize the writing of documents. To this end, understand what you want to achieve is a model of modeling. On the basis of understanding, we can't ignore the simplicity of reality, so good software designers spend most of the time on building system models. Occasionally write some source code, but that is just to verify the problems encountered during the design process. This will make their design more feasible. I have encountered a series of issues in the practice of the project, but the problem is reflected, and the reason has the following big problems: 1. The designer is the designer designer set up the model, and then fill the specific steps of the software development in detail to each programmer. If the programmer's level is too bad, then write some original code examples, so Since, it is not as good as you write, and the designer is designer, does not need to participate in software original code development, but should participate in other documentation. I am used to it as a teacher in kindergarten.

2. Education Your programmer, you spend a lot of strength to build a very mature system model, but your audience can't understand them, even worse - even why do you want to build a model. Then your work is meaningless. Teach your developer's basic modeling knowledge; otherwise, they will only look at the beautiful graphs you draw and continue to write irregular procedures. In fact, this problem is so practical, but it is also the problem that the problem has plagued my current development status, for example, I made a process with Playcase development tools, making the program to write modularization, the first no one understands this Design documentation, I started telling so modeling; the second developer has learned other modeling languages, and the development tool fingertips, but the tool is not important, it is important to use it to realize things. In addition, you also need to tell you some basic knowledge of some need modeling. Explain your use case and user interface model so they understand what you want to express. When each person can use a universal design language, your team can realize real cooperation. 3. Apply multiple models in existing tasks When you collect demand, consider using the use case model, user interface model, and class-level models. When you design the software, you should consider making a class model, sequential diagram, state diagram, collaboration map, and final software actual physical model. Program designers should slowly realize that software implemented only with a model is either unable to meet the needs of users, or it is difficult to expand. 4. Prove that your design is feasible in practice, you should first create a technical prototype, or called "end-to-end" prototype. To prove your design is capable. The software design is the most taboo is the use of immature technology to develop software products. My friends and talks when I say: "I use the most mature technology to develop the most practical software", "First, customers need a mature software, Stable, reliable, if the latest technology is adopted, due to the detection of time, it cannot be guaranteed to operate the stability. " You should do these things in the early days of development, because if the software design is not feasible, there is no matter what measures taken in the code implementation phase. The technical prototype will prove the feasibility of your design, so your design will be easier to support support. 5. Management Interface and Using Interface Components You should define interfaces between software modules in the early days of the development phase. I am an e-commerce software. For the use of the use of COM / DCOM components, I need to study in depth. The purpose of this study is to make the interface of the software module convenient and easy to manage. Interfaces or interface components will help developers fully understand the software design structure and achieve unanimous comments, so that the module is not important after the module development team is determined by the interface of the module, the module is not very important. Fundamentally, if you can't define your module "What will look like outside", you are sure you don't know what you want to implement within the module. I want to say anything in Einstein: "External confirmation, internal complete". 6. The transplantability and packaging transplantation of software is a specific and actual work in software development. Do not believe that some software tools advertising (of course advertising is commercial nature with software). Even if only the software is regularly upgraded, it is also as important as it is as important as the other operating system or database transplant. Remember "fun" from 16 Windows to 32 Windows (Microsoft started to earn our money again)? When you use an operating system, such as its process communication (IPC) policy, or written a stored procedure (DCOM / ISTORAGE or other policy) with a database. Your software and that specific product combination are already very high.

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

New Post(0)