Text UML Introduction - Customer Oriented instead of program oriented
content:
· 1. UML
· 2. UML origin
· 3. UML is
· 4. Use example and use case
· 5. Usage and demand, use cases and processes
· 6. Misunderstanding of use case
· 7. View of use case
· 8. Use case
· 9. Iterative needs analysis
· 10. Small knot
Software developers are always confused why software is clearly done, but why customers are still unsatisfactory. Customers are always confused why the software and the gap they want will be so big. what on earth is it? How can I fill the gully between developers and customers? As a third article on the software engineering column of the demand, this article will introduce you to this tool -uml (Unified Modeling Language, Unified Modeling Language) that links customers and developers.
The development process of a software system says that the customer is proposed by the customer, and then the developer translates it into a language that the machine can understand, and constructs a system to deliver it to the customer. When customers see the software, customers usually say a word: "Oh, it is what I said, but that is not what I want."
Even the developer is extremely responsible, spending a lot of time to understand customer needs, still avoiding the above customers complain. What's more, developers usually think of itself think that they have already learned the needs and like to add some new features to the software according to their own ideas. In such a case, the user's "real" requirement is even more secure.
What is the problem? Because most software development work is Program Oriented, not Customer Oriented. Developers believe that they have learned their needs; customers can't express or express themselves; developers complain that customers often revise their needs; customers do not understand why software development has so much restrictions ... All of this is all PROGRAM ORIENTED software development models to avoid malpractices.
In the final analysis, these issues are due to different positions of customers and developers.
So, between customers and developers, there is a lack of things to connect them together. Therefore, numerous methodology is regarded as the top priority.
UML
UML (Unified Modeling Language) is an object-oriented modeling language. Outstanding contributions have been made in software industrialization. Adopted by OMG (Object Management Group) as industry standards.
UML is a considerable representative example to solve the above problem. The essence of UML is a communication method, just like English to solve the problem of people around the world.
2. UML origin
The recognized object-oriented modeling language appeared in the mid-1970s. From 1989 to 1994, it was the Warring States Period of Modeling Language, and the number of no ten has increased to more than fifty kinds. Although conducive to academic development, for end users, understanding a lot of modeling languages is very unnecessary. Three powers in the Warring States Period of Modeling languages: Grady Booch, James Rumbaugh and Ivar Jacobson (known "THREE Amigos"), as well as their method: Booch 1993, OOM and OMT-2.
Booch is one of the earliest advocates for an object-oriented method, which proposed the concept of object-oriented software engineering. Booch 1993 is more suitable for the design and construct of the system; Rumbaugh proposes an object-oriented modeling technology (OMT) method, which uses object-oriented concepts and introduces a variety of independent representations. This method of object model, dynamic model, function model, and use case model are used. OMT-2 is especially suitable for analyzing and describing data-centric information systems; Jacobson proposes an OOSE method in 1994. The maximum feature is the use case, and the concept of external role is introduced in the description of the use case. . The concept of use case is an important weapon for accurately describing the needs, but the use of example throughout the development process, including testing and verification of the system. OOSE is more suitable for supporting business engineering and demand analysis. The world is a big potential, long-term must. Grady Booch, James Rumbaugh and Ivar Jacobson have their own way, and users have hope to have a standard, ending the status quo of chaos. In October 1994, Grady Booch and Jim Rumbaugh were committed to this work. They first unified Booch9 3 and OMT-2 and released the first public version in October 1995, called unified method um 0.8 (unicious method). In the autumn of 1995, OOSE's founder Ivar Jacobson joined this. Two new versions were issued in June and October, 1996, namely, UML 0.9 and UML 0.91, namely UML 0.9 and UML 0.91, namely UML 0.9 and UML (Unified Modeling Language). In 1996, some institutions have become increasingly obvious as their business strategy. UML developers have got a positive response from the public and initiatives established the UML membership association to improve, strengthen and promote UML definition work. Members at the time were DEC, HP, I-Logix, Itellorp, IBM, Icon Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software, Ti, and Unisys. This institution has an important role in promoting UML 1.0 (Jan 2007) and UML 1.1 (November 17, 1997).
UML is a collection of long modeling languages. From the birth of the birth, it has been constantly verifying and revising. It emphasizes a standard modeling idea, but it is not a standard construction. The mold process, for different software companies, modeling processes are different. UML does not have a specific platform, regardless of specific implementation. It is a graphical object-oriented modeling language. UML captures information about system static structures and dynamic behavior through different graphical representations, and establishs an object model. Different graphics look at the system from different perspectives. Due to the independence of UML, it can be converted into specific programming languages by dedicated tools, or transfer to UML from programming language code, which is called "reverse engineering".
3. What is UML?
The concept of UML includes two parts of the UML Semantic (Semantics) and UML Representative (NML semantics defines the structural model and behavior model. Structural model (also known as static model) emphasizes the system's object structure, such as an object's class, interface, attributes, and relationship; behavioral model (dynamic model) is concerned about system objects Behavioral action, such as objects, interactions, collaborations, and statories. Based on this, UML provides a complete semantic definition for the UML representator. The representation of the UML includes several of the main maps below: Class Diagram, use case diagram, sequence diagram, collaboration diagram, status map (State Diagram), STATE DIAGRAM, Activity Diagram, Deployment Diagram Semantic Semantic Semantic Due to our discussion is not a UML language, we are just a simple introduction to the actual application of UML. If you are interested in UML, you can see "UML1.3 White Paper". 4. Use examples and use cases
Use an example (Use Case Diagram) is the simplest and most complex picture in UML. Say it is simple, because adopting object-oriented thought, it is based on user perspective, drawing very easy, simple graphic represents people understand. Saying it is complicated because the example map is often not easy to control, or too complicated or too simple. The example of a system is too way, too precise, too much, too small, too small. The control of the use case can be regarded as an art. I suddenly remembered that when I just contacted UML, I didn't take care of the use case. I thought it was the most useless picture in UML. Now every time I think of it, I can't help but feel my stupid.
Use Case Diagrams Show Actors and Use Cases Together with Their Relationships. OmG-UML V1.3
The use of the example represents roles and use cases and the relationship between them.
A use case is a kind of classifier representing a coherent unit of functionality provided by a system, a subsystem, or a class as manifested by sequences of messages exchanged among the system and one or more outside interactors (called actors) together with actions performed by "OMG-UML V1.3"
Examples describe the consistent functional set of the system, subsystems, and classes, which are manifesting as a system and a message interactive sequence of one or more external interactive (roles). Is it a bit more complicated, an interaction of role (user or external system) and system (to design system), in order to achieve a purpose (Goal), this purpose description is usually a phrase, for example, open a letter of credit, Give the customer back and so on. This relationship is represented by an example.
A specific example of example may be like this:
5. Use examples and requirements, use cases and processes
It can be said that all things mentioned above are to be able to export the use case in the needs. The use case is to look at the system from the user's perspective, not based on programmers. In this way, the use case drive-driven system can truly use the user-centered, any needs of the user can be completely reflected in the system development chain. Users and programmers to communicate with examples to avoid the embarrassing situation of the cattle horses.
Once, system developers always acquire demand through plots, asking users to do what they do for him. After cute Jacobson invented the concept of the use case, the demand acquisition becomes asking if the user needs to do with the system. This is the result of the standpoints. Users often don't care about how the system is implemented (there are also a few cute techniques to be exceptional). For them, more important is to achieve his purpose. Conversely, most of the programmers' work habits are how to consider how the computer implements the user's request. Fortunately, the use case method can be adjusted to the contradiction between the two sides, because although the use case is derived from the user, it serves the user, but it can also be used to develop. When the development process of the system is based on the usual case, use case acquisition requirements, use case design, use case code, use case test. This development process is driven by example.
In the specific demand process, there is a large use case (business case), there is also a small use case. Mainly due to the scope of the use case. The use case is like a black box, which does not include any and some information related or internal. It is easy to be understood by the user (also including developers) (simple predicate phrases). If the use case is not enough to express enough information to support the development of the system, it is necessary to open the use case black box to examine the structure inside the black box, find the Actor and Use Case inside the black box. In this way, through the continuous open black box, analyze the black box, open the new black box. Until the entire system can be clearly understood.
The use case is important. The use case is only the expression of the use case. The expression of the instance is not just an example, and there are many ways, we will tell below.
6. Misunderstanding of use case
There have been some spaces to illustrate the simple and complex relationships of the use case. In many books describing the UML will first introduce the examples, and use some almost perfect examples to explain the example. However, there will be many practical problems during the actual use. I have consulted a lot of friends who use UML and find more or less problems.
The inventor of the use case Ivar Jacobson has said that Ericsson spent tens of millions of processes to study the process of establishing the USE Case mode, and now he is a problem that the Rational Company has also spent a lot of money to study the development process. Master spent decades is not so easy. Use an example to not only define an actor, use case, assistation is then simple. Use cases need to be a full effort in many details. I have seen a software company to implement the USE CASE diagram, but after spending a lot of examples of a project, the design coding stage returns to the previous development process.
The use of the use case is not just examples of example, and the use case is not a shortcut to the software community. It is a gradual process of introducing use cases in the software group and can be well fused in the software group. Since the contents of the software engineering applications are involved in the contents of the idea. Even if the number of the example map is also very particular. For software groups without OO practical experience, engage in such homework, it is necessary to work, it can be said to be "Wilderness to". " If there is no long-term accumulation and exploration, how to use the integration of software groups? 7. View of use case
Why is the use case effective? In the process of software development, most of the problems are due to the inconsistency of communication. The designer and user communication are not communicated, and the design is not communicating. Software development is playing football. Coach, striker, midfield, guards, to form faults, how can we win? Some examples mentioned above have also indicated that if the development team has excluded examples of ideas, the project will not succeed.
People who have used Rose know that in Rose's interface, there are four views: Use an example view (Logical View), Component View, Deployment View (Deployment View) . This idea stems from 4 1 viewpoints from Kruchten Master. It describes the focus and views of participants in system development work: users (entry users), System Integrators, and the focus and views of five people such as system engineers.
In order to be able to unify the four people different views, Kruchten Master proposed a Scenarios perspective (this word translation is not good, if anyone has better translation, please correct). This view is actually useful for use case view. In the unity of the use case, ensure that these four views can be collaborated to create a good development atmosphere to achieve the success of the software project.
So, how should I create a harmonious atmosphere? I still remember that when I introduced the UML language, we talked about several pictures in UML. These few pictures are not isolated. After drawing an example of example, it is usually used to specify the specifications of the example diagram, which is the example of the example in ROSE. In the case of the example, we can analyze the basic classes and organize the class into a package and assign it to the system's three-layer structure, which is a logical view in ROSE. After writing the basic class, we can organize class into components (for specific architectures, such as J2EE or COM), which is a component view in ROSE. Deliver component deployment is concerned about the deployment view in ROSE. (It should be pointed out that the view in rose and the 4 1 view of Kruchten Master have some access, and the component view in ROSE is equivalent to the development view of Kruchten master and Process perspective.)
(Note: There are two statements corresponding to View: View and views. The view is a formal statement, but I think most of us often use the opinion. So the views and views here are the same meaning.)
It is mainly to let everyone know why there is a different angle in the production of use, as well as different perspective problems in software development.
8. Insufficient use case
Although the appearance of the use case can solve a large part of the problem, it is not universal. The first is the matter of how difficult it is to get a UML-like design into a state that it can be handed over to programmers. The problem with a UML-like design is that it can look very good on paper, yet be seriously Flawed when actually has to program. (Fowler 2001)
The first is to give the programmer like UML to programmers to achieve a very difficult thing. The key to the problem is that the design looks good, but you have a problem when you plan to program it.
Not only is the communication between analysts and programmers, but also between customers and analysts. Customers are still unacceptable for use cases, which still requires unremitting efforts to make a unremitting effort to adjust this contradiction.
Since software engineering is the earliest proposal is based on the theory of architecture, it will make a comparison of software engineering and civil engineering. In civil engineering, the design graphs and models are developed to require strict implementation. but:
The models that civil engineers use are based on many years of practice that are enshrined in engineering codes. Furthermore the key issues, such as the way forces play in the design, are amenable to mathematical analysis. The only checking we can do of UML- Like Diagrams Is Peer Review. (Fowler 2001)
The model used by civil engineers is based on multi-year practice, and they are described in the special language of civil engineering. And the main problem is that this design needs to meet the math principles. And our only chart for UML is the same level check.
See the problem. Simply determine the design of this software in a simple design image without perfect theory is and its danger. More than one experience tells me that the use case written at the beginning is often scared at the end of the project: design and implementation have been completely out of touch. There are two main generations: between customers and developers, analysts and programmers. We focus here on the demand part between customers and developers.
The problem of demand is single by the UML language to solve unrealistic, and if the foreign software environment is so good, the customer is still not understanding. Domestic situation is worse, most customers do not have a basic knowledge of computers. For them, only one thing: "Flowers to buy things, the sky is justified." In this point, the software development process is difficult. Get your customers' support. So this is also an important reason for the exquisite example of domestic ERP projects.
At this time, the problem discussed is not limited to the technical level. The main focus has been transferred to management, marketing, negotiation skills, etc. The success of UML also needs this big premise. McConnell recommends that in a large project, the overhead of encoding and unit testing accounts for 15% of the overall project overhead. A large part of the time will spend on the BPA (Enterprise Process Analysis) and BPR (Enterprise Process Request). Because many companies are managed in the implementation of electronics, they are dominated by people. For software, no matter how success in it, if there is no accuracy of each link input, it is conceivable. A friend has developed a set of software managed by chain, but since the system runs, the accounting account has never been flat. The main problem is the input irregularity of each node. This problem is no longer a computer to solve. Speaking of this, there is a joke, a company in a specific industry to develop a management software, so I gave the person in charge of the company to analyze his process, suddenly he was surprised to watch me: "Are you in our industry? How can I be more familiar than I am. "In fact, I just analyze their processes with logical point of view and put some vulnerabilities. About business modeling knowledge, there will be large-scale space in the next article, here is not coming. Therefore, it is not the most important thing for demand analysis.
9. Iterative Demand Analysis
The continuous development of software projects, some of them are the best in XP. (For the introduction of XP, please refer to my last article). The impact of XP on demand is that the developer and client is no longer a customer relationship, but a strategic partnership. Customers will participate in the entire development process as domain experts and provide on-site guidance.
The XP approximate process is: the field expert group (including the development side and customer) will propose functions that need to be developed, reflecting the material card. The project manager cooperates with the material card to each iterative period. Each material card will have a small development team (consisting of analysts, developers, security personnel) to be responsible. Each iterative cycle will receive a product that is available for customers. By dividing the entire project into multiple iterative cycles, you can:
· The shorter iterative cycle is easy to predict, and the resource allocation plan can do very detailed;
· Provide customers with a feeling of actual use, and customers can discover their potential demand by actual use of their potential demand, and arranged in subsequent iterative cycles;
· The continuous final product is launched, the team can maintain a high morale;
· Different groups can be in different iterative cycles, reducing the risk of bottlenecks in traditional development methods;
It is undeniable that XP is the advantage of its new generation. However, it is to point out that in China, it can be used to use XP method companies to say that they can be numbered. Everyone can often see comments, it is not coming. However, there is a development environment, or there is a natural advantage of using the XP method. It is internal development. For example, a large number of large companies, banks, and institutions have their own software development departments. This kind of customer relationship is particularly intimate, and the use of XP methods has his advantage. However, it is currently affecting this development method, but it is in the system.
10. Section 10
Ping, the UML is still good, it is absolutely worth waiting for us to study. Especially with the gradual improvement of the big environment, UML will be likely to be a unified modeling language, just like its name. If the needs of Customer Oriented, this is difficult to know. To adopt advanced methods, it is more in good luck.