Source: http://blog.163.com/lzxin_2005/blog/static/15368423200826104042609/
Most software personnel should be not unfamiliar with UML, what is UML. It is unified modeling Language, a modeling language that is a powerful tool for requirements analysis and outline design. In your understanding, what is UML? Is it just a collection of graphics, text, and symbols? Or is it a language that uses text, graphics, and symbols to describe all kinds of things, activities, and relationships in real life? I have heard two kinds of voices: many software practitioners and even software companies believe that UML is very important, system analysts, software designers must be proficient in UML, this view can be from the majority of enterprise recruitment information: "XXX position, proficient in UML ...". Another part of the people said that UML does not seem to be very useful, using UML graphics to draw a flowchart is a good choice. For the former, there is too much exaggeration of the suspicion of UML, which also directly led to many beginners in the country has not yet figured out what the UML is blindly learning and the pursuit of UML, the final results are very little; There is no need to use UML at all, which makes intuitive communication between the roles in the system difficult.
What is UML.
1. UML is a standard. Speaking of standards here, it seems too esoteric to say that the agreement may be better. UML is a protocol, which is a kind of communication protocol between the system analyst and the designer, the software practitioner and the customer. As if the FTP server program and the client program need to communicate, first of all, we must follow a protocol (FTP protocol). Through the use of UML, system analysts can not only very intuitive record of customer needs, for system design to provide specific, reference system analysis model, and can easily communicate with designers and even customers, because everyone follows the same agreement, communication becomes easy and intuitive. From the customer point of view, if you want to better express their needs information, and be able to communicate well with professionals, is not also should pay more attention to UML.
2. UML is a unified modeling language. What is "unification". It says that UML is not just a "patent" for software systems, but that the non-software industry can also use UML for modeling descriptions. At the same time, it also better confirms that "UML is a standard" theory. What is "language". Because it has its own syntax and semantics. The elements of UML have their own semantics, but the organization of the elements follows some grammatical rules. In terms of grammatical intensity, UML should be the same as the grammatical intensity of natural language, so UML should have two semantic problems. UML should be a kind of descriptive language (DL), which describes the idea of system analysis and system design.
UML is not what.
1. UML is not a methodology. UML does not provide a solution to the problem domain, which is the responsibility of the system analyst and software Architect. It's just a language, software that supports UML standards is also just a set of system modeling tools, like the general programming language, such as the C # language itself does not help you solve the actual business problems, how to solve the problem, you need programmers to use the C # language to achieve programming. On the whole, the idea of system analysis, design and construction comes from the system analyst and software designer itself, and not from UML. The system analyst and software designer's ability to analyze and design the system is from years of project analysis, design experience.
2. UML is not necessary. A great system analyst or software Architect may not be able to understand UML, but not without strong analytical design capabilities. Not knowing UML makes it difficult to communicate intuitively with each other, but does not necessarily affect the expression and communication capabilities of the analyst and the architect, and if they communicate in another way, it might be better than UML.
3. UML is not a certain. When using UML modeling, there is no "absolutely correct" or "absolutely wrong" model, only to say that the model is reasonable or unreasonable. For example, it is perfectly possible to use UML to model A student management system based on a two-tier (two-layer) structure, but it may be more reasonable to use a three-tier (THREE-LAYER) structure. This also fully proves that "system analysis and design is good or bad in people, but not in UML" this conclusion.
Therefore, we should treat the UML correctly, only after understanding these problems, we can better learn and use UML, so that UML better serve our analysis and design.