Pan Jiayu: Thank you for your visit. Today, the first topic is the latest trend of software engineering. From my understanding, there are four aspects of Ivar, the first is the use case; the second is UP; third, Ivar leaves Rational to do your own new business, Ivar Jacobson China Co., Ltd. is also established in Beijing. What is it? This is his new business. Everyone can care about it; the fourth theme is to listen to the image of Ivar's new developments in MDA.
The first topic is the use case. There will be a lot of confusion when you use the use case, how much is the use case? What is the relationship between business use? When I was in class, everyone also asked me, I also answered, but I didn't think about authority. Today, the use of the spokesperson came here, the opportunity is relatively rare, and everyone can ask IVAR in what problems in use.
Question: The so-called MDA, Ivar now proposes Usecase, I have a student now, how to develop a project from Usecase, now doing it is designed, what kind of process? The design is rough, explained by the sequence diagram, how to achieve functional needs? How to complete this definition. What are the most critical from the design? We build a class diagram, a sequence diagram, or a collaborative figure, the purpose is to model, modeling is to build a class, fill the properties and methods. How to get a class from user needs, get the properties method of this class, all classes are complete, and the model is fully established. The sequence diagram is a message, a message to the class, and the active diagram is also a description, I am understanding? That is, what is the most important?
Ivar Jacobson: Answer the first question, starting from business modeling to writing code, which step or method is the most important? The sequence diagram is the most important figure. The activity map is to help you solve how to assign on your object, how to assign every duty, here's a very important role, the sequence diagram is largely helped you answer Usecase How is it implemented, so the sequence diagram is the most important. But there is a very important point, the collaborative map may be more detailed, it is to do what you do now? If you have already reached a very low detail level, the sequence diagram will help you. The key to the sequence diagram is that you have to have a lane, your lane must be clear, otherwise there will be a chaotic lane, and the whole thinking is chaotic.
We used to use the status map and activity map in the way in Telecom, which is a good way to express the status of the process running. This is a good way. In other environments, we highlight the activity map must have a lane.
In the business process, we have long described in the business activity map, which is much more. But what we see is that there is a lane to give you a clear mark in the business process description. If there is no clear mark, the business process can only understand the business process, because others do not have anyone Method as a reference to understand what this business process is saying, so this is a very important.
Question: It is not to do it.
Ivar Jacobson: The most useful is object.
Liu Xinsheng: I want to ask questions, you have recently studied AOP, what is the latest research progress in this aspect?
Ivar Jacobson: In 1969, I have been thinking about USE Case. One day, I suddenly realized a new idea to help him solve how to describe user needs, how to turn through the entire development link, in this Thinking of the concept of use case, what is a very big shortcoming at the time? User Case is a very good concept to be designed with use case, you can use it to test, convert it into test cases, but once you go to the implementation phase, when you really encode, you find any Case, collaboration map Participate in USE CASE, which is involved in each module, which is a problem for long-term troubles. In 1978, I published a technical report inside Ericsson. It is to discuss the attention of many components. In fact, why do such things? I solved which words we often encountered often in the object, a "spread", a "entangle", the use case encountered this module will have a phenomenon, which is a walk and entanglement, in order to solve this problem, it was proposed. A solution, but I loved the interior of this solution. In 1986, I wrote a paper in an object-oriented annual meeting, and an explanation of the main thinking.
What is the problem in this? That is, we now see that the use case starts through a missing chain in the middle of the test, that is, this block is achieved. The previous paper proposed how to cut these attention from the head to the end.
With the help of programming methods, we can do a matter of doing things, in the project, you can detail the responsibilities of the development team according to USE CASE, some people do two USE Case, there are two people to Use Case is designed, some people have written code for several USE CASE, which is can't do before. It must be an allocated component when writing code before writing.
Transparency: Just said that the use of the US Case implementation provides help, how to ensure a combination. How can I guarantee the guarantee of the contract when it is realized?
Ivar Jacobson: It is actually a one-on-one correspondence, and each Use Case extension corresponds to the relationship between the same level or the relationship between the peers, which is actually used to reflect the use case. There is a correspondence between the extension.
Pan Jiayu: I have a question. Do you have a tool that you have used, for example, you try to use AspectJ to do something?
Ivar Jacobson: I have written some small programs with aspectj, I know that there are some good friends who have developed with AspectJ, develop a lot of big systems, so it can find big problems in large systems, these key questions What changes will occur on Aspectj, which also proposes a support in AspectJ in the UML standard, including PointCut.
Qianling: There is a communication system in our work. We will use some timing pictures. We pay attention to Dialog, how to ensure the model is correct, not this picture. I want to have related technologies in this area?
Ivar Jacobson: Between 1967 - 1972, I used the sequence diagram, including sequence diagrams, activity diagrams, and organized two large timing charts in 1967 and 1970 and 1976, respectively, A phenomenon, we have a very important discovery, with a sequence diagram, Dialog is a lot, we have a lot of Dialog, and we have found that Dialog is not so much. At the same time, when each processing is described, this place should be very careful to identify the conversations of which places. If you are careful, there will be so many Dialog. As far as I know, UML2.0 put a lot of new things to help solve this problem. At the same time, it is recommended that Peri Nets and UML should be well combined to solve this problem. This is more academic issues. Pan Jiayu: There is an online netizen's question. Please rate Mr. Ivar evaluate the USE CASE in UML2.0.
Ivar Jacobson: I have not participated in the formulation of UML2.0, but I heard that there were plans to have a big change in USE CASE at 2.0, and I was very opposed to some suggestions they mentioned, and now I recalled. At that time, it was very correct. If you don't object to those who change, we have no way to combine Uses and face aspects today.
If it is just a problem for 1.1, I have a basic assumption that 1.1 to 2.0 did not change much, I am very satisfied in the current UML standard definition, why? First, from the perspective of the form, you can identify him, using it, itself has behavior and properties, so this is a good. Fundamentally, USE Case is not something that has been proved from mathematical, is a very practical thing, which has been in form that it is already very good. Another angle, use case has many uses in UML definitions, showing a powerful expressive force, can be used in software modeling, business modeling, can be used in user modeling, in the user experience In the system interaction, it can be used, and a sentence summary is a lot of names in a beautiful child. Use Case is such a thing.
Question: I want to use cases in system development? Use a good communication to communicate with external communication, can you replace an example in a sense. We have made a project in the early stage, communicating with customers, the internal exchange is also very good, the project is very successful, but there is no example of using any case.
Ivar Jacobson: This is a bit like a philosophical problem. Is it necessary to use Use Case? You should ask you, you just talk about the internal communication and external exchanges, how to ensure the connection between communication during internal communication, How did you manage? How many people do you have so many people, what is the connection relationship? External exchange has so many external relationships, how to get it to form a complete picture, if you really think about these two questions, answer these two questions, actually you have consciously unconsciously used Use Case idea, although there is no picture of use case. So USE Case is not something that makes you feel very difficult, it is very in line with intuitive things, including talking about test cases from USE Case, including the entire integrated test, actually testing the use case, like these It is very in line with the intuition of everyone's development experience, rather than letting you have a lot of things to do. In fact, this is an intuition, everyone thinks, using no use case is another thing, just make it more systematically, after the system, it makes this thing more like pipeline line At the same time, it also brings a lot of value to the team.
Pan Jiayu: The following will enter the second phase, about UP, unified process, this unified process is formed, and when a product is sold, this is the achievement of Ivar. Nowadays there are many agile ideas, I think everyone is confused about the unified process and iterative development.
Qianling: UP is the software development, the difficulty is high, the difficulty is not available, I want to use the new system? This project has used many new technologies, not an inventive project, not letting the process guides inventions, this does not need, we can think, but how do you put a lot of new projects in the process, this is like this meaning.
Ivar Jacobson
:
Our understanding is that you are asking an innovative project or a complete new project. Each process can support you to do innovation, but you can't help you do creativity.
I haven't really understood what you mean, I understand what it can't be used by RUP? Didn't see which items do not apply to RUP. If some new technologies are combined, because RUP can speed up the process of the entire development, it is actually able to help you to launch faster.
Pan Jiayu: I think RUP's thoughts are an iterative idea. At each iterates a version of SQ, this version can be displayed to the customer, let the customer look at whether the demand is required? RUP's ideological and human cognitive process is the same. The cognitive process of people is not immediately aware of the matter, but it is an iteration, so RUP is an outline. What does this mean? Its outline is to have a large expansion space, can think and create according to the expansion, Rup Rose does not specify which pictures cannot be planned, can also be planned, you can do it. UML and ROSE have an expansion and generate new things depending on the language.
Question: Does RUP help us solve some risk and uncertain problems? Avoid the risk of new technologies?
Ivar Jacobson: This will help RUP in the middle, it is an iterative development. Why can the unified process help? Because the unified process is actually an iterative development mode, it divides your project into several small projects, each small project has two weeks to four weeks internship time. In this case, you should have a good answer to the high-risk problems you mentioned, each step in the middle is smaller, and your decision is dispersed into a few small iterations. What is the way in the middle specific operation? For example, I just talked about me in a new programming language or a new programming platform, it will be a very high risk. Similar risks will list all the risks, and then look back USE Case, which use cases? I can help me to solve the risk from some degree or to avoid the risk of the left painting, and the use case is the problem to be implemented when Iterate.
Question: I just said that RUP and agile development, I didn't say agile development. There was a saying that RUP and XP were contradictory, and RUP belongs to a slight weight level, and agile development belongs to lightweight. But I think that from my experience, RUP may be more like a theoretical, from the theory, what kind of project is given, how is it going? However, XP is more guided in practice, but there are many places in the middle. For example, RUP is an iterative development, and the agile continuous development has similar ideas, so can I ask for Ivar in this process? I listened to Ivar's lecture in the morning. When you hear it needs agility to develop software, does it mean that UP is also a way to agile?
Ivar Jacobson: About XP and Unified Process, there are currently a lot of wrong understanding or some of its misunderstanding, I am here to make a clarification. In many ways, XP and unified processes are very close, just now
That bit
Miss mentioned whether it is very similar to iteration, it is true that they are almost a meaning. Is the use case and a user story very like, almost one thing. When discussing things in this middle, if you are careful, you will be basically consistent. What is this difference in this? In the unified process, I highly emphasized that I need to build a stable architecture. If there is no stable architecture at the beginning, it will spend more money or even dozens of architecture in the later project to make up for this error. In another aspect, it is actually more human factors, and the extreme programming is talking about the exchange between many people. If we read the process, we are absolutely not to talk about the relationship between people and people, just don't do so deep Emphasis.
We discuss a biggest difference, as the XP and unified procedures, what is the real difference in the middle? XP emphasizes the so-called implied knowledge, that is, there is no clear expression. This knowledge has a developer's brain. Today, there are so many knowledge, use this knowledge, there is no other knowledge to help you. The other way in the unified process is expressed, this knowledge is not necessarily knowledge that has existed in the team, and you can get new knowledge through learning and exercise, this is the biggest difference between the two systems.
In this case, what we said, the agile development method, you know that there is a number of methods, just I mentioned that XP is more, targeting the entire agile development. What is agile development of sports that will give people a feeling of this idea? Anyone can edit the software, as long as you use your existing knowledge, it is possible to give people to use existing knowledge to succeed in these big principles. This will be happy to know that it will work freely because it comes out. Other than some unclear methods can be customized, this is a drive behind it. The unified process is different. We discover and identify a range of best practices through long-term engineering practices. These best practices are easy to use, and the biggest project is also easy to use, from successful experience, a series of knowledge, This kind of knowledge is explicitly expressed and recorded. This method is different from agile development methods, because agile methods are more emphasis principles, and there is no truly knowledge to refine the knowledge, it is different in the form of forming the system. As a unified process, you can be a big book, it is a very rich knowledge treasure house.
Is this big knowledge base useful? Of course, there is a good aspect, because it is a very good knowledge structure, it also has a defective place, such a big knowledge base who will read 10,000 or such a large knowledge. But where is the key to this place? Doing software development, as developers need corresponding knowledge, need knowledge to equip you, these knowledge can help you really reach agile, when engineers master these knowledge, the development is very agile, I think this is a true agility .
In the process of my first design, I know that only 10% -20% of the engineers will truly apply the unified process, why? Because the unified process is too big, it is a very large knowledge. In another aspect, you must use a very rigorous engineering method to develop such a process. I will do it as a very important product. At this time, there must be a set of things in a rigorous way to make this set, this set of things It must be a big thing. At the same time, I realized that people didn't like reading, and now I found a new solution, helping everyone applied this process faster.
In 1980, I proposed to use the intelligent assistant to help you develop software. In 2000, I set up a company Jaczon to achieve this dream. This company has developed a product called WaitPoint. This product has already received Jolt Award, this tool can help You to identify the use case, to describe the use case, to help you design, come to help you make tests, so in this way, the intelligent assistant's knowledge is to become a hard disk knowledge, this knowledge is As an auxiliary tool. I think this is more agile than the so-called advocacy method. Thank you.
Pan Jiayu: At the first phase, it will be here, now give it to Xiong.